zoukankan      html  css  js  c++  java
  • 一文读懂区块链的分叉

           对于链圈的朋友来说,区块链既熟悉又陌生,熟悉的是我们几乎每天都可以看到区块链的新闻、每天听到周围的人谈论区块链,陌生的是对于区块链的一些技术性的东西甚至术语,完全不知道或完全不懂,本文和大家分享的就是区块链常见术语至分叉。

      以比特币区块链为例,平均每10分钟可以产生一个新区块。

      但是要注意,这里有一个词平均,这个词就代表:有可能100分钟产生一个,也有可能同时产生好几个。

      我们用个简单的图来说明一下:

      图中ABC区块是顺序产生的,但是在C区块之后同时产生了DE2个区块:

      DE新区块会分别向自己临近的区块广播:我是新生成的区块呀!快把我记录进去呀!并且会分别在此基础上开始生成新的区块:

      很快,就会有一个区块N先后收到DE的广播,发现DE拥有同样的时间戳,那么区块N就会判断,选择其中一个为有效区块,另外一个为无效区块。

      那么判断的依据是什么呢?

      就是链的长度。

      此时D区块的基础上已经产生了3个新区块,但是E区块基础上只产生了1个新区块,此时区块N就会向其他节点广播:“DE虽然是同时生成的,但是D基础上的链更长,所以D有效E无效。

      结果就是区块D和它基础上的3个新区块继续存在,E和它基础上的1个新区块被放弃。

      同时产生2个新区块的状况,就叫做分叉

      在上面的例子中,区块链的节点都认可D而放弃EE和它基础上的1个新区块存在了一段时间又消失。这种可以消除的临时分叉,就叫做软分叉

      但是如果有一些节点即便是知道D基础上的新区块更多、链更长,依旧以法律道德的各种名义号召大家认可E和它基础上的1个新区块,一旦得到响应,那么E区块所在的链就会发展壮大起来,不再消失。这种固定分叉,就叫做硬分叉

       原文链接:https://www.kg.com/article/486194716954726400

  • 相关阅读:
    Cents 7 Kubernetes
    Docker registry
    centos 7 安装 docker
    ToList()所带来的性能影响
    C#之Linq、where()、FindAll()的区别
    2.2 数据库高速缓冲区
    ORACLE之autotrace使用
    spring.net简介
    初识批处理
    TIBCO Rendezvous — 技术介绍
  • 原文地址:https://www.cnblogs.com/gaobig/p/9579705.html
Copyright © 2011-2022 走看看