-
Notifications
You must be signed in to change notification settings - Fork 116
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
e960233
commit 26e8684
Showing
3 changed files
with
84 additions
and
9 deletions.
There are no files selected for viewing
This file contains 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 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 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
## 5.0.7 | ||
|
||
|
||
Same as 5.0.6 this is an upgrade with patches mitigate an ongoing network incident. More details here: https://hackmd.io/KY7VklgAR72Bg7ETTQZAxA | ||
|
||
These changes do not affect Move code (no changes to system state or policies). It only upgrades `diem-node` | ||
|
||
#### TL;DR | ||
|
||
Just update binaries to use patches. | ||
|
||
``` | ||
# install new binaries | ||
cd ~/libra | ||
git fetch | ||
git checkout v5.0.7 -f | ||
make bins install | ||
<stop diem-node> | ||
<restart diem-node> | ||
``` | ||
|
||
### Summary | ||
|
||
TBD | ||
|
||
### Changes | ||
|
||
##### Move Changes | ||
None | ||
|
||
##### Rust Changes | ||
##### - Harden the mempool against a flood of new txs by discarding them earlier in validation | ||
|
||
|
||
This change forces the shared-mempool incoming tx processing to discard any transactions with an advanced sequence number (in the future). This is to mitigate the incident described here: https://hackmd.io/KY7VklgAR72Bg7ETTQZAxA | ||
|
||
So here is the logic to this change, | ||
|
||
https://github.com/OLSF/libra/blob/main/mempool/src/shared_mempool/tasks.rs#L225-L248 rejects old sequence numbers but not new sequence numbers. | ||
|
||
but | ||
https://github.com/OLSF/libra/blob/main/mempool/src/shared_mempool/tasks.rs#L252-L258 but the new sequence numbers get rejected here which is a more expensive validation. | ||
|
||
Rejecting them earlier should help preserve resources | ||
|
||
One thing about this patch is that we expect -- because it only blocks txs with newer sequence numbers from other validators -- we expect that newer sequence numbers will sit in the mempool of the node that received them until the state has been updated | ||
|
||
What this regresses is the ability of a block proposer to propose sequential sequence numbers from a single account. | ||
|
||
This more useful for a payments use case than current 0L use cases. We can revert this when we pull in performance work from upstream | ||
|
||
https://github.com/OLSF/libra/pull/922 | ||
|
||
|
||
##### Tests | ||
|
||
- All continuous integration tests passed. | ||
- The diem-code was tested on a "Canary rollout" to three production nodes that were both synced and out of sync. | ||
|
||
##### Compatibility | ||
The Move framework changes are backwards compatible with `diem-node` from v5.0.1 | ||
|
||
### Rust changes | ||
#### Diem Node | ||
Changes to `diem-node` is compatible with on-chain state from `v5.0.5`. |