美文网首页
比特币才1M,EOS竟然无上限!

比特币才1M,EOS竟然无上限!

作者: lancexia | 来源:发表于2018-04-01 19:40 被阅读138次

    众所周知,比特币区块交易容量是1M,在经过去年的去除隔离见证后,单个区块能承载的交易数量稍稍增多,但最多也不会超过7条交易。

    接下来,我讲告诉大家,EOS区块能承载多少交易

    接下来是技术部分,对技术无感的同学,可以跳过看最后总结部分

    EOS数据结构

    在开始介绍EOS前,我们先回顾下EOS的数据结构和一些核心设计,EOS单个区块内一共有六层,层层嵌套分别为:

    Block  Cycles (sequential)   

      Threads/Shards (parallel)     

        Transactions (sequential)         

            Messages (sequential)             

              Receiver and Notified Accounts (parallel)

    对比于比特币矿工猜nonce,猜对后才获得记账权。EOS采用DPOS机制,再这一轮记账时,我们已经知道下一轮是谁来记账。那么在记账时矿工/节点在做什么呢?

    BTC/EOS打包方式

    比特币矿工在获得记账权后,将会把mempool中待打包且矿工费较高的交易打包进区块,经过十分钟广播,大家取得共识承认这一区块,这轮打包就结束了。不同于比特币打包方式,EOS节点在轮到自己的打包时间时,他们也会开始打包,但方式完全不同。

    1.首先EOS中每个块生产者在自己的time slot中是批量生产多个块的(目前为6个)

    2.块生产者可以在他的当前块中,生产多个Cycle

    3.BlockProducer在打包Cycle的时候,可以利用多core资源进行并行打包

    4.Cycle生成完会立刻异步广播出去

    5.time slot结束 停止打包,转移到下一个生产者

    EOS打包过程详解

    我们详细分析下上述流程,首先区块生产者在自己的time slot(这个概念可以简单理解为,生产者的打包时间窗)内,可以打很多个包,当前看最多6个包。

    在打一个包的过程中,会来到第二层cycle,Block被分割成多个cycle,为了让速度更快,每隔cycle如同区块一般也是前后依赖,如同区块链中的区块链,在完成一个cycle后立刻异步广播到整个网络,提升了消息交互的效率,而不需要等完整的block。

    在每个cycle打包的同时,可以利用多个core进行并行打包,加快效率。

    最后每个Cycle生成完会立刻异步广播到全网络。单个区块的时间到后cycle结束,跳转到下一个区块开始下一轮区块的cycle

    time slot结束后,停止打包所有的交易已经上传到网络,打包权利转移到下一个区块生产者。下一位重复同样的动作,新的循环开始。

    EOS打包总结

    最后我们来总结对比下比特币和EOS打包,比特币矿工寻找nonce,确认是自己后把需要打包的交易打包进区块,然后全网广播,等待大约十分钟时间开始下一轮重复。

    EOS节点在接收到一笔交易后,立刻装进cycle,分发到全网异步广播,每时每刻都可以往区块里装交易,唯一限制是打包区块的时间,换言之理论上EOS单个区块没有上限,想装多少交易都可以,但是受限于单个区块的打包时间,所以并不能承载无限交易量,在这个节点的打包时间窗结束后,立刻切换到下一个节点重复同样动作。

    现在EOS网络还只是单core,BM前段时间称现在能到达的TPS是1000左右,相信有如此高的性能和扩展性,在未来百万TPS将不是不可实现的梦。

    相关文章

      网友评论

          本文标题:比特币才1M,EOS竟然无上限!

          本文链接:https://www.haomeiwen.com/subject/yfuacftx.html