1_本地区块链

基础

在本地运行Arbitrum需要准备下列事项:

  • 本地运行的以太坊链(L1)
  • L1上部署的一系列Arbitrum合约
  • Arbitrum链(L2)
  • L1与L2间的交互这,也即Arbitrum验证者

在本地启动以太坊链(L1)

先构建一个包含Arbitrum合约(eth-bridge)的本地Geth的docker image,请运行: yarn docker:build:geth

启动本地Geth: yarn docker:geth

注意,停止、重启客户端都会丧失所有区块链状态。现在你应该能看到终端中出现的各种Geth信息更新。Geth运行在localhost:7545上。

配置本地Arbitrum链(L2)

为通过上面配置的Arbitrum geth docker image来启动一条本地rollup链并附带一个或多个验证者,打开第二个终端窗口,在Arbitrum目录中执行: yarn demo:initialize [--validatorcount N=1]

若Geth没有启动或Hardhat部署的桥合约有问题,该指令会报错。具体讲,报错bridge_eth_addresses.json会确实,L2无法与L1上的桥进行通信。执行demo:initialize会在配置一条本地的L2 rollup链 —— 在/rollups/local/中有关于demo:initialize的更多信息。另外,该目录还包含了些为验证者预定义的钱包。这一套可以作为多个验证者在多台机器上的轻度模拟。

启动L2并部署验证者

执行yarn demo:deploy

与区块链docker image不同的是,验证者可以随意停止并重启,不会丢失任何状态。此时,你会看到Geth在第一个终端中,第二个终端则有arbitrum_arb-validator1_1arbitrum_arb-node_1。你还可以观察L1 L2以及验证者之间的交互以及一系列预定义的交易。

ArbGas与运行时2_设置ArbChain参数