Fabric1.4.0 常见操作
Fabric1.4.0 常见操作
启动第一个网络
基础环境
配置好go、docker-ce、docker-compose环境,go需要1.10以上(最好用最新的),基础环境的安装参考:
https://www.cnblogs.com/willaty/p/9391547.html
切换版本、初始化
- clone下fabric的最新代码后,git checkout v1.4.0到1.4.0这个稳定版本。
- 编译基础工具,需要保证每个工具都编译完成
cd $GOPATH/src/github.com/hyperledger/fabric
make configtxgen
# 如果出错:'ltdl.h' file not found
# sudo apt install libtool libltdl-dev
make cryptogen
make configtxlator
- 将编译出来的三个工具加到环境变量中,可用ln -s加到/usr/local/bin
启动测试网络
clone下fabric-sample,切换到v1.4.0,进入first-network
./byfn.sh generate # 生成证书,注意保证三个基础工具可以找到
./byfn.sh up # 启动网络
新增通道
在configtx.yaml文件中,新增通道定义,主要包括哪些组织:
之后,生成channel2.tx、锚节点更新的交易,命令参考byfn中generate相关步骤。
之后peer channel create、peer join通道即可。
新增组织
参考官方流程:https://hyperledger-fabric.readthedocs.io/en/release-1.4/channel_update_tutorial.html
主要流程如下:
- 获取通道最新配置
- 生成新组织密钥
- 用工具添加到配置文件中
- 用工具获取新配置文件与旧文件增量
- 将此增量文件给相关人员签名,之后由某个节点更新
升级链码
进到cli中,配置好对应peer的环境变量信息(参考script.sh中的setGlobal函数);
直接安装升级后的链码,版本此时应该提高,之后运行upgrade(和实例化instantiate相似,只是改成upgrade而已);
之后每个节点install即可。
注意:fabric暂时不提供停止旧链码的操作,请手动删除已经运行的就链码容器,之后在peer的数据中,删除chaincode下的对应文件。
跨链调用
fabric跨链调用,参考文章最后几句话:https://hyperledger-fabric.readthedocs.io/en/release-1.4/developapps/chaincodenamespace.html
跨链调用,主要调用invokeChaincode函数,对于跨通道调用,只能查询,不能修改;如果需要修改,只能同一通道。