开发示例
本部分我们介绍匿名投票系统的实现和部署过程供参考,使用go进行实现,我们在智能合约中定义发布投票,进行投票,获取投票结果,关闭投票这些方法(详见链码文件);而后将代码进行打包,部署在链上。
首先导入依赖包,然后我们安找链码安装的顺序将投票链码进行安装。通过环境变量,指定链码安装的节点信息,而后将链码进行打包
EXPORT CORE_PEER_MSPCONFIGPATH=..
EXPORT CORE_PEER_LOCALMSPID=XX
EXPORT CORE_PEER_ADDRESS=xxx.xxx.xxx.xxx:7051
EXPORT CORE_PEER_TLS_ENABLED=true
EXPORT CORE_PEER_TLS_ROOTCERT_FILE=指出证书路径'
peer lifecycle chaincode package votesys.tar.gz --path [文件路径] --lang [链码语言] --label [链码标签]
打包成功后,我们将链码进行安装。
peer lifecycle chaincode install votesys.tar.gz --peerAddresses ${CORE_PEER_ADDRESS} --tlsRootCertFiles ${CORE_PEER_TLS_ROOTCERT_FILE}
此步骤成功将返回链码ID:格式为[lable]:xxxxxxx, 此处我们将ID信息进行保存
链码需要经过通道上其他组织的审议,所以此步骤我们需要通过配置信息连接其他组织节点进行approve操作。 连接到每个组织执行以下命令:
peer lifecycle chaincode approveformyorg -o [地址] --channelID [通道名称] --name [链码名称] --version [版本号] --package-id [链码ID] --sequence [序列号] --tls [tls证书路径] --signature-policy [签名策略]
当通道上组织对链码的审议通过后,我们可以使用以下语句查看审议结果:
peer lifecycle chaincode checkcommitreadiness --channelID [通道ID] --name [链码名称] --version [版本号] --sequence [序列号] --tls --cafile [order节点tls证书路径] --signature-policy [背书策略] --output json
超过半数组织同意后,我们可以安装链码
peer lifecycle chaincode commit -o [order节点IP] --channelID [通道ID] --name [链码名称] --version [版本号] --sequence [序列号] --tls --cafile [order节点tls证书] --peerAddresses [peer地址] --tlsRootCertFiles [tls证书路径] --signature-policy [签名策略]
安装成功后,即可调用链码。