执行以下指令均要以管理员身份运行,请首先执行su root命令
cd /home/gopath/src/github.com/hyperledger/fabric-samples/first-network
./byfn.sh -m generate -i 1.0.0
注意!!!! 一定要记得把gopath中的bin目录添加到环境变量中,否则可能无法调用刚才编译好的configtxgen和cryptogen工具 可以通过 export PATH=$PATH:/home/gopath/bin 来临时添加或者使用vim ~/.bash_profile修改PATH 一行,之后使用source ~/.bash_profile生效。
./byfn.sh -m up -i 1.0.0
./byfn.sh -m down -i 1.0.0
查看crypto-config配置 peer与order分离 peer又按照组织或主体分离 每个组织生成ca(存储证书和私钥),msp(存储管理员证书和中间证书),peers(存储每一个peer相关的证书),users(存储每一个用户的证书) users的内容,最少包含两个用户——你创建的用户和admin用户 peers的内容,组织1中存储的peer0和peer1
查看channel-artifacts配置 genesis.block:整个网络的创世区块 channel.tx:创建的通道的配置 Org1MSPanchors.tx和Org2MSPanchors.tx:两个主体的锚节点的配置
启动网络,分析日志 ./byfn.sh -m up -i 1.0.0
启动网络
指定通道名称和一些变量,通道创建完成
4个peer加入通道
组织中的锚节点在通道update成功
链码安装到peer
链码实例化
在peer0进行查询操作,成功,查询结果为100
进行修改操作,返回200,修改成功
再次查询结果为90
查看docker容器,3个dev开头的就是链码,4个peer开头的就是每一个peer 3个链码会生成3个image
查看脚本 找到脚本对应位置的链码
查看go的代码 实现了Init和Invoke接口,就代表是一个fabric智能合约 Init:首先获取参数,不为4就报错,然后把参数存入数据库中 Invoke:设置了3个方法(invoke,delete,query) invoke:转账操作 delete:从数据库删除 query:查询操作,以JSON形式返回
查看脚本 a初始有100元,b初始有200元 查询a有多少钱,所以打印了100 a给b转10元
总结 根据下面配置运行一个网络 网络执行了一个链码,实现了初始化、查询、删除、转账等操作 按照下面的脚本执行,首先进行初始化,然后查询a账户余额,然后a给b转账10元,然后再执行一个查询a账户余额的操作
关闭网络,清除image和容器