Skip to content

Commit 370dcef

Browse files
committed
docs: enhance README with L1 RPC providers, troubleshooting, and examples
1 parent b52083f commit 370dcef

File tree

1 file changed

+91
-5
lines changed

1 file changed

+91
-5
lines changed

README.md

Lines changed: 91 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Base is a secure, low-cost, developer-friendly Ethereum L2 built on Optimism's [
1212

1313
## Quick Start
1414

15-
1. Ensure you have an Ethereum L1 full node RPC available
15+
1. Ensure you have an Ethereum L1 full node RPC available (see [L1 RPC Providers](#l1-rpc-providers) below)
1616
2. Choose your network:
1717
- For mainnet: Use `.env.mainnet`
1818
- For testnet: Use `.env.sepolia`
@@ -22,6 +22,13 @@ Base is a secure, low-cost, developer-friendly Ethereum L2 built on Optimism's [
2222
OP_NODE_L1_BEACON=<your-preferred-l1-beacon>
2323
OP_NODE_L1_BEACON_ARCHIVER=<your-preferred-l1-beacon-archiver>
2424
```
25+
26+
**Example with Alchemy:**
27+
```bash
28+
OP_NODE_L1_ETH_RPC=https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
29+
OP_NODE_L1_BEACON=https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
30+
OP_NODE_L1_BEACON_ARCHIVER=https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
31+
```
2532
4. Start the node:
2633

2734
```bash
@@ -40,9 +47,11 @@ Base is a secure, low-cost, developer-friendly Ethereum L2 built on Optimism's [
4047

4148
### Supported Clients
4249

43-
- `reth` (default)
44-
- `geth`
45-
- `nethermind`
50+
| Client | Status | Best For | Notes |
51+
|--------|--------|----------|-------|
52+
| `reth` | ✅ Default | Archive nodes, Flashblocks | Recommended for most users |
53+
| `geth` | ✅ Stable | Full nodes | Well-tested, production-ready |
54+
| `nethermind` | ✅ Stable | Alternative full nodes | .NET-based implementation |
4655

4756
## Requirements
4857

@@ -99,6 +108,52 @@ Supported clients:
99108
- `any`: Any available RPC method
100109
- `standard`: Standard RPC methods including newer optimized methods
101110

111+
### L1 RPC Providers
112+
113+
You'll need access to Ethereum L1 RPC endpoints. Here are recommended providers:
114+
115+
#### Alchemy
116+
- **Website**: [alchemy.com](https://www.alchemy.com/)
117+
- **Free Tier**: Yes (300M compute units/month)
118+
- **Configuration**:
119+
```bash
120+
OP_NODE_L1_ETH_RPC=https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
121+
OP_NODE_L1_BEACON=https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
122+
OP_NODE_L1_BEACON_ARCHIVER=https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
123+
OP_NODE_L1_RPC_KIND=alchemy
124+
```
125+
126+
#### Infura
127+
- **Website**: [infura.io](https://www.infura.io/)
128+
- **Free Tier**: Yes (100k requests/day)
129+
- **Configuration**:
130+
```bash
131+
OP_NODE_L1_ETH_RPC=https://mainnet.infura.io/v3/YOUR_PROJECT_ID
132+
OP_NODE_L1_BEACON=https://mainnet.infura.io/v3/YOUR_PROJECT_ID
133+
OP_NODE_L1_BEACON_ARCHIVER=https://mainnet.infura.io/v3/YOUR_PROJECT_ID
134+
OP_NODE_L1_RPC_KIND=infura
135+
```
136+
137+
#### QuickNode
138+
- **Website**: [quicknode.com](https://www.quicknode.com/)
139+
- **Free Tier**: Trial available
140+
- **Configuration**:
141+
```bash
142+
OP_NODE_L1_ETH_RPC=https://YOUR_ENDPOINT.quiknode.pro/YOUR_TOKEN/
143+
OP_NODE_L1_BEACON=https://YOUR_ENDPOINT.quiknode.pro/YOUR_TOKEN/
144+
OP_NODE_L1_BEACON_ARCHIVER=https://YOUR_ENDPOINT.quiknode.pro/YOUR_TOKEN/
145+
OP_NODE_L1_RPC_KIND=quicknode
146+
```
147+
148+
#### Self-Hosted
149+
If you run your own Ethereum L1 node:
150+
```bash
151+
OP_NODE_L1_ETH_RPC=http://your-geth-node:8545
152+
OP_NODE_L1_BEACON=http://your-beacon-node:5052
153+
OP_NODE_L1_BEACON_ARCHIVER=http://your-beacon-node:5052
154+
OP_NODE_L1_RPC_KIND=debug_geth
155+
```
156+
102157
### Network Settings
103158

104159
- Mainnet:
@@ -125,7 +180,14 @@ For full configuration options, see the `.env.mainnet` file.
125180

126181
## Snapshots
127182

128-
Snapshots are available to help you sync your node more quickly. See [docs.base.org](https://docs.base.org/chain/run-a-base-node#snapshots) for links and more details on how to restore from a snapshot.
183+
Snapshots are available to help you sync your node more quickly. Using a snapshot can reduce initial sync time from days to hours.
184+
185+
**To restore from a snapshot:**
186+
1. Download the latest snapshot from [docs.base.org](https://docs.base.org/chain/run-a-base-node#snapshots)
187+
2. Extract the snapshot to your data directory
188+
3. Start your node normally
189+
190+
See [docs.base.org](https://docs.base.org/chain/run-a-base-node#snapshots) for links and detailed restoration instructions.
129191

130192
## Supported Networks
131193

@@ -136,6 +198,30 @@ Snapshots are available to help you sync your node more quickly. See [docs.base.
136198

137199
## Troubleshooting
138200

201+
### Common Issues
202+
203+
#### Node Won't Start
204+
- **Check L1 RPC connectivity**: Ensure your L1 endpoints are accessible
205+
```bash
206+
curl -X POST -H "Content-Type: application/json" \
207+
--data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
208+
YOUR_L1_RPC_URL
209+
```
210+
- **Verify Docker resources**: Ensure Docker has sufficient memory (32GB+ recommended)
211+
- **Check disk space**: Verify you have enough storage for the chain data
212+
213+
#### Slow Sync Speed
214+
- **Use snapshots**: See [Snapshots](#snapshots) section to restore from a recent snapshot
215+
- **Check L1 RPC rate limits**: Some providers throttle requests; consider upgrading your plan
216+
- **Verify network bandwidth**: Ensure stable, high-speed internet connection
217+
218+
#### RPC Connection Errors
219+
- **Port conflicts**: Ensure ports 8545, 8546, 7300, 9222, 30303 are available
220+
- **Firewall settings**: Allow Docker containers to communicate
221+
- **Client-specific issues**: Try switching clients with `CLIENT=geth docker compose up --build`
222+
223+
### Getting Help
224+
139225
For support please join our [Discord](https://discord.gg/buildonbase) post in `🛠|node-operators`. You can alternatively open a new GitHub issue.
140226

141227
## Disclaimer

0 commit comments

Comments
 (0)