区块链部署之Hyperledger Composer智能合约部署

第一章、前言
1.目的
主旨为了指引读者基于fabric区块链网络,简单快速地部署Composer智能合约,生成相关的API,本文主要从环境要求、所依赖软件及Composer部署、维护等方面描述。
2.概述
- fabric区块链:单机部署的fabric区块链网络,规划1个orderer节点 + 4个peer节点,使用couchdb作为API中间数据库,orderer节点采用solo排序规则,批处理等待时间2秒,最大批处理数1个(避免同时处理一个ID多笔交易问题);
- 运行环境:使用Javascript运行环境:Node.js,Node.js使用Module模块去划分不同的功能,以简化应用的开发;
- 模块安装:使用Node.js的包管理器npm安装Module模块,本文部署的Composer智能合约需要用到的Module模块:generator-hyperledger-composer、yo、composer-cli、composer-playground、composer-rest-server;
- 部署命令:提供install.sh命令集合整个过程的部署操作,执行命令需要参数[安装名称],例如./install.sh mynetwork,其中参数为mynetwork即智能合约名称,组成要求:小写英文字母、阿拉伯数字、下划线(_)以及英文横杆(-);
- 部署文档下载地址:https://pan.baidu.com/s/1dzF5gTgpMnqbglQIimGN3A 密码:7tv3
第二章、环境准备
1.环境要求
1.1.操作系统
- 内核要求:3.10.0-693.17.1.el7.x86_64及以上
- 查看内核版本uname -r
- 推荐系统:CentOS 7及以上、Ubuntu16.04LTS及以上,本文使用CentOS 7系统
- 查看版本cat /etc/os-release
1.2.软件版本
- fabric版本:x86_64-1.0.5
- 必须已部署fabric网络:docker ps -a
- js版本:v8.9.1
- 查看版本命令:node -v
- 查看npm版本:npm -v
- composer版本:v0.16.4
- 查看cli版本,命令:composer -v
- 查看playground版本,命令:composer-playground –version
- 查看REST服务版本,命令:composer-rest-server -v
2.软件安装
2.1.Fabric部署
注:智能合约API需要中间数据库couchdb,因此fabric部署增加couchdb的启动:
2.1.1.单机部署
- 参考:http://www.badouchain.com/?p=198
- Fabric单机部署节点命令改为./bin/network_setup.sh up mychannel 3 couchdb;对应章节:5.1.部署节点;
- 安装的节点:
2.1.2.分布式部署
- 参考:http://www.badouchain.com/?p=300
- Fabric多机部署节点命令改为./bin/install.sh node1 couchdb;对应章节:6.2.分布式部署节点;
- Fabric多机部署节点命令改为./bin/install.sh node2 couchdb;对应章节:6.2.分布式部署节点;
- Fabric多机部署节点命令改为./bin/install.sh node3 couchdb;对应章节:6.2.分布式部署节点;
- Fabric多机部署节点命令改为./bin/install.sh node4 couchdb;对应章节:6.2.分布式部署节点;
2.2.Node.js安装
2.2.1.下载安装包
- 创建目录,命令:mkdir -p /opt/tools
- 进入目录:cd /opt/tools/
- 下载js,命令:wget https://nodejs.org/dist/v8.9.1/node-v8.9.1-linux-x64.tar.gz
- 解压,命令:tar xf node-v8.9.1-linux-x64.tar.gz
- 查看文件,命令:ls -l | grep node
- 将node移至/usr/local/目录且命名为node,命令:mv node-v8.9.1-linux-x64 /usr/local/node
- 查看/usr/local/目录,命令:ll /usr/local/
2.2.2.配置环境变量
- 修改配置文件,命令:vi /etc/profile
光标移至文件底部,添加如下信息:
#set for nodejs
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
保存并退出;
- 执行命令立即生效:source /etc/profile
2.2.3.查看版本
- 查看node版本,命令:node -v
- 查看npm版本,命令:npm -v
2.3.Composer安装
2.3.1.安装依赖
- 安装命令:yum install -y gcc gcc-c++
- 完成安装
2.3.2.安装cli
- 安装命令:npm install -g composer-cli@0.16.4 –unsafe-perm
- 安装过程
- 安装完成
2.3.3.安装yoeman生成工具
- 安装命令:npm install -g yo -g –unsafe-perm
- 安装过程:
- 安装完成
2.3.4.安装插件工具
- 安装命令:npm install -g generator-hyperledger-composer@0.16.4 –unsafe-perm
- 安装过程
- 安装完成
2.3.5.安装REST服务
- 安装命令:npm install -g composer-rest-server@0.16.4 –unsafe-perm
- 安装过程
- 安装完成
2.3.6.安装编辑器
- 安装命令:npm install -g composer-playground@0.16.4 –unsafe-perm
- 安装过程
- 安装完成
第三章、智能合约部署
1.composer部署
1.1.下载
- 百度网盘下载zip:
链接:https://pan.baidu.com/s/1dzF5gTgpMnqbglQIimGN3A 密码:7tv3
1.2.上传
- 进入fabric部署的文件夹,命令:cd /home/blockchain/fabric_1.0.5_solo
- 选择composer.zip上传,命令:rz
- 解压:unzip composer.zip
- 赋予权限,命令:chmod +x composer/bin/install.sh
1.3.部署
- 进入composer文件夹,命令:cd composer
- 执行命令:./bin/install.sh mynetwork
1.4.查看
- 命令:docker ps -a
2.启动composer
2.1.编辑器
- 指定端口8000启动,命令:composer-playground -p 8000 > composer-logs/composer-playground-log.log 2>&1 &
- 查看进程:ps -ef | grep playground
- 访问编辑器地址:http://192.168.1.158:8000/login
2.2.REST服务
- 指定管理员卡片:alcc@mynetwork和端口9000启动,命令:composer-rest-server -c alcc@mynetwork -n never -p 9000 > composer-logs/composer-rest-server.log 2>&1 &
- 查看进程:ps -ef | grep rest-server
- 访问API浏览地址:http://192.168.1.158:9000/explorer/
- API请求地址:http://192.168.1.158:9000/api/
3.停止composer
3.1.编辑器
- 查看进程,命令:ps -ef | grep playground
- 杀死进程,使用kill进程号,命令:kill -9 14955
- 确认进程,命令:ps -ef | grep playground
3.2.REST服务
- 查看进程,命令:ps -ef | grep rest-server
- 杀死进程,使用kill进程号,命令:kill -9 14990
- 确认进程,命令:ps -ef | grep rest-server