??運(yùn)行環(huán)境:ubuntu18.04, 默認(rèn)本地已安裝docker诵闭,go熊赖,
一、Fabric源碼地址
下載Fabric源碼承二,GitHub地址
下載Fabric-Sample源碼榆鼠,GitHub地址
下載Fabric執(zhí)行程序,GitHub地址
拉取鏡像
docker pull hyperledger/fabric-peer:2.3.0
docker pull hyperledger/fabric-orderer:2.3.0
docker pull hyperledger/fabric-ccenv:2.3.0
docker pull hyperledger/fabric-tools:2.3.0
docker pull hyperledger/fabric-baseos:2.3.0
docker pull hyperledger/fabric-ca:1.4.9
準(zhǔn)備工作
解壓sample文件亥鸠,放在scripts文件夾下妆够。
解壓執(zhí)行程序,放在sample文件夾內(nèi)负蚊。
搭建步驟
- 創(chuàng)建fabric網(wǎng)絡(luò)神妹,包括兩個(gè)節(jié)點(diǎn),一個(gè)Order服務(wù)
./network.sh up 2.3.0
Creating network "fabric_test" with the default driver
Creating volume "net_orderer.example.com" with default driver
Creating volume "net_peer0.org1.example.com" with default driver
Creating volume "net_peer0.org2.example.com" with default driver
Creating peer0.org2.example.com ... done
Creating orderer.example.com ... done
Creating peer0.org1.example.com ... done
Creating cli ... done
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1667543b5634 hyperledger/fabric-tools:latest "/bin/bash" 1 second ago Up Less than a second cli
b6b117c81c7f hyperledger/fabric-peer:latest "peer node start" 2 seconds ago Up 1 second 0.0.0.0:7051->7051/tcp peer0.org1.example.com
703ead770e05 hyperledger/fabric-orderer:latest "orderer" 2 seconds ago Up Less than a second 0.0.0.0:7050->7050/tcp, 0.0.0.0:7053->7053/tcp orderer.example.com
718d43f5f312 hyperledger/fabric-peer:latest "peer node start" 2 seconds ago Up 1 second 7051/tcp, 0.0.0.0:9051->9051/tcp peer0.org2.example.com
- 在組織Org1和Org2之間創(chuàng)建通道家妆,并將節(jié)點(diǎn)加入通道
./network.sh createChannel
Channel 'mychannel' joined
- 部署智能合約
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
Chaincode is packaged
- 初始化賬本
export FABRIC_CFG_PATH=$PWD/../config/
# Environment variables for Org1
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051
peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" -c '{"function":"InitLedger","Args":[]}'
-> INFO 001 Chaincode invoke successful. result: status:200
- 數(shù)據(jù)查詢
peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'
[
{"ID": "asset1", "color": "blue", "size": 5, "owner": "Tomoko", "appraisedValue": 300},
{"ID": "asset2", "color": "red", "size": 5, "owner": "Brad", "appraisedValue": 400},
{"ID": "asset3", "color": "green", "size": 10, "owner": "Jin Soo", "appraisedValue": 500},
{"ID": "asset4", "color": "yellow", "size": 10, "owner": "Max", "appraisedValue": 600},
{"ID": "asset5", "color": "black", "size": 15, "owner": "Adriana", "appraisedValue": 700},
{"ID": "asset6", "color": "white", "size": 15, "owner": "Michel", "appraisedValue": 800}
]
二鸵荠、Fabric瀏覽器搭建
BlockChain-exploer源碼,GitHub地址
拉取鏡像
docker pull hyperledger/explorer
docker pull hyperledger/explorer-db
解壓源碼
修改配置文件揩徊,docker-compose.yaml:
services:
explorer.mynetwork.com:
...
volumes:
- ./examples/net1/config.json:/opt/explorer/app/platform/fabric/config.json
- ./examples/net1/connection-profile:/opt/explorer/app/platform/fabric/connection-profile
- /root/fabric/fabric-2.3.0/scripts/fabric-samples/test-network/organizations:/tmp/crypto
- walletstore:/opt/explorer/wallet
啟動(dòng)容器服務(wù)
docker-compose up -d
成功后腰鬼,打開網(wǎng)址:http://localhost:8080
登錄頁面
默認(rèn)登錄賬號(hào):exploreradmin 密碼:exploreradminpw
概覽
概覽
網(wǎng)絡(luò)結(jié)構(gòu)
區(qū)塊
區(qū)塊
交易
鏈碼
通道