Giwa is a Ethereum Layer 2 network built on Optimism's OP Stack.
This repository provides everything you need to run your own node on the Giwa network.
| Network | Status |
|---|---|
| Mainnet | 🚧 |
| Testnet (Sepolia) | ✅ |
-
Ensure you have an Ethereum L1 full node RPC available
-
Choose your network
- For mainnet: Coming soon – mainnet is currently under development.
- For Testnet (Sepolia): Use
.env.sepolia
-
Configure your L1 endpoints in the env file. You can also customize other runtime parameters (e.g. network, cache, logging, metrics) directly in the env file.
OP_NODE_L1_ETH_RPC=<your-preferred-l1-eth-rpc> OP_NODE_L1_BEACON=<your-preferred-l1-beacon>
-
Build and run
docker compose build --parallel NETWORK_ENV=<.env.{network}> docker compose up -d
-
Stop
docker compose down
-
Cleanup
docker compose down -v && rm -rf ./execution_data
| Variable | Description |
|---|---|
OP_NODE_L1_ETH_RPC |
Your Ethereum L1 node RPC endpoint |
OP_NODE_L1_BEACON |
Your L1 beacon node endpoint |
Choose one of the following sync strategies depending on your preference.
Enable the corresponding OPTION block in your
.env(only one at a time).
- What it does: Downloads a recent state snapshot and syncs to the current head without executing every historical block.
- Use when: You want to bring up a production/full node quickly (RPC nodes, followers).
- Trade‑offs: Fastest to get online; not suitable for deep historical state queries.
- What it does: Executes every block from genesis and retains all historical state (archive).
- Use when: You run an indexer, do research/debugging, or need historical state at arbitrary blocks.
- Trade‑offs: Significantly slower and requires much more disk; most operators don’t need this for day‑to‑day operations.
- What it does: The consensus client drives the execution client by inserting unsafe blocks; no L2 peer discovery required for the execution client.
- Use when: You prefer replay‑based syncing and tighter control (e.g. L2 verifier).
- Trade‑offs: Slower than snap; operationally simpler for controlled environments.
By default, execution data is mounted to {PROJECT_ROOT}/execution_data.
To customize the mount path, set the $EXECUTION_DATA_DIR environment variable.
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 4 cores | 8+ cores |
| RAM | 8 GB | 16+ GB |
| Disk | 500 GB (NVMe) | 1+ TB |
- To check logs:
docker compose logs -f giwa-el
docker compose logs -f giwa-clTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
By running this node, you are responsible for your infrastructure, security, and compliance.
- 📖 Documentation
- 🆇 X
- 💬 Discord: Coming Soon
