• BUMO 多链惊艳亮相 分层扩容突破“不可能三角”


     

    近日,BUMO 发布Oribts多链技术MVP版本,该技术可大幅提高公链的扩展性和性能并突破“不可能三角”,所谓的区块链“不可能三角”,也称为“三元悖论”,就是指区块链网络无论采用哪种共识机制来决定新区块的生成方式,皆无法同时兼顾扩展性(Scability)、安全性(Security)、去中心(Decentralization)这三项要求,至多只能三者取其二。

    (不可能三角示意图)

    BUMO发布的Oribts对用户十分友好,用户只需要填写几个关键参数,即可便捷灵活的创建一条安全可靠的BUMO子链。实际测试中,BUMO创建3000条子链,TPS可突破百万,其性能和扩展性已经处于全球领先水平。

    BUMO Orbits架构图)

    BUMO Orbits在提升扩展性的同时,还可极大提升公链的性能。BUMO多链依据网络ID将主链扩展至多个子链,每一个子链只需要运行该子链的共识协议,网络上的交易可以分散到子链中来进行处理。因此子链越多,就有越多的交易同时被处理和验证。通过这种平行处理的方式,将大任务拆分成多个可并行处理小任务,BUMO多链有效提升整体网络性能。

    BUMO多链除了实现性能和可扩展性的提升,也在其它很多方面取得了很多技术突破:a、共识方面采用多链隔离共识的方式,有效避免不同链共识相互影响。

    b、P2P通信方面对Gossip协议进行了有效的改进,大幅度减少了不同链之间的消息冗余。

    c、节点方面提出了观察者角色,观察能够准确的识别子链节点做恶,有效的提升了子链的安全。

    d、激励机制,主链验证节点不仅可以去参与主链的的挖矿也能去子链挖矿,这样验证节点不仅可以获得主链的奖励也可以获得子链的收益。

    目前主流的扩容技术方案按照层次分可以分成3层:

     

    (扩容分层图)

    Layer 0:该层也叫数据传输层可扩展方案,主要解决优化网络传输速度,减少网络延时。目前有BDN分发、组播锁定组、QUIC UDP 协议等。

    Layer 1:这层主要是对链本身做改变,主要是通过网络层、数据层、共识层去改变链本身的特性,目前在这层的技术有隔离见证、分片、DAG等技术。

    Layer 2:Layer2也叫链下扩展,构建在BUMO主链上。它们不要求对基层协议的更改,相反的,它们只是以BUMO智能合约的形式存在,与链下软件进行交互。目前的解决方案有状态通道、主子链技术、侧链等。

    BUMO对以上三层扩容技术方案都经过深入的研究,最终采用Layer2主子链技术。原因在于:Layer0 可以很好的改善网络传输问题,但是对于公链的tps来说改变的只是微小甚微。Layer1 的分片和DAG的方式需要对公链底层做大修改,会带来很多潜在的问题,目前来看分片和DAG等技术虽然也有很多项目,到现在为止大部分还处于研究阶段,能够上poc测试的用例都还没有,还不太成熟。Layer2,BUMO为什么选择主子链技术不选状态通道呢?由于状态通道过于中心化,安全性还得不到太多保障。

    经过上述的研究和考量,bumo多链有以下特性:

    安全性高:子链的安全可以借助于主链安全得到保证,子链不要部署很多节点,这样不仅提升了安全也节约了资源。

    扩展性高:理论上可以无限扩展子链,且每条子链都是一个独立的生态系统,通过BU关联,具有极强扩展性。

    性能高:子链扩展后独立执行,且相互之间性能不会影响,性能成线性增长。

    按照互联网正常带宽中位数13Mbps为例,子链构成每笔交易实际大小为0.5k,则一个区块打包一万笔交易大小为5MB,理论吞吐量极限最大值为31200TPS(10000TPS × 13Mbps / 5Mb × 10s),实际测量的情况可以由下图反应,当子链的条数挂载20条的时候tps达到了66532,挂载300条子链的时候达到了904256,一直到挂载3000条子链的时候达到了峰值9398623,达到3000后再增加链的条数tps反而有所下降。从下图测试数据可以说明我们的子链挂载条数在3000这个极值范围,TPS大概能够突破900万,超过3000条子链整个网络就不会太稳定。

     

    隔离性:对于不同的业务场景可以构建不同子链,有效对不同数据进行了隔离。如果子链出现了问题也不会影响其它子链的运行。

     

    三、如何搭建一条属于自己的子链

    BUMO多链具备上述这么多优势,相信会有非常多开发者想尝试构建一条自己的子链,以下就为BUMO开发者提供构建子链的方式。

    BUMO上搭建子链非常简单便捷,开发者需要在主链上进行注册,缴纳消费金(一定数量的BU,用于子链向主链提交区块头信息所消耗的手续费),并把自己的子链节点加入到主链,这样就构建了一条子链。

    (开发者自主搭建子链示意图)

    上述是对BUMO多链技术的简单介绍,如果想要详细了解BUMO多链提供的功能,欢迎去Demo演示环境(地址:https://multichain.bumo.io/)体验。假如你是开发者,对区块链技术有非常深的理解,欢迎研究我们多链源码(地址:https://github.com/bumoproject/bumo/tree/feature/multichain)。

     

  • 相关阅读:
    iOS __weak学习碰到的疑问
    Shiro整合SSH开发3:配置Shiro认证后页面地址跳转问题(和详述不配置须要注意的问题)
    Android Hawk数据库 github开源项目
    2015小米暑期实习笔试题_风口的猪-中国牛市(dp)
    opencv源代码之中的一个:cvboost.cpp
    regAsm的历史问题
    Spark核心概念理解
    linux的fork()函数具体解释 子进程复制父进程什么
    java8 Optional使用总结
    maven 项目报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)解决
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13313653.html
Copyright © 2020-2023  润新知