這是一個很是簡單
的資產轉移演示。多個用戶能夠建立並相互轉移彈珠。php
Marbles - 分支 v4.0 (Latest)(您將看到這個分支!)node
v1.0.1
、v1.0.0
和 v1.0.0-rc1
請你們集中注意力,這個應用程序將演示如何利用 Hyperledger Fabric 在許多彈珠全部者之間轉移彈珠。
咱們將在 Node.js 中使用一些 GoLang 代碼完成此任務。
該應用程序的後端將是在咱們的區塊鏈網絡中運行的 GoLang 代碼。
從如今開始,這些 GoLang 代碼將稱爲 ‘鏈代碼’ 或 ‘cc’。
該鏈代碼自己會建立一顆彈珠,將它存儲到鏈代碼狀態中。
該鏈代碼自己能夠將數據做爲字符串存儲在鍵/值對設置中。
所以,咱們將字符串化 JSON 對象,以便存儲更復雜的結構。git
彈珠的屬性包括:github
咱們將建立一個基於 Web 的用戶界面,它能夠設置這些值並將它們存儲在區塊鏈中。
這顆彈珠是在區塊鏈存儲(也稱爲帳本)中以鍵值對的形式建立的。
鍵
爲彈珠 ID,值
爲一個包含(上面列出的)彈珠屬性的 JSON 字符串。
與 cc 的交互是經過對網絡上的一個節點使用 gRPC 協議來完成的。
gRPC 協議的細節由一個名爲 Hyperledger Fabric Client SDK 的 SDK 處理。
請查看下圖瞭解拓撲結構細節。npm
1.鏈代碼部分 - 這是在區塊鏈網絡上運行的/包含節點的 GoLang 代碼。也稱爲 cc
。全部彈珠/區塊鏈交互最終都會在這裏進行。這些文件位於 /chaincode
中。
1.客戶端 JS 部分 - 這是在用戶瀏覽器中運行的 JavaScript 代碼。用戶界面交互在這裏執行。這些文件位於 /public/js
中。
1.服務器端 JS 部分 - 這是運行應用程序的後端的 JavaScript 代碼,即爲 Marbles 的核心的 Node.js
代碼!有時該代碼也稱爲咱們的節點
或服務器
代碼。它充當 Marbles 管理員與咱們的區塊鏈之間的鏈接器。這些文件位於 /utils
和 /routes
中。gulp
安裝Fabric環境要求配置後端
git clone https://github.com/IBM-Blockchain/marbles.git cd marbles git checkout v4.0
版本: Hyperledger Fabric v1.0.0
fabric-samples瀏覽器
cd fabric-samples/fabcar ./startFabric.sh node invoke.js node query.js
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/
npm install gulp -g npm install gulp marbles_local
啓動後訪問http://ip:3001
網絡