Skip to content

Relayer Decentralization#1696

Merged
claravanstaden merged 95 commits intomainfrom
clara/test-relayers
Feb 25, 2026
Merged

Relayer Decentralization#1696
claravanstaden merged 95 commits intomainfrom
clara/test-relayers

Conversation

@claravanstaden
Copy link
Copy Markdown
Contributor

@claravanstaden claravanstaden commented Jan 30, 2026

  1. Dockerize relayers (SNO-1675)
  2. Extract beacon state service into a separate service (SNO-1673)
  3. Remove round robin relayering (SNO-1676)
  4. On-chain checks to see if proof/message has already been submitted

Endpoint string `mapstructure:"endpoint"`
StateServiceEndpoint string `mapstructure:"stateServiceEndpoint"`
Spec SpecSettings `mapstructure:"spec"`
DataStore DataStore `mapstructure:"datastore"`
Copy link
Copy Markdown
Contributor

@yrong yrong Feb 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I understand correctly, DataStore is only required for the beacon-state service?

If that's the case, I suggest removing it here and instead adding the BeaconStateConfig, which is specific to the state service.

type Config struct {
	Beacon  beaconconf.BeaconConfig  `mapstructure:"beacon"`
    DataStore  DataStore  `mapstructure:"datastore"`
    ...

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in b64502f

Comment on lines +85 to +97
func (b BeaconConfig) ValidateForStateService() error {
if err := b.validateCommon(); err != nil {
return err
}
// data store is required for beacon state service
if b.DataStore.Location == "" {
return errors.New("source beacon datastore [location] is not set")
}
if b.DataStore.MaxEntries == 0 {
return errors.New("source beacon datastore [maxEntries] is not set")
}
return nil
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then this check can also be moved to state service.

Copy link
Copy Markdown
Contributor Author

@claravanstaden claravanstaden Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in b64502f

Comment thread relayer/relays/beacon/header/syncer/syncer.go Outdated
Comment thread relayer/relays/beacon/header/syncer/syncer.go Outdated
Comment thread relayer/relays/beacon-state/cache.go
Comment thread relayer/relays/beacon-state/service.go
Comment thread relayer/docs/docker-deployment.md Outdated
Comment thread relayer/docs/import-beacon-state.md
Comment thread relayer/SSZ_DEVELOPER_NOTES.md
@claravanstaden
Copy link
Copy Markdown
Contributor Author

Tested all relayers on m6a.large, around $70 per month.

Copy link
Copy Markdown
Contributor

@yrong yrong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@claravanstaden claravanstaden merged commit 707b7d6 into main Feb 25, 2026
3 of 5 checks passed
@claravanstaden claravanstaden deleted the clara/test-relayers branch February 25, 2026 17:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants