-
Notifications
You must be signed in to change notification settings - Fork 790
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
Vote timestamps Test Cases #3009
Comments
A couple below saturation events were done today with some vote tightness capture based on vote timestamps compared to publish times. Thanks to @Srayman and for the blocks and graphs. Based on these tests VT1 seems good on the These tests are also satisfactory for VT3a test with additional saturation level tests for VT3b outstanding. 500 BPS Test, sustained ~2.5mins, non-saturation 1000 BPS Test, sustained ~1.25mins, near saturation |
Thanks for the blocks on this @Joohansson A 1500 BPS saturation test (Discord link) was performed which resulted in a lower peak of just under 1000 BPS median seen across all nodes as well as just within PRs (so rebroadcasting issues likely weren't causing poor propagation due to publication to all PRs initially). Still no The cause of the lower BPS propagation is not known, but could be due to a variety of network or other factors including some RocksDB caching issues (suspected in prior poor performance instances but mostly with CPS, not BPS), the addition of 10 pruned non-PR nodes on 2vCPU/2GB DigitalOcean droplets (although initial publishing of blocks should go directly to all PRs so non-PRs shouldn't impact BPS much), or other network issues. Further saturation tests will be performed. Although the vote tightness data isn't the best, it is captured here for completeness. The 0 marker here is confirmation time (not publish time) and each column of data points is a block published and votes coming in for that election. 1500 BPS Graph - Zoomed out - large gaps between blocks being confirmed here with ~275s for confirmation time in the pink case. 1500 BPS Graph - first block after test highlighted - highlighted block took 17s to confirm and had post-confirmation votes seen as late as 34s |
A broader sample set was captured from 98,663 confirmations at 1000 BPS condensed into 21 intervals of 5 seconds each. Graph 1 - zoomed out Graph 2 In both graphs some bell curve behavior can be seen, with each case being the same rep generating the delayed votes causing that particular bell curve. These correlate with reps known to fall behind during spam. |
Additional tests above saturation: using the "median" value per rep across all confirmations from each vote interval (15 seconds) Graph 1 Graph 2 Although the vote timestamps feature is considered to be complete from a testing perspective, this issue will be left open for future insights/vote captures heading into later DBs. |
No issues have arisen with vote timestamps in build so far. Additional testing of vote activity will continue with final votes testing separately. Closing. |
See #2879 for the implementation details. Usage of timestamps in votes to replace sequence number will be automatically enabled on upgrade to V22.0DB7, no configuration needed.
Test Cases
VT1: General, sustained vote traffic
As a baseline test a sustained level of transactions at a low BPS should be established, ensure:
counters
subtype:vote_invalid
entries are not seen from stats RPCVerify excessive type:counters
subtype:vote_replay
entries are not seen from stats RPCVT2: Heavy/saturation vote traffic
Test a heavier level of transactions at a high BPS/saturation and ensure:
counters
subtype:vote_invalid
entries are not seen from stats RPCVerify excessive type:counters
subtype:vote_replay
entries are not seen from stats RPCVT3: Vote tightness tracking via WebSockets
Capture vote data from WebSockets during heavy network traffic times to determine the tightness of votes seen during varying levels of activity. Use the new "timestamp" field included there, which is pulled directly from the vote itself.
For easier trend identification, having graphs of the tightness of votes over time during these tests would be valuable.
The text was updated successfully, but these errors were encountered: