Running Sova
Last updated
Last updated
There are two docker compose file variants, 'dev' and 'testnet' in the repository. The primary difference is in 'dev', the consensus is mocked in the execution client, where as the 'testnet' implementation, the OP rollup client is used for consensus.
Used to run a Sova validator locally in --dev mode. This means validator consensus is mocked and there is only one tx per sova block. This uses a regtest bitcoin node to mock bitcoin interactions.
When the 'core' profile is specified, sova-reth and sova-sentinel run alongside the Sova auxiliary services.
Used to run a full Sova OP Sequencer node.
When the 'core' and 'op-stack' profiles are specified sova-reth, sova-sentinel, op-node, op-batcher, op-proposer all run alongside the Sova auxiliary services.
This guide will walk you through the process of setting up and running a local Sova devnet node using Docker Compose.
Software
Docker (version 20.10.0 or higher)
Docker Compose (version 2.0.0 or higher)
Git
Hardware Requirements
A modern multi-core CPU.
32 GB RAM (64 GB recommended).
A locally attached NVMe SSD drive.
Note: Requirements may vary based on network activity, transaction volume, number of connected peers, and chain state growth.
In the .env file, update the variables if necessary. The `ENCLAVE_SEED` is the seed for computing the BIP-32 derivation path for the network signing service.
The stack consists of the following services:
bitcoin-regtest (Port 18443)
Bitcoin Core node running in regtest mode
Provides the underlying Bitcoin network functionality
sova-reth (Port 8545)
EVM-compatible JSON-RPC endpoint
Handles EVM-compatible transactions and smart contracts
sova-sentinel (port 50051)
Handles double spend protection
network-enclave (Port 5555)
Handles network signing operations
Manages cryptographic operations
network-utxos (Port 5557)
Tracks and manages UTXO state
Provides UTXO-related services
network-indexer
Indexes Bitcoin blockchain data
Maintains synchronization with the Bitcoin node
Verify the Sova execution client JSON-RPC endpoint:
Verify the Bitcoin regtest client JSON-RPC endpoint: