RobotDAO – A robot managing a robot?
This blog is a repost from the RobotJS blog on a subject I’m still working on, and wanted it on my main blog.
It’s been a while! I’ve been heads down focusing on other projects, and currently I don’t have a project that needs RobotJS in my day-to-day. I still very much believe in this project, and more importantly I believe it needs to exist. For this reason, I’d like to propose an alternative method for maintaining this project.
My focus in the past few years has shifted towards blockchain technology. I’ve always hated how centralized and closed open source communities were. To contribute to a project you have to track the owner down, convince them that your code is worthy, and most of the time that code ends up sitting there and getting stale because the owner is off doing other things. This sucks and RobotJS isn’t the only project that has this issue. With one of the largest open source projects, WordPress, this problem is out of control.
Another issue is the time it takes to onboard new team members. For me, I’ll spend some time finding a new collaborator, onboard them, they’ll be active for a few weeks or months, then move on. I don’t blame them because I do the same thing. So I’ve been looking for a way to empower the community to onboard new members and to take ownership of the project has a whole.
Decentralized Autonomous Organization
Decentralized Autonomous Organizations, or DAOs are a very exciting and new field in computer science. The idea is pretty simple: You implement your business logic as code, and let a program enforce it.
Now how do you verify that the code and its execution is doing what you expect? You run it on an open source computer or CPU, and this is what Ethereum enables. Ethereum lets users implement programs using a special language, then you can run your program on a distributed, decentralized, open source computer. In my eyes this is the only way to accomplish this.
So that was a lot to get through, I’m sorry! This is what I’m working on now for the MVP of the RobotDAO:
- A simple interface for proposing new project collaborators.
- An interface to allow voting this new member in.
- The Ethereum smart contract that takes votes and manages users reputations. Currently I’m building this using Thetta, but I’m also looking at DAOStack and district0x.
- A program that can react to a new member proposal getting approved and make the change on Github. In blockchain terms this is called an Oracle and I’m making the changes using Terraform.
Users will vote using reputation, something that has zero value outside of this project. Reputation will be handed out for free to users that contribute to the project.
I’ve been taking part in DAO’s for years now and I’ve seen how they can change and empower communities. I hope the RobotJS community will be open to this idea.