fisco 在原有机构上添加新的观察节点

安装console控制台

  • 环境配置
    java8以上并配置JAVA_HOME。
  • 安装命令
//下载console控制台
cd ~/fisco && curl -#LO https://github.com/FISCO-BCOS/console/releases/download/v1.1.0/download_console.sh && bash download_console.sh
如果上面链接慢 切换gitee仓库
curl -LO https://gitee.com/FISCO-BCOS/console/raw/master/tools/download_console.sh && bash download_console.sh
  • 配置控制台
    • 区块链节点和证书的配置:

将节点sdk目录下的ca.crt、node.crt和node.key文件拷贝到conf目录下。
将conf目录下的applicationContext-sample.xml文件重命名为applicationContext.xml文件。配置applicationContext.xml文件,其中添加注释的内容根据区块链节点配置做相应修改。提示:如果搭链时设置的listen_ip为127.0.0.1或者0.0.0.0,channel_port为20200,则applicationContext.xml配置不用修改。

  • 命令
cp nodes/192.168.0.164/sdk/* console/conf/
cp -n console/conf/applicationContext-sample.xml console/conf/applicationContext.xml
./console/start.sh

创建新节点

原有节点p2p为:

  • node.0 : 192.168.0.164:30300
  • node.1 : 192.168.0.164:30301

新增节点p2p为:

  • node.3 : 192.168.0.164:30302

我当前是在一台机器配置。如果不在一台机器上需要把ip配置为外网ip。并且机器之间端口需要互通。

每个机构有自己单独的证书,需要根据机构的证书来扩展新的节点
CA下发的证书以及自己组织的私钥存放在 nodes/cert 目录下
ca.crt agency.crt agency.key

  1. 将其中主节点的cert 复制粘贴到新的文件夹下 fisco-new
cp -r fisco/nodes/cert fisco-new/
  1. 下载gen_code_cert.sh 来生成新的节点
cd fisco-new
curl -LO https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master/tools/gen_node_cert.sh
  1. 生成新节点的证书(-c为生成节点所提供的ca路径,agency为机构名,-o为将生成的节点目录名)
mkdir 192.168.0.164
./gen_node_cert.sh -c ./cert/agency -o 192.168.0.164/node_new
==============================================================
[INFO] Cert Path   : cert/agency/
[INFO] Output Dir  : 192.168.0.164/node_new
==============================================================
[INFO] All completed. Files in 192.168.0.164/node_new
执行完后会在node_new 目录下生成conf文件夹

cd node_new/conf
ll # 查看目录
-rw-rw-r-- 1 xlf xlf  574 9月  15 15:44 agency.crt
-rw-rw-r-- 1 xlf xlf  664 9月  15 15:44 ca.crt
-rw-rw-r-- 1 xlf xlf 1825 9月  15 15:44 node.crt
-rw------- 1 xlf xlf  237 9月  15 15:44 node.key
-rw-rw-r-- 1 xlf xlf  129 9月  15 15:44 node.nodeid
-rw-rw-r-- 1 xlf xlf   71 9月  15 15:44 node.param
-rw-rw-r-- 1 xlf xlf   65 9月  15 15:44 node.private
-rw-rw-r-- 1 xlf xlf  174 9月  15 15:44 node.pubkey

  1. 将主节点其中一个节点的config.ini、start.sh、stop.sh 复制到 (新节点)node_new文件夹中
cp -r fisco/nodes/192.168.0.164/node0/config.ini  fisco/nodes/192.168.0.164/node0/start.sh  fisco/nodes/192.168.0.164/node0/stop.sh  fisco-new/nodes/192.168.0.164/node_new/
  1. 修改新节点的配置文件config.ini,对于[rpc]模块,修改listen_ip、channel_listen_port和jsonrpc_listen_port;对于[p2p]模块,修改listen_port并在node.中增加自身节点信息;
sudo vim 192.168.0.164/node_new/config.ini;
[rpc]
    channel_listen_ip=0.0.0.0
    channel_listen_port=20202
    jsonrpc_listen_ip=192.168.0.164
    jsonrpc_listen_port=8547
[p2p]
    listen_ip=0.0.0.0
    listen_port=30302
    ; nodes to connect
    node.0=192.168.0.164:30300
    node.1=192.168.0.164:30301
    node.2=192.168.0.164:30302 #新加入的节点p2p
	#node.0 node.1 位原有主节点
  1. 拷贝机构agency下其他节点conf目录里的创世区块文件(agency.genesis、agency.ini)到新节点conf目录下(新节点要加入到哪个群组即拷贝哪个群组创世区块文件,这里是把新节点加入到群组agency)
 cp -r node0/conf/group.1.genesis node_new/conf
  cp -r node0/conf/group.1.ini  node_new/conf
  1. 拷贝fisco-bcos二进制文件、start_all.sh、stop_all.sh到新节点目录下
cp -r fisco/nodes/192.168.0.164/fisco-bcos  fisco-new/nodes/192.168.0.164/
cp -r fisco/nodes/192.168.0.164/start_all.sh  fisco-new/nodes/192.168.0.164/
cp -r fisco/nodes/192.168.0.164/stop_all.sh  fisco-new/nodes/192.168.0.164/
//启动新节点
./start_all.sh
  • 查看p2p连接状况 count=2 表示新节点与两个主节点通信正常。
tail -f node_new/log/log* |grep connected
info|2020-09-15 15:46:12.064517|[P2P][Service] heartBeat,connected count=2
info|2020-09-15 15:46:22.064655|[P2P][Service] heartBeat,connected count=2
info|2020-09-15 15:46:32.064787|[P2P][Service] heartBeat,connected count=2

将节点加入到观察节点

  • 进入主节点控制台 查看节点状况
[group:1]> getPeers 
[
    {
        "Agency":"agency",
        "IPAndPort":"192.168.0.164:44966",  # 新加入节点成功
        "Node":"node",
        "NodeID":"91c4daf46a83152223f246b54574efde91943fd43f2b29d384364e0def0d6b58e9f9a8656ed06b2c9581b7c0cc30c9696b6428589dd499772b6c075648cd025a",
        "Topic":[
            
        ]
    },
    {
        "Agency":"agency",
        "IPAndPort":"192.168.0.164:30301",
        "Node":"node1",
        "NodeID":"35757439212f3f76abc43abe53ff5cf2422020db8de921ddc78f0a7440d1d00a0427aee10cbc9bece999d26494d29980507a0345d1312f181d382da99a7fb494",
        "Topic":[
            
        ]
    }
]
[group:1]> getObserverList # 查看观察节点为空
[]

  • 新加入的节点现在还是游离节点 需要将新节点的nodeId加到观察节点
新节点的nodeId 在node_new/conf/node.nodeid文件中。
cat node_new/conf/node.nodeid 
91c4daf46a83152223f246b54574efde91943fd43f2b29d384364e0def0d6b58e9f9a8656ed06b2c9581b7c0cc30c9696b6428589dd499772b6c075648cd025a

[group:1]> addObserver 91c4daf46a83152223f246b54574efde91943fd43f2b29d384364e0def0d6b58e9f9a8656ed06b2c9581b7c0cc30c9696b6428589dd499772b6c075648cd025a
{
    "code":0,
    "msg":"success"
}
[group:1]> getObserverList 
[
    91c4daf46a83152223f246b54574efde91943fd43f2b29d384364e0def0d6b58e9f9a8656ed06b2c9581b7c0cc30c9696b6428589dd499772b6c075648cd025a
]

  • 查看新节点同步日志
tail -f node_new/log/log* 
出现如下 表示正在同步
[SYNC][id:621219a1...][Download][Request]Request blocks,frm=93314,to=93314,peer=40382014...
info|2020-09-15 18:59:44.175354|[g:1][SYNC][id:621219a1...][Download][BlockSync]Download block execute,number=93314,txs=1,hash=f2b50403...
info|2020-09-15 18:59:44.175368|[g:1][BLOCKVERIFIER][executeBlock]Executing block,txNum=1,num=93314,parentHash=36e0623976d4f4618fc9e1bfd2c3fe6923bbf60f9bebf1acfbba5d5b22c8e3f3,parentNum=93313,parentStateRoot=af3ac6c5fc29fdf200d14e224cb1380ead145b000a9cb97120fceaec1b538582
info|2020-09-15 18:59:44.176589|[g:1][g:1][STORAGE][CachedStorage]CachedStorage commit: 7 num: 93314
info|2020-09-15 18:59:44.176919|[g:1][STORAGE]Submited block task: 93314, current syncd block: 93313
info|2020-09-15 18:59:44.176930|[g:1][STORAGE]Start commit block: 93314 to backend storage
info|2020-09-15 18:59:44.176981|[g:1]Push block notify: 1-93314
此时如果访问此节点上的api 比如访问getBlockNumber 会出现如下错误。
Don't send request to this node who doesn't belong to the group
这时因为此节点在同步其余节点数据。需等待同步完成后再访问。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值