Repository navigation
Conversation
regsnapprov billed the snapprovs row to the producer and votesnaphash billed each snapvotes row to the snapshot account. An account created through sysio.roa holds only newaccount_ram, so its regsnapprov failed 64 bytes short. Both tables now bill sysio, like the rest of the producer path. Account RAM was the only bound on pending votes when quorum stalls, so votesnaphash now accepts votes only for the two most recent scheduled heights and purges pending rows below that window, at most 60 per call. The table holds at most 60 rows. A vote or retry below the window fails with "snapshot block is older than the pending vote window"; late votes on a finalized record and the disagreement error are unchanged. No ABI change. Change-Id: I7b25ceb014982f934e8678a6e3c17650e3576ebf
This branch has not been deployed
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
regsnapprovbilled itssnapprovsrow to the producer, andvotesnaphashbilled eachsnapvotesrow to the snapshot account (later agreeing voters were appended to the first voter's row at its expense). Accounts created throughsysio.roahold onlynewaccount_ramand no CPU/NET, so a producer'sregsnapprovfailed: it needs 1208 bytes against a 1144-byte quota. Every other row on the producer path is already billed tosysio.Changes
snapprovsandsnapvotesrows are billed tosysio. A vote row opened before this change moves tosysiothe next time a vote is appended to it.votesnaphashaccepts votes only for the two most recent scheduled heights (max_pending_vote_heights) and purges pending rows below that window, at most 60 per call.snapvotesholds at most 60 rows.snapshot block is older than the pending vote window. A matching late vote on a finalized record still succeeds, and a mismatch still returns error 9001.regsnapprovrow.Notes
sysio.system.wasmmoves.producer_pluginlogs the failure and keeps running.snapprovsrows already on a chain stay billed to their producers until rotated, deleted or pruned.