在 hyperledger/fabric 环境对Validating Peers布署 chaincode (智能合约)
作者:陳兆麟
Email:chenlin2@ms9.hinet.net
在开发 hyperledger App 时为了要 access 分类帐的 block 必须使用 chaincode, 也就是 App上层传来的 data 将透过 chaincode 传至 block, 所以user 在写 chaincode时,先要定义 App上层 (for NODEJS) 所传来的参数及传回值; user 在写的chaincode 时是根据系统所提供 interface 将 data读出 or 写入block; 单独测试 chaincode 时可使用 docker 建立多个 container 模拟blockchain network Validating Peer, 再使用 postman 藉由 REST API 将 chaincode 部署在VP 进行测试; 测试 ok 后,最后将 chaincode 嵌入NODEJS App 再执行系统测试。以下范例是将 IBM 所提供 learn-chaincode demo 在 local network进行测试。
开发环境: Win7 (64 bit, RAM >=8G) , vagrant , blockchain, docker,golang
1. win7 安装 cygwin
(https://cygwin.com/install.html)
将安装之执行文件目录 (C:\cygwin64\bin) 设定在控制台系统 path 变量
win7 安装 virtualbox (VirtualBox-5.1.6-110634-Win.exe)
win7 安装 git (https://git-scm.com/downloads)
2.安装 fabric (0.6 release)
进入Win7 command shell:
$
mkdir -p d:\GoProjects\src\github.com\hyperledger
$
cd d:\GoProjects\src\github.com\hyperledger
$
git clone -b v0.6 http://gerrit.hyperledger.org/r/fabric (0.6 release)
$
cd d:\GoProjects\src\github.com\hyperledger\fabric\devenv
修正 Vagrantfile:
(D:\GoProjects\src\github.com\hyperledger\fabric\devenv)
新增 :
config.vm.network “forwarded_port”, guest: 22, host: 22
config.vm.network “forwarded_port”, guest: 3000, host: 3000
修正 :
vb.name = “hyperledger” (hyperledger 为 virtualbox 虚拟机器名称)
$vagrant up (第一次在 virtual box 产生虚拟机器 hyperledger需要一段时间)