区块链1.0的架构——比特币区块链

区块链1.0的典型应用是比特币。比特币是第一个解决“双花”问题的去中心化虚拟货币系统。下面我们来详细剖析比特币系统的架构。

中本聪在发表比特币白皮书后的第2年,就发布了比特币的第一版实施系统。据普林斯顿大学出版的《Bitcoin and Cryptocurrency Technologies》作者们推测,中本聪很可能是先写好了比特币系统,才写比特币的白皮书的。从最初的比特币源代码可以看出,比特币系统没有很明确的模块划分,很多不同功能都放在一个5000多行的Main程序中实现。因此,当初中本聪并没有从架构上考虑太多,而是用简单直白的办法一气呵成地把比特币系统写了出来。当参与开源项目的开发者多起来的时候,一个清晰的架构就显得愈来愈重要,这样对代码的重用、维护和扩展非常重要。在2013年12月,一个将比特币代码模块化的建议《Post-0.9modularization of Bitcoin Core》提交了上去。从目前发布的Bitcoin 0.12版本看,比特币的模块化工作还在进行过程中。因此,要很清晰地在代码层面理清比特币的架构还需要一个比较长的过程。

由于比特币是基于P2P架构的虚拟货币系统,因此它的架构和我们熟悉的分布式架构有很大不同。从一个客户端/服务端(Client/Server)、浏览器/服务端(BS架构)或三层架构(3-Tier Architecture)等角度来看比特币架构,很容易感到困惑。比如说大多数比特币的软件,一般都叫客户端(Client),大家自然会想到一定有个服务端(Server)在后台。但其实在比特币里,服务端这个概念被弱化了,即使是看起来很像服务端的bitcoind,也被称为没有界面的客户端。唯一被称为服务端的是在bitcoind里的HTTP/JSON RPC服务端。该组件只是用来提供对外HTTP、JSON RPC的服务接口。

下图是根据目前的代码情况勾画的比特币架构图。比特币架构总体上分为两部分,一部分是前端,包括钱包(Wallet)或图形化界面;另一部分是运行在每个节点的后台程序,包括挖矿、区块链管理、脚本引擎以及网络管理等功能。

blob.png

比特币区块链架构图

阅读“区块链1.0时代的特征”让你更了解“区块链1.0的架构——比特币区块链”

868区块链学习网为您整理《区块链1.0的架构——比特币区块链》仅供参考。