# 为Arbitrum One运行全节点

By [talkdefi](https://paragraph.com/@metaversefunds) · 2021-11-28

---

所需的工件

*   最新的 Docker 镜像：offchainlabs/arb-validator:v1.0.0-2b628f8
    

### 必需参数

*   `--l1.url=<Layer 1 Ethereum RPC URL>`
    
    *   必须提供标准的以太坊节点 RPC 端点。
        

### 重要端口

*   RPC： `8547`
    
*   网络套接字： `8548`
    
*   音序器馈送： `9642`
    

### 把这一切放在一起

*   运行 docker 映像时，应挂载外部卷以在重新启动后保留数据库。 挂载点应该是 `/home/user/.arbitrum/mainnet`或者 `/home/user/.arbitrum/rinkeby`取决于您连接的链。
    
*   以下是如何为主网运行 arb-node 的示例：
    
        docker run --rm -it  -v /some/local/dir/arbitrum-mainnet/:/home/user/.arbitrum/mainnet -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 offchainlabs/arb-node:v1.0.0-2b628f8 --l1.url https://l1-node:8545
        
    
*   以下是如何为 rinkeby 运行 arb-node 的示例：
    
        docker run --rm -it  -v /some/local/dir/arbitrum-rinkeby/:/home/user/.arbitrum/rinkeby -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 offchainlabs/arb-node:v1.0.0-2b628f8 --l1.url https://l1-rinkeby-node:8545
        
    

### 权限注意事项

*   Docker 镜像被配置为以非 root UID 1000 运行。这意味着如果您在 Linux 中运行并且在尝试运行 docker 镜像时遇到权限错误，请运行此命令以允许所有用户更新持久文件夹
    
        mkdir /some/local/dir/arbitrum-mainnet
        chmod -fR 777 /some/local/dir/arbitrum-mainnet
        
    
        mkdir /some/local/dir/arbitrum-rinkeby
        chmod -fR 777 /some/local/dir/arbitrum-rinkeby
        
    

### 可选参数

*   `--feed.url=<feed address>`
    
    *   将默认为 `https://arb1.arbitrum.io/feed`或者 `https://rinkeby.arbitrum.io/feed`取决于提供的以太坊节点报告的链 ID。 如果运行多个节点，您需要为每个数据中心提供一个馈送中继，请参阅下面的进一步说明。
        
*   `--forward-url=<sequencer RPC>`
    
    *   将默认为 `https://arb1.arbitrum.io/rpc`或者 `https://rinkeby.arbitrum.io/rpc`取决于提供的以太坊节点报告的链 ID。
        
*   `--core.cache.timed-expire`
    
    *   默认为 `20m`，或 20 分钟。 保存在缓存中的最旧块的年龄，以便不需要磁盘查找
        
*   `--node.cache.allow-slow-lookup`
    
    *   启用后，如果不在内存缓存中，将从磁盘加载旧块
        
*   `--core.checkpoint-gas-frequency`
    
    *   默认为 `1000000000`. 将检查点保存到磁盘之间的气体量。 在进行存档查询时，节点必须加载最近的前一个检查点，然后执行到请求的块。 检查点相距越远，所需的潜在执行时间就越长。 但是，通常更频繁地保存检查点会减慢节点的速度。
        
*   如果需要存档支持，建议使用 `--node.cache.allow-slow-lookup --core.checkpoint-gas-frequency=156250000`
    

### 任意中继

*   当运行多个节点时，您希望运行一个可以为所有节点提供提要的 arb-relay。 arb-relay 位于同一个 docker 镜像中。
    
*   以下是如何为主网运行 arb-relay 的示例：
    
        docker run --rm -it  -v /some/local/dir/arbitrum-mainnet/:/home/user/.arbitrum/mainnet -p 0.0.0.0:9642:9642 --entrypoint /home/user/go/bin/arb-relay offchainlabs/arb-node:v1.0.0-2b628f8 --feed.input.url wss://arb1.arbitrum.io/feed
        
    
*   以下是如何使用自定义中继为主网运行 arb-node 的示例：
    
        docker run --rm -it  -v /some/local/dir/arbitrum-mainnet/:/home/user/.arbitrum/mainnet -p 0.0.0.0:8547:8547 -p 0.0.0.0:8548:8548 offchainlabs/arb-node:v1.0.0-2b628f8 --l1.url https://l1-node:8545 --feed.input.url ws://local-relay-address:9642

---

*Originally published on [talkdefi](https://paragraph.com/@metaversefunds/arbitrum-one)*
