正如第1章介绍的,以太坊是一个重要的区块链应用平台,是先进公有链技术的代表之一,本章将详细地为读者讲解它的基本结构组成。以太坊的整体架构如图2-1所示,分为三层:底层服务、核心层、顶层应用。
底层服务包含P2P网络服务、LevelDB数据库、密码学算法以及分片(Sharding)优化等基础服务。P2P网络中每一个节点彼此对等,各个节点共同提供服务,不存在任何特殊节点,网络中的节点能够生成或审核新数据。而以太坊中的区块、交易等数据最终都是被存储在LevelDB数据库中。密码学算法用于保证数据的隐私性和区块链的安全。分片优化使得可以并行验证交易,大大加快了区块生成速度。这些底层服务共同促使区块链系统平稳地运行。
核心层包含区块链、共识算法和以太坊虚拟机等核心元件,其以区块链技术为主体,辅以以太坊特有的共识算法,并以EVM(以太坊虚拟机)作为运行智能合约的载体,该层是以太坊的核心组成部分。区块链构造的去中心化账本需要解决的首要问题就是如何确保不同节点上的账本数据的一致性和正确性,而共识算法正是用于解决这个问题。EVM是以太坊的一个主要创新,它是以太坊中智能合约的运行环境,使得以太坊能够实现更复杂的逻辑。
这一层包括API接口、智能合约以及去中心化应用等,以太坊的DApp通过Web3.js与智能合约层进行信息交换,所有的智能合约都运行在EVM上,并会用到RPC的调用,该层是最接近用户的一层。企业可以根据自己的业务逻辑,实现自身特有的智能合约,以帮助企业高效地执行业务。
底层服务中LevelDB数据库中存储了交易、区块等数据,密码学算法为区块的生成、交易的传输等进行加密,分片优化加快了交易验证的速度,共识算法用于解决P2P网络节点之间账本的一致性,顶层应用中的去中心化应用(DApp)需要在以太坊虚拟机(EVM)上执行,因此各层结构相互协同又各司其职,共同组成一个完整的以太坊系统。
本章和第3章将对以太坊的重要组成部分和运行原理进行详细介绍。
图2-1 以太坊的架构