Skip to content
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

Kill switch: Polish and integrate MVP version #518

Open
wants to merge 37 commits into
base: dev
from

Conversation

Projects
None yet
4 participants
@facuspagnuolo
Copy link
Contributor

commented Apr 30, 2019

Follow up on #516

Based on an offline discussion we had about the next-steps regarding the kill-switch topic, we decided to:

  • Drop the kernel level kill-switch idea, at least for the MVP version
  • Simplify the whole architecture to support only application level kill-switch using severities
  • Support having one issue registry per application
  • Integrate with the rest of the aragonOS components
  • Investigate how an organization is able to recover

Summing up, the new contracts model looks like:
image

And the contracts interaction is the following:
image

@facuspagnuolo facuspagnuolo requested review from izqui, bingen and sohkai Apr 30, 2019

@facuspagnuolo facuspagnuolo changed the title [WIP] Application kill switch [WIP] Application level kill switch Apr 30, 2019

@facuspagnuolo facuspagnuolo force-pushed the application_kill_switch branch from 1f702fa to ff8393d Apr 30, 2019

@aragon aragon deleted a comment from coveralls Apr 30, 2019

@facuspagnuolo facuspagnuolo self-assigned this May 1, 2019

@facuspagnuolo facuspagnuolo changed the title [WIP] Application level kill switch Kill switch - Polish and integrate MVP version May 1, 2019

@facuspagnuolo facuspagnuolo removed the wip label May 1, 2019

@facuspagnuolo facuspagnuolo changed the title Kill switch - Polish and integrate MVP version Kill switch: Polish and integrate MVP version May 1, 2019

@facuspagnuolo facuspagnuolo force-pushed the application_kill_switch branch 2 times, most recently from 9eda76e to d23363d May 1, 2019

@facuspagnuolo facuspagnuolo changed the base branch from kill_switch_poc to master May 1, 2019

@facuspagnuolo facuspagnuolo changed the base branch from master to dev May 1, 2019

@facuspagnuolo facuspagnuolo force-pushed the application_kill_switch branch from ddd2cee to d499267 May 7, 2019

@facuspagnuolo

This comment has been minimized.

Copy link
Contributor Author

commented May 8, 2019

@izqui @bingen @sohkai thanks for your reviews, I already addressed all your comments, and I really like how this is looking :)

OTOH, I've been exploring many different edge cases about recoverability, and unfortunately my conclusion is that we will need to keep working on further models to have a robust implementation. I filed an issue sharing my thoughts on the matter, feel free to comment and leave feedback there.

However, based on the last changes, I think we can are pretty to close to have a full MVP version of the kill-switch, we just need to decide the which will be the MVP version of the recoverability process. IMO, I think we can do something with the voting app similar to what I did in 7f73ac3, please follow-up in the issue mentioned above.

Show resolved Hide resolved contracts/apps/AragonApp.sol Outdated
Show resolved Hide resolved contracts/apps/AragonApp.sol Outdated
Show resolved Hide resolved contracts/apps/AragonApp.sol Outdated
Show resolved Hide resolved contracts/apps/AragonApp.sol Outdated
Show resolved Hide resolved contracts/kernel/IKernel.sol Outdated
Show resolved Hide resolved contracts/kernel/Kernel.sol Outdated
Show resolved Hide resolved contracts/factory/DAOFactory.sol Outdated
Show resolved Hide resolved contracts/factory/DAOFactory.sol Outdated
Show resolved Hide resolved contracts/kill_switch/KillSwitch.sol Outdated
Show resolved Hide resolved contracts/kill_switch/KillSwitch.sol Outdated
kill-switch: apply suggestions from @izqui
Co-Authored-By: Jorge Izquierdo <izqui97@gmail.com>

@facuspagnuolo facuspagnuolo force-pushed the application_kill_switch branch from ff52bb7 to ae617f6 May 17, 2019

@sohkai
Copy link
Member

left a comment

There's a bunch of really small comments in this review, but the main ones I'd like to bring up:

  • Making the interface a bit more generic; rather than constraining it to just the kill switch perhaps we can operate on the level of an app being "enabled" or "disabled" by external factors
  • Perhaps we can make the check for the KillSwitch a view interface, so we can use staticcalls
  • Again, rolling up the kill switch detection in AragonApp into canPerform(); to me this fits a lot better with the disabled / enabled model of an app
  • Simplifying DAOFactory; I really liked how simple the old one was 😄
Show resolved Hide resolved contracts/apps/AragonApp.sol Outdated
Show resolved Hide resolved contracts/apps/AragonApp.sol Outdated
Show resolved Hide resolved contracts/apps/AragonApp.sol Outdated
Show resolved Hide resolved contracts/apps/AragonApp.sol Outdated
Show resolved Hide resolved contracts/apps/AragonApp.sol Outdated
Show resolved Hide resolved contracts/kill_switch/KillSwitch.sol Outdated
Show resolved Hide resolved contracts/kill_switch/KillSwitch.sol Outdated
Show resolved Hide resolved contracts/test/mocks/kill_switch/FailingKillSwitchMock.sol Outdated
Show resolved Hide resolved test/contracts/kill_switch/issues_registry.test.js Outdated
Show resolved Hide resolved test/contracts/kill_switch/issues_registry.test.js Outdated
@facuspagnuolo

This comment has been minimized.

Copy link
Contributor Author

commented May 20, 2019

Thanks for the review @sohkai! I already addressed/answered all your comments. Feel free to take another look if you want.

Show resolved Hide resolved contracts/apps/AragonApp.sol Outdated
Show resolved Hide resolved contracts/kernel/Kernel.sol Outdated
Show resolved Hide resolved contracts/kill-switch/KillSwitch.sol Outdated
Show resolved Hide resolved test/contracts/kill-switch/kill_switch.js Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.