-
Notifications
You must be signed in to change notification settings - Fork 215
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
verifiability of vote counters requires one vat per question? #3907
Comments
@dckc This was an overlooked New Issue. Do we need this for Mainnet 1? |
I opened this on behalf of @dtribble . I'm assigning him in the customer role. |
p.s. since the provisional Zoe fees went away, the 5 RUN charge is no longer. |
Resolve the design for MN-1, and then determine if we need to do anything from MN-1. |
@dtribble Is this really needed for MN-1? |
@warner and I did some testing today using the fact that each question results in a new vat to reach the |
One vat per vote is one kind of expensive, but never terminating that vat is a bigger kind of expensive. |
@Chris-Hibbert I think I have heard you say that it's straightforward to have one contract count votes for multiple questions. If so, that reduces the scope of this issue from a design question to an enhancement to make it so, yes? |
The remaining design question is how to satisfy the governance requirements about legibility and such. I'm pretty sure there's a straightforward answer, but it'll require a more complex validation approach to assure all participants that the dependencies are addressed. |
Another approach came up in conversation with @warner. One of the objectives of this ticket is reducing the cost to the chain of using one eternal vat per vote. If the voteCounter records its outcome to vstorage in a place that can be reliably located, the vat doesn't have to stick around. I haven't spent any time looking at the details, but my instincts say that the outcome could be indexed by the electorate, and that would cover the long-term dependencies. According to Brian, single-use vats that go away after use are much less expensive than ones that can't be deleted. If this becomes a priority to address, I'd recommend a redesign that presumed that concurrent users could get the vote outcome via a promise, and later clients would expect to access it via vstore. Then the voteCounter vat could resolve its outstanding promises, wait for quiescence, and then exit, and that would serve all the durability and legibility needs of Governance. |
THis issue came up in today's Kernal meeting. Looking to move this into coming work to help with performance. |
for follow-up, see: |
Describe the bug
In the internal demo (#3869), it seemed awkward / expensive that each call to
Registrar.addQuestion()
instantiates a vote counter contract in its own vat.For reference: as of the demo, the execution cost was around 5 RUN, which was occasionally a practical issue. (or perhaps that was to instantiate the registrar contract, but the amounts were similar.)
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Good question. Maybe this is as good as it gets? Does asking a question need to cost substantially less than 5 RUN? With "zygotes" (#2268), perhaps contract instantiation will be substantially cheaper.
Additional context
the context was an internal demo (#3869), using a branch of the governance contracts from #3448 .
cc @Chris-Hibbert @katelynsills @dtribble @rowgraus
The text was updated successfully, but these errors were encountered: