Docker部署區塊鏈__Docker

來源:互聯網
上載者:User

1. 開啟Docker拉取鏡像,在https://hub.docker.com/可以查看鏡像版本,為了配合畢設我們拉取0.6版本,並把tag重新命名為latest

docker pull hyperledger/ fabric-peer:x86_64-0.6.1-preview

docker pull hyperledger/ fabric-membersrvc:latest

docker images

 

 

 

2. 將編寫好的docker-compose.yml儲存到本地c/Users/rjy以便後續運行使用

membersrvc:  image: hyperledger/fabric-membersrvc  ports:    - "7054:7054"  command: membersrvcvp0:  image: hyperledger/fabric-peer  ports:    - "7050:7050"    - "7051:7051"    - "7053:7053"  environment:    - CORE_PEER_ADDRESSAUTODETECT=true    - CORE_VM_ENDPOINT=unix:///var/run/docker.sock    - CORE_LOGGING_LEVEL=DEBUG    - CORE_PEER_ID=vp0    - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054    - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054    - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054    - CORE_SECURITY_ENABLED=true    - CORE_SECURITY_ENROLLID=test_vp0    - CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT  links:    - membersrvc  command: sh -c "sleep 5; peer node start --peer-chaincodedev"

3. docker輸入docker-compose up

 

4. mRemoteNG連結Docker,

Host : 192.168.99.100

User name : docker

Password : tcuser

協議 : SSHv2

 

5. mRemoteNG輸入docker ps

 

6. mRemoteNG輸入docker exec -it rjy_vp0_1 bash

7. 退回到.../github.com建立一個SaveState檔案夾 mkdir SaveState

8. 進入SaveState,輸入vi SaveState2.go建立一個SaveState.go檔案

9. 按下i鍵,從下面複製代碼,在mRemoteNG點擊右鍵粘貼過來

package main import (    "errors"    "fmt"         "github.com/hyperledger/fabric/core/chaincode/shim")  type SaveState2Chaincode struct {} func (t *SaveState2Chaincode) Init(stub shim.ChaincodeStubInterface, function string, args []string) ([]byte, error) {    fmt.Printf("Init called with function %s!\n", function)     return nil, nil} func (t *SaveState2Chaincode) Invoke(stub shim.ChaincodeStubInterface, function string, args []string) ([]byte, error) {    fmt.Printf("Invoke called with function %s!\n", function)     var key, value string    key = args[0]    value = args[1]     var err error    err = stub.PutState(key, []byte(value))     if err != nil {        return nil, err    }    return nil, nil    }  func (t *SaveState2Chaincode) Query(stub shim.ChaincodeStubInterface, function string, args []string) ([]byte, error) {    fmt.Printf("Query called with function %s!\n", function)     var key string    key = args[0]     valInBytes, err := stub.GetState(key)     if err != nil {        return nil, errors.New("Failed to get state for " + key)    }     message := "State for "  + key + " = " + string(valInBytes)     return []byte(message), nil} func main() {    err := shim.Start(new(SaveState2Chaincode))    if err != nil {        fmt.Printf("Error starting Save State chaincode: %s", err)    }}

10. :wq

11. go build ./   注意build後邊有一個空格,運行完這一句會出現一個綠色的檔案

 

12. export CORE_CHAINCODE_ID_NAME=mycc

13. export CORE_PEER_ADDRESS=0.0.0.0:7051

14. ./SaveState &

 

15. 向Hyperledger服務介面http://192.168.99.100:7050/registrar 發送如下REST請求,使用內建的jim使用者登入系統

{

 "enrollId": "jim",

    "enrollSecret": "6avZQLwcUe9b"

}

16. 向Hyperledger服務介面http://192.168.99.100:7050/chaincode 發送如下REST請求

{

   "jsonrpc" : "2.0",

"method" : "invoke",

"params" : {

"type" : 1,

"chaincodeID" : {

"name" : "mycc"

},

"ctorMsg" : {

"function":"invoke",

"args":[ "testKey","PipiXia,Let’s go!" ]

},

"secureContext" : "jim"

},

"id" : 3

 }  

 

17. 

{

    "jsonrpc" : "2.0",

"method" : "query",

"params" : {

"type" : 1,

"chaincodeID" : {

"name" : "mycc"

},

"ctorMsg" : {

"function":"query",

"args":[ "testKey"]

},

"secureContext" : "jim"

},

"id" : 5

 }  

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.