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