Qitmeer Network 周报(2020/8/24-2020/8/30)

每周一聊

区块链之软、硬分叉

分叉这个词,我想在区块链世界游走的人肯定都不陌生。由于 Qitmeer Medina Network 即将进行的第二次重大升级,本质上来说是一次软分叉升级,为避免误解,我们再来重温一下区块链软、硬分叉的概念。

不管是比特币,还是其他的区块链,其本质都是一套软件,对软件代码进行修改升级就经常会涉及到两个概念,一个叫硬分叉,一个叫软分叉。

硬分叉是指当区块链代码发生改变后旧节点拒绝接受由新节点创建的区块,不符合原规则的区块将会被忽略,矿工会按照原规则在他们最后验证的区块之后创建新的区块,区块链领域最有名的硬分叉案例,便是“以太坊”分叉,那次分叉的结果便是诞生了 ETC(以太经典)和 ETH(现在的以太坊)。

另一个硬分叉著名案例,2017年8月,为解决比特币交易拥堵、手续费奇高等问题,比特币核心开发团队bitcoincore提出“隔离见证 + 闪电网络”的扩容方案,但另一派则认为应该直接在链上扩容,支持大区块(将区块大小提升至8M)。由于扩容方案理念不一致,于是在UTC时间2017年8月1号,位于比特币区块高度478558,比特币网络发生了"分叉",比特币区块链分裂为BTC以及比特币现金BCH两条链。

hard-fork

硬分叉是不向前兼容的旧版本不会接受新版本创建的合法区块,认为新版本的合法区块是不合法的。要实现硬分叉所有的用户(矿工,交易所,普通用户)都要切换到新的协议版本上。如若不然,就会分手成两条链。

而软分叉是指区块链代码发生改变后,旧的节点并不会感知到区块链代码发生改变,并继续接受由新节点创建的区块,矿工们可能会在他们完全没有理解或验证过的区块上进行工作,软分叉新旧节点双方始终都工作在同一条链上

soft-fork

软分叉是向前兼容的。软分叉的新的规则是以前旧规则的子集,所有被新版本认为是合法的区块也会被以前旧版本认为是合法的。旧版本会接受新版本创建的区块。新版本和旧版本是兼容的。

如果有至少51%的矿工的算力转向的新版本,那么网络自动完成软分叉:一开始旧版本创建的区块在新协议下被认为是不合法的,这时会出现一个短暂的分叉,但最终新版本的分叉会赶超旧版本的分叉成为最长链。因为在旧版本上的算力是小于新版本的。

但是如果小于51%的矿工算力转向新版本,那么软分叉将不会出现,因为旧版本比新版本有更多的算力支持,同时旧版本不兼容新版本。

总结:

软分叉向前兼容,旧的版本会接受新版本创建的区块,在软分叉中只需要矿工升级到新版本即可,用户可以继续使用旧版本的协议,他们仍然会接受新版本协议创建的区块。

软分叉始终保持一条链,没有分成两条链的风险。软分叉不要求所有节点同一时间升级,允许逐步升级,且并不影响软分叉过程中的系统稳定性和有效性。对于矿工而言不需要更新升级矿机等硬件设备即可继续挖矿。

硬分叉不向前兼容,旧版本不会接受新版本创建的区块。要实现硬分叉所有用户都需要切换到新版本协议上。于区块链本身而言,硬分叉可以给区块链更多实践探索的可能性,进而促进软硬件技术的升级优化。

毫无疑问,分叉会给社区造成一种不稳定性。但没有天生完美的技术,区块链也不例外,技术的发展如果在发生错误时都不可控,那这种技术就无法做到普世,人们对它的信任度也无法提升。因此在软件技术发展的过程中,这种升级有时候又是必要的。

以上文中观点,纯属社区个人观点,如有不当,请指正。

qitmeertalk.org 时刻欢迎您来聊)


Qitmeer Network 周报

新闻动态

  • Qitmeer Medina Network 将于“主链高度238522”进行软分叉升级,时间约为2020年9月15日中午12时左右开始,升级后完成后,网络将仅支持Qitmeer-keccak256算法挖矿,升级后的节点版本为 qitmeer-0.9.2,最新版本 qitmeer version 0.9.2+release-7478571 (Go version go1.15) 已发布,各节点维护者可于GitHub下载并更新节点版本。

    最新节点下载:https://github.com/Qitmeer/qitmeer/releases/tag/v0.9.2-release

社区治理动态

项目技术进展

底层核心代码更新

基础产品及开发工具更新

  • Qitmeer-wallet API 整理与更新,个别用户长时间运行console出现崩溃现象的问题排查。

  • Kahf 钱包 APP 进行了优化升级,提高了APP下载速度。

    kahf 钱包下载:https://www.kahf.io/


Qitmeer Network Development Report

News

  • Qitmeer Medina Network will upgrade with soft fork at at MainHeight 238522 approximately at 12:00 noon on September 15, 2020. After the upgrade is complete, the network will only support the Qitmeer-keccak256 algorithm for mining, and the upgraded node version is qitmeer-0.9.2, the latest node version qitmeer version 0.9.2+release-7478571 (Go version go1.15) has been released, the node maintainer can download the latest node version on GitHub and update.

    Download the latest node here: https://github.com/Qitmeer/qitmeer/releases/tag/v0.9.2-release

Community Governance

Project Development Progress

Core Code Update

Basic Products and Development Tools

  • Qitmeer-wallet API improvement and update, troubleshooting the crash of console for some users feedback when running a long time.

  • Kahf wallet APP was optimized and upgraded to improve the download speed of APP.

    Download kahf wallet: https://www.kahf.io/

Qitmeer Common Links