FISCO-BCOS環境搭建(二)部署系統合約
阿新 • • 發佈:2019-02-14
第四章 部署系統合約
系統合約是 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 系統合約介紹