Skip to content
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

Merge master to v0.26 #2536

Merged
merged 227 commits into from
Jun 1, 2022
Merged

Merge master to v0.26 #2536

merged 227 commits into from
Jun 1, 2022

Conversation

zhangchiqing
Copy link
Member

No description provided.

fxamacker and others added 30 commits March 24, 2022 13:32
Payload key is auxiliary data and shouldn't be included in payload
equality test.

Although payload key was used in this comparison for about a year,
this is an edge case that isn't triggered by our current use of MTrie.
So this change isn't expected to cause compatibility issues.
In Mtrie, it is expected that for a specific path,
the payload's key never changes.
Restore Payload.Equals() to compare payload keys and values.

Add Payload.ValueEquals() to compare payload values.

Add and update tests.
fxamacker and others added 19 commits June 1, 2022 12:26
…rter

Add Atree reporter to execution state extraction
otherwise the cluster committee may return an error as it is unable to
determine the identities for the block (determined by the reference
block)
2372: Outdated blocks should not be logged as errors r=AlexHentschel a=AlexHentschel

Conceptually, it is expected during normal operations that some _other_ nodes could fall behind and send outdated messages, such as block proposals.  Despite this being an expected scenario, outdated blocks as logged as errors ([code](https://github.com/onflow/flow-go/blob/f93a31395b2b780f2cbabba1c5303e2fe43d745b/engine/common/follower/engine.go#L349-L357): errors are bubbled up the call stack, where they arrive at the networking layer, which just logs them.) We have seen that such harmless conditions can be distracting during incidents [[slack](https://axiomzen.slack.com/archives/CEEGK3HGC/p1651601982120259?thread_ts=1651599613.010539&cid=CEEGK3HGC)], potentially sending engineers down the wrong rabbit hole. 

This PR attempts a preliminary fix and only handle this particular case of outdated blocks. Generally, the Flower engine is older code which lacks adequate error handling, including the protocol. So there is much more work beyond this PR. 


Co-authored-by: Alexander Hentschel <alex.hentschel@axiomzen.co>
1895: [State Sync] Add execution data requester r=peterargue a=peterargue

Closes #1452
Closes #1897

This PR adds a new component for requesting `ExecutionData` from the network for newly sealed blocks. It does so by watching for finalized block notifications from hotstuff, and requesting data for each of the blocks included in the seals.

This currently sets no expiration for the state data, which means nodes will keep the data for the duration of the spork. We're expecting that to be ~150GB per month. Theoretically, an operator could delete the execution data db, and restart the node with a specific start block if they need/want to prune. Longer term, we'll want to provide better options for managing disk usage.

To Complete:

- [x] Add to access node
- [x] Add metrics
- [x] Unit tests
- [x] Integration tests

Co-authored-by: Peter Argue <89119817+peterargue@users.noreply.github.com>
2514: Add BlockHeight to TransactionResultResponse r=zhangchiqing a=lolpuddle

Depends on updates to .proto files for [this PR](onflow/flow#952)

[Closes 2413](#2413)



Co-authored-by: lolpuddle <oocean.cheung@gmail.com>
2524: Exit validation early for empty collections r=jordanschalm a=jordanschalm

For empty collections, the reference height range was not set correctly, which resulted in checking for duplicates in all cluster blocks. This PR exits validation early for empty collections.

⚠️  This PR also adds a mechanism for irrecoverable HotStuff errors, which currently are silently dropped. An issue to implement a more robust solution to this problem is in https://github.com/dapperlabs/flow-go/issues/6263.

Notes: https://www.notion.so/dapperlabs/Transaction-De-Dupe-Deployment-Notes-8027bde5183a4e4c931bb1d42905952a

Co-authored-by: Jordan Schalm <jordan@dapperlabs.com>
@zhangchiqing zhangchiqing merged commit 303f0b7 into v0.26 Jun 1, 2022
@zhangchiqing zhangchiqing deleted the leo/merge-to-v0.26 branch June 1, 2022 22:40
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.