Skip to content

WIP: Enable downloading of transaction sets in parallel with early SCP stages#5209

Draft
bboston7 wants to merge 24 commits intostellar:masterfrom
bboston7:skip-ledgers-p25
Draft

WIP: Enable downloading of transaction sets in parallel with early SCP stages#5209
bboston7 wants to merge 24 commits intostellar:masterfrom
bboston7:skip-ledgers-p25

Conversation

@bboston7
Copy link
Copy Markdown
Contributor

@bboston7 bboston7 commented Apr 8, 2026

This is very much a work-in-progress. This is littered with TODOs that I am actively chipping away at. I've opened this draft PR as an easier way to point people towards the prototype as it evolves into a production-ready feature.

I try to keep this branch in a good enough state such that it:

  • Compiles
  • Can join the network
  • Can run on supercluster

Therefore, I tend to do most work on other branches and merge it in here when ready in larger single commits.

I plan to split this whole thing into multiple smaller PRs when it's time to actually merge it in.

Some early notes

Item fetcher note

More notes

Notes

Interface improvements

Add way to get time spent waiting for tx hash

Formatting

Expose download times, and check in ballot protocol

Find actual "step 3" location

Notes

Consider values being downloaded as valid for nomination

Allow partially validated values to step 3

Fix nomination validation check

Allow proceeding without tx set

Logging

More general logging

More targeted log messages

More super detailed logging

More logging

Improve pending envelope flow

Handle combining candidates

Sim network setup

Manually feed SCP messages to node0

Loadgen

Catchup two ledgers worth

Optional checks

fmt

Gate feature on app being synced

Lots of log changes and sanity checks

Fix loadgen issues

Allow processed messages through

Add `feedTxSetFromStatement`

Cleanup

Add ability to feed all tx sets from a given slots

Feed everywhere

Test different injection points

TODO

Check wait time

Revert "Check wait time"

This reverts commit 0f8d1e4.

Fix test for cases where the voted on value changes

Harden test to handle case where first slot experiences issue

Reapply "Check wait time"

This reverts commit 53719f7.

Outline skip ledger test

Add support for message filtering

Reliably force skip ledger condition

Debug timers

Simple vote-to-skip based on static timeout

Checkpoint

Builds

Add `isSkipLedgerValue`

Fix test instances

Downstream skip ledger handling

Take largest existing skip value when available

todo

Downstream skip ledger handling

Replace v_3

v_2

Update some comments

Bump xdr

Handle high level union

TODO

signature checking

Generate new skip values

Don't short circuit on stall

Refactor skip location

Programmatically check that SKIP is externalized

Better skip checking

Metrics

New (nonworking) test

Fix vote reversal test

Configurable timeout

Bump default timeout

Move debug messages to own partition

Add new metric tracking time blocked during balloting

Some testing notes

Add some low level skip tests
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.

1 participant