先打開兩個終端
1.第一個終端開啓fabric網絡
cd go/src/github.com/hyperledger/fabric-samples/first-network
./byfn.sh up
docker exec -it cli bash
注意,這裏的go/src/github.com/hyperledger/fabric-samples/first-network是我個人的first-network目錄,開啓網絡一定要進入你自己的目錄文件中。
2.第二個終端運行main.go
cd fabric-sdk-go-sample/main.go
go run main.go
注意,這裏的fabric-sdk-go-sample/main.go需要改成你自己的目錄。
3.測試sdk與fabric之間的交互
3.1在第一個終端中輸入
peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses peer0.org2.example.com:9051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"Args":["invoke","a","b","10"]}'
意思是a向b轉賬10;
可以在當前窗口查詢a賬戶中的值現在是否爲90(初始值爲100)
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
查詢b賬戶的值是否爲210
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","b"]}'
3.2 在第二個終端中運行main
go run main.go
頁面將顯示爲90,
3.3可以在第二個終端中修改main文件,查詢b的值
vim main.go
修改代碼
在main.go文件中鍵入任意鍵進行編輯,然後將下面 代碼的“a”修改“b”
if err := cli1.QueryCC("peer0.org2.example.com", "a"); err != nil {
log.Panicf("Query chaincode error: %v", err)
}
點擊“esc”,輸入:wq,點擊回車
重新輸入
go run main.go
頁面將顯示b的值爲210
以上僅爲fabric和sdk之間的簡單交互,歡迎多提寶貴意見!