区块链Baas平台纳管实战

区块链Baas平台纳管实战因此 成熟的 BaaS 平台不仅需要具备低门槛快速建链及运维管控的能力 还要具备对已运行的异构链纳入 BaaS 平台进行统一管控的能力 下文中我们将之称为 纳管 如此一来便可以适配更多企业需求 帮助企业实现全量区块链业务的统一管控 降本增效 统一管控 可以摆脱 IT 网络环境的限制 对已在运行的异构联盟链进行不侵入式的远程纳管 从而实现无论已运行一段时间的联盟链还是 BaaS 自建的联盟链 均可以在同一平台进行统一管控和监控 挑战 2 对于非 BaaS 平台内创建的链 能不能也纳入管理

前言

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

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

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 df8d2a 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 8ffb95 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 a 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 0e 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 
docker exec -it cli bash root@9eb54593a015:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode list --installed 
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//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的纳管功能通过纳管链驱动实现,具有以下两大优势:

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225110.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午10:05
下一篇 2026年3月17日 上午10:05


相关推荐

  • SpringBoot——ResponseBody

    SpringBoot——ResponseBody很多情况下我们希望后端的调用结果能直接写入Http的响应体中以供前端获取来更新页面显示,此时需要我们在以@controller为注解的类中对相应方法加上@ResponseBody注解:@ControllerclassHelloWorldController{@RequestMapping(“/hello”)@ResponseBodypublicStringhello(){return”HelloWorld!”;}}我们也可

    2022年5月28日
    41
  • Nano-Banana保姆级教程:从上传参考图到AI生成结构图的端到端流程

    Nano-Banana保姆级教程:从上传参考图到AI生成结构图的端到端流程

    2026年3月13日
    2
  • 计算机机房整改工作报告,机房整改总结.doc

    计算机机房整改工作报告,机房整改总结.docXX机房整改方案目录一、XX站整改项目说明3二、XX站整改项目目标3三、项目实施要求41、可靠性:42、环境保护:43、灵活性:44、安全性:4四、施工方案简述4第一部分机房工程方案4第二部分:机房装修设计及施工方案6第三部分机房外缆整改及设备支座制作8五、机房综合工程设计标准10六、效果图11XX站整改项目说明本次XX站机房整改项目主要涉及XXX二楼机房、话务机房、电源机房等机房的整体维护。…

    2022年5月25日
    29
  • Java——图书借阅系统「建议收藏」

    **项目需求:**为图书阅览室开发一个图书借阅系统,最多可存50本书,实现图书的管理。图书借阅系统具备以下功能:1.查看图书信息菜单选择查看功能,展示当前所有图书的相关信息,效果如下。case2: System.out.println(“—>查看图书”); System.out.println(“序号\t状态\t名称\t\t借出日期”); for(…

    2022年4月18日
    115
  • 让ASMX支持Json格式的返回数据「建议收藏」

    让ASMX支持Json格式的返回数据「建议收藏」默认情况下,ASMX的Web服务返回soap格式的数据ajax调用一般使用Json格式的数据。要支持Json格式的数据返回值,可以取消Web服务类前面的ScriptService注释。这样,该Web服务就可以支持ajax调用,参数和返回类型都是Json格式了。但是,如果你在浏览器中测试该Web服务,会发现返回的仍然是xml格式的。这是因为Web服务会自动根据请求的数据类型返回不同的数据格…

    2022年5月25日
    37
  • iptables中DNAT、SNAT和MASQUERADE[通俗易懂]

    iptables中DNAT、SNAT和MASQUERADE[通俗易懂]DNAT(DestinationNetworkAddressTranslation,目的地址转换)通常被叫做目的映射,SNAT(SourceNetworkAddressTranslation,源地址转换)通常被叫做源映射。这是我们在设置Linux网关或者防火墙时经常要用来的两种方式,要理解iptables中DNAT、SNAT和MASQUERADE,我们要先了解一…

    2022年6月23日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号