Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(website): add sepolia node running guide #14028

Merged
merged 6 commits into from
Jun 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/website/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
},
"dependencies": {
"@vercel/analytics": "^1.0.1",
"next": "^13.4.5",
"next": "^13.4.6",
"next-themes": "^0.2.1",
"nextra": "^2.7.1",
"nextra-theme-docs": "^2.7.1",
Expand All @@ -19,7 +19,7 @@
"devDependencies": {
"@heroicons/react": "^2.0.18",
"@types/node": "^20.3.1",
"@types/react": "^18.2.12",
"@types/react": "^18.2.13",
"autoprefixer": "^10.4.14",
"postcss": "^8.4.24",
"tailwindcss": "^3.3.2",
Expand Down
3 changes: 2 additions & 1 deletion packages/website/pages/docs/guides.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ You can leave feedback [here](https://docs.google.com/forms/d/1Vn10tqZW0bPvNUItz
- 🎈 [Receive tokens](/docs/guides/receive-tokens)
- 🌉 [Use the bridge](/docs/guides/use-the-bridge)
- 🔄 [Swap tokens](/docs/guides/swap-tokens)
- 🌐 [Run a node](/docs/guides/run-a-node)
- 🌐 [Run a Taiko node](/docs/guides/run-a-node)
- 🌳 [Run a Sepolia node](/docs/guides/run-a-sepolia-node)
- 📤 [Enable a proposer](/docs/guides/enable-a-proposer)
- ✅ [Enable a prover](/docs/guides/enable-a-prover)
- 🚀 [Deploy a contract](/docs/guides/deploy-a-contract)
Expand Down
5 changes: 4 additions & 1 deletion packages/website/pages/docs/guides/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@
"title": "🔄 Swap tokens"
},
"run-a-node": {
"title": "🌐 Run a node"
"title": "🌐 Run a Taiko node"
},
"run-a-sepolia-node": {
"title": "🌳 Run a Sepolia node"
},
"enable-a-proposer": {
"title": "📤 Enable a proposer"
Expand Down
15 changes: 12 additions & 3 deletions packages/website/pages/docs/guides/run-a-node.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Callout, Steps, Tab, Tabs } from "nextra-theme-docs";

# Run a node
# Run a Taiko node

## Overview

Expand All @@ -13,7 +13,7 @@ This guide will walk you through the process of operating a Taiko node via [simp

- [Docker](https://docs.docker.com/engine/install/) is installed and **running**.
- [Git](https://github.com/git-guides/install-git/) is installed.
- Consult the [Geth minimum hardware requirements](https://github.com/ethereum/go-ethereum#hardware-requirements), with the exception of 1TB of free space (~50GB should be more than enough initially, but over time it could become insufficient as the chain grows).
- Consult the [Geth minimum hardware requirements](https://github.com/ethereum/go-ethereum#hardware-requirements), but ignore the storage requirement as Taiko nodes will require less storage. Around 50GB should be more than enough initially, but over time it could become insufficient as the chain grows. As of `2023-06-21T16:59:11+00:00` a Taiko node sync takes **17.3 GB**.

## Steps

Expand Down Expand Up @@ -59,9 +59,18 @@ Finally, set the following environment variables:
- L1_ENDPOINT_HTTP
- L1_ENDPOINT_WS

If you are running a local Sepolia node, you cannot reference the L1 endpoints as `http://127.0.0.1:8545` and `ws://127.0.0.1:8546` because that is local to inside the simple-taiko-node Docker image. Depending on your firewall setup, you can do a few things. You can try:
- Using `host.docker.internal` (see: https://stackoverflow.com/questions/24319662)
- Using the local ip address of your machine (use something like `ip addr show` to get the ip address)

<Callout>
You can get a Sepolia L1 endpoint from a few places, but it **must point to an archive node** to access the state trie beyond the last 128 blocks.
[Alchemy](https://www.alchemy.com/) and [Infura](https://www.infura.io/) are two popular RPC providers. **Make sure you select the RPC as Sepolia testnet, and not Ethereum mainnet**.

**Recommended**:
Run your own Sepolia archive node, see: [Run a Sepolia node](/docs/guides/run-a-sepolia-node). This is recommended because you will eventually be rate-limited by public RPC providers.

**Alternative**:
[Alchemy](https://www.alchemy.com/) and [Infura](https://www.infura.io/) are two popular RPC providers. Make sure you select the RPC as Sepolia testnet, and not Ethereum mainnet.
</Callout>

### Enable your node as a proposer (optional)
Expand Down
46 changes: 46 additions & 0 deletions packages/website/pages/docs/guides/run-a-sepolia-node.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import { Callout, Steps, Tab, Tabs } from "nextra-theme-docs";

# Run a Sepolia node

## Overview

This guide will help you get a Sepolia archive node up and running.

## Prerequisites

- [Docker](https://docs.docker.com/engine/install/) is installed and **running**.
- [Git](https://github.com/git-guides/install-git/) is installed.
- As of `2023-06-21T16:59:11+00:00` a full archive node sync takes **207.3 GB** with geth + lighthouse. Consult the hardware requirements of the execution + consensus clients you are using.

## Steps

<Steps>
### Clone eth-docker
```sh
git clone https://github.com/eth-educators/eth-docker
cd eth-docker
```

### Enable archive mode

First, copy `default.env` to `.env`:
```
cp default.env .env
```

Next, open the `.env` file in your preferred text editor and set:
```filename=e
ARCHIVE_NODE=true
```

### Complete the eth-docker quickstart

Complete the eth-docker quickstart: https://eth-docker.net/Usage/QuickStart/.
</Steps>

### Harden your network

This is important especially if you `ssh` into machine or open ports to the internet (be careful about that). Here are some recommended resources:
- https://eth-docker.net/Usage/LinuxSecurity
- https://www.coincashew.com/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-i-installation/guide-or-security-best-practices-for-a-eth2-validator-beaconchain-node
- https://tailscale.com/kb/1077/secure-server-ubuntu-18-04/ (but also see: https://danthesalmon.com/ufw-docker-tailscale/, `tailscale0` may not behave as you think)