-
Notifications
You must be signed in to change notification settings - Fork 491
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
libgoal: set FirstValid to LastRound to prevent early tnxs #5622
libgoal: set FirstValid to LastRound to prevent early tnxs #5622
Conversation
I fixed some tests that had implicit assumptions on FirstValid values. Two of them are e2e_subs that had logic sig checking FirstValid vs TIMEOUT_ROUND, and another is lease test for V22 consensus where lease range was [FirstValid, LastValid] and not [current - MaxTxnFile, current] as in V23+. |
Codecov Report
@@ Coverage Diff @@
## master #5622 +/- ##
==========================================
+ Coverage 54.95% 55.01% +0.06%
==========================================
Files 463 463
Lines 64525 64528 +3
==========================================
+ Hits 35457 35502 +45
+ Misses 26684 26652 -32
+ Partials 2384 2374 -10
... and 12 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
For comparison the SDK suggests you use firstvalid = lastRound, not lastRound+1 |
then we are in sync now, thank you for checking |
Summary
Pingpong testing on large network discovered an issue when a node sends transactions that are too early to its neighbors. This happens when a node is few milliseconds ahead and immediately sends transactions.
There are some logs from NPN running pingpong and its sibling relays. Note the
EnsureBlock
timestamp and transaction sending timestamp.NPN:
Relays:
Test Plan
Adjusted existing test.