简介
- 由金融区块链联盟(深圳)主导研发的完全开源的联盟区块链平台
- 在2017年开源
- 是企业级的金融联盟链底层平台
- 支持以群组架构为体,并行计算和分布式存储为两翼,以及包含多项为使用提供的优化功能为引擎的一体两翼多引擎模型
- 主张将微信群组的使用模式的方便性引入
权限
Fisco Bcos通过角色进行权限控制

节点
节点ID
# 查看节点0id
cat ~/fisco/nodes/127.0.0.1/node0/conf/node.nodeid
区块
区块字段
- dbhash:Fisco Bcos的新增字段,分布式存储通过计算哈希值来记录一个区块中写入的数据。
- extraData:当前区块的其他信息
- gasLimit:当前区块允许的最大交易费
- gasUsed:当前区块累计使用的交易费
- hash:区块的哈希值
- logsBloom:区块日志的布隆过滤器
- number:区块高度
- parentHash:父区块的哈希值
- receiptsRoot:收据的根节点
- sealer:打包区块在共识节点中的索引
- sealerList:共识节点列表
- stateRoot:区块状态树的树根哈希
- timestamp:时间戳
- transactions:交易详细信息
- transactionRoot:交易前缀树根
账户
创建账户
利用脚本创建
非国密获取账户脚本下载
curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/tools/get_account.sh && chmod u+x get_account.sh && bash get_account.sh -h
国密账户脚本下载
curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/tools/get_gm_account.sh && chmod u+x get_gm_account.sh && bash get_gm_account.sh -h
# 国密版本需要配合tassl使用,下载tassl,下载后解压在~/.fisco/tassl/目录下
curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/tools/tassl-1.0.2/tassl.tar.gz
创建账户
创建成功后,账户公私钥会保存在当前目录的accounts/目录下
# 默认创建私钥存储格式为pem的
bash get_account.sh
# 创建私钥存储格式为p12的
bash get_account.sh -p
其他创建方式
# python-sdk中的脚本文件包含创建账户的方法,账户公私钥的存储路径在client_config.py中配置 ./console.sh newaccount <account_name> <account_password> # 控制台中同样包含创建用户的方法,账户的公私钥存储在console目录下的accounts目录中 newaccount <account_name> <account_password>
使用账户
计算地址
# 计算私钥以pem格式存储的账户的地址 bash get_account.sh -k <private_key_file_path> # 计算私钥以pkcs12格式存储的账户的地址 bash get_account.sh -P <private_key_file_path>
权限
注:如果没有为链设置链管理员,即PermissionManager,则所有用户都拥有全部权限
设置链管理员
# 设置管理员权限 ./console2.py grantPermissionManager 0xcbdd935fbcaa76db9610d64b38e1fc0fdd3974f9
操作执行成功,但是返回-51004,并且管理员没有设置成功
错误原因猜测:Fisco提供的控制台中没有包含赋予管理员权限的方法,可能时Fisco已经弃用了这个方法,并且用委员会成员来代替管理者角色
解决
通过控制台设置账户为委员会成员
./grantCommitteeMember <account_address>
节点
新增节点
cd fisco/nodes/127.0.0.1/ # 获取建链脚本 curl -#LO https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master-2.0/tools/gen_node_cert.sh # 生成节点证书 bash gen_node_cert.sh -c ../cert/agency -o node4 # 拷贝配置文件 cp node0/config.ini node0/start.sh node0/stop.sh node4/ # 编辑配置文件 vim node4/config.ini ···rpc模块··· ···1.修改channel_listen_port=20204··· ···2.修改jsonrpc_listen_port=8549··· ···p2p模块··· ···1.修改listen_port=30304··· ···2.新增node.4=127.0.0.1:30304··· # 配置群组初始信息,Fisco是群组架构的,包括数据库配置等信息在群组配置信息中 cp node0/conf/group.1.genesis node0/conf/group.1.ini node4/conf/ # 启动节点 bash node4/start.sh # 确认节点与其他节点建立了链接 tail -f node4/log/log* | grep "connected count"
节点加入群组
# 获取节点ID cat fisco/nodes/127.0.0.1/node4/conf/node/nodeid # 启动节点 ./fisco/nodes/127.0.0.1/node4/start.sh # 添加为共识节点 ./console2 addSealer <nodeid>
节点退出
# 清空节点连接 vim node5/config.ini # 重启node5,使配置修改生效 ./node5/stop.sh ./node5/start.sh # 编辑与节点5建立连接的节点,删除连接 vim node6/config.ini # 重启节点6,使配置生效 ./node6/stop.sh ./node6/start.sh # 登录控制台 ./start.sh 1 -p12 accounts/0x6e703d811c787d0aee7ea91f7e51eecfb6e8cefa.p12 # 将节点移除群组 removeNode 69250bb01876e845dea44fdaecfe71bc8606f5a1e6970c6c8c725868cbd32863fe416be1e8134ffadc4517d95373b302269d7435ca2b9e0f93845583f6dae863 # 查看群组节点列表,是否移除成功 getGroupPeers
数据库
更换FISCO_BCOS底层数据库为MYSQL
安装MySql
https://www.cnblogs.com/losHill/articles/17286723.html
创建数据库
create database xxxx
配置区块链节点
https://blog.csdn.net/qq_52757943/article/details/118653755
更改默认配置
如节点0的群组1的配置文件位置是fisco/nodes/127.0.0.1/node0/group.1.ini
用通配符统一修改
# 修改存储类型为mysql sed -i 's/type=rocksdb/type=mysql/g' ~/fisco/nodes/127.0.0.1/node*/conf/group.1.ini # 配置数据库用户名和密码(本教程中,所有节点均以root的用户名连接同一个数据库,root用户密码为123456) sed -i 's/db_username=/db_username=root/g' ~/fisco/nodes/127.0.0.1/node*/conf/group.1.ini sed -i 's/db_passwd=/db_passwd=123456/g' ~/fisco/nodes/127.0.0.1/node*/conf/group.1.ini
sed -i 's/db_name=/db_name=xxx/g' ~/fisco/nodes/127.0.0.1/node*/conf/group.1.ini
智能合约
编译
编译缺少的abi
使用控制台编译abi
下载控制台脚本
curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh && bash download_console.sh
进入控制台脚本文件夹
cd console
运行编译脚本
bash sol2java.sh com.qq.test <contract_path> # com.qq.test为solidity合约编译的Java文件所处的包名
获取编译好的abi文件
路径:./contracts/sdk/abi/
其他类似文件也在本路径
部署浏览器
【FISCO BCOS】十九、区块链浏览器部署部署成功后,后续Ubuntu重启后再次打开浏览器显示服务器启动错误 server start fail
原因一:JAVA_HOME的配置问题即使可以在终端中获取到JAVA_HOME的值,但是fisco的浏览器可能还是读取JAVA_HOME不成功
解决:手动配置在重新安装浏览器
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH # 重新安装时不需要再次下载解压浏览器,重新安装数据库即可 python3 deploy.py installAll

浙公网安备 33010602011771号