Skip to content

Add non-validator communication - #594

Closed
samliok wants to merge 1 commit into
bootstrap-firstfrom
non-v-storage
Closed

samliok wants to merge 1 commit into
bootstrap-firstfrom
non-v-storage

Conversation

@samliok

@samliok samliok commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

The non-validator communication should be different than the validator one, mainly because non-validators run over multiple epochs and validator sets can change in the meantime. This makes the validators function call return query the pchain.

Also rather than changing the communication api, I made it so errors fetching the pchain are logged as warns.

This also closes #543 and some comments on the previous PR in the stack as well

@samliok
samliok added this pull request to stack #522 September 14, 2026 21:37
Comment thread adapters.go
return c, nil
}

func (c *nonValidatorCommunication) Validators() common.Nodes {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I'm not a big fan of this approach. We should ideally not go to the P-chain every time we need to query the validator set of our L1.

Ideally we'll cache the result and only update it when we know for sure that we have changed the validator set.

Since the platform chain is the first chain to bootstrap, we should have an up to date chain by the time it finished bootstrapping.

Every subsequent query should return a cached value which will be updated when there is evidence for it (we saw a finalization of a sealing block)

@samliok samliok closed this Sep 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Stale sealing-block votes from ex-validators let attackers install forged validator sets on non-validators

2 participants