1. 程式人生 > >Hyperledger Composer之開發部署業務網路(方式一)

Hyperledger Composer之開發部署業務網路(方式一)

由於官方文件跟新很快,本文部分步驟已經過時,最新部署方式請移步這裡
部署到單組織的區塊鏈上
部署到多組織的區塊鏈上

先確保滿足下列環境要求

Operating Systems: Ubuntu Linux 14.04 / 16.04 LTS (both 64-bit), or Mac OS 10.12
Docker Engine: Version 17.03 or higher
Docker-Compose: Version 1.8 or higher
Node: 8.9 or higher (note version 9 is not supported)
npm: v5.x
git: 2.9.x or higher Python: 2.7.x A code editor of your choice, we recommend VSCode.推薦 VSCode.

安裝Hyperledger Composer開發工具

just copy and paste:

npm install -g composer-cli
npm install -g generator-hyperledger-composer
npm install -g composer-rest-server
npm install -g yo

啟動Hyperledger Fabric網路

下載fabric 工具(預設地址: ~/fabric-tools, 可以自定義):

mkdir ~/fabric-tools && cd ~/fabric-tools

curl -O https://raw.githubusercontent.com/hyperledger/composer-tools/master/packages/fabric-dev-servers/fabric-dev-servers.zip
unzip fabric-dev-servers.zip

宣告使用1.0版本的fabric(預設hlfv1):

export FABRIC_VERSION=hlfv1

生成composer連線配置檔案:

cd ~/fabric-tools
./downloadFabric.sh
./startFabric.sh

此時fabric網路已經開啟了,配置檔案也生成了。網路由1個ca+1個order+1個peer+1個couchdb組成:

CONTAINER ID        IMAGE                                                    COMMAND                  CREATED             STATUS              PORTS                                            NAMES
51453364229e        hyperledger/fabric-peer:x86_64-1.0.0                     "peer node start -..."   2 hours ago         Up 2 hours          0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp   peer0.org1.example.com
c769742bb485        hyperledger/fabric-couchdb:x86_64-1.0.0                  "tini -- /docker-e..."   2 hours ago         Up 2 hours          4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp       couchdb
85a3c96fffd3        hyperledger/fabric-orderer:x86_64-1.0.0                  "orderer"                2 hours ago         Up 2 hours          0.0.0.0:7050->7050/tcp                           orderer.example.com
c8b231dd31ee        hyperledger/fabric-ca:x86_64-1.0.0                       "sh -c 'fabric-ca-..."   2 hours ago         Up 2 hours          0.0.0.0:7054->7054/tcp                           ca.org1.example.com

建立一個Business Network Definition,並生成.bna檔案

這裡借用下官方示例。

在你的工作目錄下,clone官方示例:

git clone https://github.com/hyperledger/composer-sample-networks.git

複製其中一個demo到工作目錄下:

cp -r ./composer-sample-networks/packages/basic-sample-network/  ./

對於.cto .js .acl等檔案,你可以按照自己的業務邏輯來修改。這裡作為演示,就沒修改。

生成bna檔案:

cd basic-sample-network
npm install

執行結果:

 ......

Creating Business Network Archive


Looking for package.json of Business Network Definition
    Input directory: /work/project/hyper/ttt

Found:
    Description: The Hello World of Hyperledger Composer samples
    Name: basic-sample-network
    Identifier: [email protected]0.1.6

Written Business Network Definition Archive file to 
    //***  bna路徑
    Output file: ./dist/basic-sample-network.bna

Command succeeded

部署.bna檔案

cd dist/
composer network deploy -a basic-sample-network.bna -p hlfv1 -i PeerAdmin -s randomString

(等待一段時間)執行結果:

這裡寫圖片描述

檢測部署

composer network ping -n basic-sample-network -p hlfv1 -i admin -s adminpw

執行結果:

這裡寫圖片描述

此時檢視網路:

CONTAINER ID        IMAGE                                                    COMMAND                  CREATED             STATUS              PORTS                                            NAMES
8727288aa912        dev-peer0.org1.example.com-basic-sample-network-0.11.2   "chaincode -peer.a..."   About an hour ago   Up About an hour                                                     dev-peer0.org1.example.com-basic-sample-network-0.11.2
51453364229e        hyperledger/fabric-peer:x86_64-1.0.0                     "peer node start -..."   2 hours ago         Up 2 hours          0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp   peer0.org1.example.com
c769742bb485        hyperledger/fabric-couchdb:x86_64-1.0.0                  "tini -- /docker-e..."   2 hours ago         Up 2 hours          4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp       couchdb
85a3c96fffd3        hyperledger/fabric-orderer:x86_64-1.0.0                  "orderer"                2 hours ago         Up 2 hours          0.0.0.0:7050->7050/tcp                           orderer.example.com
c8b231dd31ee        hyperledger/fabric-ca:x86_64-1.0.0                       "sh -c 'fabric-ca-..."   2 hours ago         Up 2 hours          0.0.0.0:7054->7054/tcp                           ca.org1.example.com

注意:此時多了一個chaincode容器dev-peer0.org1.example.com-basic-sample-network-0.11.2,可以推測composer在底層會把lib資料夾下的.js檔案編譯成chaincode來部署。

生成 REST API

進入到basic-sample-network目錄下:

composer-rest-server

執行效果(部分引數是由我們來指定的):

這裡寫圖片描述

這裡寫圖片描述

接下來你可以愉悅對進行下面操作:

Assent:   增刪改查
Participant:增刪改查
Transaction: 提交交易
System:  身份管理以及歷史交易記錄查詢

提示: 在移動端,web端 使用RESR API是比較好的選擇,同時官方還提供了Composer Node SDK適用於Node.js應用。

更新.bna 檔案

1.變更業務邏輯

業務需求會經常變更,因此我們需要修改現有的邏輯以及版本號。比如我們修改以下兩個地方:

models/sample.cto:

// 新增一個參與者
participant Teacher  extends SampleParticipant{

}

package.json

// 修改版本號
 "version": "1.0.0",

2.重新生成.bna檔案

定位到專案根目錄,執行npm run prepublish :

這裡寫圖片描述

3.更新現有的業務網路

cd dist/
composer network update -a basic-sample-network.bna -p hlfv1 -i PeerAdmin -s randomString

執行結果:

這裡寫圖片描述

4.生成新的REST API來驗證

這裡寫圖片描述

這裡寫圖片描述

可以看到 多了一個 Teacher相關的api,那麼我們的業務網路更新成功了。

相關推薦

Hyperledger Composer開發部署業務網路(方式)

由於官方文件跟新很快,本文部分步驟已經過時,最新部署方式請移步這裡: 部署到單組織的區塊鏈上 部署到多組織的區塊鏈上 先確保滿足下列環境要求 Operating Systems: Ubuntu Linux 14.04 / 16.04

Hyperledger-composer安裝和升級業務網路

一、使用Yeoman建立業務網路骨架 yo hyperledger-composer:businessnetwork 二、修改模型檔案(.cto)、鏈程式碼邏輯檔案(logic.js)、輔助查詢檔案

程式設計菜鳥到大佬路:計算機網路

計算機網路概述 計算機網路基本概念 什麼是計算機網路? 計算機網路=通訊技術+計算機技術,即計算機網路是通訊技術與計算機技術緊密結合的 產物。 計算機網路就是一種通訊網路: 定義:計算機網路就是互連的、 自治的計算機集合。

深度學習UFLDL教程翻譯卷積神經網路

A、使用卷積進行特徵提取 一、概述        在前面的練習中,你解決了畫素相對較低的影象的相關問題,例如小的圖片塊和手寫數字的小影象。在這個節,我們將研究能讓我們將這些方法拓展到擁有較大影象的更加

使用Kubeadm建立k8s叢集節點部署(三十

前言          本篇部署教程將講述k8s叢集的節點(master和工作節點)部署,請先按照上一篇教程完成節點的準備。本篇教程中的操作全部使用指令碼完成,並且對於某些情況(比如映象拉取問題)還提供了多種解決方案。不過基於部署環境和k8s的複雜性,我們需

使用Hyperledger Composer業務網路部署到單個組織的Hyperledger Fabric區塊鏈上

前言 Hyperledger Composer官方一直在維護更新中,寫作本文時最新release版本為0.16,從0.15的更新帶來了新的特性:card,也就是對使用者身份的封裝。如果你在以前的版本中使用過composer,你對身份並不會陌生,例如部

Android開發技術網路── http協議post請求方式

Java程式碼 程式碼如下:  private Button button1,button2,button3;  private TextView textView1;  button1.setOnClickListener(new Button.OnClickListener(){             

SpringBoot簡化開發部署啟動配置

保存 gin 簡化 cti 路徑 ons frame 體驗 大腦 作者:銹逗的大腦原文鏈接:http://www.cnblogs.com/ocean-yh/p/8352032.html 討論QQ群:151230186 Spring Boot 開發時的熱部署配置

J2EE分布式框架開發環境部署(上)

springmvc mybatis dubbo j2ee spring 環境搭建: 1.環境準備 1.開發工具: Eclipse IDE(建議使用高一點的版本) 2.JDK版本:JDK1.7 3.項目管理: Maven3.1.1 2.安裝步驟 1.安裝jdk1.7並配置環境變量(相信大家都

J2EE分布式框架開發環境部署(下)

mybatis springmvc 本篇繼續為大家講解J2EE分布式框架的開發環境部署: Eclipse中配置maven安裝目錄和Setting文件加載的本地庫目錄 11.導入Maven項目 File》Import》Existing Maven Projects》下一步 選擇你本地的maven項目

JEESZ分布式框架開發環境部署(上)

說明 設置 package 知識 公司 信息 iso div 輸入 環境搭建: 1.環境準備 1.開發工具: Eclipse IDE(建議使用高一點的版本) 2.JDK版本:JDK1.7 3.項目管理: Maven3.1.1 2.安裝步驟 1.安裝jdk1.7並配置環境變量

JEESZ分布式框架開發環境部署(下)

對話框 file 服務化 點擊 設計 環境 拓展 gen 資料 本篇繼續為大家講解J2EE分布式框架的開發環境部署: 10. Eclipse中配置maven安裝目錄和Setting文件加載的本地庫目錄 11.導入Maven項目 File》Import》Existi

部署Hyperledger FabricSIGSEGV問題

類型 docker 變量 ger 解決 deb 節點 服務啟動 cli 在部署Hyperledger Fabric過程中,peer、orderer服務啟動失敗。錯誤類型均是signal SIGSEGV: segmentation violation 解決方法: 更新Hype

微軟超融合私有雲測試10-SCVMM2016部署創建運行方式賬戶與添加委派

erb 融合 log 屬性 測試 路徑 分享圖片 設置 ext 1. 創建運行方式賬戶VMM安裝成功後,首先創建執行任務的運行方式賬戶用以執行SCVMM的操作,SCVMM執行操作時會自動調用運行方式賬戶的憑據去執行,例如部署SCVMM代理,查詢Hyper-V宿主機的狀態等,

前端開發框架總結利用Jtopo實現網路拓撲功能(四)

                     前端開發框架總結之利用Jtopo實現網路拓撲功能(四) 上文我們講了拓撲容器相關的互動設計和實現思路以及一些關鍵技術細節。至此,我們已經覆蓋了結

前端開發框架總結利用Jtopo實現網路拓撲功能(三)

                     前端開發框架總結之利用Jtopo實現網路拓撲功能(三) 上文我們講了一些拓撲連線、拓撲文字節點相關的互動設計和實現思路以及一些關鍵技術細節。本文

前端開發框架總結利用Jtopo實現網路拓撲功能(二)

                    前端開發框架總結之利用Jtopo實現網路拓撲功能(二) 上文我們講了一些拓撲結點生成的實際場景設計和實現思路以及一些關鍵技術細節。本文我們繼續我們的拓撲管理

前端開發框架總結利用Jtopo實現網路拓撲功能(

                      前端開發框架總結之利用Jtopo實現網路拓撲功能(一) 前言:     前段時間由於專案需要實現一個網路裝置拓撲管理的

iOS開發HTTP與HTTPS網路請求

HTTP是網際網路中應用最為廣泛的一種網路協議,在進入正文之前,先解釋什麼是網路協議?網路協議為計算機網路中進行資料交換而建立的規則、標準或約定的集合。網路協議是由以下三個要素組成:語義、語法、時序。 (1) 語義 語義是解釋控制資訊每個部分的意義。它規定了需要發出何種控制資訊,

03.Fabric應用開發流程和Fabric業務網路

陳述 主要講Fabric應用開發流程和Fabric業務網路。 Fabric 應用開發流程 Fabric 業務網路 業務網路,也叫共識網路或區塊鏈網路,由不同的節點構成。節點是區塊鏈的通訊實體,節點是一個邏輯概念,不同型別的節點可以執行在同一臺物理伺服器上。這些節點可