---
title: "为 Ethereum 的 Berlin 硬分叉做好准备"
description: "了解 Alchemy 如何为 Berlin 硬分叉做准备，以及作为 Alchemy 用户，你需要做哪些准备工作。"
---

# 为 Ethereum 的 Berlin 硬分叉做好准备

本周三，2021年4月14日，以太坊基金会的[Berlin硬分叉](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/)升级计划在Mainnet的第12,244,000个区块上线。

此次全网升级将引入四项以太坊改进提案（EIP），分别是[2565](https://eips.ethereum.org/EIPS/eip-2565)、[2718](https://eips.ethereum.org/EIPS/eip-2718)、[2929](https://eips.ethereum.org/EIPS/eip-2929)和[2930](https://eips.ethereum.org/EIPS/eip-2930)，它们是通向以太坊2.0这一更大路线图的一部分。

### 那这对我来说意味着什么？

如果你使用[Alchemy](https://dashboard.alchemy.com/signup?referral=affiliate:aed2ba93-969a-4812-ab81-27928b15db31)作为以太坊节点提供商，那你什么都不用做！

作为领先的区块链开发者平台，我们的工作就是处理所有复杂的以太坊基础设施，这样你就可以专注于构建应用，而不必运行、维护和升级节点。

我们的团队已经为这次升级准备了数月——进行了发布说明审查、回归测试、蓝绿部署，[以及更多工作](https://medium.com/alchemy-api/dont-get-forked-best-practices-for-handling-constantinople-and-ethereum-client-upgrades-e0d6b5dd8e9c)——以便你在此次升级发生时能够平滑过渡。

如果你_没有_使用Alchemy，那么务必将你的节点更新到与Berlin兼容的版本，否则在第12,244,000个区块之后，它将与网络其余部分不兼容。

在以太坊基金会[关于此次升级的公告](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/)中，他们列出了与Berlin升级兼容的客户端版本。我们已将其整理如下，供你参考。

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "Client", dataType: "object" },
      { key: "2", width: 200, title: "Version Number", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p>go-ethereum (geth)</p>", tooltip: "", icon: "" },
        "2": { title: "<p>1.10.1</p>", tooltip: "", icon: "" },
        id: 0,
      },
      {
        "1": { title: "<p>OpenEthereum (f.k.a. Parity)</p>", tooltip: "", icon: "" },
        "2": { title: "<p>3.2.0</p>", tooltip: "", icon: "" },
        id: 1,
      },
      {
        "1": { title: "<p>Nethermind</p>", tooltip: "", icon: "" },
        "2": { title: "<p>1.10.31</p>", tooltip: "", icon: "" },
        id: 2,
      },
      {
        "1": { title: "<p>Besu</p>", tooltip: "", icon: "" },
        "2": { title: "<p>21.1.1 21.1.2</p>", tooltip: "", icon: "" },
        id: 3,
      },
      {
        "1": { title: "<p>EthereumJS VM</p>", tooltip: "", icon: "" },
        "2": { title: "<p>v5.2.0</p>", tooltip: "", icon: "" },
        id: 4,
      },
    ],
  }}
/>

‍

### 我应该考虑哪些最佳实践？

很高兴你问到这个。强烈建议你查看我们在Constantinople硬分叉期间撰写的[这篇博客文章](https://medium.com/alchemy-api/dont-get-forked-best-practices-for-handling-constantinople-and-ethereum-client-upgrades-e0d6b5dd8e9c)，其中介绍了相关最佳实践。

具体到Berlin硬分叉，重要的是确保你的交易兼容[EIP-155](https://eips.ethereum.org/EIPS/eip-155)，以防范重放攻击。Berlin升级之后，[geth](https://www.alchemy.com/overviews/what-is-a-geth-node-and-how-to-run-one)客户端将默认强制执行EIP-155兼容性，这意味着如果你的交易不符合该EIP，将会失败。

在撰写本文时，Alchemy仍然支持未受保护的pre-EIP-155交易（在将其设为强制要求之前，我们会提前给用户充分的警示），但养成格式化EIP-155兼容请求的习惯是个好做法。

### 如果我不参与此次升级会怎样？

这不是个好主意。升级发生后，你的客户端将继续同步在分叉前的区块链上。这样一来，你就会被困在一条已弃用的链上，无法转移ether，也无法与升级后的以太坊网络进行交互。

### 此次升级中有哪些新的EIP？

以下是以太坊基金会对这些EIP的简要说明：

- [EIP-2565: ModExp Gas Cost](https://eips.ethereum.org/EIPS/eip-2565)降低了[模幂运算](https://eips.ethereum.org/EIPS/eip-198)（ModExp 0x00..05）预编译合约的成本，使其成本与其他操作相近。
- [EIP-2718: Typed Transaction Envelope](https://eips.ethereum.org/EIPS/eip-2718)引入了一种新的交易类型，作为一个信封（envelope），以便更容易地支持多种交易类型。
- [EIP-2929: Gas cost increases for state access opcodes](https://eips.ethereum.org/EIPS/eip-2929)提高了SLOAD、CALL、BALANCE、EXT和SELFEDESTRUCT在一次交易中首次使用时的gas成本，首次调用之后gas成本固定不变。
- [EIP-2930: Optional access lists](https://eips.ethereum.org/EIPS/eip-2930)新增了一种包含访问列表（access list）的交易类型，即该交易计划访问的地址和存储键的列表。这缓解了EIP-2929带来的部分gas成本上涨。

### 再也不用担心硬分叉……

如果你正在进行以太坊项目开发，又不想处理维护节点的额外负担，[免费注册Alchemy](https://dashboard.alchemy.com/signup?referral=affiliate:aed2ba93-969a-4812-ab81-27928b15db31)吧！Alchemy提供最快、最具可扩展性、最可靠的以太坊基础设施即服务，让你可以专注于构建自己的产品。在底层，我们构建了革命性的全新基础设施，为所有领先的NFT开发者平台、大部分DeFi应用等提供支持！访问[alchemy.com](https://dashboard.alchemy.com/signup?referral=affiliate:aed2ba93-969a-4812-ab81-27928b15db31)了解更多信息。
