One-click deployment¶
This chapter introduces the operation method of one-click deployment of single agency with networking model of 2 agencies, 1 group, 4 nodes.
This turial is adaptable to the deployment of sinle agency building all nodes. For multi-agency deployment please read Deployment Tool。
Download and install¶
Download
cd ~/ && git clone https://github.com/FISCO-BCOS/generator.git && cd ./generator
Case analysis¶
In this section, we will create a networking model with topology of 2 agencies, 1 group and 4 nodes on the machine with IP 127.0.0.1. Each node’s IP and port number is:
| agency | node | belonged group | P2P address | RPC/channel monitoring address |
|---|---|---|---|---|
| agency A | node 0 | group 1 | 127.0.0.1:30300 | 127.0.0.1:8545/:20200 |
| node 1 | group 1 | 127.0.0.1:30301 | 127.0.0.1:8546/:20201 | |
| agency B | node 2 | group 1 | 127.0.0.1:30302 | 127.0.0.1:8547/:20202 |
| node 3 | group 1 | 127.0.0.1:30303 | 127.0.0.1:8548/:20203 |
Important
targeting the vps server in cloud servers, RPC monitoring address ahould be the real address (like internal network address or 127.0.0.1) of the network cards, which may be different with the ssh server log in by users.
Description¶
Users need to prepare a one_click file folder as the picture shows, which contains directories of different agencies and each needs a config file node_deployment.ini. Before use, please make sure that the meta folder of generator has not been operated.
View one-click deployment template folder:
ls ./one_click
# parameter description
# for muti-agencies, the folder needs to be created manually
one_click # user specifies a folder for one-click deployment
├── agencyA # agency A directory, node of agency A and relative files will be generated there after the commands are executed
│ └── node_deployment.ini # agency A node config file, according to which one-click deployment command generates node
└── agencyB # agency B directory, where node of agency B and relative files will be generated after the commands are executed
└── node_deployment.ini # agency B node config file, according to which one-click deployment command generates node
Agency fill in node information¶
According to the tutorial, agency A and agency B place the config file under one_click folder like below:
cat > ./one_click/agencyAnode_deployment.ini << EOF
[group]
group_id=1
[node0]
; host ip for the communication among peers.
; Please use your ssh login ip.
p2p_ip=127.0.0.1
; listen ip for the communication between sdk clients.
; This ip is the same as p2p_ip for physical host.
; But for virtual host e.g. vps servers, it is usually different from p2p_ip.
; You can check accessible addresses of your network card.
; Please see https://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
; for more instructions.
rpc_ip=127.0.0.1
p2p_listen_port=30300
channel_listen_port=20200
jsonrpc_listen_port=8545
[node1]
p2p_ip=127.0.0.1
rpc_ip=127.0.0.1
p2p_listen_port=30301
channel_listen_port=20201
jsonrpc_listen_port=8546
EOF
cat > ./one_click/agencyB/node_deployment.ini << EOF
[group]
group_id=1
[node0]
; host ip for the communication among peers.
; Please use your ssh login ip.
p2p_ip=127.0.0.1
; listen ip for the communication between sdk clients.
; This ip is the same as p2p_ip for physical host.
; But for virtual host e.g. vps servers, it is usually different from p2p_ip.
; You can check accessible addresses of your network card.
; Please see https://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
; for more instructions.
rpc_ip=127.0.0.1
p2p_listen_port=30302
channel_listen_port=20202
jsonrpc_listen_port=8547
[node1]
p2p_ip=127.0.0.1
rpc_ip=127.0.0.1
p2p_listen_port=30303
channel_listen_port=20203
jsonrpc_listen_port=8548
EOF
Build node¶
bash ./one_click_generator.sh ./one_click
After execution, the structure of ./one_click folder will be like:
View the one-click template folder after execution:
ls ./one_click
├── agencyA # Agency A folder
│ ├── agency_cert # Agency A certificate and private key
│ ├── generator-agency # generator folder automately replace agency A for operations
│ ├── node # node generated by agency A, push to the respective server for multi-machine deployment
│ ├── node_deployment.ini # node config information of agency A
│ └── sdk # sdk and console config file of agency A
└── agencyB
├── agency_cert
├── generator-agency
├── node
├── node_deployment.ini
└── sdk
Start node¶
Call script to start node:
bash ./one_click/agencyA/node/start_all.sh
bash ./one_click/agencyB/node/start_all.sh
View node progress:
ps -ef | grep fisco
# command description
# you can get the following progress
fisco 15347 1 0 17:22 pts/2 00:00:00 ~/generator/one_click/agencyA/node/node_127.0.0.1_30300/fisco-bcos -c config.ini
fisco 15402 1 0 17:22 pts/2 00:00:00 ~/generator/one_click/agencyA/node/node_127.0.0.1_30301/fisco-bcos -c config.ini
fisco 15442 1 0 17:22 pts/2 00:00:00 ~/generator/one_click/agencyA/node/node_127.0.0.1_30302/fisco-bcos -c config.ini
fisco 15456 1 0 17:22 pts/2 00:00:00 ~/generator/one_click/agencyA/node/node_127.0.0.1_30303/fisco-bcos -c config.ini
View node status¶
View node log:
tail -f ~/generator/one_click/agency*/node/node*/log/log* | grep +++
# command description
# +++ means that the node is in normal consensus status
info|2019-02-25 17:25:56.028692| [g:1][p:264][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,myIdx=0,hash=833bd983...
info|2019-02-25 17:25:59.058625| [g:1][p:264][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,myIdx=0,hash=343b1141...
info|2019-02-25 17:25:57.038284| [g:1][p:264][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,myIdx=1,hash=ea85c27b...
Operate console¶
Due to the bulk of console, there is no direct integration during one-click deployment. Users can get console through the following command.
It may take long to get console:
./generator --download_console ./
Configure console of agency A:
Copy console to agency A:
cp -rf ./console ./one_click/agencyA/console
Configure files of agency A console. Start of console needs certificate, private key and console config file:
cp ./one_click/agencyA/sdk/* ./one_click/agencyA/console/conf
Start of console needs to intall java:
cd ./one_click/agencyA/console && bash ./start.sh 1
Likewise, configure console of agency B:
cd ~/generator && cp -rf ./console ./one_click/agencyB/console
Configure files of agency B console, start of console needs certificate, private key and console config file:
cp ./one_click/agencyB/sdk/* ./one_click/agencyB/console/conf
Create new group and expansion¶
The later operations of the deployment tool is the same with Deployment tool tutorial.
The later operations of node expansion or new group division is introduced in Operation tutorial and Deplotment tool tutorial.
To create new group, users can modify ./conf/group_genesis.ini file under the folder that executes click2start.sh script, and execute --create_group_genesis.
To expand new node, users can modify ./conf/node_deployment.ini, use --generate_all_certificates to generate certificate and use --build_install_package to generate node.
If you have any problems when reading this tutoril, you can check FAQ