Skip to content

Commit 93429cd

Browse files
committed
[CE-145] Fix documentation structure and links
* Re-struct the documentation * Add necessary links to help explore quickly * Fix several places of documentation content Change-Id: I7eaeecc823d6949218a9b1b7652c37705d2a5849 Signed-off-by: Baohua Yang <yangbaohua@gmail.com>
1 parent a552dd2 commit 93429cd

13 files changed

+159
-87
lines changed

docs/dashboard.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Dashboard
22

3-
By default, the dashboard will listen on port `8080` at the Master Node.
3+
By default, the dashboard will listen on port `8080` at the Master Node, and operators can login in with default `admin:pass` credential.
44

55
The left panel gives quick link to various functions, including `overview`, `system status`, `Hosts`, `Active Clusters`, `Inused Clusters`, `Release History` and `About`.
66

@@ -71,5 +71,4 @@ Filter out those running chains that are occupied by users.
7171

7272
Record all the user releasing chain history.
7373

74-
7574
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.

docs/imgs/deploy_arch.png

217 KB
Loading

docs/index.md

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,52 @@ Welcome to Hyperledger Cello
33

44
Hyperledger Cello is a blockchain provision and operation system, which helps manage blockchain networks.
55

6+
![Typical Scenario](imgs/scenario.png)
7+
68
Hyperledger Cello is designed with the following features:
79

810
* Manage the lifecycle of blockchains, e.g., create/start/stop/delete/keep health automatically.
911
* Support customized (e.g., size, consensus) blockchains request, currently we mainly support [Hyperledger fabric](https://github.com/hyperledger/fabric).
10-
* Support native Docker host, swarm or Kubernetes as the worker nodes. More supports on the way.
12+
* Support bare-metal, virtual machine, native [Docker](https://www.docker.com/) host, swarm or [Kubernetes](https://kubernetes.io/) as the worker nodes. More supports on the way.
1113
* Support heterogeneous architecture, e.g., X86, POWER and Z, from bare-metal servers to virtual machine clouds.
1214
* Extend with monitor, log, health and analytics features by employing additional components.
1315

14-
Using Cello, every Blockchain application developer can:
16+
Using Cello, Blockchain application developers can:
1517

1618
* Build up a Blockchain as a Service (BaaS) platform quickly from the scratch.
1719
* Provision customizable Blockchains instantly, e.g., a Hyperledger fabric network v1.0.
18-
* Maintain a pool of running blockchain networks on top of baremetals, Virtual Clouds (e.g., virtual machines, vsphere Clouds), Container clusters (e.g., Docker, Swarm, Kubernetes).
20+
* Maintain a pool of running blockchain networks on top of baremetals, virtual clouds (e.g., virtual machines, vsphere Clouds), container clusters (e.g., Docker, Swarm, Kubernetes).
1921
* Check the system status, adjust the chain numbers, scale resources... through dashboards.
2022

21-
A typical usage scenario is illustrated as:
22-
23-
![Typical Scenario](imgs/scenario.png)
23+
## [Getting Started](tutorial)
2424

25-
## Getting Started
25+
For new users, it is highly recommended to read the [Tutorial for Beginners](tutorial) first.
2626

27-
For new users, it is highly recommended to read the [tutorial](tutorial) first.
28-
29-
## Operational Guideline
30-
* [New User Tutorial](tutorial)
31-
* [Installation Steps](installation)
32-
* [Terminologies List](terminology)
27+
## Operation Guideline
28+
* [Terminology and Concept](terminology)
29+
* [Installation](installation)
3330
* [Adoption Scenarios](scenario)
34-
* [Production Configuration](production_config)
31+
* [Configuration for Production](production_config)
32+
* [Manage Cello services](service_management)
3533

36-
## Development Guideline
37-
* [How to contribute](CONTRIBUTING)
34+
## Contribute to the Project
35+
* [How to Contribute](CONTRIBUTING)
36+
* [Coding Style](code_style)
37+
* [PEP8 Style Guide](https://www.python.org/dev/peps/pep-0008/)
38+
* [Develop react js](reactjs)
39+
40+
## Design Documentation
3841
* [Architecture Design](arch)
3942
* [Database Model](db)
4043
* [API Design](api/restserver_v2)
41-
* [Wikipage](https://wiki.hyperledger.org/projects/cello)
42-
* [Develop react js](reactjs)
43-
* [Coding Style](code_style)
44-
* [Pep8 style guide](https://www.python.org/dev/peps/pep-0008/)
44+
45+
## Communication Channels
46+
47+
For additional helps, feel free to take the following channels:
48+
49+
* [Wikipage](https://wiki.hyperledger.org/projects/cello): Lots of information and documentation about the project.
50+
* [Jira Board](https://jira.hyperledger.org/projects/CE/issues): Find development status, report bug, or help contribute code.
51+
* [Mail List](mailto:hyperledger-cello@lists.hyperledger.org): General discussions with Cello project.
52+
* [Rocket.Chat channels](https://chat.hyperledger.org/channel/cello): Real-time technical conversations.
4553

4654
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.

docs/installation.md

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,27 @@
11
# Installation
22

3-
*Here we describe the setups for development usage. If you want to deploy Cello for production, please also refer to the [Production Configuration](production_config.md).*
3+
Cello follows a typical Master-Worker architecture. There are two types of Nodes in the cluster.
44

5-
Cello follows a typical Master-Worker architecture. Hence there will be two types of Nodes.
5+
* Master Node: Holds [Cello services](service_management.md) to manage (e.g., create/delete) the chains inside Work Nodes. Usually, Master Node will provide Web dashboard (port `8080`) and RESTful api (port `80`). It is recommended to use Linux (e.g., Ubuntu 14.04+) or MacOS;
6+
* Worker Node: Nodes to hold blockchains. Take Docker Host or Swarm Cluster for example, the Docker daemon should be accessible (typically at port `2375`) from the Master Node.
67

7-
* Master Node: Manage (e.g., create/delete) the chains inside Work Nodes, with Web dashboard listening on port `8080` and RESTful api on port `80`;
8-
* Worker Node: Chain providers, now support Docker Host or Swarm Cluster. The Docker service should be accessible from port `2375` from the Master Node.
8+
![Deployment topology](imgs/deploy_arch.png)
99

10-
![Deployment topology](imgs/deployment_topo.png)
10+
## Master Node
1111

12-
For each Node, it is suggested as a Linux-based (e.g., Ubuntu 14.04+) server/vm:
12+
See [Installation on Master Node](installation_master.md).
1313

1414
## Worker Node
1515

1616
Currently we support Docker Host or Swarm Cluster as Worker Node. More types will be added soon.
1717

18-
`Docker Host`: See [Installation on Worker Docker Node](installation_worker_docker.md).
19-
`Docker Swarm `: TODO.
20-
`Kubernetes`: TODO.
21-
`vSphere`: TODO.
22-
23-
## Master Node
24-
25-
See [Installation on Master Node](installation_master.md).
26-
27-
### Make Command
28-
29-
A Makefile is provided to help setup the master node, please refer [make_support](/make_support.md) page.
18+
* `Docker Host`: See [Installation on Worker Docker Node](installation_worker_docker.md).
19+
* `Docker Swarm `: See [Create a Docker Swarm](https://docs.docker.com/engine/swarm/swarm-tutorial/create-swarm/).
20+
* `Kubernetes`: See [Kubernetes Setup](https://kubernetes.io/docs/setup/).
21+
* `vSphere`: TODO.
3022

23+
## Special Configuration for Production
3124

32-
*Licensed under Creative Commons Attribution 4.0 International License
33-
https://creativecommons.org/licenses/by/4.0/*
25+
Here we describe the setups for development usage. If you want to deploy Cello for production, please also refer to the [Production Configuration](production_config.md).
3426

3527
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.

docs/installation_master.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,5 @@ By default, it also loads the `config.py` file as the configurations.
8181
The mongo container will use local `/opt/cello/mongo` directory for persistent storage.
8282

8383
Please keep it safe by backups or using more high-available solutions.
84+
85+
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.

docs/installation_worker_docker.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,6 @@ Make sure ip forward is enabled, you can simply run the follow command.
7474
```sh
7575
$ sysctl -w net.ipv4.ip_forward=1
7676
```
77-
And check the os iptables config, to make sure host ports are open (e.g., 2375, 7050~10000)
77+
And check the os iptables config, to make sure host ports are open (e.g., 2375, 7050~10000)
78+
79+
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.

docs/make_support.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
## Operations Supported
2-
### make
1+
## Supported Make Commands
32

4-
The following opperations are supported by make command. Prepend the following commands with make.
3+
The following opperations are supported by [Make](https://en.wikipedia.org/wiki/Makefile) command. Prepend the following commands with make.
54

65
These commands should be run in `cello` directory, for example: `/cello$ make all`.
76

87
### all
9-
Default to run check. Runs check.
8+
Default to run the testing cases.
109

1110
### build-js
1211
Builds js files for react.
1312

1413
### check
1514
CI checking. Runs the following commands. This runs the following commands for you.
15+
1616
```sh
1717
$ tox
1818
$ make start && sleep 10 && make stop
@@ -21,13 +21,15 @@ $ make start && sleep 10 && make stop
2121
### clean
2222
Cleans up the environment and removes temp files like .cache, .tox, .pyc.
2323
It runs the following commands for you.
24+
2425
```sh
2526
$ rm -rf .tox .cache *.egg-info
2627
$ find . -name "*.pyc" -o -name "__pycache__" -exec rm -rf "{}" \;
2728
```
2829

2930
### doc
3031
Starts a doc server locally. It runs the following commands for you.
32+
3133
```sh
3234
$ pip install mkdocs
3335
$ mkdocs serve
@@ -38,6 +40,7 @@ Show help.
3840

3941
### image-clean
4042
Cleans up all cello related docker images. It runs the following commands for you.
43+
4144
```sh
4245
$ docker images | grep "cello-" | awk '{print $1}' | xargs docker rmi -f
4346
$ docker rmi $(docker images -f dangling=true -q)
@@ -51,12 +54,14 @@ Shows logs of all services.
5154

5255
### setup-master
5356
Sets up the master node. Run on Master node. It runs the following command for you.
57+
5458
```sh
5559
$ cd scripts/master_node && bash setup.sh
5660
```
5761

5862
### setup-worker
5963
Sets up the worker node. Run on Worker node. It runs the following commands for you.
64+
6065
```sh
6166
$ cd scripts/worker_node && bash setup.sh
6267
```
@@ -66,6 +71,7 @@ Redeploys specified service(s). To redeploy `Dashboard` service, use: `make rede
6671

6772
### start
6873
Starts all services. Runs following command for you.
74+
6975
```sh
7076
$ docker-compose up -d --no-recreate
7177
```

docs/monitoring.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,24 @@
11
#Monitoring services
2-
The monitoring services build in real time an archive of observations obtained from the analisys of the communication flows of the CELL application services.
2+
3+
The monitoring services build in real time an archive of observations obtained from the analisys of the communication flows of the Cello application services.
4+
35
The observations could be checked in real time (directly in memory) against attacks, anomalies or errors.
6+
47
The observations, once processed in real time, are stored into a persistent archive for statistic analisys and reports generation.
58

69
### Config the port to be monitored
710
Admin can configure the tcp ports to be monitored by the monitoring services, by adding the following two lines:
8-
* # the monitoring services will have to monitor the following ports
9-
* PORTS_TO_BE_MONITORED = list(PEER_SERVICE_PORTS.items()) + list(CA_SERVICE_PORTS.items())
11+
12+
```bash
13+
# the monitoring services will have to monitor the following ports
14+
PORTS_TO_BE_MONITORED = list(PEER_SERVICE_PORTS.items()) + list(CA_SERVICE_PORTS.items())
1015
to the configuration file: /src/common/utils.py
16+
```
1117

1218
### Config the monitoring level
1319
Admin can add to the file /src/monitoring/config.py the following flags:
14-
* MONITOR_DB=<file name or network path where to store the persistent archive>
20+
21+
* MONITOR_DB=[file name or network path where to store the persistent archive]
1522
* MONITOR_LEVEL=FULL | SIMPLE | NONE
1623

1724
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.

docs/production_config.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Production Configurations
2-
Reference system configuration in production environment.
2+
3+
In order to optimize the system performance in production environment, these system configurations can be set.
34

45
## `/etc/sysctl.conf`
56

@@ -31,9 +32,8 @@ Then, need to run `sysctl -p` for enabling.
3132
* soft stack 32768
3233
* hard stack 32768
3334
```
34-
Log
3535

36-
## Other Consideration
36+
## Other Configurations
3737

3838
* Use the code from `release` branch.
3939
* Configuration: Set all parameters to production, including image, compose, and application.

docs/scenario.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Scenarios
22

3-
## Admin
3+
## Admin Scenario
44
After start up, Cello provides a dashboar for administrators, which listens on localhost:8080.
55

66
The default login user name and password are `admin:pass`, you can modify this by changing the variables `USERNAME` and `PASSWORD` in the `nginx` section of the [docker-compose file](../docker-compose.yml).
@@ -16,19 +16,19 @@ Admin can also delete a host from the resource pool if it has no running chains.
1616
### Config a host
1717
Admin can manually update the host configuration, including:
1818

19-
* name: Human readable name alias.
20-
* capacity: Maximum chain number on that host.
21-
* schedulable: Whether to distribute chains on that host to users.
22-
* autofill: Whether to keep host with running chains to its capacity.
23-
* log_type: local or syslog.
19+
* `name`: Human readable name alias.
20+
* `capacity`: Maximum chain number on that host.
21+
* `schedulable`: Whether to distribute chains on that host to users.
22+
* `autofill`: Whether to keep host with running chains to its capacity.
23+
* `log_type`: local or syslog.
2424

2525
### Operate a host
2626

2727
Admin can run several operations on a host, including:
2828

29-
* fill: Fill the host with chains to its capacity.
30-
* clean: Clean up the free chains on that host.
31-
* reset: Re-setup a host, e.g., cleaning useless docker containers.
29+
* `fill`: Fill the host with chains to its capacity.
30+
* `clean`: Clean up the free chains on that host.
31+
* `reset`: Re-setup a host, e.g., cleaning useless docker containers.
3232

3333
### Add/Delete chains
3434
Admin can also manually add some specific chain to a host, or delete one.
@@ -39,7 +39,7 @@ When the autofill box is checked on a host, then watchdog will automatically kee
3939

4040
e.g., if the capacity of one host is set to 10, then the host will be filled with 10 chains quickly. When 2 chains are broken, they will be replaced by healthy ones soon.
4141

42-
## Chain users
42+
## Users Scenario
4343

4444
### apply a cluster
4545

docs/service_management.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Service Management
2+
3+
Main Cello services are running in the Master Node.
4+
5+
## Services
6+
7+
After starting cello services using `make start`, there will generate several service containers as the following:
8+
9+
```bash
10+
$ docker ps
11+
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
12+
fdf4b8465d14 yeasy/nginx "/bin/bash /tmp/do..." 12 seconds ago Up 11 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:8080->8080/tcp, 443/tcp nginx
13+
80c3962867ff mongo:3.2 "docker-entrypoint..." 12 seconds ago Up 11 seconds 127.0.0.1:27017-27018->27017-27018/tcp mongo
14+
91df95a11229 cello-dashboard "python dashboard.py" 12 seconds ago Up 11 seconds 8080/tcp dashboard
15+
051efd511066 cello-watchdog "python watchdog.py" 12 seconds ago Up 11 seconds watchdog
16+
a66bb112a21f cello-restserver "python restserver.py" 12 seconds ago Up 12 seconds 80/tcp restserver
17+
```
18+
19+
* `nginx`: [Nginx](https://nginx.org) is used as a reverse proxy to improve web performance.
20+
* `mongo`: [MongoDB](https://www.mongodb.com) is used as the backend database.
21+
* `dashboard`: Provides the admin dashboard using [Flask](http://flask.pocoo.org/).
22+
* `watchdog`: Monitors the status of the system (e.g., chains' health).
23+
* `restserver`: Core engine to do the provision, orchestration and management tasks.
24+
25+
## Make Command
26+
27+
A [Makefile](https://en.wikipedia.org/wiki/Makefile) is provided to help setup and manage the master node, please refer to the [make_support](make_support.md) page.
28+
29+
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.

0 commit comments

Comments
 (0)