手动启动fabric例子marbles02
前提:已经将first-samples下载下来,并且fabric1.0也已经下载下来了。
1:进入first-samples目录下
执行cryptogen generate --config=./crypto-config.yaml ,给两个org生成证书
2:首先,我们需要设置一个环境变量来指定configtxgen应该查找configtx.yaml配置文件的位置:
执行: export FABRIC_CFG_PATH=$PWD
3:然后,我们将调用将创建订单源代码块的configtxgen工具
configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block
(在cli目录下面创建好创世区块genesis.block,并把这个区块保存到本地channel-artifacts文件夹中)
4:接下来,我们需要创建通道事务工件
export CHANNEL_NAME=mychannel
configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME
(生成Channel配置区块channel.tx)
5:接下来,我们将在正在构建的通道上定义Org1和Org2的锚点对等体。
configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP
configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP
(产生两个anchor peer 锚点对等体)
6:准备工作做好了,就可以启动网络了。因为需要用到couchdb
所以执行:CHANNEL_NAME=$CHANNEL_NAME TIMEOUT=1000 docker-compose -f docker-compose-cli.yaml -f docker-compose-couch.yaml up -d
7:进行手动环境的设置:peer0
# Environment variables for PEER0CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp CORE_PEER_ADDRESS=peer0.org1.example.com:7051 CORE_PEER_LOCALMSPID="Org1MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
8:现在可以进入cli容器,进行具体的操作了:
docker exec -it cli bash
9:export CHANNEL_NAME=mychannel
创建渠道:peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
10:将节点加入渠道中
默认的为:peer0org1. 执行: peer channel join -b mychannel.block
11:给节点加上链码
peer chaincode install -n marbles -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/marbles02
12:实例化链码:
peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -v 1.0 -c '{"Args":["init"]}' -P "OR ('Org0MSP.member','Org1MSP.member')"
13:进行链码的初始化:
1:peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["initMarble","marble1","blue","35","tom"]}'
2:peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["initMarble","marble2","red","50","tom"]}'
3:peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["initMarble","marble3","blue","70","tom"]}'
14:进行交易操作:
1:peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["transferMarble","marble2","jerry"]}'
2: peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n marbles -c '{"Args":["transferMarblesBasedOnColor","blue","jerry"]}'
16:待续...
手动启动fabric例子marbles02相关推荐
- Hyperledger Fabric 1.0 从零开始(七)——启动Fabric多节点集群
5:启动Fabric多节点集群 5.1.启动orderer节点服务 上述操作完成后,此时各节点的compose配置文件及证书验证目录都已经准备完成,可以开始尝试启动多机Fabric集群. 首先启动or ...
- angular使用bootstrap方法手动启动
要启动一个angular应用,可以使用ng-app指令,也可以调用bootstrap方法手动启动.先看一下angular的bootstrap方法. angular.bootstrap(element, ...
- Michael.W谈hyperledger Fabric第6期-手动搭建Fabric网络之创世块/通道的生成二
Michael.W谈hyperledger Fabric第6期-手动搭建Fabric网络之创世块/通道的生成二 2.3.4 对组织信息.兼容性信息和orderer相关信息的调用 3 创始块/通道文件的 ...
- 手动启动“远程过程调用”服务时,出现错误信息1058
有许多朋友在系统启动或者是运行一段时间后Remote Procedure Call (RPC)服务自动停止了,然后手动启动时无法启动,报的错误结果是:Could not start the Remot ...
- oracle手动启动服务
开始-控制面板->管理工具->服务->右键属性 oracle服务设定都是手动启动的,开机时只需要启动3个服务就好了: OracleOraDb11g_home1ClrAgent Ora ...
- 手动启动_电站首台机组首次手动开机启动一次性成功
12月15日15时45分,井冈山航电枢纽电站首台(1#)水轮发电机组首次手动开机一次性启动成功,这项工作的顺利完成是实现年底首台发电机组并网发电目标前取得的又一重要阶段性成果,成绩的取得凝聚了全体参建 ...
- [EGORefreshTableHeaderView]手动启动下拉更新的方法
原文地址:http://blog.csdn.net/ugg/article/details/7283661 Q:在EGORefreshTable中手动启动下拉更新的方法? A:EGORefreshTa ...
- Oracle 12.2 Flex ASM安装RU后ASM、GIMR等资源未启动, 手动启动提示CRS-2549“it is not a valid candidate as per the place
今天遇到的一个案例,一套ORACLE 12.2 FLEX CLUSTER, 在安装了RU(20180417)后节点2的CRS启动正常,但是其它如ASM.DB.GIMR 等资源都未启动, GI aler ...
- windows下oracle启动流程,笔者设置win7系统手动启动Oracle服务的还原步骤
相信大部分在使用电脑工作的时候,有时候会遇到win7系统手动启动Oracle服务的问题,最近有很多朋友来向我咨询win7系统手动启动Oracle服务的问题如何解决,针对这一问题,我给大家整理总结出了w ...
最新文章
- commander.js
- Bzoj3998: [TJOI2015]弦论
- k8s kafka集群 连接不上_图解 K8s 核心概念和术语
- VTK:Video之OggTheora
- json python无效语法_在python中打开无效的json文件
- linux如何卸载自带的openJdk,并且安装jdk1.8
- 田玉靖(1987-),女,北京卡达克数据技术中心软件业务本部中级工程师,主要研究方向为软件架构、编程模式。...
- 一款基于jQuery底部带缩略图的焦点图
- struts2(2012/2/25)
- mysql 怎么改属性_mysql怎么修改字段的属性
- rstudio server docker 部署_Docker环境运行Spring Cloud项目
- ZMQ中线程之间发送命令
- 您的账号与服务器断开连接,节奏大师您解决服务器断开连接的方法(帐号与服务器断开连接怎么办)...
- win10系统安装SQLServer2008r2最全教程
- SegmentFault 技术圈上线,快来找寻你的圈中好友
- java两两组合(不重复)
- Apache Calcite论文概要
- 法里昂第一大学一座大楼楼顶爆炸起火 致至少3人伤
- 王牌战士怎么用电脑玩 王牌战士模拟器玩法教程
- 《计算机网络》第七版第一章总结及部分课后习题答案
热门文章
- axios实战学习——调用城市天气api接口数据实现天气查询案例
- Python 备忘录
- NOIP2018 提高组游记
- 计算机培训提高就业率简报,四川省简阳市高级职业中学-教师信息化教学手段能力提升培训简报-新闻动态...
- 单片机c语言字符型数据类型,单片机C语言数据类型
- linux安装nginx1.14.0,Ubuntu 14.04 安装最新稳定版Nginx 1.6.0
- 【IT项目管理】第9章 习题
- 契约锁电子签发电力、石化、工程现场作业票:规范开票、自动归档
- c语言内存泄漏怎么测试,C语言内存泄漏检测方法
- 基于大数据的用户画像构建小百科全书