Aragon Q3 Development Update
Progress of development from the third quarter of 2018.
A number of major milestones were reached in the months of July to September, 2018. Culminating in our decision to buckle down and launch the first Mainnet release of Aragon at Devcon IV.
Permissions App
The first milestone reached was the completion of the Permissions app. Which visually allows anyone to view, modify, and manage their organization’s current permission structure.
This was a breakthrough achievement. Mostly from the skilled hands of Jouni and Pierre. They designed a beautiful and intuitive, while completely transparent and fully powerful, experience for all members of an organization.
Most important of all, providing this visual interface truly unlocks governance at the speed of software for the masses. While all the functionality was technically accessible before—the smart contracts had supported these capabilities from day one. It was only known and manageable for the few who had the technical know-how to make raw Ethereum transactions or use a command line tool.
We unveiled the Permissions app in early September at ETHBerlin. Being able to interact with an organization’s permissions would be immensely powerful. Especially for developers who wanted to test and experiment with new governance ideas.
aragonOS 4
We finished our first round of audits with the White Hat Group in June. We then kicked off a second round of audits in parallel with the amazing folks at Consensys Diligence.
Throughout most of the summer, the developers were working hard on mitigating and solving findings from both of the audits, in addition to our own experience of using the framework and keeping synced with the latest developments from this warp-speed ecosystem. Ultimately, in the light of many possible improvements that wouldn’t otherwise be possible, we decided to break backwards compatibility with previously deployed aragonOS 3 contracts and deprecate Aragon 0.5 on Rinkeby.
We published the initial pre-release versions of aragonOS 4 in September, and started updating all of the apps, tooling, and documentation to build upon it. Allowing us to start bug bounties on both the source code as well as deployed instances of our smart contracts.
More information and updated documentation on the changes made in aragonOS 4 will be coming soon. We will also soon be publishing finalized audit reports from both the White Hat Group and Consensys Diligence describing the contracts as safe to use and store funds in.
Road to Mainnet
As the stars began to align towards the end of summer, we felt increasingly confident about pushing for a Mainnet launch of Aragon 0.6 by Devcon IV.
As you may of heard (or tried out!), this confidence was well placed.
We begun planning, prioritizing, and organizing the release in the middle of August. And kept adjusting throughout the next few months using litmus indicators like the chart above. Along the way, we released a lot of internal versions. Fully redesigned the core UX of a number of apps, and greatly improved the core reliability and stability from 0.5.
Up to the end of Q3, we published:
0.5.3 and 0.5.4
- Permissions app
- Last version to support aragonOS 3-based organizations on Rinkeby
- Large bundle-size optimizations, resulting in much faster browser loading
aragonOS 4 (prerelease)
- See upcoming post
0.16.0 to 0.19.0
- Switch animations to use react-spring, greatly improving the animation performance of many components
- NavigationBar component
- Numerous bug fixes and icon components
- Allow more transaction options, such as gas prices and limits, to be set both from apps as well as from aragon/aragon
- Support for aragonOS 4
- Introduced new functionality to allow for transaction pathing to work with the ACL, and included artifacts for aragonOS internal apps to treat them as proper apps
- Added initial test suite and a number of optimizations
- Numerous new parsing and evaluation rules, including fixed-point numbers, contract self interpolation, and the default operator
Developer Experience
For Q3, similar to how we ended Q2 at ETHBuenosAires, we wanted to make a big statement to the Ethereum development community by supporting and sponsoring ETHBerlin. A big thank you to everyone who came, helped, and made the event successful. We enjoyed meeting a lot of you there, and hope to see you again in person or online!
Alongside ETHBerlin, a number of teams were busy bringing their own Aragon applications to life this past quarter and the #dev and #dev-help channels on Aragon Chat have been buzzing with ideas. Large projects who achieved major milestones in Q3 include Space Decentral’s That Planning Suite, Espresso’s Aragon Drive, Ryhope Network’s Pando, and Althea’s Node List.
Thanks to their help, we’ve gained valuable insights over where our tooling, documentation, and technical architecture were too limiting or could be improved. As part of this process, we’ve made significant investments to improve developer experience.
Aragon Developer Portal
- Fully redesigned layout
- Complete CLI documentation
- New development guides
- Lots of new content and other tweaks
4.1.4 to 5.0.0
- Support for aragonOS 4
- New dao commands, for permissions management as well as executing arbitrary functions in apps
- Hot-reloading development environment through local HTTP servers, rather than always refreshing apps through IPFS
- Lots and lots of bug fixes and small UX improvements
Ideas (feedback welcome!):
- Simplify and re-imagine the aragon.js API for app developers
- Generalizing app templates and apps, to ease creating onboarding experiences for new app installations
Aragon DAC
The Aragon DAC has come fully online in the last quarter and lended significant contributions to many of the aforementioned repositories, especially aragon.js and aragon-cli, as we pushed towards a Mainnet release together.
On the side, they’ve also kicked off some really cool research projects, such as the Wallet Provider by Jeremy Macaluso that plugs into existing Ethereum providers and would eventually allow one to invoke actions in other contracts or DApps as an organization rather than an end user account.
We have started All Devs calls in the last quarter to create a shared time and space to update, coordinate, and propose new ideas between decentralized Flock teams and interested developers. We’re about to finish work on making these calls more community-accessible, and details will soon be available in the wiki.
Other Highlights
aragon-ui will be transitioning to a new, neutral home at Lorikeet in the next few weeks, as more individuals and teams start contributing and relying on the UI toolkit than just Aragon One. If you’re interested in helping shape its future, join the chat!
- Payroll app: We begun work on an on-chain payroll app for Aragon organizations in Q3, but ultimately deprioritized it. Stay tuned to its progress and eventual deployment in the coming months.
- Aragon Chat: We’ve split the #dev channel into both #dev and #dev-help, so it’s easier to search and ask for help. We try to be pretty responsive, so please come ask us anything :)
Contributions
We always appreciate community contributions, so a big thank you to all the community members who contributed during Q3! We could not have done this without you!
- aragon/aragon:
- feat: make client port configurable through environment variable
- aragon-cli:
- Ensure configured wrapper port is exposed to Aragon client
- feat(commands/run): introduce --client-path option
- feat(commands/run): introduce --client-version and --client-port
- fix(apm/publish): check if artifact.json already exist
- aragon.js:
- feat(wrapper): introduce getRecommendedGasLimit util
- aragonOS:
- Fix truffle migration async scripts
- aragon-cli:
- Fix opening IPFS documentation URL
- aragon-ui:
- Migration to react-spring and minor fixes
- aragon-cli:
- Added HTTP provider feature
- aragon-cli:
- janky network id fix
- aragon-react-boilerplate:
- Possible caching fix
- aragonOS:
- Typo fix
- aragon-react-kit-boilerplate:
- Fix CounterApp and testing not working
- hack.aragon.org:
- Typo
- radspec:
- Adds fixed point numbers
Aragon One and the Aragon DAC have predominantly switched to Gitcoin for posting bounties, so please check there if you’d like to find any open issues (and we will be posting more)!