HyperledgerFabricjavachaincode编译部署(1.4V)
前提条件:
构建好了⼀个拥有四个peer ⼀个Order 的1.4版本的Fabric⽹络。证书通过Cryptogen⽣成,没有使⽤CA服务。开启TLS。
⽹络中的peer都加⼊了⼀个 名为mychannel的通道中。 123⼀.链码编写
java版本的链码参考官⽹有很多,我使⽤的是
https://github.com/hyperledger/fabric-samples/tree/release-1.4/chaincode/chaincode_example02/java 项⽬本⾝是个gradle⼯程,因为我使⽤maven⽐较多,所以修改了项⽬中的build.gradle⽂件:添加
apply plugin: 'java
apply plugin: 'maven'将项⽬转换成⼀个maven⼯程。
⼆ chaincode安装 实例化
chaincode安装可以有两种⽅式,1 直接通过peer install 安装 2 通过peer package 打包我这⾥使⽤的是第⼀种:
⾸先需要明⽩的是 链码的安装需要在所有的peer节点上执⾏peer install。 实例化只需要在⼀个节点上实例化。使⽤ docker exec -it 进⼊容器。执⾏
peer chaincode install -n loc -v 1.0 -l java -p /usr/local/workspace/assert/java/
loc是chaincode的名称 1.0是版本 -l后⾯跟的是编程语⾔ ,java。 -p后⾯的路径就是第⼀步的链码放在服务器上的路径。这种⽅式服务器会通过java env的容器来构建java⼯程。
切换peer 节点,分别在每个peer上执⾏⼀次peer chaincode install的操作。
选择⼀个peer节点执⾏实例化操作:
peer chaincode instantiate -o orderer.example.com:7050 --tls true --cafile /usr/local/workspace/firstnetwork/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n loc -l java -v 1.0 -c '{\"Args\":[\"init\这⾥指定了背书策略。
表⽰成功。
第⼆种peer package的⽅式⼤同⼩异,后续会补充。
这⾥开启了TLS 和指定了背书策略,会影响下⾯介绍的通过JAVA SDK 调⽤该链码的编写。