zoukankan      html  css  js  c++  java
  • 关于bumo的orbit采用网络分片的设计构想

    目前来说关于分片的技术很多,比如基于交易、网络、存储等分片技术。其实今天要谈和讨论的是对交易按照一点规则进行分组,最后选择不同的分区网络进行共识并行处理,最终对这些分区网络进行并行处理的交易合并为一个大块,最终更新的账本中,在讲这个设计前先要介绍几个关于本篇文章的术语。

    术语:

    验证节点:验证分区网络中的交易和共识。
    节点:这里提的节点和验证节点有一些不同,只是针对存储来说的,验证节点也属于节点,节点要存储整个全网的区块。
    选举委员会:选举会员会的作用是,普通节点想成为验证节点,在这个过程中做一些验证。
    VMCC:节点和交易管理合约,有新的交易和新的验证节点加入进来,都会触发VMCC合约,VMCC的任务是分发交易和为验证节点选择分区网络。
    DS块:为所有网络分区交易合并成的块。

    网络架构图:

    image.png


    处理流程:

    第一步:交押金,申请成为一个候选节点,现在bumo规定成为候选节点的押金数目为50000BU,成为候选节点的过程处理时间可能是一个1h,也可能是一天。

    第二步:候选节点经过选举委员会选举成为一个合格的验证节点,选举会员把验证节点名单推送到VMCC合约,VMCC按照随机洗牌的方式对VMCC选择分区网络,这里的随机并没有随机函数。

    第三步:交易提案经过VMCC,VMCC按照提交交易的账户地址前10位对交易进行分片处理,不同的交易,最终推送到不同的分区网络。

    第四步:各个分区网络并行处理交易,不同的网络进行我们平时日常用的多核计算机一样,一个网络表示一个核,这样多核下能有效提高吞吐量。
    第五步:合并成一个大块,分区网络处理完交易后最终会把所有交易推送到一个消息队列中,在这个消息队列中打包成一个大的块,最终更新到各个节点的账本中。

    最后:验证节点因为各种原因退出验证节点,为了让验证节点对它以前处理的交易负责任,退出验证节点,在4个月之后才能获得自己保证金和奖励。

    总结:这个设计的好处能比常规的区块链网络的吞吐量大很多,但是特别依赖于单机的处理能力;比状态分片好处是不用去跨分片去处理交易。要解决的问题是由于随着分区网络的增多,存储的速度赶不上网络的处理速度,采用MVCC机制。

    大概介绍到这里,各位对这个设计有什么疑问请在下方留言。这个只是我的初步一个设计构想,这种方式也是目前比较简单的设计方式。

    BTC钱包地址:3DBVvAdAdmUEpxyfeEXT8s77QVNtCVcAQt
    ETH钱包地址:0xc2ee48e1c0b2993413ead7aaf274669954f50fbf
    bu钱包地址:buQc1xgKuvtUpAEUP4szYPEkSh3ENh8pBm1a

  • 相关阅读:
    【转】Oracle 建立索引及SQL优化
    SQL Server Express LocalDB 存入中文产生乱码问题
    安装(c)npm及搭建Vue项目详解
    【转】VSCode 调试 Node.js 介绍
    【转】C#根据用户信息,生成token和cookie的方法
    远程连接 Docker 的 MySQL 服务
    mysql服务器和服务器启动程序
    一台物理机上运行多个mysql实例(Running Multiple MySQL Instances on One Machine)
    mysql5.7主从切换(master/slave switchover)
    选项文件(Option Files)/配置文件(Configuration Files)的使用
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13313186.html
Copyright © 2011-2022 走看看