《Netkiller Blockchain 手札》Hyperledger Fabirc 之華爲BCS(Blockchain Service)使用簡介 原 薦

本文節選自電子書《Netkiller Blockchain 手札》

Netkiller Blockchain 手札

Mr. Neo Chan, 陳景峯(BG7NYT)

中國廣東省深圳市龍華新區民治街道溪山美地 518131 +86 13113668890 <[email protected]>

文檔始創於2018-02-10

版權 © 2018 Netkiller(Neo Chan). All rights reserved.

版權聲明

轉載請與作者聯繫,轉載時請務必標明文章原始出處和作者信息及本聲明。

內容摘要

這一部關於區塊鏈開發及運維的電子書。

爲什麼會寫區塊鏈電子書?因爲2018年是區塊鏈年,區塊鏈是一個風口,前幾個風口我都錯過了。例如web2.0, 雲, 大數據等等,都從身旁擦肩而過。所以我要抓住這次。

這本電子書是否會出版(紙質圖書)? 不會,因爲互聯網技術更迭太快,紙質書籍的內容無法實時更新,一本書動輒百元,很快就成爲垃圾,你會發現目前市面的上區塊鏈書籍至少是一年前寫的,內容已經過時,很多例子無法正確運行。所以我不會出版,電子書的內容會追逐技術發展,及時跟進軟件版本的升級,做到內容最新,至少是主流。

這本電子書與其他區塊鏈書籍有什麼不同?市面上大部分區塊鏈書籍都是用2/3去講區塊鏈原理,只要不到 1/3 的乾貨,乾貨不夠理論來湊,通篇將理論或是大談特談區塊鏈行業,這些內容更多是頭腦風暴,展望區塊鏈,均無法落地實施。本書與那些書籍完全不同,不講理論和原理,面向應用落地,注重例子,均是乾貨。

寫作原則,無法落地的項目作者絕對不會寫。凡是寫入電子的內容均具備可操作,可落地。

電子書更新頻率?每天都會有新內容加入,更新頻率最遲不會超過一週,更新內容請關注 https://github.com/netkiller/netkiller.github.io/commits/master

本文采用碎片化寫作,原文會不定期更新,請儘量閱讀原文 http://www.netkiller.cn/blockchain/index.html

您的打賞是我的寫作動力:http://www.netkiller.cn/blockchain/donations.html

接受 ETH 打賞:0x3e827461Cc53ed7c75A29187CfF39629FCAE3661

第 33 章 BaaS (Blockchain as a Service) 平臺

目錄

33.1. Huawei BCS

33.1.1. 創建 BCS 服務

33.1.2. 管理通道

33.1.3. 安裝鏈碼

33.1.4. 下載 SDK 配置

33.1. Huawei BCS

華爲的 Hyperledger Fabric BaaS 尚處在測試階段,申請地址是 https://www.huaweicloud.com/product/bcs.html 服務可以免費申請,但是需要

33.1.1. 創建 BCS 服務

打開網址 https://www.huaweicloud.com/product/bcs.html

點擊按鈕 “立即體驗”

點擊“購買區塊鏈服務”按鈕

共識策略選擇 Kafka(CFT), 輸入鏈代碼初始管理密碼。

這裏可以創建通道,也可以略過,後面可以創建。

經過一段時間初始化雲主機,最終完成 BCS 創建。

33.1.2. 管理通道

創建通道,輸入通道名稱和描述,點擊確定按鈕。

創建好的通道,會顯示“暫無節點加入”,點擊右邊 “加入節點” 連接

選擇加入組織的數量

節點添加完畢

33.1.3. 安裝鏈碼

首先將 chaincode 源碼壓縮成 zip 文件

neo@MacBook-Pro ~/chaincode % zip token.zip token.go
  adding: token.go (deflated 82%)
  
neo@MacBook-Pro ~/chaincode % ls token.*
token.go  token.zip

點擊右邊 “鏈代碼管理” 按鈕

進入鏈碼管理界面

Organization 選擇組織, Peer 選擇節點,點擊 “Install Chaincode” 按鈕。

輸入連碼名稱、版本、並上傳 鏈碼對應的 zip 文件。

鏈碼安裝成功

實例化鏈碼

輸入調用的函數,和傳遞的參數,點擊 OK 按鈕

執行成功

33.1.4. 下載 SDK 配置

選擇 “下載 SDK 配置”

鏈代碼名稱是之前安裝鏈碼時輸入的名稱

鏈代碼版本是當前的鏈碼版本

證書存放根路徑填寫: /opt/gopath/src/github.com/hyperledger/api-server/conf/crypto

點擊下載按鈕後得到一個 bcs-itetze-sdk-config.zip 文件,解壓開 bcs-itetze-sdk-config.yaml

name: "global-trade-network"

x-type: "hlfv1"
x-loggingLevel: info

description: "The network to be in if you want to stay in the global trade business"

version: 1.0.0

client:

  organization: 266d0f487933503a48f0ab728b85d5b469cb2b79

  logging:
    level: info

  peer:
    timeout:
      connection: 10s
      queryResponse: 45s
      executeTxResponse: 120s
  eventService:
    timeout:
      connection: 10s
      registrationResponse: 50s
  orderer:
    timeout:
      connection: 10s
      response: 45s

  cryptoconfig:
    path: /opt/gopath/src/github.com/hyperledger/fabric

  credentialStore:
    path: "/tmp/hfc-kvs"

    cryptoStore:
      path: /tmp/msp

    wallet: wallet-name

  BCCSP:
    security:
     enabled: true
     default:
      provider: "SW"
     hashAlgorithm: "SHA2"
     softVerify: true
     ephemeral: false
     level: 256

channels:
  
  netkiller:
    orderers:
      
      - orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-0.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local
      
      - orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-1.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local
      
      - orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-2.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local
      
      - orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-3.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local
      
      - orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-4.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local
      
    peers:
      
      peer-266d0f487933503a48f0ab728b85d5b469cb2b79-0.peer-266d0f487933503a48f0ab728b85d5b469cb2b79.default.svc.cluster.local:
        endorsingPeer: true
        chaincodeQuery: true
        ledgerQuery: true
        eventSource: true
      
    chaincodes:
      - netkiller:1.0.0
  
organizations:
  
  266d0f487933503a48f0ab728b85d5b469cb2b79:
    mspid: 266d0f487933503a48f0ab728b85d5b469cb2b79MSP

    cryptoPath:  /opt/gopath/src/github.com/hyperledger/api-server/conf/crypto/266d0f487933503a48f0ab728b85d5b469cb2b79.peer-266d0f487933503a48f0ab728b85d5b469cb2b79.default.svc.cluster.local/msp
    tlsCryptoKeyPath: /opt/gopath/src/github.com/hyperledger/api-server/conf/crypto/266d0f487933503a48f0ab728b85d5b469cb2b79.peer-266d0f487933503a48f0ab728b85d5b469cb2b79.default.svc.cluster.local/tls/server.key
    tlsCryptoCertPath: /opt/gopath/src/github.com/hyperledger/api-server/conf/crypto/266d0f487933503a48f0ab728b85d5b469cb2b79.peer-266d0f487933503a48f0ab728b85d5b469cb2b79.default.svc.cluster.local/tls/server.crt

    peers:
      
      - peer-266d0f487933503a48f0ab728b85d5b469cb2b79-0.peer-266d0f487933503a48f0ab728b85d5b469cb2b79.default.svc.cluster.local
      
    certificateAuthorities:
      - ca-org1

    adminPrivateKey:
      pem: "-----BEGIN PRIVATE KEY----- <etc>"
    signedCert:
      path: "/tmp/somepath/signed-cert.pem"
  
  ordererorg:
      mspID: "7d8abfe15c3f1389f0468d90e27a382d0bd90b3fMSP"

      cryptoPath: /opt/gopath/src/github.com/hyperledger/api-server/conf/crypto/7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local/msp
#orderer eip: 49.4.85.126
orderers:
  
  orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-0.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local:
    url: grpcs://orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-0.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local:30805

    grpcOptions:
      ssl-target-name-override: orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-0.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local
      grpc-max-send-message-length: 15

    tlsCACerts:
      path: /opt/gopath/src/github.com/hyperledger/api-server/conf/crypto/7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local/msp/tlscacerts/tlsca.7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-cert.pem
  
  orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-1.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local:
    url: grpcs://orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-1.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local:30806

    grpcOptions:
      ssl-target-name-override: orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-1.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local
      grpc-max-send-message-length: 15

    tlsCACerts:
      path: /opt/gopath/src/github.com/hyperledger/api-server/conf/crypto/7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local/msp/tlscacerts/tlsca.7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-cert.pem
  
  orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-2.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local:
    url: grpcs://orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-2.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local:30807

    grpcOptions:
      ssl-target-name-override: orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-2.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local
      grpc-max-send-message-length: 15

    tlsCACerts:
      path: /opt/gopath/src/github.com/hyperledger/api-server/conf/crypto/7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local/msp/tlscacerts/tlsca.7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-cert.pem
  
  orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-3.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local:
    url: grpcs://orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-3.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local:30808

    grpcOptions:
      ssl-target-name-override: orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-3.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local
      grpc-max-send-message-length: 15

    tlsCACerts:
      path: /opt/gopath/src/github.com/hyperledger/api-server/conf/crypto/7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local/msp/tlscacerts/tlsca.7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-cert.pem
  
  orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-4.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local:
    url: grpcs://orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-4.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local:30809

    grpcOptions:
      ssl-target-name-override: orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-4.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local
      grpc-max-send-message-length: 15

    tlsCACerts:
      path: /opt/gopath/src/github.com/hyperledger/api-server/conf/crypto/7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.orderer-7d8abfe15c3f1389f0468d90e27a382d0bd90b3f.default.svc.cluster.local/msp/tlscacerts/tlsca.7d8abfe15c3f1389f0468d90e27a382d0bd90b3f-cert.pem
  
#peer eip: 49.4.85.126
peers:
  
  peer-266d0f487933503a48f0ab728b85d5b469cb2b79-0.peer-266d0f487933503a48f0ab728b85d5b469cb2b79.default.svc.cluster.local:
    url: grpcs://peer-266d0f487933503a48f0ab728b85d5b469cb2b79-0.peer-266d0f487933503a48f0ab728b85d5b469cb2b79.default.svc.cluster.local:30605

    eventUrl: grpcs://peer-266d0f487933503a48f0ab728b85d5b469cb2b79-0.peer-266d0f487933503a48f0ab728b85d5b469cb2b79.default.svc.cluster.local:30705

    grpcOptions:
      ssl-target-name-override: peer-266d0f487933503a48f0ab728b85d5b469cb2b79-0.peer-266d0f487933503a48f0ab728b85d5b469cb2b79.default.svc.cluster.local
      grpc.http2.keepalive_time: 15

    tlsCACerts:
      path: /opt/gopath/src/github.com/hyperledger/api-server/conf/crypto/266d0f487933503a48f0ab728b85d5b469cb2b79.peer-266d0f487933503a48f0ab728b85d5b469cb2b79.default.svc.cluster.local/msp/tlscacerts/tlsca.266d0f487933503a48f0ab728b85d5b469cb2b79-cert.pem
  
certificateAuthorities:
  ca-org1:
    url: https://ca_peerOrg1:7054
    httpOptions:
      verify: true
    tlsCACerts:
      path: $GOPATH/src/github.com/hyperledger/fabric-sdk-go/test/api-server/tls/fabricca/certs/ca_root.pem
      client:
       keyfile: $GOPATH/src/github.com/hyperledger/fabric-sdk-go/test/api-server/tls/fabricca/certs/client/client_fabric_client-key.pem
       certfile: $GOPATH/src/github.com/hyperledger/fabric-sdk-go/test/api-server/tls/fabricca/certs/client/client_fabric_client.pem

    registrar:
      enrollId: admin
      enrollSecret: adminpw
    caName: ca-org1

QQ:13721218 請註明“讀者”

QQ羣:128659835 請註明“讀者”

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章