比特币架构根据中本聪的论文“Bitcoin: A Peer-to-Peer Electronic Cash System”中对于比特币的描述,可以归纳出比特币的架构图示。比特币架构我们按照靠近用户的使用为上层,原理用户的操作为下层。整个比特币系统从下往上依次是存储池、数据层、网络层、共识层、RPC层、应用层。学过计算机网络的同学对于分层的思想应该是不陌生的,在网络模型中也有类似的说法。分层只是逻辑、功能上的划分,并无物理痕迹。 存储层主要用来存储比特币系统运行的日志数据以及区块链元数据等。 数据层主要用来处理比特币交易系统中的各种数据。比如区块的生成、将交易打包到区块、将区块维护称为链状结构、对区块的内容进行加密以及哈希运算、设置时间戳、将交易数据构建成Merkle树等。该部分主要涉及到密码学相关知识。 网络层用于构建比特币系统通讯的P2P网络。 共识层主要采用了PoW算法。在上述我们提及到了需要将交易打包到区块中,那么区块链网络中有众多的节点,选择哪个节点机器来打包数据呢?网络中的每个节点都会不断地去运算一个随机数(Nonce),直至找到符合条件的随机数为止。最先找到该数的节点...