Proposal 136285 - Zane | CodeGov
Vote: ADOPT
Reason: Build completes successfully, both hashes and reviewed commits match their descriptions.

1c46b8a2c7 IS_DISBURSE_MATURITY_ENABLED
flag was incorrectly enabled in production instead of only for testing, this commit fixes it.
28ef5ff672 Cleaned up feature flags related to periodic confirmation alongside all logic used to toggle between separate behaviours, temporarily toggle on/off the feature and removed a test validating neuron vp not being affected when the feature was disabled.
13b6e2630f Commit 7fb2409c64
introduced logic to create voting power snapshots but it was never called outside of tests, with this commit two memory ids have been reserved to persist the stable maps for the snapshots and a dedicated timer task has been implemented to periodically save them. When the canister is initiated a snapshot will be immediately scheduled to be recorded, if none exist, otherwise a timer is scheduled based on the difference between the current timestamp and the time the last snapshot was taken at + their interval. During normal execution they are taken every hour. Refactored logic to compute ballots for standard proposals in compute_ballots_for_new_proposal
, the compute logic has been moved to NeuronStore
’s compute_voting_power_snapshot_for_standard_proposal
which returns a VotingPowerSnapshot
, then the ballots are processed by calling create_ballots_and_total_potential_voting_power
on the snapshot instance returned by the compute method. compute_voting_power_snapshot_*
is also used in the timer task to generate new snapshots.
e41b1f0c46 Moved LedgerUpdateLock
from governance module to neuron_lock. Added NeuronAsyncLock
which wraps the governance struct in a thread local RefCell, rather than exposing it as a raw pointer, so it can be accessed in async contexts.
971eecc54a Updated changelogs files.
6aca5540e6 Defined MaturityDisbursementIndex
struct which keeps track of when disbursals should happen for each neuron and allows for efficient lookups of the next disbursal event’s timestamp and all neurons which should be processed in it. A memory id has been reserved for it and StableNeuronIndexes
has been extended with a maturity_disbursement
field to persist it in stable memory. A metric has also been added to track the size of the maturity_disbursement
index, though at this time both said metric and the logic to properly keep the index up to date are gated behind the IS_DISBURSE_MATURITY_ENABLED
flag, which is disabled in prod.
About CodeGov
CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neuron’s Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.
Learn more about CodeGov and its mission at codegov.org.