diff --git a/docs/concepts.md b/docs/concepts.md index 259f9e43..0f954346 100644 --- a/docs/concepts.md +++ b/docs/concepts.md @@ -1,10 +1,67 @@ hero: All concepts related to cello -## 1. [Server](setup/server.md) +# Concepts + +```mermaid +graph LR + subgraph Network + subgraph Channel + subgraph Org A + USER_A[User A] + AGENT_A[Agent A] + NODE_A[Node A] + end + + subgraph Org B + USER_B[User B] + AGENT_B[Agent B] + NODE_B[Node B] + end + + subgraph Org C + USER_C[User C] + AGENT_C[Agent C] + NODE_C[Node C] + end + end + end + + subgraph Hyperledger Cello Server + DASHBOARD[Dashboard] + APIENGINE[API Engine] + DB[(Database)] + end + + USER_A --> DASHBOARD + USER_B --> DASHBOARD + USER_C --> DASHBOARD + DASHBOARD --> APIENGINE + APIENGINE --> |Register users, organizations, and networks| DB + APIENGINE --> |Ask for node creations| AGENT_A + APIENGINE --> |Ask for node creations| AGENT_B + APIENGINE --> |Ask for node creations| AGENT_C + APIENGINE --> |Forward Blockchain operations| NODE_A + APIENGINE --> |Forward Blockchain operations| NODE_B + APIENGINE --> |Forward Blockchain operations| NODE_C + AGENT_A --> |Create via CRI| NODE_A + AGENT_B --> |Create via CRI| NODE_B + AGENT_C --> |Create via CRI| NODE_C -### 1.1 Components [^1] +``` + +## Server + +*Server* is shared between organizations. It's used for user management and node manipulation. It will ask agents to create nodes and is responsible for **every operation with them**. + +### Components -#### 1.1.1 API Engine +*Components* are all the containers you need to run a Cello Server. + +#### Dashboard + +The Web UI of Cello. + +#### API Engine Api engine supply the core function, all operations through the api service. @@ -14,37 +71,26 @@ Host path mappings: * /var/run/docker.sock:/var/run/docker.sock {>>Used for agent containers launch, which will deploy fabric, eg. network<<} * (==optional==) $ROOT_PATH/src/api-engine:/var/www/server {>>When run in debug mode, MODE=dev, will mapping the source code into container, ROOT_PATH is the source code path.<<} -#### 1.1.2 API Engine Tasks +#### Database -This component run all the async longtime task for api engine, it's receive tasks through redis, and can dynamic set the thread pool. - -``` - -#### 1.1.3 Postgres - -Store all the data in postgres database, and the storage path is mapping out on the host. +Store all the data in a postgres database, and the storage path is mapping out on the host. Host path mappings: * /opt/cello/postgres:/var/lib/postgresql/data {>>Store all db data.<<} -#### 1.1.4 Redis - -#### 1.1.5 Dashboard +## Agent -### 1.2 Deployment Method +*Agents* run under every organization. It's used for **creating nodes** for the Blockchain networks. -#### 1.2.1 Docker compose +### Docker -#### 1.2.2 Kubernetes +Docker agent will create nodes as users request via the Docker socket. -## 2. Agent +## Node +*Nodes* are **what really run inside the Blockchain networks**. -### 2.1 [Kubernetes](agents/kubernetes.md) - -### 2.2 [Fabric Operator](agents/fabric-operator.md) - -[^1]: running containers of cello master service +### Hyperledger Fabric +For more information about the Hyperledger Fabric nodes, please check out the [Hyperledger Fabric Document](https://hyperledger-fabric.readthedocs.io/en/latest/). Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License. -``` diff --git a/docs/requirements.txt b/docs/requirements.txt index d575fb40..e7820709 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,3 +1,4 @@ mkdocs>= 1.4.2 mkdocs-material>=4.4.0 pygments>=2.14.0 +mkdocs-mermaid2-plugin>=1.2.1 diff --git a/mkdocs.yml b/mkdocs.yml index 723f9bf7..88bfd7c6 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,7 +2,7 @@ site_name: Hyperledger Cello repo_name: "hyperledger/cello" repo_url: "https://github.com/hyperledger/cello" theme: - name: "mkdocs" + name: "material" logo: "images/favicon.png" favicon: "images/favicon.png" feature: @@ -24,6 +24,14 @@ markdown_extensions: - markdown.extensions.meta - markdown.extensions.toc: permalink: true + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:mermaid2.fence_mermaid + - pymdownx.mark + - pymdownx.critic: + mode: view docs_dir: docs nav: - Docs: @@ -52,8 +60,9 @@ nav: - faq.md - Release Notes: - release_note.md -#plugins: -# - search +plugins: + - search + - mermaid2 # - minify: # minify_html: true # - pdf-export: