博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Netkiller Blockchain 手札》Hyperledger Fabirc 之华为BCS(Blockchain Service)使用简介
阅读量:6346 次
发布时间:2019-06-22

本文共 10534 字,大约阅读时间需要 35 分钟。

hot3.png

本文节选自电子书《Netkiller Blockchain 手札》

Netkiller Blockchain 手札

Mr. Neo Chan, 陈景峯(BG7NYT)

中国广东省深圳市龙华新区民治街道溪山美地 518131 +86 13113668890 <netkiller@msn.com>

文档始创于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

华为的 Hyperledger Fabric BaaS 尚处在测试阶段,申请地址是 https://www.huaweicloud.com/product/bcs.html 服务可以免费申请,但是需要

33.1.1. 创建 BCS 服务

打开网址 

31213627_YEhW.png

点击按钮 “立即体验”

31213630_vMSP.png

点击“购买区块链服务”按钮

31213630_WIe5.png

共识策略选择 Kafka(CFT), 输入链代码初始管理密码。

31213632_kN7M.png

这里可以创建通道,也可以略过,后面可以创建。

31213633_ZsSc.png

经过一段时间初始化云主机,最终完成 BCS 创建。

33.1.2. 管理通道

31213634_Pad0.png

创建通道,输入通道名称和描述,点击确定按钮。

31213635_CI1F.png

创建好的通道,会显示“暂无节点加入”,点击右边 “加入节点” 连接

31213635_xGkH.png

选择加入组织的数量

31213636_FJm4.png

节点添加完毕

31213637_8Tnt.png

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
31213633_ZsSc.png

点击右边 “链代码管理” 按钮

31213638_eO2O.png

进入链码管理界面

31213639_puPp.png

Organization 选择组织, Peer 选择节点,点击 “Install Chaincode” 按钮。

31213641_kxBe.png

输入连码名称、版本、并上传 链码对应的 zip 文件。

31213641_gdQl.png

链码安装成功

31213642_rurB.png

实例化链码

31213643_ZhS6.png

输入调用的函数,和传递的参数,点击 OK 按钮

31213645_qMT6.png

执行成功

33.1.4. 下载 SDK 配置

31213646_np0n.png
31213647_xyBh.png

选择 “下载 SDK 配置”

31213648_XKdQ.png

链代码名称是之前安装链码时输入的名称

链代码版本是当前的链码版本

证书存放根路径填写: /opt/gopath/src/github.com/hyperledger/api-server/conf/crypto

点击下载按钮后得到一个 bcs-itetze-sdk-config.zip 文件,解压开 bcs-itetze-sdk-config.yaml

31213649_9IPu.png
name: "global-trade-network"x-type: "hlfv1"x-loggingLevel: infodescription: "The network to be in if you want to stay in the global trade business"version: 1.0.0client:  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: 256channels:    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----- 
" 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.126orderers: 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.126peers: 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 请注明“读者”

 

 

转载于:https://my.oschina.net/neochen/blog/1859169

你可能感兴趣的文章
[原][osgEarth]添加自由飞行漫游器
查看>>
代码审查 Code Review
查看>>
fastjson如何指定字段不序列化
查看>>
[日常] Go语言圣经--示例: 并发的Echo服务
查看>>
BZOJ1969: [Ahoi2005]LANE 航线规划(LCT)
查看>>
linux内存管理之malloc、vmalloc、kmalloc的区别
查看>>
GreenDao 数据库升级 连接多个DB文件 或者指定不同的model&dao目录
查看>>
M1卡破解(自从学校升级系统之后,还准备在研究下)【转】
查看>>
vue 访问子组件示例 或者子元素
查看>>
linux内核--自旋锁的理解
查看>>
银行卡的三个磁道
查看>>
OpenSSL 提取 pfx 数字证书公钥与私钥
查看>>
Keepalived详解(四):通过vrrp_script实现对集群资源的监控【转】
查看>>
CollapsingToolbarLayoutDemo【可折叠式标题栏,顺便带有CardView卡片式布局】
查看>>
CentOS7.4安装配置mysql5.7 TAR免安装版
查看>>
解决IE二级链接无法打开故障
查看>>
Windows phone应用开发[16]-数据加密
查看>>
SQL Server 迁移数据到MySQL
查看>>
通用数据压缩算法简介
查看>>
The next Industry Standard in IT Monitoring, a python implementation Nagios like tool --- Shinken
查看>>