-
Notifications
You must be signed in to change notification settings - Fork 277
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
feat(multisig)!: pretty list of pending proposals #5240
feat(multisig)!: pretty list of pending proposals #5240
Conversation
BREAKING CHANGES: - (api-changes) optional `MultisigPropose.transaction_ttl_ms` to override the account default Signed-off-by: Shunkichi Sato <[email protected]>
Signed-off-by: Shunkichi Sato <[email protected]>
Signed-off-by: Shunkichi Sato <[email protected]>
BREAKING CHANGES: - (api-changes) `MultisigSpec` `MultisigProposalValue` metadata values Signed-off-by: Shunkichi Sato <[email protected]>
Signed-off-by: Shunkichi Sato <[email protected]>
Signed-off-by: Shunkichi Sato <[email protected]>
Signed-off-by: Shunkichi Sato <[email protected]>
Signed-off-by: Shunkichi Sato <[email protected]>
Signed-off-by: Shunkichi Sato <[email protected]>
Signed-off-by: Shunkichi Sato <[email protected]>
Signed-off-by: Shunkichi Sato <[email protected]>
6b39385
to
ebe8c20
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only one minor comment
else { | ||
return Ok(()); | ||
}; | ||
type PendingProposals = BTreeMap<ProposalKey, ProposalStatus>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently this is in iroha_cli
as a sample client implementation, but if considered as a common structure to clients, could be moved to iroha
. And if considered as a raw query result, could be moved to iroha_torii
or somewhere more internal, probably with no humantime and system-dependent time
Signed-off-by: Shunkichi Sato <[email protected]>
Context
As of #5217 multisig has some defects especially around the recursion feature:
The output of
multisig list
command is verbose, not well structured, and less informative about the authentication status:Before
Once a direct multisig account has passed approval, the whole status no longer appears to the child signatories
TTL is bound to each account, which is a blocker to consistency as the entire multisig transaction hierarchy
On expiration, only the approving node that found the proposal expired is deleted. On execution, only nodes on the path from the last approval to the root proposal are deleted. The remaining nodes require other approvals to be completely deleted
Execution of multisig instructions is panic-prone when metadata is modified. Related to (multisig) potential inconsistency between the role and the account metadata #5229
Solution
feat(multisig): pretty list of pending proposals
After
fix(multisig): keep proposals in list while root is pending
feat(multisig)!: override TTL per transaction
Delete all relevant entries on expiration and execution:
fix(multisig): question existence and format of metadata
Migration Guide
MultisigPropose.transaction_ttl_ms
to override the account defaultMultisigSpec
MultisigProposalValue
metadata valuesReview notes
Notice the changes to the tests:
multisig::multisig_recursion_*
integration testsscripts/tests/multisig.recursion.sh
, especially whatmultisig list
output informsChecklist
CONTRIBUTING.md
.