超級帳本Fabric區塊鏈用彈珠遊戲Marbles 部署

Marbles 演示

Marbles GitHub地址

關於 Marbles

  • 這個應用程序的基礎網絡是 Hyperledger Fabric,後者是一個 Linux Foundation 項目。您可能想查閱如下操做說明來稍微瞭解一下 Hyperledger Fabric。
  • 本演示旨在幫助開發人員瞭解鏈代碼的基礎知識以及如何使用 Fabric 網絡開發應用程序。
  • 這是一個很是簡單的資產轉移演示。多個用戶能夠建立並相互轉移彈珠。php

    這裏寫圖片描述

  • Marbles - 分支 v4.0 (Latest)(您將看到這個分支!)node

    • 兼容 Hyperledger Fabric v1.0.1v1.0.0v1.0.0-rc1
    • 兼容 IBM Blockchain Bluemix 服務 - IBM Blockchain Platform - Enterprise 計劃

應用程序背景

請你們集中注意力,這個應用程序將演示如何利用 Hyperledger Fabric 在許多彈珠全部者之間轉移彈珠。
咱們將在 Node.js 中使用一些 GoLang 代碼完成此任務。
該應用程序的後端將是在咱們的區塊鏈網絡中運行的 GoLang 代碼。
從如今開始,這些 GoLang 代碼將稱爲 ‘鏈代碼’ 或 ‘cc’。
該鏈代碼自己會建立一顆彈珠,將它存儲到鏈代碼狀態中。
該鏈代碼自己能夠將數據做爲字符串存儲在鍵/值對設置中。
所以,咱們將字符串化 JSON 對象,以便存儲更復雜的結構。git

彈珠的屬性包括:github

  1. ID(惟一字符串,將用做鍵)
  2. 顏色(字符串,CSS 顏色名稱)
  3. 尺寸(int,以毫米爲單位)
  4. 全部者(字符串)

咱們將建立一個基於 Web 的用戶界面,它能夠設置這些值並將它們存儲在區塊鏈中。
這顆彈珠是在區塊鏈存儲(也稱爲帳本)中以鍵值對的形式建立的。
爲彈珠 ID,爲一個包含(上面列出的)彈珠屬性的 JSON 字符串。
與 cc 的交互是經過對網絡上的一個節點使用 gRPC 協議來完成的。
gRPC 協議的細節由一個名爲 Hyperledger Fabric Client SDK 的 SDK 處理。
請查看下圖瞭解拓撲結構細節。npm

應用程序通訊流

這裏寫圖片描述

  1. 管理員將在他們的瀏覽器中與咱們的 Node.js 應用程序 Marbles 進行交互。
  2. 此客戶端 JS 代碼將打開一個與後端 Node.js 應用程序的 Websocket 鏈接。管理員與該站點交互時,客戶端 JS 將消息發送到後端。
  3. 讀取或寫入帳本稱爲提案。這個提案由 Marbles(經過 SDK)構建,而後發送到一個區塊鏈節點。
  4. 該節點將與它的 Marbles 鏈代碼容器進行通訊。鏈代碼將運行/模擬該交易。若是沒有問題,它會對該交易進行背書,並將其發回咱們的 Marbles 程序。
  5. 而後,Marbles(經過 SDK)將背書後的提案發送到訂購服務。訂購方未來自整個網絡的許多提案打包到一個區塊中。而後,它將新的區塊廣播到網絡中的節點。
  6. 最後,節點會驗證該區塊並將它寫入本身的帳本中。該交易如今已經生效,全部後續讀取都會反映此更改。

1.鏈代碼部分 - 這是在區塊鏈網絡上運行的/包含節點的 GoLang 代碼。也稱爲 cc。全部彈珠/區塊鏈交互最終都會在這裏進行。這些文件位於 /chaincode 中。
1.客戶端 JS 部分 - 這是在用戶瀏覽器中運行的 JavaScript 代碼。用戶界面交互在這裏執行。這些文件位於 /public/js 中。
1.服務器端 JS 部分 - 這是運行應用程序的後端的 JavaScript 代碼,即爲 Marbles 的核心的 Node.js 代碼!有時該代碼也稱爲咱們的節點服務器代碼。它充當 Marbles 管理員與咱們的區塊鏈之間的鏈接器。這些文件位於 /utils/routes 中。gulp


Marbles 設置(大前提npm install執行沒問題V*P*N)

0.設置本地環境

安裝Fabric環境要求配置後端

1.下載 Marbles

git clone https://github.com/IBM-Blockchain/marbles.git 
    cd marbles
    git checkout v4.0

2.啓動Fabric網絡

版本: Hyperledger Fabric v1.0.0
fabric-samples瀏覽器

cd fabric-samples/fabcar
./startFabric.sh
node invoke.js
node query.js

這裏寫圖片描述

3.安裝並實例化Marbles的鏈代碼

npm install
cd ./scripts
./build_marbles_image.sh
node install_chaincode.js
node instantiate_chaincode.js

這裏寫圖片描述

在實例化鏈碼時可能會遇到如下問題服務器

Error: Cannot find module 'fabric-client/lib/Peer.js'

這裏寫圖片描述

export NODE_PATH=/root/node_modules
git clone https://github.com/hyperledger/fabric-sdk-node.git
cp -R ~/fabric-sdk-node/fabric-client /root/node_modules/

4.啓動 Marbles

npm install gulp -g
npm install
gulp marbles_local

這裏寫圖片描述

使用 Marbles

啓動後訪問http://ip:3001
這裏寫圖片描述網絡

相關文章
相關標籤/搜索