-
Notifications
You must be signed in to change notification settings - Fork 937
Rough prototype for architectural changes needed to introduce execution proofs #7755
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
kevaundray
wants to merge
159
commits into
sigp:unstable
Choose a base branch
from
kevaundray:kw/exec-proofs
base: unstable
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from 1 commit
Commits
Show all changes
159 commits
Select commit
Hold shift + click to select a range
3c64dcc
initial stateless-validation flag
kevaundray 1a372d8
add initial execution payload proof store
kevaundray 5e56ab8
add initial code to config subnets (without having subnets)
kevaundray ab60fbf
Add code for proof generation + some refactor
kevaundray 2ec002d
gossip subnet
kevaundray 260b642
proof broadcasting
kevaundray 9f7fca3
remove unneeded methods
kevaundray 4b07bdf
cargo fmt
kevaundray 42c269e
make cli
kevaundray bc9fa8f
add code to re-evaluate blocks when a proof arrives
kevaundray 089cf75
avoid duplicate blocks and cleanup pending blocks after some period
kevaundray b372270
add TODO about orphaned proofs
kevaundray 38cb552
short lived write lock
kevaundray 23008f4
rough architecture doc
kevaundray e3071aa
log lines
kevaundray 98e350c
add proof subnets to whitelist
kevaundray c63f439
All nodes subscribe to all subnets
kevaundray 0364285
fmt
kevaundray 82557b7
add generate-execution-proofs flag
kevaundray 7bea51d
remove `spawn_proof_generation_task`
kevaundray f42ee91
execution payload instead of hash
kevaundray b7c1dfe
typo in logs
kevaundray 1a5be90
add execution state witness and random proof delays
kevaundray b5b922e
allow min_proofs parameter
kevaundray 7100010
add cli arg for stateless-min-proofs
kevaundray bdd7ad2
check node level maximum against protocol level maximum
kevaundray a700e3b
docs
kevaundray 2108ca3
refactor
kevaundray 0cc34e4
make cli
kevaundray 8708639
cargo fmt
kevaundray ee48e62
commit
kevaundray 54f9f32
update logs
kevaundray d2afdec
refactor loggin and add proof delay
kevaundray 5cf853b
refactor
kevaundray 9156429
refactor
kevaundray 855224d
be more concise
kevaundray 5343347
tests
kevaundray c497fca
decrease number of proof generators
kevaundray bc281d3
refactor subnet_id
kevaundray 9fc5733
refactor code
kevaundray 9e70570
remove timestamp
kevaundray 3d51683
add comment on version
kevaundray 98d01df
Make ProofId::new failable
kevaundray 0f9a272
remove return values -- tech debt
kevaundray 1f48d27
api cleanup
kevaundray c3ea66e
add separate storage for broadcast_queue
kevaundray 8950959
refactor
kevaundray 682741a
make state machine clearer
kevaundray e8ae9cb
cleanup when proofs exceed max_attempts
kevaundray 88ce599
guard broadcaster with stateless-validation flag
kevaundray bc72b4f
cargo fmt
kevaundray 3a51953
remove unused parameter
kevaundray 8c39d67
fix
kevaundray c45b7f3
refactor comments
kevaundray 3c8bdcc
refactor
kevaundray b1b5d64
remove outdated comment
kevaundray 0e7bbb1
remove unused methods
kevaundray b649fb2
typo
kevaundray 3fea602
small comment on take_unqueued_proofs
kevaundray bf99fa3
cusot -> new and remove timestamp field
kevaundray bf122f5
remove ExecutionPayloadProof
kevaundray ac6a5bc
fix rename
kevaundray 1d3d492
cleanup
kevaundray 66be583
fix rename to generate_proof
kevaundray 72ee1e2
move proof generation to separate module
kevaundray 189a01c
move proofs to execution_proof_generation
kevaundray cdd79ae
add comments
kevaundray 718122b
fix comments
kevaundray 219edb9
rename to cleanup_pending_blocks
kevaundray 97c4b29
comment
kevaundray 6cdc7a0
small clean up of cleanup_pending_block
kevaundray e496b45
add comment on 1:1 being common
kevaundray 80e0fc6
comments
kevaundray 9ed554c
change visibility of private methods
kevaundray 6d3a621
refactor
kevaundray ca49ad3
fmt
kevaundray 6a44879
refactor tests
kevaundray 82763b5
make ProvenBlockInfo private
kevaundray 4c64988
add an impl block for test methods
kevaundray 791bb96
cargo clippy
kevaundray 29acac5
update doc comment for ExecutionPayloadProofStore
kevaundray 4bd7692
decrease public API and temporarily use comments to organize code
kevaundray 2ad9161
refactor more of the logging
kevaundray 9e7a312
pull out execution proof changes from beacon_chain.rs
kevaundray 34bfeb3
remove `cleanup_pending_blocks_older_than` method
kevaundray 5440f97
remove unneeded methods
kevaundray 9551136
refactor comments
kevaundray 611715c
remove comment
kevaundray 40de678
comments
kevaundray 2346b5f
fix cli flag
kevaundray 7005acb
make proof generation async
kevaundray 0072d08
remove unused methods
kevaundray 2b5b870
remove debug log
kevaundray 1b6fde7
fix test
kevaundray 843803e
clean up logging
kevaundray 392269a
make cli
kevaundray 7f1eb7f
less indenting
kevaundray a131e06
refactor logs
kevaundray 88c48a2
add comment on code expectation
kevaundray 75922d7
add comment
kevaundray c41a475
revert
kevaundray 7de9914
use direct method to get execution payload
kevaundray 59df8ff
cache proof generation
kevaundray dfad96b
cargo fmt
kevaundray 3f0c9de
add comment
kevaundray 94190c6
fix
kevaundray ff93ee1
more notes
kevaundray 4e99f8d
top level import
kevaundray 4de9df0
remove debug test
kevaundray ab30139
rename execution_payload_proof -> execution_proof_store
kevaundray 19b6960
refactor rest of code
kevaundray 588ba6a
fix tests
kevaundray c13724a
Merge branch 'unstable' into kw/exec-proofs
kevaundray b187aa9
remove out of place tests
kevaundray f176dde
Update beacon_node/beacon_chain/src/execution_payload.rs
kevaundray 8fbe3f5
Update beacon_node/network/src/network_beacon_processor/gossip_method…
kevaundray dfbd22b
DA checker (#7)
kevaundray 5e71b02
Merge branch 'unstable' into kw/exec-proofs
kevaundray 709fdbc
add Gloas
kevaundray 61046fe
fix
kevaundray b62dc76
fmt
kevaundray 53550d8
consolidate merge
kevaundray 4af1147
remove alias
kevaundray f45d010
partial change: Availability -> Importability
kevaundray c92826e
ImportableProofData
kevaundray 3189def
change version from u32 to u64
kevaundray 100074e
revert return param
kevaundray 70995a3
fix compile: mainly changing Availability to Importability
kevaundray b5df3ff
fix test
kevaundray 3485889
make proof processing similar to blob processing
kevaundray 41b5ff6
fmt
kevaundray e145533
remove debug log
kevaundray c4a9590
add TODO
kevaundray 04e21dd
change payload verification status if proofs are available
kevaundray 34ed2b5
comments
kevaundray 5013d84
revert Importability -> Availability
kevaundray 3fa9929
remove import
kevaundray 06c195b
use VerifiedExecutionProof in overflow_lru_cache
kevaundray 26ee389
fmt
kevaundray 5ef5f5e
create proofs during publish_block workflow
kevaundray bf156ce
remove proof generation from execution_payload
kevaundray 5cb92a4
fmt
kevaundray 2d92d5c
remove now unused channel
kevaundray ba72507
add proof networking code to execution_proof_network
kevaundray 37ee3e7
generate proofs when forwarding and remove now duplicated code since …
kevaundray 1a10639
remove debugging postfix
kevaundray 715e650
Merge pull request #12 from kevaundray/kw/networking-exec-proof
kevaundray 4ba3974
Merge branch 'unstable' into kw/exec-proofs
kevaundray b7754f1
add proofs to PeerSubnetInfo
kevaundray 6e1ad67
cargo fmt
kevaundray 2d9c7ac
add todo
kevaundray 0caee2d
Merge remote-tracking branch 'sigp/unstable' into kw/exec-proofs
dapplion 6bffe33
Lion minor review changes
dapplion 7adbdd7
delete file
kevaundray e84526b
Merge branch 'unstable' into kw/exec-proofs
kevaundray 471c3a9
Add SSE
kevaundray ff5e23d
add ENR
kevaundray 088741c
change number of subnets to 1
kevaundray ebbad4c
Review PR
dapplion 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
Some comments aren't visible on the classic Files Changed page.
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
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
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
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
You are viewing a condensed version of this merge commit. You can view the full changes here.
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.
Related to this, one assumption also being made is that the block will arrive before the proofs. This assumption is reasonably sound given the time it takes to create proofs, however I can see it being broken in the following cases:
One solution here would be to store proofs for blocks currentSlot + N in the future, but we would need to store the slot number also in the execution proof message because an unknown beacon root cannot tell you how far in the future it is