FISCO-BCOS环境搭建(二)部署系统合约

第四章 部署系统合约

系统合约是 FISCO BCOS 区块链的重要设计思路之一,也是控制网络节点加入和退出的重要方式,每条区块链仅需部署一次系统合约。系统合约的详细介绍,请参看附录:11.7 系统合约介绍

4.1 配置

切换到部署系统合约的目录下

cd /mydata/FISCO-BCOS/systemcontractv2

安装依赖环境

cnpm install

设置区块链节点RPC端口

vim ../web3lib/config.js

仅需将proxy指向区块链节点的RPC端口即可。RPC端口在节点的config.json中查看(参考:2.5.2 配置config.json(节点配置文件))。

var proxy="http://127.0.0.1:8545";

4.2 部署系统合约

直接运行deploy.js部署系统合约。注意,此deploy.js与tool目录的是不同的两个文件。

babel-node deploy.js 

部署成功,输出合约路由表。

RPC=http://127.0.0.1:8545
Ouputpath=./output/
SystemProxy合约地址 0x919868496524eedc26dbb81915fa1547a20f8998  # <-------------很重要
TransactionFilterChain合约地址 0x23df89a2893120f686a4aa03b41acf6836d11e5d
AuthorityFilter合约地址 0x4437f8c9cd1e6a3e8ec9c3460c4bc209acdca052
发送交易成功: 0xc173c4e910e1a38d2debbb7e29bd3962e8806e5855baf6104bd20c5ab826c98d
发送交易成功: 0xdcc57fc04867cef0f9499c1f03d22884a4a5e292296f98e3367b9307767feefa
AuthorityFilter版本号1.0
Group合约地址 0x61dba250334e0fd5804c71e7cbe79eabecef8abe
CAAction合约地址 0x60d4ee5c461677840ab3552a6845fdf7db4a5317
NodeAction合约地址 0xa40c864c28ee8b07dc2eeab4711e3161fc87e1e2
ConfigAction合约地址 0xfcd14ed03e6d94ca127d557a1883dd042a81ea11
FileInfoManager合约地址 0x73479ed8162e198b9627b962eb4aae7098bdc770
FileServerManager合约地址 0x1406a0c559995562fc77bf2a214a2dcfab4f6b2b
ContractAbiMgr合约地址 0x9216757a91607668cf8a7a38f8ae56206a6e9f6b
#......省略若干行...........
注册FileServerManager.....
发送交易成功: 0xe6b7971a727248ed7f120edcc7314129ced70c9ab546038feff6c372c68a9cc3
合约部署完成 系统代理合约:0x919868496524eedc26dbb81915fa1547a20f8998
-----------------系统路由表----------------------
0 )TransactionFilterChain=>0x23df89a2893120f686a4aa03b41acf6836d11e5d,false,18
       AuthorityFilter=>1.0,0x4437f8c9cd1e6a3e8ec9c3460c4bc209acdca052
1 )ConfigAction=>0xfcd14ed03e6d94ca127d557a1883dd042a81ea11,false,19
2 )NodeAction=>0xa40c864c28ee8b07dc2eeab4711e3161fc87e1e2,false,20
3 )CAAction=>0x60d4ee5c461677840ab3552a6845fdf7db4a5317,false,21
4 )ContractAbiMgr=>0x9216757a91607668cf8a7a38f8ae56206a6e9f6b,false,22
5 )FileInfoManager=>0x73479ed8162e198b9627b962eb4aae7098bdc770,false,23
6 )FileServerManager=>0x1406a0c559995562fc77bf2a214a2dcfab4f6b2b,false,24

上述输出内容中,重要的是系统代理合约地址,即SystemProxy合约地址。如:

SystemProxy合约地址 0x919868496524eedc26dbb81915fa1547a20f8998

4.3 配置系统代理合约地址

系统代理合约,是所有系统合约的路由,通过配置系统代理合约地址(SystemProxy),才能正确调用系统合约。各个区块链节点都应配置系统代理合约地址,才能正确调用系统合约。

修改所有区块链节点的config.json。将systemproxyaddress字段配置为,上述步骤输出的SystemProxy合约地址配置。

vim /mydata/nodedata-1/config.json

配置后,config.json中的systemproxyaddress字段如下:

"systemproxyaddress":"0x919868496524eedc26dbb81915fa1547a20f8998",

重启被配置的节点:

cd /mydata/nodedata-1/
chmod +x *.sh
./stop.sh
./start.sh #执行此步骤后不断刷出打包信息,表明重启成功

自此,系统合约生效,为配置多个节点的区块链做好了准备。系统合约的详细介绍,请参看附录:11.7 系统合约介绍

你可能感兴趣的:(BCOS)