区块链 模块1 搭建区块链系统并验证
基于给定服务器环境以及软件(地址“/root/tools”),搭建一条4节点的区块链系统并验证,具体工作内容如下:
(1)采用默认配置搭建区块链网络;
乌班图依赖
1 apt install -y openssl curl
创建操作目录, 下载安装脚本
1 2 3 4 5 cd ~ && mkdir -p fisco && cd fiscocurl -
搭建单群组4节点联盟链
1 bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545
(2)通过命令验证区块链节点进程运行状况;
1 ps -ef | grep -v grep | grep fisco-bcos
(3)通过命令验证区块链连接状态和共识状态日志输出。
1 2 3 4 tail -f nodes/127.0.0.1/node0/log/log* | grep connectedtail -f nodes/127.0.0.1/node0/log/log* | grep +++
搭建区块链系统管理平台并验证
基于给定服务器环境以及软件(地址“/root/tools”),搭建区块链控制台并开展相关运维工作,具体工作内容如下:
(1)配置控制台,管理相关证书并启动;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 # ubuntu系统安装java apt install -y default-jdk # 获取控制台并回到fisco目录 cd ~/fisco && curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh && bash download_console.sh # 最新版本控制台使用如下命令拷贝配置文件 cp -n console/conf/config-example.toml console/conf/config.toml #配置控制台证书 cp -r nodes/127.0.0.1/sdk/* console/conf/ #启动 cd ~/fisco/console && bash start.sh
(2)使用控制台安装HelloWorld智能合约;
(3)使用控制台完成HelloWorld智能合约的set与get操作;
1 2 3 4 5 6 # 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址 call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get # 调用set设置name call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS" # 调用get接口获取name变量,检查设置是否生效 call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get
(4)使用控制台查看区块链中区块高度。
区块链节点运维
基于已完成的区块链系统与管理平台搭建工作,开展区块链节点的加入与退出运维工作,具体内容如下:
(1)获取指定区块链节点输出等级为警告级,并设置日志存储阈值位100MB并验证;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 vi nodes/127.0.0.1/node3/config.ini [log] enable=true log_path=./log ; enable/disable the statistics function enable_statistic=false ; network statistics interval, unit is second, default is 60s stat_flush_interval=60 ; info debug trace level=warning ; MB max_log_file_size=100 flush=true bash nodes/127.0.0.1/stop_all.sh bash nodes/127.0.0.1/start_all.sh tail -f nodes/127.0.0.1/node3/log/log* | grep warning
(2)通过给定工具(地址/root/tools)完成新节点(node4)配置;
接下来的操作都在nodes/127.0.0.1目录下进行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 curl -#LO https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master-2.0/tools/gen_node_cert.sh # 生成新节点私钥证书 # -c指定机构证书及私钥所在路径 # -o输出到指定文件夹,其中node4/conf中会存在机构agency新签发的证书和私钥 # 成功会输出 All completed 提示 bash gen_node_cert.sh -c ../cert/agency -o node4 # 拷贝node0/config.ini、node0/start.sh和node0/stop.sh到node4目录 cp node0/config.ini node0/start.sh node0/stop.sh node4/ #修改node4/config.ini。对于[rpc]模块,修改channel_listen_port=20204和jsonrpc_listen_port=8549;对于[p2p]模块,修改listen_port=30304并在node.中增加自身节点信息 vim node4/config.ini [rpc] ;rpc listen ip listen_ip=127.0.0.1 ;channelserver listen port channel_listen_port=20204 ;jsonrpc listen port jsonrpc_listen_port=8549 [p2p] ;p2p listen ip listen_ip=0.0.0.0 ;p2p listen port listen_port=30304 ;nodes to connect node.0=127.0.0.1:30300 node.1=127.0.0.1:30301 node.2=127.0.0.1:30302 node.3=127.0.0.1:30303 node.4=127.0.0.1:30304 # 节点3拷贝节点1的node0/conf/group.1.genesis(内含群组节点初始列表)和node0/conf/group.1.ini到node4/conf目录下,不需改动; cp node0/conf/group.1.genesis node0/conf/group.1.ini node4/conf/ # 执行node4/start.sh启动节点 bash node4/start.sh # 确认node4与其他节点连接已经建立,加入网络操作完成 tail -f node4/log/log* | grep "connected count"
(3)启动新节点加入区块链系统并验证
1 2 3 4 5 6 7 8 9 10 11 12 # 获取node4的nodeid cat node4/conf/node.nodeid #使用addObserver将node4作为观察节点加入群组1 getObserverList addObserver 94ae60f93ef9a25a93666e0149b7b4cb0e044a61b7dcd1b00096f2bdb17d1c6853fc81a24e037c9d07803fcaf78f768de2ba56a4f729ef91baeadaa55a8ccd6e # 使用addSealer将node4作为共识节点加入群组1 addSealer 94ae60f93ef9a25a93666e0149b7b4cb0e044a61b7dcd1b00096f2bdb17d1c6853fc81a24e037c9d07803fcaf78f768de2ba56a4f729ef91baeadaa55a8ccd6 #验证 getSealerList
区块链网络运维
根据任务描述要求,完成网络配置与管理运维操作,具体内容如下:
(1)设置区块链系统黑名单,将node3设为黑名单禁止连接,并验证;
1 2 3 4 5 6 # 获取node3的nodeid cat node3/conf/node.nodeid # 编辑配置文件 vim nodes/127.0.0.1/node3/config.ini [certificate_blacklist] ; crl.0 should be nodeid, nodeid's length is 128 ;crl.0=e81caf5ce4f12838093cd2887136912b48a4a076361e30ef369359d2f27b14420a1017018bf532d622cda456c7a06a3bb8dac5002d7f98d687a8308d74334c6c
(2)设置系统中区块打包最大交易数量设为2000;
1 2 3 bash console/start.sh setSystemConfigByKey "tx_count_limit" "2000"
(3)验证区块最大打包交易数量情况
1 getSystemConfigByKey tx_count_limit
搭建webase-front
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-front.zip unzip webase-front.zip cd webase-frontvi /etc/profile export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64export PATH=$JAVA_HOME /bin:$PATH export CLASSPATH=.:$JAVA_HOME /lib/dt.jar:$JAVA_HOME /lib/tools.jarsource /etc/profile cp -r ~/fisco/nodes/127.0.0.1/sdk/* ~/fisco/webase-front/conf/bash ~/fisco/webase-front/start.sh
参考文献:
http://www.vianao.top/posts/faca.html
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/installation.html#fisco-bcos
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/webase/webase.html