9、安装链码

136 阅读2分钟

简介

应用程序和区块链账本通过链码(chaincode)进行交互,因此我们要在每个执行交易的节点上安装链码,然后在通道上实例化链码(初始化)。

首先,在 Org1 的 peer0 节点上安装 Go、Node.js 或者 Java 链码。这些命令把指定的源码放在节点的文件系统里

每个链码的名称和版本号规定你只能安装一个版本的源码。源码存在于 Peer 节点文件系统上的链码名称和版本号的上下文里,它是与语言无关的。同样,被实例化的链码容器将反映出是什么编程语言的链码被安装在 Peer 节点上。

安装不同语言的链码

安装基于Golang语言开发的链码

peer chaincode install -n mycc -v 1.0 -p github.com/chaincode/chaincode_example02/go/

安装基于Node.js语言开发的链码

peer chaincode install -n mycc -v 1.0 -l node -p /opt/gopath/src/github.com/chaincode/chaincode_example02/node/

安装基于Java语言开发的链码

peer chaincode install -n mycc -v 1.0 -l java -p /opt/gopath/src/github.com/chaincode/chaincode_example02/java/

在两个组织的锚节点上安装链码

peer0.org1.example.com

首先在 peer0.org1.example.com 上安装基于Go语言开发的链码

  • 将操作对象转换成peer0.org1
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp

CORE_PEER_ADDRESS=peer0.org1.example.com:7051

CORE_PEER_LOCALMSPID="Org1MSP"
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
  • 在 peer0.org1.exmaple.com 上安装链码
peer chaincode install -n mycc -v 1.0 -p github.com/chaincode/chaincode_example02/go/
  • -n 指定链码的名称

  • -v 指定链码版本号

  • -l 指定链码的语言

  • -p 指定链码所在的路径

  • 安装结果

当我们在通道上实例化链码之后,背书策略被设定为需要 Org1 和 Org2 的节点都背书。所以,我们需要在 Org2 的节点上也安装链码。

peer0.org2.example.com

  • 切换到 peer0.org2.example.com 身份
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp

CORE_PEER_ADDRESS=peer0.org2.example.com:9051

CORE_PEER_LOCALMSPID="Org2MSP"
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
  • 在 peer0.org1.exmaple.com 上安装链码
peer chaincode install -n mycc -v 1.0 -p github.com/chaincode/chaincode_example02/go/

我们已经在两个组织的锚节点上安装了链码,这两个锚节点都是背书节点,所以可以模拟执行客户端发来的请求,并根据模拟执行结果对交易背书,如果某笔交易获得了两个锚节点的背书(满足背书策略),那么这笔交易就被判定为有效,接下来会被打包进区块最终上链。