IBM-Blockchain之marbles專案搭建執行
阿新 • • 發佈:2018-12-24
前言
Marbles專案的底層網路是Hyperledger Fabric(分散式的超級賬本),該專案最終會呈獻給我們通過圖形化介面,可以用來操作marbles。可以新增使用者,新增marble,刪除marble,交易marble,這些操作都會記錄到區塊鏈上。
啟動專案之前需要一些指定的設定,並且我們選擇搭建本地的Hyperledger Network來執行專案。我的系統環境:Ubuntu16.04。
設定
1 環境搭建
-
需要安裝(版本號要嚴格按照下面的來設定):
-
驗證安裝:
$ git --version git version 2.7.4 $ go version go version go1.8.3 linux/amd64 $ echo $GOPATH /media/jiang/newspace/project/mygo $ docker -v Docker version 17.06.0-ce, build 02c1d87 $ docker-compose -v docker-compose version 1.14.0, build c7bdf9e $ node -v v6.10.0 $ npm -v 3.10.10
2 下載marbles倉庫
-
定位到存放目錄,執行命令:
git clone https://github.com/IBM-Blockchain/marbles.git --depth 1 git checkout v3.0
3 設定本地區塊鏈網路
-
cd marbles/scripts chmod +x download-dockerimages.sh sudo ./download-dockerimages.sh
-
指令碼完成後會在命令列面板裡看到:
hyperledger/fabric-ca latest 35311d8617b4 3 weeks ago 240 MB hyperledger/fabric-ca x86_64-1.0.0-alpha 35311d8617b4 3 weeks ago 240 MB hyperledger/fabric-couchdb latest f3ce31e25872 3 weeks ago 1.51 GB hyperledger/fabric-couchdb x86_64-1.0.0-alpha f3ce31e25872 3 weeks ago 1.51 GB hyperledger/fabric-kafka latest 589dad0b93fc 3 weeks ago 1.3 GB hyperledger/fabric-kafka x86_64-1.0.0-alpha 589dad0b93fc 3 weeks ago 1.3 GB hyperledger/fabric-zookeeper latest 9a51f5be29c1 3 weeks ago 1.31 GB hyperledger/fabric-zookeeper x86_64-1.0.0-alpha 9a51f5be29c1 3 weeks ago 1.31 GB hyperledger/fabric-orderer latest 5685fd77ab7c 3 weeks ago 182 MB hyperledger/fabric-orderer x86_64-1.0.0-alpha 5685fd77ab7c 3 weeks ago 182 MB hyperledger/fabric-peer latest 784c5d41ac1d 3 weeks ago 184 MB hyperledger/fabric-peer x86_64-1.0.0-alpha 784c5d41ac1d 3 weeks ago 184 MB hyperledger/fabric-javaenv latest a08f85d8f0a9 3 weeks ago 1.42 GB hyperledger/fabric-javaenv x86_64-1.0.0-alpha a08f85d8f0a9 3 weeks ago 1.42 GB hyperledger/fabric-ccenv latest 91792014b61f 3 weeks ago 1.29 GB hyperledger/fabric-ccenv x86_64-1.0.0-alpha 91792014b61f 3 weeks ago 1.29 GB
-
-
設定Fabric Node SDK
cd marbles/scripts bash setup_sdk.sh
指令碼執行完成後,會在
scripts
目錄下生成fabric-sdk-node
資料夾。-
那麼這個指令碼都執行了什麼操作呢,請看下面:
#!/bin/bash set -e # 1 下載 SDK git clone https://github.com/hyperledger/fabric-sdk-node.git sleep 1 cd ./fabric-sdk-node git checkout v1.0.0-alpha git branch sleep 1 # 2 安裝依賴 npm install npm install -g gulp gulp ca # 3 拷貝docker-compose 檔案到SDK指定資料夾 cd ../ cp ./docker-compose-marblesv3.yaml fabric-sdk-node/test/fixtures # 4 拷貝配置檔案到SDK指定資料夾 cp ./config.json fabric-sdk-node/test/integration/e2e
-
-
啟動網路
docker rm -f $(docker ps -aq) cd ./fabric-sdk-node/test/fixtures docker-compose -f docker-compose-marblesv3.yaml up -d
-
一旦執行成功,執行
docker ps
命令,會看到docker中有8個執行中的容器:CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e61cf829f171 hyperledger/fabric-peer "peer node start -..." 3 minutes ago Up 2 minutes 0.0.0.0:7056->7051/tcp, 0.0.0.0:7058->7053/tcp peer1 0cc1f5ac24da hyperledger/fabric-peer "peer node start -..." 3 minutes ago Up 2 minutes 0.0.0.0:8056->7051/tcp, 0.0.0.0:8058->7053/tcp peer3 7ab3106e5076 hyperledger/fabric-peer "peer node start -..." 3 minutes ago Up 3 minutes 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0 2bc5c6606e6c hyperledger/fabric-peer "peer node start -..." 3 minutes ago Up 3 minutes 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer2 513be1b46467 hyperledger/fabric-ca "sh -c 'fabric-ca-..." 3 minutes ago Up 3 minutes 0.0.0.0:8054->7054/tcp ca_peerOrg2 741c363ba34a hyperledger/fabric-orderer "orderer" 3 minutes ago Up 3 minutes 0.0.0.0:7050->7050/tcp orderer0 abaae883eb13 couchdb "tini -- /docker-e..." 3 minutes ago Up 3 minutes 0.0.0.0:5984->5984/tcp couchdb 2c2d51fe88c0 hyperledger/fabric-ca "sh -c 'fabric-ca-..." 3 minutes ago Up 3 minutes 0.0.0.0:7054->7054/tcp ca_peerOrg1
-
-
設定網路
定位到fabric-sdk-node/
目錄下
-
建立channel
rm -rf /tmp/hfc-* rm -rf ~/.hfc-key-store node test/integration/e2e/create-channel.js
-
加入channel
node test/integration/e2e/join-channel.js
4 安裝/初始化Chaincode
-
定位到
marbles/
下,安裝npm依賴npm install
-
定位到
marbles/scripts/
下,安裝Chaincodenode install_chaincode.js
-
定位到
marbles/scripts/
下,初始化Chaincodenode instantiate_chaincode.js
5 啟動Marbles
-
啟動命令
gulp marbles3
-
出現下面關鍵字,說明啟動成功了(在瀏覽器開啟
localhost:3001
)------------------------------------------ Server Up - localhost:3001 ------------------------------------------ ------------------------------------------ Websocket Up ------------------------------------------