查看原文
其他

比特币减半6行代码解读

高柯用 高可用架构 2020-11-06

北京时间 5 月 12 日 03:23:43 ,比特币达到区块高度 630,000,每 10 分钟进入流通的比特币(BTC)数量(被称为区块奖励)减少了一半,从 12.5 个减少到 6.25 个。这是一个很容易看到的里程碑,因为它每四年就会发生一次,而且之前已经发生过两次(前两次减半分别发生于2012年11月28日和2016年7月10日)。


比特币减半逻辑在 github 相关代码如下。



什么是比特币减半?


新的比特币以区块奖励的形式进入流通领域,由矿工使用昂贵的电子设备赚取。


每 21 万个区块,也就是大致每 4 年,矿工们可能获得的比特币奖励总量就会减半。


2009 年,该系统开始时,每 10 分钟可以挖出 50 个比特币,两次减半后,目前每 10 分钟奖励 12.5 个比特币。


这个过程总共有 2100 万个比特币总量,大约在 2140 年全部发放结束。


6 行代码源代码(包括函数名及注释是 12行)如下。


CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams){ int halvings = nHeight / consensusParams.nSubsidyHalvingInterval; // Force block reward to zero when right shift is undefined. if (halvings >= 64) return 0;
CAmount nSubsidy = 50 * COIN; // Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years. nSubsidy >>= halvings; return nSubsidy;}


感兴趣的开发者可以通过下面地址进一步了解:

https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp


参考阅读:


本文由高可用架构编译及解读。技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。

高可用架构
改变互联网的构建方式

长按二维码 关注「高可用架构」公众号

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存