扩展教程–机构C节点加入群组1

将节点加入已有群组需要用户使用控制台发送指令,将节点加入群组,示例如下:

此时群组1内有机构A、B的节点,机构C节点加入群组1需要经过群组内节点的准入,示例以机构A节点为例:

在~/generator-A目录下执行下述命令

  1. cd ~/generator-A

发送群组1创世区块至机构C

发送群组1配置文件至机构C节点:

  1. ./generator --add_group ./group/group.1.genesis ~/generator-C/nodeC

当前FISCO BCOS暂不支持文件热更新,为机构C节点添加群组1创世区块后需从启节点。

重启机构C节点:

  1. bash ~/generator-C/nodeC/stop_all.sh
  1. bash ~/generator-C/nodeC/start_all.sh

配置控制台

机构A配置控制台或sdk,教程中以控制台为例:

注意:此命令会根据用户配置的node_deployment.ini中节点及群组完成了控制台的配置,用户可以直接启动控制台,启动前请确保已经安装java

  1. ./generator --download_console ./

查看机构C节点4信息

机构A使用控制台加入机构C节点4为观察节点,其中参数第二项需要替换为加入节点的nodeid,nodeid在节点文件夹的conf的node.nodeid文件

查看机构C节点nodeid:

  1. cat ~/generator-C/nodeC/node_127.0.0.1_30304/conf/node.nodeid
  1. # 命令解释
  2. # 可以看到类似于如下nodeid,控制台使用时需要传入该参数
  3. ea2ca519148cafc3e92c8d9a8572b41ea2f62d0d19e99273ee18cccd34ab50079b4ec82fe5f4ae51bd95dd788811c97153ece8c05eac7a5ae34c96454c4d3123

使用控制台注册观察节点

启动控制台:

  1. cd ~/generator-A/console && bash ./start.sh 1

使用控制台addObserver命令将节点注册为观察节点,此步需要用到cat命令查看得到机构C节点的node.nodeid

  1. addObserver ea2ca519148cafc3e92c8d9a8572b41ea2f62d0d19e99273ee18cccd34ab50079b4ec82fe5f4ae51bd95dd788811c97153ece8c05eac7a5ae34c96454c4d3123
  1. # 命令解释
  2. # 执行成功会提示success
  3. $ [group:1]> addObserver ea2ca519148cafc3e92c8d9a8572b41ea2f62d0d19e99273ee18cccd34ab50079b4ec82fe5f4ae51bd95dd788811c97153ece8c05eac7a5ae34c96454c4d3123
  4. {
  5. "code":0,
  6. "msg":"success"
  7. }

退出控制台:

  1. exit

查看机构C节点5信息

机构A使用控制台加入机构C的节点5为共识节点,其中参数第二项需要替换为加入节点的nodeid,nodeid在节点文件夹的conf的node.nodeid文件

查看机构C节点nodeid:

  1. cat ~/generator-C/nodeC/node_127.0.0.1_30305/conf/node.nodeid
  1. # 命令解释
  2. # 可以看到类似于如下nodeid,控制台使用时需要传入该参数
  3. 5d70e046047e15a68aff8e32f2d68d1f8d4471953496fd97b26f1fbdc18a76720613a34e3743194bd78aa7acb59b9fa9aec9ec668fa78c54c15031c9e16c9e8d

使用控制台注册共识节点

启动控制台:

  1. cd ~/generator-A/console && bash ./start.sh 1

使用控制台addSealer命令将节点注册为共识节点,此步需要用到cat命令查看得到机构C节点的node.nodeid

  1. addSealer 5d70e046047e15a68aff8e32f2d68d1f8d4471953496fd97b26f1fbdc18a76720613a34e3743194bd78aa7acb59b9fa9aec9ec668fa78c54c15031c9e16c9e8d
  1. # 命令解释
  2. # 执行成功会提示success
  3. $ [group:1]> addSealer 5d70e046047e15a68aff8e32f2d68d1f8d4471953496fd97b26f1fbdc18a76720613a34e3743194bd78aa7acb59b9fa9aec9ec668fa78c54c15031c9e16c9e8d
  4. {
  5. "code":0,
  6. "msg":"success"
  7. }

退出控制台:

  1. exit

查看节点

在~/generator-C目录下执行下述命令

  1. cd ~/generator-C

查看节点log内group1信息:

  1. cat node*/node_127.0.0.1_3030*/log/log* | grep g:1 | grep Report
  1. # 命令解释
  2. # 观察节点只会同步交易数据,不会同步非交易状态的共识信息
  3. # log中的^^^即为节点的交易信息,g:1为群组1打印的信息
  4. info|2019-02-26 16:01:39.914367| [g:1][p:65544][CONSENSUS][PBFT]^^^^^^^^Report,num=0,sealerIdx=0,hash=9b76de5d...,next=1,tx=0,nodeIdx=65535
  5. info|2019-02-26 16:01:40.121075| [g:1][p:65544][CONSENSUS][PBFT]^^^^^^^^Report,num=1,sealerIdx=3,hash=46b7f17c...,next=2,tx=1,nodeIdx=65535
  6. info|2019-02-26 16:03:44.282927| [g:1][p:65544][CONSENSUS][PBFT]^^^^^^^^Report,num=2,sealerIdx=2,hash=fb982013...,next=3,tx=1,nodeIdx=65535
  7. info|2019-02-26 16:01:39.914367| [g:1][p:65544][CONSENSUS][PBFT]^^^^^^^^Report,num=0,sealerIdx=0,hash=9b76de5d...,next=1,tx=0,nodeIdx=4
  8. info|2019-02-26 16:01:40.121075| [g:1][p:65544][CONSENSUS][PBFT]^^^^^^^^Report,num=1,sealerIdx=3,hash=46b7f17c...,next=2,tx=1,nodeIdx=4
  9. info|2019-02-26 16:03:44.282927| [g:1][p:65544][CONSENSUS][PBFT]^^^^^^^^Report,num=2,sealerIdx=2,hash=fb982013...,next=3,tx=1,nodeIdx=4

至此 我们完成了所示构建教程中的所有操作。

../../_images/tutorial_step_3.png

通过本节教程,我们在本机生成一个网络拓扑结构为3机构2群组6节点的多群组架构联盟链。

如果使用该教程遇到问题,请查看FAQ