-
Notifications
You must be signed in to change notification settings - Fork 22
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
Remove timepoint
from multisig
#35
Comments
Thank you! I agree that it is not the extrinsic's responsibility to safeguard user input. Here is my understood pros/con list for the proposed change. Please let me know if I am missing anything! Pros:
Con:
I do think it is important for us to try to measure these pros/cons:
|
I agree with the Pros/Cons list. Here are my takes on the questions:
I think this question will lead us to the wrong decision. Current users are already ok with the current design, hence, they are The improvement I'm proposing will probably increase the adoption of new users. For example, suppose someone is planning to use substrate and multisig, and he comes across how difficult it will be for him with the For the existing users, it might be more complicated:
I don't think much computing will be gained. However, I think each time you profit from storage, it adds up, since you are making the whole history smaller, and that is very important for blockchains.
I have no idea, maybe parity team can answer this better than us |
What is
timepoint
?timepoint
parameter foras_multi
andapprove_as_multi
functions.AccountId, Hash
pair, and they are stored in storage asStorageDoubleMap
. And we don't needtimepoint
to uniquely identify multisig operations.timepoint
is:M
), with AccoundId = A, and Hash = HM
(say Alice) forgot to approve it (and it's ok. It got dispatched, which means it got enough approvals already)M'
) is created, with AccountId = A, and Hash = H (so basically, it is the same multisig operation again)M
, but in fact, she will be approvingM'
M'
is basically the exact copy ofM
, it will somehow be a problem that Alice approvedM'
.timepoint
parameter prevents that highly unlikely and probably harmless situation... But at what cost?The problem
Having a
timepoint
parameter is significantly hindering the developer experience for multisig pallet. Due to following reasons:timepoint
of a multisig operation.timepoint
: https://github.com/paritytech/txwrapper-core/tree/768bb445beb2907582b2d5e13ade3be5d995af3e/packages/txwrapper-examples/multisig#timepoint-of-approveasmulti--storagetimepoint
s purpose is in the pallet. It is confusing for most of the developers to encountertimepoint
The solution
Simply getting rid of
timepoint
in multisig pallet.And in the scenario where Alice is too careless, and approves
M'
instead ofM
, and this becomes a problem for her, I think it is Alice to blame, not this pallet.To me, it seems like: to make maybe 1 or 2 user/s happy, we are making 99.9% of the users unhappy.
Here is the relevant PR I've opened: paritytech/polkadot-sdk#2542
The text was updated successfully, but these errors were encountered: