This repository was archived by the owner on Nov 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Asynchronous backing statement distribution: Take III #5999
Merged
rphmeier
merged 232 commits into
rh-async-backing-feature
from
rh-async-backing-statement-distribution
Mar 3, 2023
Merged
Changes from 1 commit
Commits
Show all changes
232 commits
Select commit
Hold shift + click to select a range
9301263
add notification types for v2 statement-distribution
rphmeier 45e2b68
improve protocol docs
rphmeier d7fdad8
add empty vstaging module
rphmeier 2ab18ff
fmt
rphmeier 6ccdfc5
add backed candidate packet request types
rphmeier 159ab6a
start putting down structure of new logic
rphmeier 58919b4
handle activated leaf
rphmeier 2ff6317
some sanity-checking on outbound statements
rphmeier 7947b44
fmt
rphmeier 162d1cb
update vstaging share to use statements with PVD
rphmeier 6d49c58
tiny refactor, candidate_hash location
rphmeier ed6be7f
import local statements
rphmeier b2da4f2
refactor statement import
rphmeier 59383f2
first stab at broadcast logic
rphmeier a66a805
fmt
rphmeier 5441efb
fill out some TODOs
rphmeier cd722bb
start on handling incoming
rphmeier c702f05
split off session info into separate map
rphmeier 6a7dd79
start in on a knowledge tracker
rphmeier 9bfda1f
address some grumbles
rphmeier 0f25b3a
format
rphmeier 60bb289
missed comment
rphmeier 03ff76d
some docs for direct
rphmeier c2918fc
add note on slashing
rphmeier bddeff1
amend
rphmeier 6009816
simplify 'direct' code
rphmeier 54f06c0
finish up the 'direct' logic
rphmeier f4effa1
add a bunch of tests for the direct-in-group logic
rphmeier 26c86b7
rename 'direct' to 'cluster', begin a candidate_entry module
rphmeier 9dd68f1
distill candidate_entry
rphmeier 9727d8c
start in on a statement-store module
rphmeier 44c2b37
some utilities for the statement store
rphmeier 75627c5
rewrite 'send_statement_direct' using new tools
rphmeier 336f412
filter sending logic on peers which have the relay-parent in their view.
rphmeier 90a91a2
some more logic for handling incoming statements
rphmeier 4dc62b9
req/res: BackedCandidatePacket -> AttestedCandidate + tweaks
rphmeier 2ca0e60
add a `validated_in_group` bitfield to BackedCandidateInventory
rphmeier e495285
BackedCandidateInventory -> Manifest
rphmeier 585e79b
start in on requester module
rphmeier 5fddf7d
add outgoing request for attested candidate
rphmeier 7fefe78
add a priority mechanism for requester
rphmeier b6b2d13
some request dispatch logic
rphmeier d800805
add seconded mask to tagged-request
rphmeier 443ffab
amend manifest to hold group index
rphmeier e0de216
handle errors and set up scaffold for response validation
rphmeier c493bca
validate attested candidate responses
rphmeier 9303836
requester -> requests
rphmeier 41a43d6
add some utilities for manipulating requests
rphmeier e9bd586
begin integrating requester
rphmeier a237924
start grid module
rphmeier cfd25b9
tiny
rphmeier 5547404
refactor grid topology to expose more info to subsystems
rphmeier 9df8063
fix grid_topology test
rphmeier 2e27afa
fix overseer test
rphmeier 596f738
Merge branch 'rh-async-backing-feature' into rh-async-backing-stateme…
rphmeier 3b6d5da
implement topology group-based view construction logic
rphmeier 6cf0187
fmt
rphmeier 2d628db
flesh out grid slightly more
rphmeier 0113341
add indexed groups utility
rphmeier 4536646
integrate Groups into per-session info
rphmeier 950ae30
refactor statement store to borrow Groups
rphmeier bc6db74
implement manifest knowledge utility
rphmeier d3cfa76
add a test for topology setup
rphmeier dc2e141
don't send to group members
rphmeier 5fd17ef
test for conflicting manifests
rphmeier 57c027f
manifest knowledge tests
rphmeier f9cf743
fmt
rphmeier fffae31
rename field
rphmeier b607890
garbage collection for grid tracker
rphmeier 6ffbd39
routines for finding correct/incorrect advertisers
rphmeier f5de677
add manifest import logic
rphmeier e969ed0
tweak naming
rphmeier ab152c6
more tests for manifest import
rphmeier 5762b9f
add comment
rphmeier 8a6e8f5
rework candidates into a view-wide tracker
rphmeier f395301
fmt
rphmeier cd5fac3
start writing boilerplate for grid sending
rphmeier 4c0343f
fmt
rphmeier 421dd9e
some more group boilerplate
rphmeier db59d33
refactor handling of topology and authority IDs
rphmeier 978335d
fmt
rphmeier 671d801
send statements directly to grid peers where possible
rphmeier 958765a
send to cluster only if statement belongs to cluster
rphmeier 0bc269f
improve handling of cluster statements
rphmeier c272426
handle incoming statements along the grid
rphmeier b72b4ac
API for introduction of candidates into the tree
rphmeier cb4f2ef
backing: use new prospective parachains API
rphmeier 83e0bab
fmt prospective parachains changes
rphmeier 4640b1a
fmt statement-dist
rphmeier b46177b
fix condition
rphmeier 6b8370f
get ready for tracking importable candidates
rphmeier 63499a2
prospective parachains: add Cow logic
rphmeier 19cca1a
incomplete and complete hypothetical candidates
rphmeier 7960c80
remove keep_if_unneeded
rphmeier 29d68e0
fmt
rphmeier 6fa7b80
implement more general HypotheticalFrontier
rphmeier 73ce578
fmt, cleanup
rphmeier 99dad29
add a by_parent_hash index to candidate tracker
rphmeier e04caf4
more framework for future code
rphmeier 7944c31
utilities for getting all hypothetical candidates for frontier
rphmeier 7e99ff2
track origin in statement store
rphmeier 238f70b
fmt
rphmeier dbb2a3c
requests should return peer
rphmeier 43a2add
apply post-confirmation reckoning
rphmeier 164a09b
flesh out import/announce/circulate logic on new statements
rphmeier 9d9fbe3
adjust
rphmeier af0a76b
adjust TODO comment
rphmeier c446d22
Merge branch 'rh-async-backing-feature' into rh-async-backing-stateme…
rphmeier 447fa5c
fix backing tests
rphmeier 1b4b6d4
update statement-distribution to use new indexedvec
rphmeier 45ef1de
fmt
rphmeier cd3ecf8
query hypothetical candidates
rphmeier bcf5f35
implement `note_importable_under`
rphmeier 8f73988
extract common utility of fragment tree updates
rphmeier a150fb4
add a helper function for getting statements unknown by backing
rphmeier e097811
Merge branch 'rh-async-backing-feature' into rh-async-backing-stateme…
rphmeier 80a051c
import fresh statements to backing
rphmeier 2d2e974
send announcements and acknowledgements over grid
rphmeier 50fb10e
provide freshly importable statements
rphmeier 4c5b601
do not issue requests on newly importable candidates
rphmeier aaa41cc
add TODO for later when confirming candidate
rphmeier 51a891c
write a routine for handling backed candidate notifications
rphmeier dcdce46
simplify grid substantially
rphmeier a7ff9f9
add some test TODOs
rphmeier c0196d1
handle confirmed candidates & grid announcements
rphmeier 00939fd
finish implementing manifest handling, including follow up statements
rphmeier 3c976fa
send follow-up statements when acknowledging freshly backed
rphmeier f4983e7
fmt
rphmeier 15f08cc
handle incoming acknowledgements
rphmeier c8d11be
a little DRYing
rphmeier cc1d050
wire up network messages to handlers
rphmeier 1380aa9
fmt
rphmeier 3d7af96
some skeleton code for peer view update handling
rphmeier badfe68
more peer view skeleton stuff
rphmeier 1e2848c
Fix async backing statement distribution tests (#6621)
mrcnski 374cd2c
Resolve some todos in async backing statement-distribution branch (#6…
mrcnski 20b4a9e
Merge branch 'rh-async-backing-feature' into rh-async-backing-stateme…
rphmeier 0a078bb
Merge branch 'rh-async-backing-statement-distribution' of https://git…
rphmeier 23bc084
fix test compilation
rphmeier d6a2111
add a TODO for a test
rphmeier e037eaa
clean up a couple of TODOs
rphmeier bf0c063
implement sending pending cluster statements
rphmeier 9ca8c80
refactor utility function for sending acknowledgement and statements
rphmeier ecb3ae6
mostly implement catching peers up via grid
rphmeier d297070
Merge branch 'rh-async-backing-feature' into rh-async-backing-stateme…
mrcnski 4ac25ad
Fix clippy error
mrcnski bf15adc
alter grid to track all pending statements
rphmeier f2aa242
Merge branch 'rh-async-backing-statement-distribution' of https://git…
rphmeier 6b29c74
fix more TODOs and format
rphmeier 38c4779
tweak a TODO in requests
rphmeier 254efc3
some logic for dispatching requests
rphmeier 04fe291
fmt
rphmeier a693727
skeleton for response receiving
rphmeier 3a7864f
Async backing statement distribution: cluster tests (#6678)
mrcnski 1cd0ae0
fix up
rphmeier dc1ae58
fmt
rphmeier e745a60
update TODO
rphmeier 89c6c78
Merge branch 'rh-async-backing-statement-distribution' of https://git…
rphmeier 040d877
rework seconded mask in requests
rphmeier 6269f6c
change doc
rphmeier 43ef927
change unhandledresponse not to borrow request manager
rphmeier 8563f32
only accept responses sufficient to back
rphmeier 72394c4
finish implementing response handling
rphmeier 9d9770d
extract statement filter to protocol crate
rphmeier 784c1e7
rework requests: use statement filter in network protocol
rphmeier ad94034
dispatch cluster requests correctly
rphmeier 0face3f
rework cluster statement sending
rphmeier b214988
implement request answering
rphmeier 78b1de6
fmt
rphmeier 2a7df7b
only send confirmed candidate statement messages on unified relay-parent
rphmeier f09a133
Fix Tests In Statement Distribution Branch
mrcnski 0996882
Async Backing: Integrate `vstaging` of statement distribution into `l…
mrcnski 1e3c63e
clean up some review comments
rphmeier f1264d9
clean up warnings
rphmeier bb37d26
Async backing statement distribution: grid tests (#6673)
mrcnski 14a731b
Add more tests in `requests.rs` (#6707)
mrcnski 89d8d42
remove outdated inventory terminology
rphmeier 0b2e958
Async backing statement distribution: `Candidates` tests (#6658)
mrcnski 7e339de
Merge branch 'rh-async-backing-feature' into rh-async-backing-stateme…
rphmeier 480c619
Merge branch 'rh-async-backing-statement-distribution' of https://git…
rphmeier 537987e
Async Backing: Fix clippy errors in statement distribution branch (#6…
mrcnski 4c254e6
add tests module
rphmeier c50d50d
fix warnings in existing tests
rphmeier 1ffcd43
create basic test harness
rphmeier 12947b7
create a test state struct
rphmeier 0bfe213
fmt
rphmeier 72b5e9c
create empty cluster & grid modules for tests
rphmeier d62e5dc
some TODOs for cluster test suite
rphmeier 314b68c
describe test-suite for grid logic
rphmeier 6a897c6
describe request test suite
rphmeier a45e350
fix seconding-limit bug
rphmeier 1a93b15
Remove extraneous `pub`
mrcnski 7eca1ee
Fix some test compile warnings
mrcnski 2603cff
Remove some unneeded `allow`s
mrcnski 7bd6333
Merge branch 'rh-async-backing-statement-distribution' of https://git…
rphmeier b733ffc
adapt some new test helpers from Marcin
rphmeier 46a09f3
add helper for activating a gossip topology
rphmeier a1d56c8
add utility for signing statements
rphmeier 786cf28
helpers for connecting/disconnecting peers
rphmeier a51ad18
round out network utilities
rphmeier 643ba8b
fmt
rphmeier ff15c82
fix bug in initializing validator-meta
rphmeier de62130
fix compilation
rphmeier daef720
implement first cluster test
rphmeier c4daaa7
TODOs for incoming request tests
rphmeier 01468f6
Remove unneeded `make_committed_candidate` helper
mrcnski 9f9ef9a
fmt
mrcnski 00ee5e7
some more tests for cluster
rphmeier 1b7d910
add a TODO about grid senders
rphmeier 804e8b3
integrate inbound req/res into test harness
rphmeier 7297515
polish off initial cluster test suite
rphmeier 91c5525
keep introduce candidate request
rphmeier 153c9cf
fix tests after introduce candidate request
rphmeier 070fe34
fmt
rphmeier 0053ff4
Merge branch 'rh-async-backing-feature' into rh-async-backing-stateme…
rphmeier c320384
Add grid protocol to module docs
mrcnski 5e5b46c
Fix comments
mrcnski b23f515
Test `backed_in_path_only: true`
mrcnski 9ac736b
Update node/network/protocol/src/lib.rs
rphmeier 646184a
Update node/network/protocol/src/request_response/mod.rs
rphmeier 920c607
Mark receiver with `vstaging`
mrcnski 7d514ea
validate grid senders based on manifest kind
rphmeier 8cf3d5f
fix mask_seconded/valid
rphmeier 06beb30
fix unwanted-mask check
rphmeier 2987860
fix build
slumber dbc37d1
resolve todo on leaf mode
slumber 813a230
Unify protocol naming to vstaging
slumber 12689f4
fmt, fix grid test after topology change
rphmeier d8239ab
typo
rphmeier 96e6a10
address review
rphmeier d75300a
adjust comment, make easier to understand
rphmeier caea569
Fix typo
mrcnski File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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.
Uh oh!
There was an error while loading. Please reload this page.