超级账本启动网络

昵称5个字 · · 306 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

1.在crypto-config.yaml文件中配置好组织信息,使用./cryptogen generate --config=./crypto-config.yaml命令生成所需要的证书,包含ca证书,admin证书及通信证书等等。
2.在configtx.yaml文件中配置好联盟信息,哪些组织能访问哪些链就在这里配置。使用./configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./config/genesis.block命令生成系统链创始区块。-profle参数指定了一个联盟配置,-outputBlock参数指定了生成的创始区块存放目录。如果出现FABRIC_CFG_PATH没设置的问题,设置一下就行了,使用export FABRIC_CFG_PATH=xxxxxx命令指定一下configtx.yaml的路径即可。执行成功后,会在config目录下生成genesis.block文件。
3.使用./configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./config/mychannel.tx -channelID mychannel命令通过configtx.yaml中的通道交易配置生成通道交易,创建通道。命令执行成功后,会在config目录下生成mychannel.tx文件。
4.生成Peer组织中的锚节点交易。这一步不是必须的操作,会自动执行,为了说明流程,还是手动执行一下。使用./configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./config/Org1MSPanchors.tx -channelID mychannel -asOrg Org1MSP命令生成交易。-profile和-outputAnchorPeersUpdate参数不用说了,和前面两个命令的参数类似。-asOrg是指定针对哪个组织生成锚节点交易,这里针对Org1。如果是针对Org2,那么需要把命令中Org1都替换成Org2,上面的命令中需要替换两处。命令成功后,config目录中会生成指定的锚节点配置,Org1MSPanchors.tx。Org2同理。

  1. 进入peer节点,创建Channel。使用peer channel create -o orderer.imocc.com:7050 -c mychannel -f /etc/hyperledger/config/mychannel.tx创建。-o表示和哪个orderer通信,-c表示channel的名字,-f表示使用哪一个创世交易。

6.加入通道。使用命令peer channel join -b mychannel.block

7.设置主机节点。使用命令peer channel update -o orderer.imocc.com:7050 -c mychannel -f /etc/hyperledger/config/Org1MSPanchors.tx

8.链码安装。使用命令peer chaincode install -n badexample -v 1.0.0 -l golang -p github.com/chaincode/badexample

9.链码实例化。使用命令peer chaincode instantiate -o orderer.imooc.com:7050 -C mychannel -n badexample -l golang -v 1.0.0 -c '{"Args":["init"]}'。其中-o表示和哪个orderer通信,-C表示通道名字,-n表示链码名字,-l表示链码编写的语言,-v表示版本号,-c表示初始化参数。

10.链码查询。使用命令peer chaincode query -C mychannel -n badexample -c '{"Args":[]}'

11.命令行模式链码背书策略(不稳定,暂时不要用),即指定多少个peer确认后才有效
背书策略有两个操作,与和或(AND, OR)。身份有MSP.ROLE,ROLE有admin和member。
OR('org0MSP.member', 'org1MSP.admin')表示一笔交易有成员或者管理员的签名就可以发往orderer进行排序了。与和或操作可以嵌套
peer chaincode instantiate -o orderer.imooc.com:7050 -C mychannel -n badexample -l golang -v 1.0.0 -c '{"Args":["init"]}' -P "OR('org0MSP.member', 'org1MSP.admin')"

12.链码交互

peer chaincode invoke -C channelname -n chaincodename -c '{"Args": ["functionName", "functionArg1", "functionArg2"]}'

13.链码升级

peer chaincode install -n chaincodename -v 1.0.1 -l golang -p chaincodePath
peer chaincode upgrade -C channelname -n chaincodename -v 1.0.1 -P "OR('org0MSP.member')" -p chaincodePath -c '{"Args":["init"]}'

14.链码调试
开启链码调试命令:

peer node start --peer-chaincodedev=true
OR
CORE_CHAINCODE_MODE=dev

开启后,可以使用go run命令执行链码

然后按照之前的方法,安装,实例化链码,运行链码的函数。如果修改链码,需要查看结果,不需要重新部署链码,直接退出go run的程序,重新go run一下就行了


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:昵称5个字

查看原文:超级账本启动网络

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

306 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传