以太坊的组件
在Ethereum中,区块链的组件 中描述的区块链系统组件包括:
P2P Network
以太坊在 以太坊主网 上运行,可以通过TCP端口30303访问,运行称作 ÐΞVp2p 的协议。
Consensus rules
以太坊的共识规则,在参考规范,即 [yellowpaper] 中定义。
Transactions
Ethereum交易(参见[transactions])是网络消息,包括发送者,接收者,值和数据负载等。
State Machine
以太坊的状态转移由 Ethereum虚拟机(EVM) 处理,这是一个执行 bytecode(机器语言指令)的基于栈的虚拟机。称为“智能合约”的EVM程序以高级语言(如Solidity)编写,并编译为字节码以便在EVM上执行。
Blockchain
以太坊的区块链作为 database(通常是Google的LevelDB)存储在每个节点上,该区块链在称作 梅克尔帕特里夏树 Merkle Patricia Tree 的序列化哈希数据结构中包含交易和系统状态,。
Consensus Algorithm
以太坊目前使用名为_Ethash_的工作量证明算法,但有计划在不久的将来将过渡到称为_Casper_的权益证明(Proof-of-Stake)系统。
Clients
以太坊有几个可互操作的客户端软件实现,其中最突出的是 Go-Ethereum(Geth)_和_Parity。
其他参考文献
以太坊黄皮书: https://ethereum.github.io/yellowpaper/paper.pdf
褐皮书”:为更广泛的读者以不太正式的语言重写了“黄皮书”: https://github.com/chronaeon/beigepaper
ÐΞVp2p 网络协议: https://github.com/ethereum/wiki/wiki/%C3%90%CE%9EVp2p-Wire-Protocol
以太坊状态机 —— 一个“Awesome”资源列表 https://github.com/ethereum/wiki/wiki/Ethereum-Virtual-Machine-(EVM)-Awesome-List-Awesome-List)
LevelDB 数据库 (最经常用于存储区块链本地副本): http://leveldb.org
Merkle Patricia Trees: https://github.com/ethereum/wiki/wiki/Patricia-Tree
Ethash 工作量证明共识算法: https://github.com/ethereum/wiki/wiki/Ethash
Casper 权益证明 v1 实现指南: https://github.com/ethereum/research/wiki/Casper-Version-1-Implementation-Guide
Go-Ethereum (Geth) 客户端: https://geth.ethereum.org/
Parity 以太坊客户端: https://parity.io/