FISCO-BCOS使用篇

文章 , 技术分享
3653 0

FISCO-BCOS精华篇

(本文不含基础部署教程)

节点部署指令的区别和含义
bash build_chain.sh -f ipconf -p 30300,20200,8545

bash build_chain.sh  -l 127.0.0.1:4 -p 30300,20200,8545

两个命令一个用配置文件启动一个用 -l启动,-f使用配置文件启动可以定制更多内容

bash build_chain.sh -d -l 127.0.0.1:4 -p 30300,20200,8545

加上-d,在使用bash start_all.sh 的时候就是直接使用docker启动

bash start_all.sh的使用参数示例

![搭建4节点区块链命令)

![使用-f使用更详细的参数进行搭建节点)

HelloWorld合约进行操作测试

对holloworld合约进行测试

查看交易回执,解释每个字段含义;

- `transactionHash`:交易哈希,标识此次交易的唯一标识符。
- `transactionIndex`:交易在区块中的索引位置。
- `root`:默克尔树的根哈希值。
- `blockNumber`:交易所在的区块号。
- `blockHash`:区块的哈希值。
- `from`:交易发送者的地址。
- `to`:交易接收者的地址,如果是合约部署交易,则为合约地址。
- `gasUsed`:交易使用的燃料量(Gas)。
- `remainGas`:剩余的燃料量(仅适用于查询交易)。
- `contractAddress`:合约部署后的合约地址。
- `logs`:交易产生的事件日志。
- `logsBloom`:Bloom 过滤器,用于快速匹配事件日志。
- `status`:交易执行状态,0 表示失败,1 表示成功。
- `statusMsg`:状态消息,提供有关状态的更多信息。
- `input`:交易的输入数据。
- `output`:交易的输出数据。
- `txProof`:交易的证明(可选)。
- `receiptProof`:交易回执的证明(可选)。
- `message`:附加消息。

请注意,有些字段的值可能会为 null 或空字符串,这取决于交易的具体情况。例如,logs 列表中的事件日志在此处为空。
修改委员会

使用console修改委员会)

切换其他用户身份命令:
./start.sh 1 -pem accounts/0x123123123123123123.pem
控制台提供账户生成脚本get_account.sh(脚本用法请参考账户管理文 档,生成的的账户文件在accounts目录下,控制台加载的账户文件必须放置在该目录下。 控制台启动方式有如下几种:

./start.sh 
./start.sh groupID
./start.sh groupID -pem pemName
./start.sh groupID -p12 p12Name
默认启动

使用控制台配置文件指定的默认群组号启动。

./start.sh

注意: 控制台启动未指定私钥账户时,会尝试从accounts目录下加载一个可用的私钥账户用于发送交易,加载失败则会创建一个新的PEM格式的账户文件,将其保存在accounts目录下。

指定群组号启动

使用命令行指定的群组号启动。

./start.sh 2
  • 注意:指定的群组在控制台配置文件中需要配置bean。
使用PEM格式私钥文件启动
  • 使用指定的pem文件的账户启动,输入参数:群组号、-pem、pem文件路径
./start.sh 1 -pem accounts/0xebb824a1122e587b17701ed2e512d8638dfb9c88.pem
使用PKCS12格式私钥文件启动

使用指定的p12文件的账户,需要输入密码,输入参数:群组号、-p12、p12文件路径

./start.sh 1 -p12 accounts/0x5ef4df1b156bc9f077ee992a283c2dbb0bf045c0.p12
Enter Export Password:

注意: 控制台启动时加载p12文件出现下面报错:

exception unwrapping private key - java.security.InvalidKeyException: Illegal key size

可能是Java版本的原因,参考解决方案:https://stackoverflow.com/questions/3862800/invalidkeyexception-illegal-key-size

查看交易详情)

查看找个区块id的交易信息)

问题一:构建单群组网络节点的命令是什么?
bash build_chain.sh –l 127.0.0.1:4 –p 30300,20200,8545 多群组可以用-f的指令(在上面有解释)
问题二:查看节点node2共识的命令是什么?
tail –f nodes/127.0.0.1/node2/log/log\* | grep +++

组网描述,使用-f参数搭建节点)

生成组网配置文件信息)

扩容群组的话是要把新群组的文件group.*.genesisgroup.*.ini两个文件都分别复制给每个节点里并修改group.*.genesis里面的群组id

扩容节点,扩容节点需要为节点签发证书

bash gen_node_cert.sh -c ../cert/agency -o node4
-c是证书路径 (用于给节点签发证书的文件)
cp node0/config.ini node0/start.sh node0/stop.sh node4/
复制启动文件和配置文件到里面,并修改配置文件中的4个参数
控制台的使用

共识节点、观察节点、游离节点的转换)

共识节点:完成网络准入并加入群组的节点,参与共识的节点,拥有群组的所有数据;
观察节点:完成网络准入并加入群组的节点,不参与共识,但能实时同步链上数据的节点;
游离节点:完成网络准入但没有加入群组的节点。游离节点尚未通过群组准入,不参与共识和同步。

查看共识节点列表:getSealerList
查看观察者节点列表:getObserverList
查看所有的p2p节点列表:getNodeIDList

查看运行日志常用命令

tail -f node4/log/log* | grep "connected count" #查看node4节点连接数量
tail -f node4/log/log* | grep "+++" #查看节点共识
tail -f node4/log/log* | grep "fisco-bcos" #查看节点运行状态
最后更新 2023-08-12
评论 ( 0 )
OωO
隐私评论