Skip to content

Relayer Decentralization#1696

Open
claravanstaden wants to merge 89 commits intomainfrom
clara/test-relayers
Open

Relayer Decentralization#1696
claravanstaden wants to merge 89 commits intomainfrom
clara/test-relayers

Conversation

@claravanstaden
Copy link
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

claravanstaden and others added 5 commits February 3, 2026 11:51
- Add UnmarshalSSZLiteFulu for Fulu beacon states
- Add hashProposerLookahead for ProposerLookahead field (field 37)
- Add debug logging to compare full vs lite tree roots for Fulu

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Endpoint string `mapstructure:"endpoint"`
StateServiceEndpoint string `mapstructure:"stateServiceEndpoint"`
Spec SpecSettings `mapstructure:"spec"`
DataStore DataStore `mapstructure:"datastore"`
Copy link
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
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
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
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

@claravanstaden
Copy link
Contributor Author

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

Copy link
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

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