Skip to content

Repository files navigation

SP1 Helios

Overview

SP1 Helios verifies the consensus of a source chain in the execution environment of a destination chain. For example, you can run an SP1 Helios light client on Polygon that verifies Ethereum Mainnet's consensus.

Docs

Operator

The operator keeps an on-chain SP1 Helios light client updated by proving finalized source-chain consensus updates and submitting them to the destination-chain SP1 Helios contract.

Proof requests are fulfilled through the Succinct Prover Network. See .env.example for additional configuration.

The operator supports two commitment modes: (1) default mode and (2) execution-header mode.

1. Default mode

This mode commits only finalized light-client state and the execution state root.

cargo run -p sp1-helios-script --bin operator -- \
  --rpc-url "$DESTINATION_RPC_URL" \
  --contract-address "$SP1_HELIOS" \
  --source-chain-id "$SOURCE_CHAIN_ID" \
  --source-consensus-rpc "$SOURCE_CONSENSUS_RPC_URL" \
  --private-key "$DESTINATION_PRIVATE_KEY"

2. Execution-header mode

This mode commits everything from the default mode, plus the finalized execution block hash and finalized execution receipts root. Use this when a consumer needs receipt or log inclusion.

NOTE: This adds about 45k gas per successful operator update, mostly from two extra storage writes.

cargo run -p sp1-helios-script --bin operator -- \
  --rpc-url "$DESTINATION_RPC_URL" \
  --contract-address "$SP1_HELIOS" \
  --source-chain-id "$SOURCE_CHAIN_ID" \
  --source-consensus-rpc "$SOURCE_CONSENSUS_RPC_URL" \
  --private-key "$DESTINATION_PRIVATE_KEY" \
  --commit-execution-header

About

On-chain Ethereum light client built with SP1

Resources

Stars

82 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages