以太坊中文协议共学第一期回顾 | 以太坊基础
2024-07-3120:50
OpenBuild
2024-07-31 20:50
OpenBuild
2024-07-31 20:50
收藏文章
订阅专栏

💎 What is Ethereum?

区分几个概念:

  • Blockchain Data:数据,我们通常接触的 Block,Transaction,都是数据。
  • Blockchain Network:P2P 网络,分布在世界各地。
  • Blockchain Client:这个是个执行以太坊所定义的各种协议的程序。


Ethereum 是一套协议。

运行遵循这套协议的 Ethereum Client,就可以做为一个 Node 参与到 Ethereum Network 中。接收,发送各种信息,通过共识协议来维护 Ethereum Data。

  • 以太坊不是一个安全的去中心化通用交易账本吗?

是的,这是以太坊的数据部分。

  • 以太坊不是下一代的智能合约和去中心化应用平台吗?

是的,这是建立在共识协议之上的应用。

Ethereum Node


Ethereum Execution Layer

  • 以太坊执行层,是以太坊区块链最核心的部分,负责处理交易,智能合约的执行以及最终状态的存储。
  • 之前有一个说法,以太坊 1.0,这个说法并不准确。
  • The Merge:PoW 到 PoS 的转变


Ethereum Consensus Layer

  • Validator
  • 质押 32ETH 成为 Validator,每 12 秒为一个 slot,每 32 个 slot 为一个 epoch (6.4min)
  • 每个 epoch 之初,所有 validator 会被分为不同的 committee,每个 committee 负责一个 slot,validator 需要对该 slot 里的 block 进行投票,选出在他们的视角下,当前的 beacon chain header 以及应该被 justify 的 epoch,投出的票,就叫 attestation。

  • LMD-GHOST (Latest Message Driven GHOST):分叉选择算法
  • 在 proceeding epoch 里,会因为各种原因(比如网络延迟,proposer 下线等等),我们不会得到一个萝卜一个坑那样的 block 排列,需要对不同的 block 分叉进行选择,确定哪个才是 beacon chain header,然后在此之上做进一步建设。
  • 根据 Latest Message,即最新的 block 来选择,一个 block 后面附有越多的 Latest Message,说明越多的人在这个 block 之上做建设,说明越多的人把它当作 beacon chain header。

  • Casper FFG:将选择出来的分叉固定下来
  • 每个 epoch 的第一个 block,作为 checkpoint,在这个 epoch 结束的时候(checkpoint 有最长的收集 attestation 时间),如果这个 checkpoint 收集到了超过 $\frac{2}{3}$ 的总 effective balance 的投票,它就可以被 justified。如果这个 justified checkpoint 的下一个 checkpoint,也被 justified 的话,它就可以被 finalized。
  • finalized checkpoint 之间的所有 block 被标记为 finalized;finalized checkpoint 和 justified checkpoint 之间的所有 block 被标记为 justified;
  • finalized block 不可被更改,除非至少有 $\frac{1}{3}$ 的 effective balance 更改自己之前的票(Beacon chain slash 机制,validator 或者 proposer 发出自相矛盾的 message 会被 slash 掉,他们的 balance 会被 burn 掉)。

Ethereum Client

Execution layer client

  • Geth: 用 Go 语言编写的客户端,是执行层最流行的客户端之一。它最主要的特点是,稳定且功能完整。https://geth.ethereum.org/
  • 如果你要长期运行节点,请尽量不要用 Geth!!!
  • Nethermind: 用 C# 编写的客户端。https://www.nethermind.io/nethermind-client
  • Besu: 用 Java 编写的客户端,最开始它是 Hyperledger 联盟链的客户端,后来也支持了 public network。https://besu.hyperledger.org/public-networks
  • Erigon: 也是 Go 语言编写的,是 Geth 的一个 branch,最开始叫 Turbo-Geth,主要优化了原版 Geth 客户端的数据存储与网络性能的优化。https://erigon.tech/

Consensus layer client

  • Prysm: 用 Go 语言编写的客户端,用户友好?https://prysmaticlabs.com/
  • Lighthouse: 用 Rust 编写的客户端,吃的资源比较少 https://lighthouse.sigmaprime.io/
  • Teku: 用 Java 编写的客户端,是 Consensys 的产品,比较吃资源 https://consensys.io/teku
  • Nimbus: 用 Nim 编写的客户端,吃的资源很少 https://nimbus.team/index.html
  • Lodestar: 用 TypeScript 编写的客户端,代码写的很漂亮 https://lodestar.chainsafe.io/


💻 How to Run an Ethereum Node

Execution Client

  • Download Geth

  • Run Geth client

Consensus Client

  • download Teku client

  • Teku configuration file

  • start script

📖 Where to get Ethereum News

1. 以太坊新闻周刊,汇总每周以太坊发生的重要的事件

Week In Ethereum News | Evan Van Ness | Substack 

[🔗链接 https://weekinethereum.substack.com/]


2. 以太坊 Reddit 社区论坛

尤其是每次 AMA,都很有看点:

[AMA] We are EF Research 

[🔗 https://www.reddit.com/r/ethereum/comments/191kke6/ama_we_are_ef_research_pt_11_10_january_2024/]


3. 以太坊开发者 Reddit 论坛


4. EIP 提案

Home | Ethereum Improvement Proposals

[🔗链接 https://eips.ethereum.org/]


5. EIP 提案论坛,这个可以多逛逛,非常有意思

Fellowship of Ethereum Magicians

[🔗链接 https://ethereum-magicians.org/]


6. ETH 研究论坛,非常硬核

Ethereum Research

[🔗链接 https://ethresear.ch/]


7. Vitalik 个人网站

Vitalik Buterin's website

[🔗链接 https://vitalik.eth.limo/]


欢迎更多热爱开源的学习者加入以太坊协议中文 Wiki [🔗 https://github.com/openbuildxyz/ethereum-protocol-studies-zh],一起 Build!

作者:陈玄

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

专栏文章
查看更多
数据请求中

推荐专栏

数据请求中

一起「遇见」未来

DOWNLOAD FORESIGHT NEWS APP

Download QR Code