官方文档https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/configuration.html
配置黑名单列表
基于防作恶考虑,FISCO BCOS允许节点将不受信任的节点加入到黑名单列表,并拒绝与这些黑名单节点建立连接,通过[certificate_blacklist]配置
1.查看节点id
2.查看连接,以node0为例。(8545是node0的rpc端口)
curl -X POST --data '{"jsonrpc":"2.0","method":"getPeers","params":[1],"id":1}' http://127.0.0.1:8545 |jq
可看到连接信息,node0连接了除自身之外的其它四个节点
配置黑名单(a拒绝b的链接)
例如节点0拒绝节点1的链接
则需要在节点0黑名单处添加节点1的ID,具体操作如下:
vim node0/config.ini
crl.idx: 黑名单节点的Node ID, 节点Node ID可通过node.nodeid文件获取; idx是黑名单节点的索引。
重启节点后生效
SDK白名单配置和黑名单相似
为了实现sdk到群组的访问控制,FISCO BCOS v2.6.0引入了群组级的SDK白名单访问控制机制,配置位于group.{group_id}.ini的[sdk_allowlist],默认关闭
FISCO BCOS v2.6.0默认关闭SDK到群组的白名单访问控制功能,即默认情况下sdk与所有群组均可通信,若要开启sdk与群组间基于白名单的访问控制功能,需要将 ;public_key.0 等配置项前面的分号去掉
动态配置系统参数
FISCO BCOS系统目前主要包括如下系统参数(未来会扩展其他系统参数):
控制台提供 setSystemConfigByKey 命令来修改这些系统参数,getSystemConfigByKey 命令可查看系统参数的当前值:
不建议随意修改tx_count_limit和tx_gas_limit,如下情况可修改这些参数:
机器网络或CPU等硬件性能有限:调小tx_count_limit,或降低业务压力;
业务逻辑太复杂,执行交易时gas不足:调大tx_gas_limit。
rpbft_epoch_sealer_num 和 rpbft_epoch_block_num 仅对rPBFT共识算法生效,为了保障共识性能,不建议频繁动态切换共识列表,即不建议 rpbft_epoch_block_num 配置值太小
# 设置一个区块可打包最大交易数为500
[group:1]> setSystemConfigByKey tx_count_limit 500
# 查询tx_count_limit
[group:1]> getSystemConfigByKey tx_count_limit
[500]
# 设置交易gas限制为400000000
[group:1]> setSystemConfigByKey tx_gas_limit 400000000
[group:1]> getSystemConfigByKey tx_gas_limit
[400000000]
# rPBFT共识算法下,设置一个共识周期选取参与共识的节点数目为4
[group:1]> setSystemConfigByKey rpbft_epoch_sealer_num 4
Note: rpbft_epoch_sealer_num only takes effect when rPBFT is used
{
"code":0,
"msg":"success"
}
# 查询rpbft_epoch_sealer_num
[group:1]> getSystemConfigByKey rpbft_epoch_sealer_num
Note: rpbft_epoch_sealer_num only takes effect when rPBFT is used
4
# rPBFT共识算法下,设置一个共识周期出块数目为10000
[group:1]> setSystemConfigByKey rpbft_epoch_block_num 10000
Note: rpbft_epoch_block_num only takes effect when rPBFT is used
{
"code":0,
"msg":"success"
}
# 查询rpbft_epoch_block_num
[group:1]> getSystemConfigByKey rpbft_epoch_block_num
Note: rpbft_epoch_block_num only takes effect when rPBFT is used
10000
# 获取区块执行超时时间
[group:1]> getSystemConfigByKey consensus_timeout
3
# 设置区块执行超时时间为5s
[group:1]> setSystemConfigByKey consensus_timeout 5
{
"code":0,
"msg":"success"
}