IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 区块链Baas平台纳管实战 -> 正文阅读

[区块链]区块链Baas平台纳管实战

前言

在区块链产业应用落地的过程中,我们发现企业在搭建专业的区块链Baas平台之前,往往已经试水区块链相关业务。因此,成熟的BaaS平台不仅需要具备低门槛快速建链及运维管控的能力,还要具备对已运行的异构链纳入BaaS平台进行统一管控的能力(下文中我们将之称为“纳管”),如此一来便可以适配更多企业需求,帮助企业实现全量区块链业务的统一管控,降本增效。

当前,市场上存在多种异构链,若逐一定制非常耗时且浪费人力成本,本文我们将介绍一套统一的异构链纳管方案,能灵活兼容由于节点部署环境、区块链底层架构不同导致的纳管流程差异。

原文链接:https://mp.weixin.qq.com/s/Cat_VvmErga8y7fzkX1ESw
关注公众号:QTech 查看更多区块链干货!

BaaS市场现状分析
对于BaaS平台而言,其核心能力之一就是支持通过BaaS界面进行可视化创建联盟链并对平台创建的联盟链进行管控。因此,有两个显然易见的挑战:

挑战1)如何灵活支持当前市场上繁多的区块链底层?
挑战2)对于非BaaS平台内创建的链,能不能也纳入管理?

对于挑战1,目前多数主流的BaaS平台的公开资料中均介绍其支持多种区块链底层,但是对于挑战2而言,较少能找到相关介绍。考虑到不同区块链底层采用不同的SDK,趣链BaaS采用纳管的解决方案,该方案力求在最大化降低用户手动配置的前提下:

  1. 实现异构链的统一管控,节点状态的统一监控
  2. 实现新区块链底层的快速接入
  3. 实现对非BaaS平台创建的联盟链进行可视化合约部署等上链操作

为了实现上述目标,方案设计中,用户只需要完成以下两步核心操作,即:

  1. 获取需要纳管的链的必备参数
  2. 在BaaS平台内填写参数,让BaaS远程纳管
    在这里插入图片描述
    显然,如何辨析哪些是纳管节点必须的参数、证书是技术关键点。

BaaS纳管实战分享
这里我们以开源的联盟链Hyperledger Fabric 1.4.3版本为例,下载示例网络代码,使用fabric-samples启动etcdraft 的联盟链网络,网络包含了order组织和两个peer组织,同时创建了通道名为mychannel的通道,并在该通道上实例化了一份模版合约。

下载安装脚本

curl -sSL http://bit.ly/2ysbOFE | bash -s
cd fabric-samples

生成创世区块以及证书

./byfn.sh generate -c mychannel -o etcdraft

启动一个etcdraft fabric网络

./byfn.sh up -c mychannel -s couchdb -i 1.4.3 -o etcdraft

执行完命令后观察节点、链码等容器的状态

docker ps -a --format  "table {{.ID}}\t{{.Names}}\t{{.State}}\t{{.Ports}}" --filter 'network=net_byfn'

输出

CONTAINER ID   NAMES                                 STATE     PORTS
7864ea1de74e   dev-peer1.org2.example.com-mycc-1.0   running
8f5369adb15f   dev-peer0.org1.example.com-mycc-1.0   running
f24641b1f90a   dev-peer0.org2.example.com-mycc-1.0   running
9eb54593a015   cli                                   running
988c9fe43ff7   peer1.org2.example.com                running   0.0.0.0:10051->10051/tcp, :::10051->10051/tcp
0cb1534f83df   peer0.org2.example.com                running   0.0.0.0:9051->9051/tcp, :::9051->9051/tcp
d464795f8d2a   peer1.org1.example.com                running   0.0.0.0:8051->8051/tcp, :::8051->8051/tcp
f93a1f3e8007   peer0.org1.example.com                running   0.0.0.0:7051->7051/tcp, :::7051->7051/tcp
8ff360706b95   couchdb3                              running   4369/tcp, 9100/tcp, 0.0.0.0:8984->5984/tcp, :::8984->5984/tcp
b2a1f7ba8373   couchdb2                              running   4369/tcp, 9100/tcp, 0.0.0.0:7984->5984/tcp, :::7984->5984/tcp
91676897315a   couchdb0                              running   4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp, :::5984->5984/tcp
780a6c77a83d   couchdb1                              running   4369/tcp, 9100/tcp, 0.0.0.0:6984->5984/tcp, :::6984->5984/tcp
8c9d6b499b5a   orderer5.example.com                  running   0.0.0.0:11050->7050/tcp, :::11050->7050/tcp
00096c1dbb30   orderer.example.com                   running   0.0.0.0:7050->7050/tcp, :::7050->7050/tcp
a3bff8b0016d   orderer3.example.com                  running   0.0.0.0:9050->7050/tcp, :::9050->7050/tcp
03436564055e   orderer2.example.com                  running   0.0.0.0:8050->7050/tcp, :::8050->7050/tcp
544e624a88dd   orderer4.example.com                  running   0.0.0.0:10050->7050/tcp, :::10050->7050/tcp

在执行完命令后,会生成fabric-samples/first-network/crypto-config目录,其中包含了order组织以及peer组织的证书信息

cd fabric-samples/first-network/crypto-config && tree -d -L 2

输出

.
|-- ordererOrganizations
|   `-- example.com
`-- peerOrganizations
    |-- org1.example.com
    `-- org2.example.com

5 directories

其中每个组织下的目录信息如下:
在这里插入图片描述
网络中所启动cli容器可以与各个peer节点进行交互

docker exec -it cli bash
root@9eb54593a015:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --installed

Get installed chaincodes on peer:
Name: mycc, Version: 1.0, Path: github.com/chaincode/chaincode_example02/go/, Id: 476fca1a949274001971f1ec2836cb09321f0b71268b3762d68931c93f218134

root@9eb54593a015:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel list

2022-08-08 05:59:31.487 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized

Channels peers has joined:

mychannel

并且通过docker-compose-cli.yaml所启动的cli容器所设置的环境变量可以看出,为了与peer节点进行交互操作,我们需要知道节点所在组织的MSPID,组织下用户的msp目录下证书以及开启tls时对应的证书。

cli:
    container_name: cli
    image: hyperledger/fabric-tools:$IMAGE_TAG
    tty: true
    stdin_open: true
    environment:
      - SYS_CHANNEL=$SYS_CHANNEL
      - GOPATH=/opt/gopath
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      #- FABRIC_LOGGING_SPEC=DEBUG
      - FABRIC_LOGGING_SPEC=INFO
      - CORE_PEER_ID=cli
      - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
      - CORE_PEER_LOCALMSPID=Org1MSP
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
      - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: /bin/bash
    volumes:
        - /var/run/:/host/var/run/
        - ./../chaincode/:/opt/gopath/src/github.com/chaincode
        - ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/
        - ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/
        - ./channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts

在明确我们需要的证书信息后,我们再通过BaaS进行纳管,趣链BaaS对Fabric的纳管处理如下图所示:
在这里插入图片描述
用户将Fabric下所要纳管peer或者orderer节点的证书信息打包上传,同时输入节点的通信地址等参数,BaaS对用户上传的证书文件进行解析,与节点成功进行连接后获取节点的区块、合约、通道等信息,完成纳管。之后再通过BaaS对纳管链进行智能合约的相关操作,同时可以在区块链浏览器观察到该链的交易、区块信息等。

另一方面,纳管功能的实现是:

通过可插拔的纳管驱动实现,对于不同的异构链例如以太坊,我们可以通过不同的纳管驱动实现对其纳管。

BaaS纳管实战优势

趣链BaaS的纳管功能通过纳管链驱动实现,具有以下两大优势:

统一管控:可以摆脱IT、网络环境的限制,对已在运行的异构联盟链进行不侵入式的远程纳管,从而实现无论已运行一段时间的联盟链还是BaaS自建的联盟链,均可以在同一平台进行统一管控和监控。

快速接入:纳管功能是由纳管驱动实现,对接异构链时,无需适配,只需要切换不同的纳管驱动就可以快速实现不同区块链底层的接入。

区块链的稳定运行是链上业务的基础,随着区块链应用场景的丰富,对于多数传统企业而言,依靠招聘专业区块链人才,直接通过命令行等方式进行联盟链节点增删运维、智能合约部署管理、链上数据查询等操作并不现实。
为此,针对在购买BaaS产品前已经投产运行联盟链的企业,趣链BaaS通过纳管功能,帮助其将非BaaS内的联盟链纳入平台内统一管控,全面助力区块链技术落地。

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:11:13  更:2022-08-19 19:11:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 3:42:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计