ePBS/Gloas: SSV patches (failover + prysm workaround) on the gloas base - #17
Closed
iurii-ssv wants to merge 2 commits into
Closed
ePBS/Gloas: SSV patches (failover + prysm workaround) on the gloas base#17iurii-ssv wants to merge 2 commits into
iurii-ssv wants to merge 2 commits into
Conversation
Give each client a reputation score (starting at math.MaxInt) that is decremented on every failed request instead of deactivating the client outright. doCall tries active clients in descending score order and Address() reports the best-scored one, so an intermittently failing client is deprioritized yet can still recover. Also fail over on a context deadline, which previously returned without trying the next client.
Prysm may send an empty consensus block value; treat it as absent rather than a parse error, since the value is not critical to block production. Ref: OffchainLabs/prysm#14111
Author
|
Superseded by #19. Renamed to a consistent scheme: the mirror is now |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part 1 of ssvlabs/ssv#3014 — bring Gloas (ePBS / Glamsterdam) into our
go-eth2-clientdependency.What
gloas-support= the upstreamattestantio/go-eth2-clientgloas branch (the base of this PR) + our two long-standing SSV patches re-applied on top:populateProposalDataFromHeadersdoes not carry the empty-value guard.The base branch
gloasmirrors the upstream gloas tip, so this PR's diff is only the two patches (3 files).Why this shape
mainis v0.27.0-based (+ upstream Fulu + these two patches); the gloas branch is v0.29.0-based. They share only the v0.27.0 merge-base and carry divergent Fulu histories, so we branch off gloas and re-apply the two patches rather than merging gloas into main. The three touched files are also reformatted upstream (v0.27→v0.29), so the re-apply resolved small conflicts; the semantics match the originals, expressed in the gloas code style.Validation
multiunit tests: green.ssz_staticvectors from consensus-specs v1.7.0-alpha.13 (the spec devnet-8 pins) and ran them against these types: all 58 spec types pass SSZ round-trip + HashTreeRoot — progressive merkleization is correct for devnet-8, with no devnet-7→devnet-8 SSZ skew.sszroot_test.go(independent v1.7.0-alpha.12 PySpec roots) passes.consensusspec_test.goreports YAML-only mismatches against these vectors (uint64s rendered as decimal strings vs the vectors' hex; asubcommittee_indexyaml tag; an empty-transaction edge case). These are serialization-harness artifacts and do not affect SSZ bytes, signing roots, or the beacon-API JSON path.Consuming from SSV
Point the
replaceat the head branch:This lands
DataVersionGloasand the correctspec/gloastypes.Preview pin — track upstream
The upstream gloas branch is unmerged and still moving (open PR stack: attestantio#302, attestantio#312, attestantio#313, attestantio#316, attestantio#318). Treat this as a pinned preview; refresh the
gloasbase and re-apply/rebase these two patches as upstream advances, and re-pin to a tag once gloas merges to master and ships in a release.