The Ethereum ecosystem is growing rapidly and there is still so much to learn and build. The projects built on Ethereum are constantly pushing the technical limits of developers. One area we need improvement in is education. We built the Aragon Building Block to help developers understand Aragon dApp development in a test-driven and project-based environment.

What it does

The Aragon Building Block walks through creating an Aragon dApp within the ChainShot environment. This means that the user will receive a detailed explanation of steps to build an Aragon dApp while coding the app within an in-browser IDE. The IDE provides instantaneous feedback to the user through compilation errors, ABI validation checks, and unit-tests against their Solidity and JavaScript code. At the end of the tutorial, the user's code is packaged up in a React application which uses aragon-ui.

Challenges we ran into

We had difficulty running aragon client-side libraries within our code execution environment since we are executing it with node.js and the client-side utility assumes it is running within the context of WebWorker which is available to browser environments. We attempted a shim, but realized that the majority of the testable functionality can be abstracted into components with supporting files that show how it fit into the aragon context. We also had trouble deploying the AragonOS contracts within our Solidity environment. Unfortunately this was one challenge that we think requires more time and examination.

Accomplishments that we're proud of

This was our first attempt at integrate another platforms technology into ChainShot. The experience helped us gain a better understanding of what it will take to integrate Aragon, and other platforms, into ChainShot and how we can improve our platform to make that easier. In the end, we were proud to accomplish our goal of having an interactive tutorial for Aragon dApp development.

What's next for Aragon Building Block

1) Build an easy to use UI for the open source community allowing them to freely update the tasks, instructions, unit tests, and code files within the learning block.

2) Dig deeper into Aragon documentation to help explain key areas such permissions, forwarding, and upgradeability.

3) Upgrade our Code Execution Environment to be able to support custom migrations and multiple files. Doing this will fix our aragonOS deployment issue.

Share this project: