You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the course of building the staking and distribution components, we frequently uncovered/created bugs in the implementation, either in the form of straight up dysfunctions (e.g. missing state transitions) or in harder to detect invariant violations (e.g. reward overspending).
In both cases, these mistakes could have been caught by leveraging our App test harness.
This issue is a first pass at inventorizing bugs that have occured in the process of [re]developing these components. For now, its purpose is to serve as a basis to guide future assurance work. Later, it will serve as a regular tracking issue that describes roadmap and completion of a project.
fixes#3966. fixes#3908. fixes _part of_ #3995.
this branch introduces the first steps towards mock consensus (#3588)
testing of the staking component (#3845).
this defines a validator after genesis, and then shows that it does
_not_ enter the consensus set. #3966 is addressed in this branch so that
the existing genesis validator correctly enters the consensus set, and
so that we can successfully progress to the second epoch.
subsequent changes will exercise delegating to this validator in the
`mock_consensus_can_define_and_delegate_to_a_validator`.
#### ✨ changes
* alters `with_penumbra_auto_app_state` so that it adds an allocation of
delegation tokens to the shielded pool component's genesis content.
* extends `generate_penumbra_validator` so that it generates a real
spend key, and returns an `Allocation` for the generated validator.
_(see #3966)_
* adds a new `mock_consensus_can_define_and_delegate_to_a_validator`
test that defines a post-genesis validator. _(see #3908)_
* defines a new `ConsensusIndexRead::get_consensus_set()` method, which
collects all of the identity keys returned by `consensus_set_stream`.
* lowers the events in
`penumbra_mock_consensus::block::Builder::execute()` to trace-level
events.
* `penumbra_mock_consensus::builder::Builder` will now log a warning if
values may be errantly rewritten by the builder methods.
* `TestNode::fast_forward` sets its `i` span field to `1..n`, rather
than `0..n-1`.
---
#### :link: related
* #4009
* #4010
* #4011
* #4017
* #4027
* #4028
* #4029
* #3966
* #3908
* #3588
---------
Co-authored-by: Henry de Valence <hdevalence@penumbralabs.xyz>
Staking/Distribution QA and testing
Main tracking issue: #3452
In the course of building the staking and distribution components, we frequently uncovered/created bugs in the implementation, either in the form of straight up dysfunctions (e.g. missing state transitions) or in harder to detect invariant violations (e.g. reward overspending).
In both cases, these mistakes could have been caught by leveraging our
App
test harness.This issue is a first pass at inventorizing bugs that have occured in the process of [re]developing these components. For now, its purpose is to serve as a basis to guide future assurance work. Later, it will serve as a regular tracking issue that describes roadmap and completion of a project.
Historical bug inventory:
Validator state-machine
Defined <> Inactive
#3770Staking end-epoch handling
Rate calculations
Stake bonding mechanisms
Validation
Testing tracker:
Tombstoning
Enshrining action invariants
Rate calculations
Validator state-machine
The text was updated successfully, but these errors were encountered: