FAB-SDK-GO 1.0 beta1 开发,本地环境搭建 @vscode-1.36 + go-12.5 @Fabric-1.4.1 + Kafka_2.11-1.0.1
一、环境构建
1、环境长备 -- Fabric工程配置初始化
(#)、MSP 密钥(证书)集生成 。 //("一集")
(#)、通道相关配置文件生成 。 //("两块两锚")
chenlx@chenlx-ubu:/media/SOFTWARE/Tmp4Dev/dev/fabric-sdk-go-1.0.0-beta1$
FIXTURES_PATH=`pwd`/test/fixtures/ FABRIC_VERSION_DIR=fabric/v1.4/ test/scripts/generate_channeltx.sh
注意,
通道命名,三处一致:generate_channeltx.sh、config_test.yaml 、SDK代码等;
通道名不能含非法字符:"_"、大写字母。
2、环境长备 -- Fabric运行素材准备。
(#)、Fabric 可执行文件编译
peer 、orderer编译生成。
链码编译生成。
(#)、Fabric Net脚本
作用:开发阶段,编写简单脚本,单机一键启动"4个peer+1个orderer+链码"伪分布式集群实例,替代容器集群。
(1)、peer、orderer 配置文件(*.yaml)中参数修改,及在vscode中验证启动并运行正常。
(2)、peer、orderer运行参数复制到 Shell脚本
节点参数脚本 : peer1_org2.env 、peer1_org1.env 、peer0_org2.env 、peer0_org1.env 、orderer1.env 、orderer0.env
一键启停脚本 : onekeyfab141.sh
链码参数脚本: per_peer_cc.env 一键启动链码 : onekeycc-sdk-b1.sh
(#)、Fabric 运行前各种路径核对。 //Fabric Net启动前,路径查对
节点参数脚本 或 launch.json中定义的宏路径 , 与msp集、通道相关配置文件实际位置。
3、动态准备(机器重启需重做)
(#)、环境变量
/devel/tmp4d/dev/fabric-1.4.1/build/_worksp-Fabric-141$
export PATH=$PWD/bin:$PATH # 将Fabric工具命令插入系统执行路径
export GOPATH=`pwd`:$GOPATH
export FABRIC_CFG_PATH=`pwd`/cfg/fabric
(#)、Kafka MQ 启动(另开2个终端)
chenlx@chenlx-ubu:/devel/tmp4d/tools/kafka_2.11-1.0.1$
bin/zookeeper-server-start.sh config/zookeeper.properties &
bin/kafka-server-start.sh config/server.properties &
二、 一键启动 Fabric Net
(#)、清除用户旧数据。
//kafka重置。 退出kafka、zookeeper,并删除三个目录, /tmp :kafka-logs zookeeper hsperfdata_chenlx //重置、重启kafka,必要时。
Fabric 清除用户数据。 _worksp-Fabric-141/cfg/fabric/var/
(#)、one key start
/devel/tmp4d/dev/fabric-1.4.1/build/_worksp-Fabric-141$
cfg/fabric/env/onekeyfab141.sh
/devel/tmp4d/dev/fabric-1.4.1/build/_worksp-Fabric-141$ //另开终端:节点参数的设置影响链码参数
cfg/fabric/env/onekeycc-sdk-b1.sh
注意,一键启动链码。
以节点为单位,启动所有版本的链码。 // 不是以组织为单位启动 ;一个组织内有n个节点,每链码有m个版本:( n * m )个链码进程。
链码命名+版本,两头一致:launch.json 或 onekeycc-sdk-b1.sh 、SDK代码。
三、sdk代码开发
(#)、路径核对。 //Sdk Demo测试前,路径查对
SDK Demo中使用的路径 ,及通过配置文件设定的路径,与 msp集、通道相关配置文件实际位置
(#)、TestOrgsEndToEnd() 调测 。
源代码修改 : test/integration/e2e/orgs/multiple_orgs_test.go //修改处标记"-chenlx"
配置调整 : test/fixtures/config/config_test.yaml //如,端口号调整、暂时关闭grpcs等