区块链的架构

1508 天前
2307

区块链的架构

区块链系统实际上就是一个维护公共数据账本的系统,一切的技术单元的设计都是为了更好地维护好这个公共账本。通过共识算法达成节点的账本的数据一致;通过密码算法确保账本数据的不可篡改性以及数据发送的安全性;通过脚本系统扩展账本数据的表达范畴。我们甚至可以认为去区块链系统实际上就是特别设计的数据库系统或者分布式数据库系统,在这个数据库可以存储数字货币,也可以存储更复杂的智能合约,以及范围更加广阔的各种业务数据。在区块链的发展历程中,也经历了一个这样的阶段,从比特币开始,早期的区块链系统都是面向数字货币的,比如比特币、莱特币。这个阶段我们可以认为区块链系统是一个支持数字货币合约的系统。之后出现了更灵活地,能够支持自定义智能合约的系统,其代表作就是以太坊,可以认为以太坊就是对比特币这样数字货币系统的扩展,不过以太坊仍然内置了对数字货币的支持,延续了比特币系统的金融特征,也使得以太坊的应用更多的是面向金融范畴,再之后就是代表就是超级账本项目,尤其是其中的Fabric子项目,在这个系统中,超越了对金融范畴的应用,支持哥哥领域的数据定义。这个阶段的区块链系统主要是用来实现数字货币,整个结构中,分为核心节点和前端工具,这里我要提一下核心节点中的“矿工”功能。在矿工的系统中,主要承担两个任务:

第一个是通过竞争获得区块数据的打包权后将内存池(发送在网络中但是还没有确认进区块的交易数据,属于待确认交易数据)中的交易数据打包进区块,并且广播给其他节点;

第二个是接受系统对打包行为的数字货币奖励,从而系统通过这种奖励机制完成新货币的发行。

在前端工具中,最明显的就是钱包工具,钱包工具是提供给用户管理自己账户地址以及余额的;浏览器是用来查看区块链网络中发生的数据情况,比如最新的区块高度,内存池的交易数、单位时间的网络处理能力等;PRC客户端和命令行接口都是用来访问节点的功能的,在这个时候,核心节点就相当于一个服务器,通过PRC服务提供功能调用接口。