比特币数量计算

* 计算中本聪如何设置的比特币数量
<https://blog.csdn.net/sinat_38189661/article/details/91429053#_2>
* 简单介绍 <https://blog.csdn.net/sinat_38189661/article/details/91429053#_5>
* 代码计算比特币数量
<https://blog.csdn.net/sinat_38189661/article/details/91429053#_20>


<>计算中本聪如何设置的比特币数量


本人菜鸟一个,最近想了解一下比特币的技术原理,就顺道想看看比特币到底有多少个,百度一下,发现大家都说是2100万个,不明白为什么是这个数,就又百度了一下。。。。中本聪为了控制比特币数量,在程序中定义了每生成21万区块,将奖励给矿工的比特币砍一半,也就是50–>25–>12.5…往下演变。那么为什么会是2100万那?一个一个加很慢,我用Python简单实现了一下。

<>简单介绍
中本聪设计的比特币主要解决了大规模的拜占庭将军问题,至于何为拜占庭将军这里就不在复述,下面简单描述一下比特币:
* 比特币总量2100万枚(不是特别确定,后续膜拜一下比特币源码)。
* 平均每十分钟记一次帐,也就是增加一个区块。
* 每记一次账也就是增加一个区块,程序系统自动发行该阶段比特币奖励给记账节点。
* 每增加21万个区块(大约四年),奖励给记账节点的比特币减少一半。直到2140年,2100万枚比特币发行完毕。
* 只有答对问题的节点才有记账的权利。
* 记账节点只承认最长的那条区块链。
*
所有想记账拿奖励的节点需要同时解一个题,谁先解出答案,谁就能把最近收集到的交易内容写入区块放到区块链上,并且广播给其他节点。其他收到广播的节点验证你的答案正确后会停止解题,并且把自己的区块链同步更新,然后继续解答下一题。
* 每增加2016个区块(大约二周),根据解题的快慢,调整一次题的难度,以保证平均解题时间稳定在10分钟(也就是平均10分钟增加一个区块)。
<>代码计算比特币数量

菜鸟一个,代码质量有限,望给位大佬多多指点。
#encoding=utf-8 import sys sys.setrecursionlimit(35) def cal(start, step,
sumtmp, i): sum_l = sumtmp i = i + 1 print(i) print(start,step,sumtmp) if i < 33
: sum = round(210000 * start, 5) sum_l = round(sum + sumtmp, 5) print(sum_l)
start= float(start / step) cal(start, step, sum_l, i) if __name__ == '__main__':
cal(50, 2, 0, 0)

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信