Vote on contract upgrades #2
Open
opened 2018-03-12 18:57:40 +00:00 by bumi
·
9 comments
No Branch/Tag Specified
master
new-final-deploy
new-final-deploy-2
reimbursement-export
staging
legacy
addresses/rsk-testnet-raucao-1
ipfs-defaults
deletemewhendone
feature/184-improve_withdrawal
tests/contracts-contribution
tests/contracts-kit
kit/add-vault-app
feature/ipfs_hash_in_add_response
chore/bootstrap-on-travis
chore/remove-direct-aragon-cli-dependency
chore/update-dependencies-1
fix/ipfs-config
apm-hack
wtf/package-lock
feature/contributor-balance
feature/constructor-options
v7.5.0
v7.4.0
v7.3.0
v7.2.0
v7.1.0
v7.0.0
v7.0.1
v7.0.0-beta.0
v6.0.0
v5.5.0
v5.4.0
v5.3.0
v5.2.0
v5.1.1
v5.1.0
v5.0.0
v4.0.2
v4.0.1
v4.0.0
v3.0.2
v3.0.1
v3.0.0
Labels
Clear labels
good first issue
ipfs
rsk
scaling
bug
dev environment
docs
duplicate
enhancement
feature
idea
invalid
kredits-1
kredits-2
kredits-3
question
security
ui/ux
wontfix
Good for newcomers
Something is not working
Config, builds, CI, deployment, etc.
Documentation
This issue or pull request already exists
Improving existing functionality
New functionality
Something to consider
Not a bug
Small contribution
Medium contribution
Large contribution
Looking for an answer
release
major
release
minor
release
patch
All your base are belong to us
User interface, process design, etc.
This won't be fixed
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: kredits/contracts#2
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Upgrading tokens is a security risk and requires trust to whoever is able to upgrade to a new version.
We need to define a process on how to upgrade to new releases and implement the specific access controls.
Who should be able to upgrade contracts to a new version?
Will the be some voting required? Should it be some multisig transaction?
I'm in for a voting! Is the proposal part also a voting? If so what would be the difference? Is it possible to abstract it to have something like a
Votableconcern? I think we need something like avotable_targeta condition who can vote, what is the final state and what should happen if the final state is reached.Off topic question: Is every call to the contract a transaction that needs gas?
Every call to a contract that changes the state is a transaction and costs gas.
Reading data from a contract is free - as it is just accessing the local DB from the connected node.
Voting would for sure be the best. I think the general logic what will be executed is different though. For proposals new tokens will be issued for upgrading the contract some different attribute must be set.
The
Votableis a good idea. Maybe we can try that every proposal is its own small contract that implements that logic - need to see how much that would be.I'd focus on the proposals first though.
doable with aragon (#62 )
Even though it's doable with that, this issue is still valid, no? Or do we already have contract upgrade voting implemented in #62?
yeah probably you're right.
right now some access role is defined. The deploy account gets that role and we would need to give that one to a voting app. And actually I think we could even use the aragon voting app for that.
Though all this is theory and I have not tested it.
but for the launch I think that is enough?
Yes, of course. Just making sure we keep issues open for the things we plan to implement in the future.
I somehow have added this issue in the launch milestone. I remove the milestone but we keep the issue open.
refs #171