Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions justfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Import all devnet management commands from templates
import 'templates/justfile'

# Default recipe delegates to imported justfile
[private]
@_default:
just default
44 changes: 44 additions & 0 deletions templates/default-alphanet/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Default Alphanet Template

Full-featured alphanet template with comprehensive infrastructure for production-like testing.

## Description

This is the standard template for creating production-like alphanets. It provides a complete environment with multiple nodes, redundancy, and all standard services.

## Infrastructure

### Nodes (per chain)
- **3 Sequencer nodes**
- 2x op-geth (full)
- 1x op-reth (full)
- **2 RPC nodes**
- 1x op-geth (archive)
- 1x op-reth (archive)
- **2 Snapsync nodes**
- 1x op-geth (full)
- 1x op-reth (full)

### Services (per chain)
- `op-proposer` - L2 output proposals
- `op-batcher` - Transaction batching to L1
- `op-challenger` - Dispute resolution
- `proxyd-public` - Public RPC load balancer
- `peer-mgmt-service` - P2P peer management
- `op-conductor-mon` - Conductor monitoring
- `op-conductor-ops` - Conductor operations
- `op-dispute-mon` - Dispute monitoring
- `op-challenger-runner` - Challenger automation

### Global Services
- `op-acceptor` - Test runner

## Configuration

### Environment Variables
- `OP_NODE_LOG_LEVEL: info`
- `GETH_LOG_LEVEL: info`
- `OP_CONDUCTOR_LOG_LEVEL: info`

### Network
- L1: Sepolia
207 changes: 207 additions & 0 deletions templates/default-alphanet/inventory.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
chains:
- values:
op-node:
env:
OP_NODE_LOG_LEVEL: info
op-geth:
env:
GETH_LOG_LEVEL: info
op-conductor:
env:
OP_CONDUCTOR_LOG_LEVEL: info
nodes:
- kind: "node"
name: "sequencer-0"
spec:
kind: "sequencer"
el:
kind: "op-geth"
spec:
kind: "full"
cl:
kind: "op-node"

- kind: "node"
name: "sequencer-1"
spec:
kind: "sequencer"
el:
kind: "op-geth"
spec:
kind: "full"
cl:
kind: "op-node"

- kind: "node"
name: "sequencer-2"
spec:
kind: "sequencer"
el:
kind: "op-reth"
spec:
kind: "full"
cl:
kind: "op-node"

- kind: "node"
name: "rpc-0"
spec:
kind: "rpc"
el:
kind: "op-geth"
spec:
kind: "archive"
cl:
kind: "op-node"

- kind: "node"
name: "rpc-1"
spec:
kind: "rpc"
el:
kind: "op-reth"
spec:
kind: "archive"
cl:
kind: "op-node"

- kind: "node"
name: "rpc-2"
spec:
kind: "rpc"
el:
kind: "op-reth"
spec:
kind: "archive"
cl:
kind: "kona-node"

- kind: "node"
name: "snapsync-0"
spec:
kind: "snapsync"
el:
kind: "op-geth"
spec:
kind: "full"
cl:
kind: "op-node"

- kind: "node"
name: "snapsync-1"
spec:
kind: "snapsync"
el:
kind: "op-reth"
spec:
kind: "full"
cl:
kind: "op-node"

- kind: "node"
name: "snapsync-2"
spec:
kind: "snapsync"
el:
kind: "op-geth"
spec:
kind: "full"
cl:
kind: "kona-node"

services:
- kind: "proposer"
name: "op-proposer"
spec:
kind: "op-proposer"
deps:
nodes:
- "rpc-0"

- kind: "batcher"
name: "op-batcher"
spec:
kind: "op-batcher"
deps:
nodes:
- "sequencer-0"
- "sequencer-1"
- "sequencer-2"

- kind: "challenger"
name: "op-challenger"
spec:
kind: "op-challenger"
deps:
nodes:
- "rpc-0"

- kind: "public-rpc"
name: "proxyd-public"
spec:
kind: "proxyd"
deps:
nodes:
- "rpc-0"
- "rpc-1"
- "rpc-2"

- kind: "peer-mgmt-service"
name: "peer-mgmt-service"
spec:
kind: "peer-mgmt-service"
deps:
nodes:
- "sequencer-0"
- "sequencer-1"
- "sequencer-2"
- "rpc-0"
- "rpc-1"
- "rpc-2"
- "snapsync-0"
- "snapsync-1"
- "snapsync-2"

- kind: "op-conductor-mon"
name: "op-conductor-mon"
spec:
kind: "op-conductor-mon"
deps:
nodes:
- "sequencer-0"
- "sequencer-1"
- "sequencer-2"

- kind: "op-conductor-ops"
name: "op-conductor-ops"
spec:
kind: "op-conductor-ops"
deps:
nodes:
- "sequencer-0"
- "sequencer-1"
- "sequencer-2"

- kind: "op-dispute-mon"
name: "op-dispute-mon"
spec:
kind: "op-dispute-mon"
deps:
nodes:
- "rpc-0"
services:
- "op-supervisor-rpc-0"

- kind: "op-challenger-runner"
name: "op-challenger-runner"
spec:
kind: "op-challenger-runner"
deps:
nodes:
- "rpc-0"

services:
- kind: "test-runner"
name: "op-acceptor"
spec:
kind: "op-acceptor"
61 changes: 61 additions & 0 deletions templates/default-alphanet/manifest.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: DEVNET_NAME
type: alphanet
status: offline
deployed_on: ""
description: |
Default alphanet configuration
l1:
name: sepolia
chain_id: 11155111
l2:
deployment:
op-deployer:
version: ""
l1-contracts:
locator: ""
version: ""
l2-contracts:
locator: ""
version: ""
overrides:
l2GenesisJovianTimeOffset: "0x0"
gas_limit: 60000000
eip1559_elasticity: 6
eip1559_denominator: 50
eip1559_denominator_canyon: 250
components:
op-batcher:
version: ""
op-challenger:
version: ""
op-conductor:
version: ""
op-geth:
version: ""
op-node:
version: ""
op-program:
version: ""
op-proposer:
version: ""
op-reth:
version: ""
proxyd:
version: ""
kona-node:
version: ""
charts: {}
bootnodes:
- enode://e63f16f93b44938a43ba8304d9948da3304e47c7a14fb1ce9d75194f2bd6784665aab18a8b38dc7772cd9a7fa71dd51997cc6cd8af0fc8915bc2fddcb68dfc87@34.123.30.27:0?discport=30305
- enode://524958a8fc12140491f59a78442d38d1f3cb96765136379dca2ce569f0d770de25931fc11ad1bcfe1af3d4db025d23c25a401e23c91f5f53ff281f25bd36e733@34.27.92.24:0?discport=30305
- enode://7353cf20a38a59c67139ccceaf4fa94be3487f0ace88ca368c24026f0825ff6983493a6b7c6e4286e18394880f3f450987ca1f26d848b7057e7dfdf3eb6b71a5@34.28.88.99:0?discport=30305
chains:
- name: DEVNET_NAME-0
chain_id: ""
features: []
deployment:
overrides: {}
gas_limit: 60000000
eip1559_elasticity: 6
eip1559_denominator: 50
eip1559_denominator_canyon: 250
56 changes: 56 additions & 0 deletions templates/default-betanet/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Default Betanet Template

Multi-chain betanet template with two chains: one permissioned and one permissionless.

## Infrastructure

### Chains
- **Chain 0** (Permissioned)
- **Chain 1** (Permissionless with `fp-permissionless` feature)

### Nodes (per chain)
- **3 Sequencer nodes**
- 2x op-geth (full)
- 1x op-reth (full)
- **2 RPC nodes**
- 1x op-geth (archive)
- 1x op-reth (archive)
- **2 Snapsync nodes**
- 1x op-geth (full)
- 1x op-reth (full)

### Services (per chain)
- `op-proposer` - L2 output proposals
- `op-batcher` - Transaction batching to L1
- `op-challenger` - Dispute resolution
- `proxyd-public` - Public RPC load balancer
- `peer-mgmt-service` - P2P peer management
- `op-conductor-mon` - Conductor monitoring
- `op-conductor-ops` - Conductor operations
- `op-dispute-mon` - Dispute monitoring
- `op-faucet` - Testnet faucet

### Chain-Specific Services
- **Chain 1 only**: `op-challenger-runner` - Automated challenger

### Global Services
- `op-acceptor` - Test runner

## Configuration

### Manifest
- **Type**: betanet
- **L1**: Sepolia
- **Genesis offset**: `l2GenesisIsthmusTimeOffset: "0x0"`

### Components
Includes all standard betanet components:
- op-batcher
- op-challenger
- op-conductor
- op-geth
- op-node
- op-program
- op-proposer
- op-reth
- proxyd
Loading