·闲聊“分叉”(fork)、“叉分”与“差分”steemCreated with Sketch.

in #cn5 years ago

064CC966-F942-4833-A5A6-644D5B74AA74.jpeg
图.镂空叉分裤


区块链软件升级形式不同于传统软件的升级。一个分布式共识系统的升级是非常困难的,需要协调好所有的系统参与者。这就是区块链技术“去中心化”的核心思想特征体现——社区民主化。

每次升级可能会伴随着区块链的共识规则改变,这会导致整个网络中,升级了软件的节点与未升级软件的节点运行在不同的规则下,于是分叉就产生了。

区块链分叉有硬分叉和软分叉。


分叉

硬分叉
如果区块链软件的共识规则被改变了,并且这种规则改变无法再向前兼容,而部分旧节点又无法认可新节点产生的区块,此即为硬分叉。
2C73A5F8-173F-46BB-892C-DD2E5A281EA5.png
这时候旧节点会拒绝新规则的区块,于是新节点和旧节点会开始在不同的区块链上运行(如挖矿、交易、验证等)。由于区块链上的新旧节点可能会长期存在,这种分叉也可能会长期持续下去,如下图所示。
EC2CF7B1-300B-49CC-A498-B7DE802E49BB.png
图.硬分叉示例

这时候,区块链即发生了硬分叉,新旧矿工将在各自的区块链上进行挖矿,他们的去留将决定两条链的生死和价值。

在没有得到几乎所有生态中的参与者都同意的情况下,硬分叉很可能会分裂整个区块链生态,所以这是一种极具争议和危险的区块链升级技术。例如,整个比特币社区对于硬分叉非常谨慎,到目前为止,比特币一共发生过两次软件升级造成的硬分叉,但都是意外情况(软件BUG)所引起,最终矿工们又通过回退或全体升级达成了一致,使事态影响没有扩大。

软分叉
如果区块链的共识规则改变后,这种改变仍然是向前兼容的,旧节点可以兼容新节点产生的区块,此即为软分叉。
337C00B4-D90C-4B2C-BF1F-4CD9989675B0.png
软分叉提供了一种逐步升级区块链软件的方式。软分叉刚开始并不会产生两条区块链。因为新规则下产生的块会被旧节点接受,旧节点只是无法识别新规则下的真实意义。所以新旧节点仍然处于同一条区块链上,它对整个系统的影响也就较小。

软分叉相比硬分叉“温和”了不少,但由于软分叉必须向前兼容,也就是说不能增加新字段,只能在已有结构下做修改,所以升级空间有限。因此,会存在一定的局限性。

软分叉可能存在隐性缺陷。软分叉相比硬分叉技术实现要复杂很多,会使区块链的代码变得越来越复杂,这不利于未来的代码维护,也更容易出现隐性缺陷(BUG)。

软分叉易在各节点还会出现验证放松现象。未升级的节点或客户端视新规则下的区块为有效,但是他们对新规则并不进行验证,对于旧节点而言它不再能做完整的验证,似乎有悖去中心化的理念。

软分叉也是不可逆转的。硬分叉通常是扩展共识规则,而软分叉是收紧共识规则,所以一旦进行了软分叉,想要回退就非常困难了,很可能最终造成硬分叉,从而导致系统性的记账损失。


叉分

叉分描述一种事物的固定形态。

叉分,在生物界有一种叉分粘滑藻,藻体扁压,5~10cm高,基部具小盘状固着器,上具较细的很短的柄,向上扩展成5~10次叉状分枝;紫红色,体内部充满粘液。生长在潮下带岩石上。
7E450660-E5D6-4729-9711-86442C261B3E.jpeg
图.叉分粘滑藻

叉分粘滑藻的细部特征是,藻体内部构造,髓部由疏松的网状星形细胞组成,臂部径6~10μm,皮层由2~3层细胞组成,圆至卵圆形,排列紧密。叉分粘滑藻的生殖器官未见到。

粘滑藻的的形态是一种二叉分枝。二叉分枝是指顶端的分生组织平分成两半,各形成一个分枝,以此方式重复产生次级分枝,从而形成二叉状分枝系统。这是一种原始的分枝方式,在高等植物中见于苔类的地钱、蕨类植物的石松等。

形容词有“二叉分的”(dichotomous)。


差分

差分是数学术语。

差分,又名差分函数或差分运算,差分的结果反映了离散量之间的一种变化,是研究离散数学的一种工具,常用函数差近似导数。差分在数学、物理和信息学中应用很广泛。例如,模拟电路中有差分放大电路。

是研究离散数学的一种工具。它将原函数f(x) 映射到 f(x+a)-f(x+b) 。差分运算,相应于微分运算,是微积分中重要的一个概念。

差分对应离散,微分对应连续。差分又分为前向差分、向后差分及中心差分三种。
05DEA21D-9EF5-4201-BF70-24E7FF2EE52E.jpeg

CD677C44-62E8-4E21-A895-1BD43846DA1C.jpeg

BA427C71-35C4-4B74-84D3-897EA5D4D230.jpeg

CF1A0034-D4BC-4850-B6E7-AEDCE80522E1.jpeg

数据结构体系里有差分编码、帧间差分等方法。

链接🔗
☞⇲Steem HF20 是一次“肠梗阻”的软件升级运动! 杂说分叉(Fork)的原理及方法
☞⇲Steem 割接囧在途中


Steem,司递梦!
Steemian,司梦人!梦友。
Newsteemian,新司梦人!新梦友。
九丰庄主,RS47.2018-10-24

Sort:  

@minloulou给您叫了一份外卖!

@cherryzz 阿紫 迎着台风 开着宝马给您送来
珍珠奶茶

如果您对我的服务满意,请不要吝啬您的点赞~

Coin Marketplace

STEEM 0.24
TRX 0.11
JST 0.032
BTC 61482.47
ETH 2990.09
USDT 1.00
SBD 3.67