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
Add attested candidate request retry timeouts #6833
Merged
mrcnski
merged 275 commits into
rh-async-backing-feature
from
mrcnski/async-backing-limit-requests
Apr 12, 2023
Merged
Changes from 250 commits
Commits
Show all changes
275 commits
Select commit
Hold shift + click to select a range
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 a94e203
Hook up request sender
mrcnski bc158da
Add `valid_statement_without_prior_seconded_is_ignored` test
mrcnski 5845a6b
Fix `valid_statement_without_prior_seconded_is_ignored` test
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 2078d0c
Merge branch 'rh-async-backing-statement-distribution' into mrcnski/s…
mrcnski 1f4f2e1
Remove obsolete test
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 0a62d8f
First draft of `ensure_seconding_limit_is_respected` test
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 fe86521
Fix `ensure_seconding_limit_is_respected` test
mrcnski 0fed5e6
Start `backed_candidate_leads_to_advertisement` test
mrcnski 12689f4
fmt, fix grid test after topology change
rphmeier 064f737
Send Backed notification
mrcnski 5727105
Merge branch 'rh-async-backing-statement-distribution' into mrcnski/s…
mrcnski e9e8ecf
Finish `backed_candidate_leads_to_advertisement` test
mrcnski 677a0d6
Finish `peer_reported_for_duplicate_statements` test
mrcnski 269341f
Finish `received_advertisement_before_confirmation_leads_to_request`
mrcnski 3202071
Add `advertisements_rejected_from_incorrect_peers` test
mrcnski ec9f71f
Add `manifest_rejected_*` tests
mrcnski c047fcc
Add `manifest_rejected_when_group_does_not_match_para` test
mrcnski b954560
Add `local_node_sanity_checks_incoming_requests` test
mrcnski 1cd2152
Add `local_node_respects_statement_mask` test
mrcnski c5e2cbe
Add tests where peer is reported for providing invalid signatures
mrcnski 83641b5
Add `cluster_peer_allowed_to_send_incomplete_statements` test
mrcnski f6fb698
Add `received_advertisement_after_backing_leads_to_acknowledgement`
mrcnski 2def528
Add `received_advertisement_after_confirmation_before_backing` test
mrcnski 1c531b0
peer_reported_for_advertisement_conflicting_with_confirmed_candidate
mrcnski a1c0791
Add `peer_reported_for_not_enough_statements` test
mrcnski 6a45c50
Add `peer_reported_for_providing_statements_meant_to_be_masked_out`
mrcnski 88172e3
Add `additional_statements_are_shared_after_manifest_exchange`
mrcnski c24a05f
Add `grid_statements_imported_to_backing` test
mrcnski 321dbaa
Add `relay_parent_entering_peer_view_leads_to_advertisement` test
mrcnski d0477d6
Add `advertisement_not_re_sent_when_peer_re_enters_view` test
mrcnski 8e2ae8d
Update node/network/statement-distribution/src/vstaging/tests/grid.rs
mrcnski bee35f0
Resolve TODOs, update test
mrcnski 62e70a5
Address unused code
mrcnski 6f21cf6
Add check after every test for unhandled requests
mrcnski 595d5d0
Refactor (`make_dummy_leaf` and `handle_sent_request`)
mrcnski 72412ac
Refactor (`make_dummy_topology`)
mrcnski a16288a
Merge branch 'rh-async-backing-feature' into mrcnski/statement-distri…
mrcnski 68e8038
Minor refactor
mrcnski 08e9006
Add attested candidate request retry timeouts
mrcnski 76e7ab2
Implement simple pre-empting of `MuxedMessage::receive`
mrcnski 8ce1383
Refactor out pending responses into `ResponseManager`
mrcnski 2de43ad
Wait on next ready request instead of `timeout` on `receive`
mrcnski 2ab64c7
Fix comment
mrcnski f54e252
Update some method names
mrcnski c833164
Merge branch 'rh-async-backing-feature' into mrcnski/async-backing-li…
mrcnski f6279d8
Fix comment
mrcnski 9e5a9f1
`pub` -> `pub(crate)`
mrcnski 4f19b4e
Use getter instead of `pub` for request/response managers
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
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: prefer getters over public members