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

aragen refactor #95

Open
kernelwhisperer opened this issue Jul 15, 2019 · 3 comments
Open

aragen refactor #95

kernelwhisperer opened this issue Jul 15, 2019 · 3 comments
Labels

Comments

@kernelwhisperer
Copy link
Contributor

🚀 Feature

I think it would make sense if the aragen scripts (which generate a new environment) would become a command: aragon env deploy that would install an Aragon environment to a new testnet/ mainnet instance/ sidechain, etc. (xDAI, Flora)

For a performance improvement, we can go from "cloning, building, compiling the repos" to "download the packages from mainnet APM, deploy". This should also make a deployment easier to maintain because they will have the same hashes and same versions.

aragon env deploy could take a list of apps to be deployed as well as their versions.

aragon env inspect could display the status of a deployment (versions, addresses, ens domains, etc.) (something like https://github.com/aragon/deployments but more dynamic)

The aragon devchain command could instead do:

  1. Check if an eth chain is running at the supplied port
  • if yes, check the deployment
    • if already deployed return
    • otherwise run aragon env deploy
  • if no then start ganache and then run aragon env deploy

Note: The ipfs command also depend on aragen for the ipfs-cache.


What would be really useful for this feature is "deterministic deployments". I believe you cannot deploy any version you like to APM. E.g: Deploy 2.0.0 without deploy 1.0.0 first. Are there security concerns for not allowing this? cc: @sohkai

@sohkai
Copy link
Contributor

sohkai commented Jul 15, 2019

This would be really useful; the difficulty would be deploying some of the instances (e.g. the aragonPM org) since we can't just copy over the bytecode. Anything in an aragonPM repo we should be able just to deploy the same bytecode.

I think aragon devchain could still default to running off of a downloaded snapshot, for efficiency reason. But you could give it parameters to start up with a different chain.

I believe you cannot deploy any version you like to APM. E.g: Deploy 2.0.0 without deploy 1.0.0 first. Are there security concerns for not allowing this? cc: @sohkai

Not particularly a security concern, but I think it's fine if we just re-deployed all the major versions of a repo into the new devchain (so all the contracts are still available)? Seems a bit odd to have a 2.0.0 without a 1.0.0 first.

@onbjerg
Copy link

onbjerg commented Aug 1, 2019

Another user story here:

For Daolist (now Apiary) I've wanted to implement features that require an archive node with tracing enabled. Since archive nodes are pretty expensive to run in production, development will have to be done on a local chain with tracing enabled.

Right now it is still somewhat of an involved process deploying all of Aragon (base contracts, apps) and dependencies (namely ENS) and configuring everything.

Having the ability to just do aragon env deploy or something similar would substantially speed up this process and also make the environment reproducible in a continuous integration environment.

I believe this probably also holds true for other auxiliary services for Aragon that will undoubtedly come in to existence given Aragon is increasingly adopted.

@0xGabi
Copy link
Contributor

0xGabi commented Oct 11, 2019

As discussed with Brett it might be interesting to have a command to generate a snapshot from an aragonPM instance.

Then we can just publish to aragen using the aragonPM snapshot's latest version content :).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants