1. 基础软件安装 Prerequisites

Git

参考此官方文档操作安装

Docker

执行命令即可curl –sSL [https://get.daocloud.io/docker](https://get.daocloud.io/docker) | sh reboot

RocksDB

推荐安装v4.1或v4.6.1版本,在rocksdb目录下执行:

  1. make install-shared
  2. ldconfig

Golang

参考此官方文档操作安装并注意设置GOROOT(/usr/local/go)和GOPATH 可以使用sudo ln -s /usr/local/go/bin/go /usr/bin/go建立软链接

2. Fabric 安装 Install

依赖 hyperledger/fabric-baseimage:X86_64-0.0.11 镜像

  1. mkdir -p fabric/src/github.com/hyperledger
  2. git clone http://github.com/hyperledger/fabric.git
  3. cd ~/farbric/src
  4. cp a ./github.com/hyperledger/fabric/vendor/* ./
  5. cd github.com/hyperledger/fabric
  6. make memebersrvc
  7. make peer

3. 快速启动 Quick Setup

执行membersrvc命令启动CA节点,会使用默认配置文件membersrvc.yaml

开发模式启动执行peer node start --peer-chaincodedev

不需要改动core.yaml文件并重新编译,可以执行CORE_SECURITY_ENABLED=true CORE_SECURITY_PRIVACY=true peer node start --peer-chaincodedev启动带安全隐私功能的开发模式

4. 运行Chaincode Running

本地编译发布(开发推荐):

在chaincode目录下运行go build

执行CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:7051 ./chaincode_example

本方法运行在dev模式下,意味着chaincode不会启动单独的docker容器而直接跑在peer容器内

通过Cli发布:

首先获得授权

peer network login <username>

发布代码

peer chaincode deploy -n mycc -c '{Args": ["init", "a","100", "b", "200"]}'

CORE_SECURITY_ENABLED=true CORE_SECURITY_PRIVACY=true peer chaincode deploy -u jim -n mycc -c '{"Args": ["init", "a","100", "b", "200"]}'

调用代码

peer chaincode invoke -l golang -n mycc -c '{Args": ["invoke", "a", "b", "10"]}'

通过Restful API发布

首先获得授权

  1. POST localhost:7050/registrar
  2. {
  3. "enrollId": "jim",
  4. "enrollSecret": "6avZQLwcUe9b"
  5. }

发布代码

  1. POST <host:port>/chaincode
  2. {
  3. "jsonrpc": "2.0",
  4. "method": "deploy",
  5. "params": {
  6. "type": 1,
  7. "chaincodeID":{
  8. "name": "mycc"
  9. },
  10. "ctorMsg": {
  11. "args":["init", "a", "100", "b", "200"]
  12. },
  13. "secureContext": "jim"
  14. },
  15. "id": 1
  16. }

调用代码

  1. POST <host:port>/chaincode
  2. {
  3. "jsonrpc": "2.0",
  4. "method": "invoke",
  5. "params": {
  6. "type": 1,
  7. "chaincodeID":{
  8. "name":"mycc"
  9. },
  10. "ctorMsg": {
  11. "args":["invoke", "a", "b", "10"]
  12. },
  13. "secureContext": "jim"
  14. },
  15. "id": 3
  16. }

注意:可以在membersrvc.yaml 文件下eca.users章节找到可以被CA认可的用户名及密码

5. 参考文档 Related

  1. Fabric开发模式环境搭建
  2. RocksDB安装问题简单介绍
  3. Ubuntu12.04 gcc-4.6 升级到gcc-4.7的方法
  4. Makefile编译警告
  5. Chaincode开发环境配置