Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
1ed18d0
beacon state service
claravanstaden Jan 15, 2026
634f012
beacon state service
claravanstaden Jan 16, 2026
6da4011
v1 relayers
claravanstaden Jan 16, 2026
d6d9f46
test changes
claravanstaden Jan 22, 2026
393e609
fix tests
claravanstaden Jan 22, 2026
4cf9672
move store to beacon state service
claravanstaden Jan 23, 2026
fc01ae6
config fixes
claravanstaden Jan 26, 2026
fde3479
make beacon state service mandatory
claravanstaden Jan 26, 2026
6ff65dd
optimise saving on startup
claravanstaden Jan 26, 2026
e224b28
cache proofs instead of beacon state
claravanstaden Jan 26, 2026
d2d9273
optimize memory usage
claravanstaden Jan 27, 2026
0d224dd
store fallback
claravanstaden Jan 27, 2026
568b10e
docker files
claravanstaden Jan 27, 2026
6124de4
remove fisherman
claravanstaden Jan 27, 2026
e33fc2d
cleanup relayer files
claravanstaden Jan 27, 2026
9b9ef9c
v1 relayer in main branch
claravanstaden Jan 27, 2026
d668e1f
simplify
claravanstaden Jan 27, 2026
6291762
consolidate config
claravanstaden Jan 27, 2026
74c72b7
consolidate parachain
claravanstaden Jan 27, 2026
ab099a8
fix test
claravanstaden Jan 27, 2026
0d6df8a
more consolidation
claravanstaden Jan 27, 2026
62649a3
fix generator
claravanstaden Jan 28, 2026
1ee98b4
rename relayer
claravanstaden Jan 28, 2026
177cae9
Merge branch 'clara/dockerize-relayers' into clara/test-relayers
claravanstaden Jan 28, 2026
eaa84db
beacon state v1
claravanstaden Jan 28, 2026
7eb33da
remove round robin
claravanstaden Jan 28, 2026
804df1f
Merge branch 'main' into clara/remove-round-robin
claravanstaden Jan 28, 2026
e860864
Merge branch 'main' into clara/remove-round-robin
claravanstaden Jan 29, 2026
520a675
fix config
claravanstaden Jan 29, 2026
2bcf90c
cleanup config
claravanstaden Jan 29, 2026
0bc3956
Merge branch 'clara/remove-round-robin' into clara/test-relayers
claravanstaden Jan 29, 2026
42ea1ba
remove round robin for v1
claravanstaden Jan 29, 2026
ed33eb6
cleanup config
claravanstaden Jan 29, 2026
c66168b
cleanup config
claravanstaden Jan 29, 2026
d377c54
remove key
claravanstaden Jan 29, 2026
5f4d6d3
fix config files
claravanstaden Jan 29, 2026
d7db243
beacon state service changes
claravanstaden Jan 29, 2026
82e9fe3
Merge branch 'clara/beacon-state-relayer' into clara/test-relayers
claravanstaden Jan 29, 2026
f48afea
update beacon state conf
claravanstaden Jan 29, 2026
b9e4821
log fix
claravanstaden Jan 29, 2026
11babd4
Merge branch 'clara/beacon-state-relayer' into clara/test-relayers
claravanstaden Jan 29, 2026
7d50697
fix service
claravanstaden Jan 29, 2026
2b158e1
Merge branch 'clara/beacon-state-relayer' into clara/test-relayers
claravanstaden Jan 29, 2026
ce1abf5
tweaks
claravanstaden Jan 30, 2026
adbd032
Merge branch 'clara/beacon-state-relayer' into clara/test-relayers
claravanstaden Jan 30, 2026
3118fe7
one concurrent beacon state download
claravanstaden Jan 30, 2026
375d3d1
Merge branch 'clara/beacon-state-relayer' into clara/test-relayers
claravanstaden Jan 30, 2026
a95a801
mutex fixes
claravanstaden Jan 30, 2026
d55378d
Merge branch 'clara/beacon-state-relayer' into clara/test-relayers
claravanstaden Jan 30, 2026
6f2c84e
state service improvements
claravanstaden Jan 30, 2026
ea0733d
start http server first
claravanstaden Jan 30, 2026
7418df8
refinements
claravanstaden Jan 30, 2026
e978bfd
tweaks
claravanstaden Jan 30, 2026
8ef61fa
build gas-estimator
claravanstaden Jan 30, 2026
f790dd1
rust version
claravanstaden Jan 30, 2026
1040f1a
add missing config file
claravanstaden Jan 30, 2026
11cb231
missing files not being deleted
claravanstaden Feb 2, 2026
6de6399
adds missing services
claravanstaden Feb 2, 2026
695c375
fix supermajority check
claravanstaden Feb 2, 2026
5915884
remove old config item
claravanstaden Feb 2, 2026
57553b7
remove old config item
claravanstaden Feb 2, 2026
006d8b3
remove unnecessary substrate key
claravanstaden Feb 2, 2026
cd45fea
Merge branch 'main' into clara/test-relayers
claravanstaden Feb 2, 2026
7694c33
merge damage
claravanstaden Feb 2, 2026
68e2b84
fix actions
claravanstaden Feb 2, 2026
3a5541c
add missing files
claravanstaden Feb 2, 2026
c4c84ad
improvements
claravanstaden Feb 2, 2026
a6c24de
config
claravanstaden Feb 2, 2026
08af4c2
remove ded code
claravanstaden Feb 2, 2026
681ecdd
last few tweaks
claravanstaden Feb 2, 2026
ea2616b
ssz optimization
claravanstaden Feb 3, 2026
7aa577c
new files
claravanstaden Feb 3, 2026
e739068
ssz improvements
claravanstaden Feb 3, 2026
688ae18
add logging
claravanstaden Feb 3, 2026
97d20bd
fix unmarshalling
claravanstaden Feb 3, 2026
17ac3ed
Add Fulu support and debug logging for tree root comparison
claravanstaden Feb 3, 2026
ec5822f
fixes
claravanstaden Feb 3, 2026
69e397f
fixes
claravanstaden Feb 3, 2026
ebd61b2
hash fix
claravanstaden Feb 3, 2026
b64502f
pr notes
claravanstaden Feb 3, 2026
96f32ed
ssz notes and remove debug logs
claravanstaden Feb 3, 2026
ecfd692
error cleanup and restart when getting repeated errors from beacon se…
claravanstaden Feb 3, 2026
50f7d9c
logger
claravanstaden Feb 3, 2026
ee129b8
rename services
claravanstaden Feb 4, 2026
c027e9d
rename go code
claravanstaden Feb 4, 2026
af78930
rename envs
claravanstaden Feb 4, 2026
6f91832
update secret names
claravanstaden Feb 4, 2026
bbc3c6c
test optimizations
claravanstaden Feb 4, 2026
faaf92e
add instance sizing research
claravanstaden Feb 4, 2026
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
2 changes: 1 addition & 1 deletion .github/workflows/relayer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
fetch-depth: 2

- name: setup go
uses: actions/checkout@v4
uses: actions/setup-go@v5
with:
go-version: '^1.23.0'

Expand Down
6 changes: 0 additions & 6 deletions relayer/.env.example

This file was deleted.

40 changes: 40 additions & 0 deletions relayer/.env.mainnet.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Snowbridge Relayer Configuration - MAINNET (Polkadot + Ethereum)

ETHEREUM_ENDPOINT=
BEACON_ENDPOINT=
POLKADOT_ENDPOINT=
BRIDGEHUB_ENDPOINT=
ASSETHUB_ENDPOINT=

FLASHBOTS_ENDPOINT=https://rpc.flashbots.net/fast

FORK_DENEB=269568
FORK_ELECTRA=364032
FORK_FULU=411392

GATEWAY_CONTRACT=0x27ca963c279c93801941e1eb8799c23f407d68e7
BEEFY_CLIENT_CONTRACT=0x1817874feab3ce053d0f40abc23870db35c2affc

MAX_WATCHED_EXTRINSICS=200

OFAC_ENABLED=true
CHAINALYSIS_API_KEY=

REWARD_ADDRESS=

AWS_REGION=eu-central-1
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=

BEACON_RELAY_SUBSTRATE_KEY_ID=snowbridge/beacon-relay
ETHEREUM_V2_RELAY_SUBSTRATE_KEY_ID=snowbridge/asset-hub-ethereum-relay-v2
ETHEREUM_RELAY_SUBSTRATE_KEY_ID=snowbridge/asset-hub-ethereum-relay
BEEFY_RELAY_ETHEREUM_KEY_ID=snowbridge/beefy-relay
BEEFY_ON_DEMAND_RELAY_ETHEREUM_KEY_ID=snowbridge/beefy-relay-on-demand
PARACHAIN_V2_RELAY_ETHEREUM_KEY_ID=snowbridge/asset-hub-parachain-relay-v2
PARACHAIN_RELAY_ETHEREUM_KEY_ID=snowbridge/asset-hub-parachain-relay
REWARD_RELAY_SUBSTRATE_KEY_ID=snowbridge/asset-hub-parachain-relay-v2-delivery-proof

# V1 relay configuration (for backwards compatibility)
CHANNEL_ID=
SS58_PREFIX=0
40 changes: 40 additions & 0 deletions relayer/.env.paseo.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Snowbridge Relayer Configuration - PASEO (Paseo + Sepolia)

ETHEREUM_ENDPOINT=
BEACON_ENDPOINT=
POLKADOT_ENDPOINT=
BRIDGEHUB_ENDPOINT=
ASSETHUB_ENDPOINT=

FLASHBOTS_ENDPOINT=https://rpc-sepolia.flashbots.net

FORK_DENEB=132608
FORK_ELECTRA=222464
FORK_FULU=272640

GATEWAY_CONTRACT=0x1607C1368bc943130258318c91bBd8cFf3D063E6
BEEFY_CLIENT_CONTRACT=0x2c780945beb1241fE9c645800110cb9C4bBbb639

MAX_WATCHED_EXTRINSICS=8

OFAC_ENABLED=false
CHAINALYSIS_API_KEY=

REWARD_ADDRESS=0x5827013ddc4082f8252f8729bd2f06e77e7863dea9202a6f0e7a2c34e356e85a

AWS_REGION=eu-central-1
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=

BEACON_RELAY_SUBSTRATE_KEY_ID=paseo/beacon-relay
ETHEREUM_V2_RELAY_SUBSTRATE_KEY_ID=paseo/asset-hub-ethereum-relay-v2
ETHEREUM_RELAY_SUBSTRATE_KEY_ID=paseo/asset-hub-ethereum-relay
BEEFY_RELAY_ETHEREUM_KEY_ID=paseo/beefy-relay
BEEFY_ON_DEMAND_RELAY_ETHEREUM_KEY_ID=paseo/beefy-relay-on-demand
PARACHAIN_V2_RELAY_ETHEREUM_KEY_ID=paseo/asset-hub-parachain-relay-v2
PARACHAIN_RELAY_ETHEREUM_KEY_ID=paseo/asset-hub-parachain-relay
REWARD_RELAY_SUBSTRATE_KEY_ID=paseo/asset-hub-parachain-relay-v2-delivery-proof

# V1 relay configuration (for backwards compatibility)
CHANNEL_ID=
SS58_PREFIX=42
40 changes: 40 additions & 0 deletions relayer/.env.westend.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Snowbridge Relayer Configuration - WESTEND (Westend + Sepolia)

ETHEREUM_ENDPOINT=
BEACON_ENDPOINT=
POLKADOT_ENDPOINT=
BRIDGEHUB_ENDPOINT=
ASSETHUB_ENDPOINT=

FLASHBOTS_ENDPOINT=https://rpc-sepolia.flashbots.net

FORK_DENEB=132608
FORK_ELECTRA=222464
FORK_FULU=272640

GATEWAY_CONTRACT=0x9ed8b47bc3417e3bd0507adc06e56e2fa360a4e9
BEEFY_CLIENT_CONTRACT=0x6DFaD3D73A28c48E4F4c616ECda80885b415283a

MAX_WATCHED_EXTRINSICS=8

OFAC_ENABLED=false
CHAINALYSIS_API_KEY=

REWARD_ADDRESS=0x5827013ddc4082f8252f8729bd2f06e77e7863dea9202a6f0e7a2c34e356e85a

AWS_REGION=eu-central-1
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=

BEACON_RELAY_SUBSTRATE_KEY_ID=westend/beacon-relay
ETHEREUM_V2_RELAY_SUBSTRATE_KEY_ID=westend/asset-hub-ethereum-relay-v2
ETHEREUM_RELAY_SUBSTRATE_KEY_ID=westend/asset-hub-ethereum-relay
BEEFY_RELAY_ETHEREUM_KEY_ID=westend/beefy-relay
BEEFY_ON_DEMAND_RELAY_ETHEREUM_KEY_ID=westend/beefy-relay-on-demand
PARACHAIN_V2_RELAY_ETHEREUM_KEY_ID=westend/asset-hub-parachain-relay-v2
PARACHAIN_RELAY_ETHEREUM_KEY_ID=westend/asset-hub-parachain-relay
REWARD_RELAY_SUBSTRATE_KEY_ID=westend/asset-hub-parachain-relay-v2-delivery-proof

# V1 relay configuration (for backwards compatibility)
CHANNEL_ID=
SS58_PREFIX=42
25 changes: 21 additions & 4 deletions relayer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,26 @@
FROM golang:1.23
# Build argument for gas estimator network (polkadot, paseo, westend)
ARG GAS_ESTIMATOR_NETWORK=polkadot

# Stage 1: Build Go relayer
FROM golang:1.23 AS go-builder
WORKDIR /opt/relayer
ADD . .
COPY relayer/ .
RUN go build -v -o build/snowbridge-relay main.go

# Stage 2: Build Rust gas estimator
FROM rust:1.85 AS rust-builder
ARG GAS_ESTIMATOR_NETWORK
WORKDIR /opt/gas-estimator
RUN apt-get update && apt-get install -y build-essential && rm -rf /var/lib/apt/lists/*
COPY gas-estimator/ .
RUN cargo build --release --features ${GAS_ESTIMATOR_NETWORK}

# Stage 3: Final image
FROM ubuntu:22.04
COPY --from=0 /opt/relayer/build/snowbridge-relay /usr/local/bin/
RUN apt-get update && apt-get install -y gettext-base curl && rm -rf /var/lib/apt/lists/*
COPY --from=go-builder /opt/relayer/build/snowbridge-relay /usr/local/bin/
COPY --from=rust-builder /opt/gas-estimator/target/release/snowbridge-gas-estimator /usr/local/bin/
COPY relayer/scripts/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
VOLUME ["/config"]
ENTRYPOINT ["/usr/local/bin/snowbridge-relay"]
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
Loading
Loading