又更新啦!!!上一次讲了什么是以太坊,现在讲讲以太坊的节点是什么东西。人狠话不多,下面开始:
了解以太坊节点
快速总览
当我们在本技术文档中使用节点一词时,我们指的是以太坊客户端。
以太坊客户端是一个软件应用程序,它实现了以太坊规范,并通过点对点网络与其他以太坊客户端进行通信。不同的以太坊客户端如果符合参考规范和标准化的通信协议,就可以实现互操作。虽然这些不同的客户端是由不同的团队用不同的编程语言实现的,但它们都 "说 "着相同的协议,遵循相同的规则。因此,它们都可以用来操作和与同一个以太坊网络进行交互。
- 作者。Andreas M. Antonopoulos,"掌握Ethereum"第03节 -- -- 客户端*。
Geth和Parity可以说是最常见的两个以太坊客户端。为此,我们将通过本文档详细介绍如何运行这些客户端。
Client | Language | Developers |
---|---|---|
Geth | Go | Ethereum Foundation |
Parity | Rust | Ethcore |
cpp-ethereum | C++ | Ethereum Foundation |
Trinity | Python | Ethereum Foundation / Piper Merriam |
Ethereumjs modules | JavaScript | Ethereum Foundation |
Ethereum(J) | Java | Ethereum Foundation |
Harmony | Java | Ether.Camp |
Pantheon | Java | PegaSys |
ruby-ethereum | Ruby | Jan Xie |
ethereumH | Haskell | BlockApps |
Quorum | Go (a fork for go-ethereum) | JPMorgan Chase |
Exthereum | Elixir | Geoffrey Hayes |
来源(已从原始来源修改)
- http://ethdocs.org/en/latest/ethereum-clients/choosing-a-client.html#why-are-there-multiple-ethereum-clients
- https://github.com/ConsenSys/ethereum-developer-tools-list#ethereum-clients
作为以太坊网络的参与者,我们所享有的客户端多样性表明了一个健康的生态系统。存在无数不同的客户端,许多客户端是独立开发的,每个客户端都有自己的功能集,但它们仍然可以与其他Ethereum客户端实现互操作。网络内的互操作性很重要,它进一步促进了 "远程客户端"和"钱包"等软件的采用,改善了普通用户的体验。
运行完整节点/轻节点/测试节点
这里有一些新术语供您消化。让我们从高层次上逐步了解它们:
完整节点
你正在你的机器上运行一个完整的以太坊网络的实现。这就是它的强大之处。它需要投入不小的时间和精力,以及相关的硬件和带宽产生的成本,以支持一个完整节点的同步和维护。
在以太坊上开发并不需要一个完整的节点
一个完整的节点将需要80+GB的磁盘存储空间来存储以太坊的chaindata。Chaindata是一个从创始块到最新最佳块的不断扩展的链。
完整的以太坊节点的公认标准:
- 完全同步区块链,从创世区块到累计工作量最大的最新最佳区块。
- 对每个区块的所有交易、合约部署和合约执行进行完整的回放和验证,从起源开始到最新的最佳区块
- 已经重新计算了每个连续区块的状态,从起源到最新的最佳区块。
- 磁盘上有所有的历史块,从起源到最新的最佳块。
- 保持最新的状态,同时修改远古的状态。
这里的全节点主题是不言而喻的:从创世块到最新的累计工作量最高的最佳块的所有块数据都存储在全节点的磁盘上。状态数据是允许被修剪的,因为当一个节点持有所有历史区块的记录时,它可以随后重新计算任何历史状态。
源于: https://dev.to/5chdn/the-ethereum-blockchain-size-will-not-exceed-1tb-anytime-soon-58a
技术潜水
Geth和Parity客户端均支持更快的同步模式,分别为“快速同步”和“扭曲同步”。每个客户端实际同步的方式更加细微。
Geth
全同步
当Geth节点完全同步时,它从创世块开始,并逐个块地处理每个连续的事务,直到达到最新的最佳块。 这是一个耗时的过程。
当Geth节点快速同步时,客户端不是在每个连续的事务中工作,而是并行下载所有区块的事务收据,然后拉取整个最近的状态数据库,然后如上所述切换到完全同步模式。
Parity
当Parity校验节点无扭曲,存档同步时,它从创世块开始,并逐个块地处理每个连续的事务,直到达到最新的最佳块。在此过程中,它计算并保存每个块的所有状态数据。 这是耗时且存储密集的过程。
当Parity校验节点无扭曲,快速同步时,它从创世块开始,并逐个块地处理每个连续的事务,直到到达最新的块。 在此过程中,它会修剪古代状态,并在磁盘上保留最新状态。 这是一个耗时的过程。
当Parity校验节点扭曲,快速同步时,它将跳过几乎所有块处理,而是将适当的数据直接注入数据库中。 Warp同步从网络中获取最新快照,将其还原,然后继续同步到传入的新验证块。
轻节点
您正在运行以太坊网络的截断实现。轻节点将验证块标题以及仅其他需要验证的内容。
额外阅读:
网友评论