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

2018-06-21 11:06:02


第一章、前言

1.目的

主旨为了指引读者基于fabric区块链网络,简单快速地部署Composer智能合约,生成相关的API,本文主要从环境要求、所依赖软件及Composer部署、维护等方面描述。

 

2.概述

  1. fabric区块链:单机部署的fabric区块链网络,规划1个orderer节点 + 4个peer节点,使用couchdb作为API中间数据库,orderer节点采用solo排序规则,批处理等待时间2秒,最大批处理数1个(避免同时处理一个ID多笔交易问题);
  2. 运行环境:使用Javascript运行环境:Node.js,Node.js使用Module模块去划分不同的功能,以简化应用的开发;
  3. 模块安装:使用Node.js的包管理器npm安装Module模块,本文部署的Composer智能合约需要用到的Module模块:generator-hyperledger-composer、yo、composer-cli、composer-playground、composer-rest-server;
  4. 部署命令:提供install.sh命令集合整个过程的部署操作,执行命令需要参数[安装名称],例如./install.sh mynetwork,其中参数为mynetwork即智能合约名称,组成要求:小写英文字母、阿拉伯数字、下划线(_)以及英文横杆(-);
  5. 部署文档下载地址: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

 

在线咨询
QQ咨询
邮件咨询
微信咨询
扫一扫,微信聊