~、本地化开发 Fabric 应用 -- kafka 共识模式 Ubuntu 16.04 @ Z470本
// 部署时用容器云,开发阶段直接本地调测,有助于理解代码、工程配置,尤其是上手那会。
一、kafka 准备。
打开两个终端,启动kafka内置的zk服务 + kafka消息队列。
chenlx@chenlx-ubu:/devel/tools/kafka_2.11-1.0.1$
bin/zookeeper-server-start.sh config/zookeeper.properties &
chenlx@chenlx-ubu:/devel/tools/kafka_2.11-1.0.1$
bin/kafka-server-start.sh config/server.properties &
bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --topic ka1 --zookeeper localhost:2181# 不必提前建立与通道同名的主题'ka1'
二、调试 Fabric 。
(一)~(三) : 一次性工程设置部署操作
// 若未启动 orderer、peer,则先启动这两个服务(集群),再接着往下进入链码开发流程 。
(四)、编译启动链码进程 。
环境变量设置。
cd /devel/fabric-1.0.0/build/_worksp-Fabric1-0-0
export PATH=$PWD/bin:$PATH # 将Fabric工具命令插入系统执行路径
export GOPATH=$PWD:$GOPATH
1、编译。
cd /devel/fabric-1.0.0/examples/chaincode/go/chaincode_example02/ #进入链码目录
go build
cd - #返回工程配置目录下
2、启动 launch.json 中配的链码程序,如 "cc chaincode_example02 " 。
(五)、安装调用链码。 // 自动测试脚本 : chaincodetest.sh
chenlx@chenlx-ubu:/devel/fabric-1.0.0/build/_worksp-Fabric1-0-0/cfg/fabric$
peer chaincode install -n mycc -v 0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 # '-p' 指到目录即可
peer chaincode instantiate -n mycc -v 0 -c '{"Args":["init","a","100","b","200"]}' -C ka1
peer chaincode invoke -n mycc -c '{"Args":["invoke","a","b","3"]}' -C ka1 // 可指定排序节点,加入: -o 127.0.0.1:17050
peer chaincode query -n mycc -c '{"Args":["query","a"]}' -C ka1
//----多个链码程序同时开发调试,一样先编译并启动其他链码程序,再输入操作命令 。
peer chaincode install -n myccka -v 0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -o 127.0.0.1:17050
peer chaincode instantiate -n myccka -v 0 -c '{"Args":["init","a","100","b","200"]}' -C ka1 -o 127.0.0.1:17050 -P "OR('Org1MSP.member','Org2MSP.member')" # '-P'指定背书策略
peer chaincode invoke -n myccka -c '{"Args":["invoke","a","b","3"]}' -C ka1
peer chaincode query -n myccka -c '{"Args":["query","a"]}' -C ka1