July 26, 2018 · 区块链 本文字数: 364 阅读时长:1 min 全站字数:347.5k

mac下构建hyperledger Fabric智能合约开发环境

  1. Fabric chaincode简介
  2. Mac Hyperledger Fabric环境搭建
    1. 终端1——启动网络
    2. 终端2——构建和启动chaincode
    3. 终端3——使用chaincode
  3. 测试新的chaincode代码
  4. 参考资料

Fabric chaincode简介

chaincode是用Go或者Node.js写的程序,实现了预先规定的接口。chaincode运行在一个隔离
的容器中。chaincode通过提交交易来初始化和管理ledger的状态。

chaincode与智能合约定位类似,实现网络成达成共识的业务逻辑。

Mac Hyperledger Fabric环境搭建

本文是在18.06.0-ce版本Docker下搭建Fabric开发环境。

下载fabric-samples:

1
2
3
4
5
git clone -b master https://github.com/hyperledger/fabric-samples.git
cd fabric-samples
git checkout v1.2.0

curl -sSL https://goo.gl/6wtTN5 | bash -s 1.2.0

进入chaincode-docker-devmode目录:

1
cd fabric-samples/chaincode-docker-devmode

终端1——启动网络

1
docker-compose -f docker-compose-simple.yaml up

终端2——构建和启动chaincode

1
2
3
4
5
6
7
8
docker exec -it chaincode bash

root@d2629980e76b:/opt/gopath/src/chaincode#

cd sacc
go build

CORE_PEER_ADDRESS=peer:7052 CORE_CHAINCODE_ID_NAME=mycc:0 ./sacc

终端3——使用chaincode

1
2
3
4
5
6
7
8
9
docker exec -it cli bash

peer chaincode install -p chaincodedev/chaincode/sacc -n mycc -v 0

peer chaincode instantiate -n mycc -v 0 -c '{"Args":["a","10"]}' -C myc

peer chaincode invoke -n mycc -c '{"Args":["set", "a", "20"]}' -C myc

peer chaincode query -n mycc -c '{"Args":["query","a"]}' -C myc

测试新的chaincode代码

在chaincode-docker-devmode的chaincode子目录下创建新的代码。如果需要有外部依赖,则需要
使用govendor管理依赖:

1
2
3
govendor init
govendor add +external // Add all external package, or
govendor add github.com/external/pkg // Add specific external package

所有代码要在docker中编译和运行,不要在本地运行,否则会有各种问题。

参考资料

  1. 官方文档: http://hyperledger-fabric.readthedocs.io/en/release-1.1/chaincode4ade.html
  2. 加密解密:https://github.com/hyperledger/fabric/tree/master/examples/chaincode/go/enccc_example