Aragon

From Kosmos Wiki
Jump to navigation Jump to search

What is Aragon?

Aragon is a decentralised app on the Ethereum blockchain which allows anyone to create and manage decentralized organisations. It is an open-source project led by the Aragon Association. Aragon provides a platform for the creation of new, decentralised organisational forms that protect self-sovereignty, empower communities and facilitate collaboration across borders and jurisdictions.

Links:


AragonOS and AragonCLI

aragonOS is a smart contract framework for building decentralized organizations, dapps, and protocols.

aragonOS provides the following functionality:

  • Upgreadability: standard for upgradeable smart contracts
  • Permission control: flexible permission control system that lets us define permissions on runtime
  • Forwarders: standard on how contracts interact with each other

aragonCLI is a wrapper around truffle to interact with an aragonOS app and that allows to manage permissions and contract versions. e.g. it provides a nice CLI interface to list and manage contract versions.

AragonOS and the CLI are very similar to what we are currently doing with kredits-contracts with similar ideas and solutions. Some of our work was also inspired by code and proposals from Aragaon.


Every aragon DAO consists for multiple apps that have different versions. Similar to our registry that points to the different contracts. An app would be for example the Contributors address book or the Contributions Management.

Through forwarders these apps can be loosely coupled and for example a static call from a fixed account could later be changed to require a voting through the voting app.


Process

Init a new DAO

The CLI allows to create a new DAO and initialize some defaults through DAO-kits.

$ aragon dao new


The whole DAO can then be managed through the aragon dao command


Adding a new app

To use an app it first has to be "installed" for the DAO. Installing basically means creating a new upgradable proxy contract that uses the code from a specific contract at a specific address. Thus the contract can be upgraded to new versions independently of the proxy contract.


$ aragon dao install


Upgrading contracts

AragonOS and aragonCLI provide a standard way to manage different version of the contracts/app. They basically also have a proxy contract and point to different implementations. The CLI provides:

aragon apm versions and aragon apm publish to manage new versions of contracts.


The contract that is used can be updated through aragon dao upgrade


Permission control

So far Kredits has used hard-coded permission controls (e.g. a function can only be called from one specific contract address). The aragon permission ACL lists allow to define controls on runtime.


It is also possible to change permission through a voting contract.

or through the CLI: aragon dao acl


Aragon Nest

Aragon runs a grant program called Aragon Nest that supports relevant projects around the DAO, Aragon, Ethereum ecosystem. This might be interesting for Kredits but also there might be some inspiration among the current projects and proposals: [1]