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
Purpose: Implement the governance-controlled parameters with the ability to add new features, enable, disable, and modify feature values dynamically.
Actors:
Validator
Application
Servicer
Fisherman
Portal
Data Structures:
messageMessageChangeGovParameter {
bytessigner=1; // signer must be the owner of the parameter or the ACL ownerint64height=2;
stringparam_name=3;
google.protobuf.Anyparam_value=4;
}
Other structs to be identified during the POC or MVC stages.
Interfaces:
The persistence module currently has feature flags as part of it's interface.
Other interfaces to be identified during the POC or MVC stages.
Diagram:
sequenceDiagram
participant A as ACL Owner
participant S as System
A->>+S: Send request to change a gov. parameter
Note over A,S: Request includes valid signer, height, param_name, and param_value
S->>S: Validates the request
S->>-A: Acknowledges the request
Note over S: New parameter takes effect at specified height
A->>+S: Request to see the new parameter value
S->>-A: Returns the new parameter value
Loading
User Stories as Tests:
Happy Paths:
An ACL Owner requests to change a government parameter with a valid signer, a height, a param_name, and a param_value. The new parameter takes effect at the specified height. The ACL Owner is able to see the new value when requested.
Sad Path:
An ACL Owner requests to change a government parameter with an invalid signer, a valid height, a param_name, and a param_value. The ACL Owner receives an error message saying the signer is not the owner of the parameter or the ACL owner.
An ACL Owner requests to change a government parameter with a valid signer, an invalid height, a param_name, and a param_value. The ACL Owner receives an error message saying the height is not valid.
An ACL Owner requests to change a government parameter with a valid signer, a valid height, an invalid param_name, and a param_value. The ACL Owner receives an error message saying the parameter name does not exist.
An ACL Owner requests to change a government parameter with a valid signer, a valid height, a valid param_name, and an invalid param_value. The ACL Owner receives an error message saying the parameter value is not valid.
Deliverable
POC:
A POC SPIKE to be closed out and split out into multiple PRs
A PR that materializes an MVP of the feature along with unit tests
A PR that introduces a new E2E tests with one happy and one sad path scenarios as described in the origin document (refer to e2e/README.md); this may require additions to the cli
A PR that updates all pertinent documentation
PROD:
One or more subsequent GitHub issues that track future work including, but not limited to:
Objective: Implement MVC E2E Feature Path F.1-4: E2E Feature Flags
Origin Document:
Purpose: Implement the governance-controlled parameters with the ability to add new features, enable, disable, and modify feature values dynamically.
Actors:
Data Structures:
Interfaces:
The persistence module currently has feature flags as part of it's interface.
There should be a simple boolean type flag included in this interface to allow for simple feature flags to be activated or deactivated.
The
MessageChangeGovParameter
message type needs to be handled in the utility module.https://github.com/pokt-network/pocket/blob/12f9f498c8b05a91f4c08c6b27227d94013d9232/utility/unit_of_work/tx_message_handler.go
Diagram:
User Stories as Tests:
Happy Paths:
valid signer
, aheight
, aparam_name
, and aparam_value
. The new parameter takes effect at the specified height. The ACL Owner is able to see the new value when requested.Sad Path:
invalid signer
, avalid height
, aparam_name
, and aparam_value
. The ACL Owner receives an error message saying the signer is not the owner of the parameter or the ACL owner.valid signer
, aninvalid height
, aparam_name
, and aparam_value
. The ACL Owner receives an error message saying theheight is not valid
.valid signer
, avalid height
, aninvalid param_name
, and aparam_value
. The ACL Owner receives an error message saying the parameter namedoes not exist
.valid signer
, avalid height
, avalid param_name
, and aninvalid param_value
. The ACL Owner receives an error message saying the parameter value isnot valid
.Deliverable
General issue deliverables
Testing Methodology
make ...
make ...
make test_all
LocalNet
is still functioning correctly by following the instructions at docs/development/README.mdk8s LocalNet
is still functioning correctly by following the instructions hereCreator: @0xBigBoss
Co-owner: @Olshansk
The text was updated successfully, but these errors were encountered: