The People's Republic of DOUG - Ethereum based decentralized organization

androloandrolo Jamtland, SwedenMember Posts: 36 ✭✭
This project is part platform for decentralized organizations (based on the "DOUG model"), and part implementation of that platform. Here is a video showing the (almost) latest features:


The platform is based on an actions-manager that handles all code changes, i.e. changes to the contracts that makes up the organization. Actions are similar to Java runnables; they contain code, and indata, and the actions manager works as an executor (queuing them up, running them, etc.). On top of the actions manager are a few basic systems, such as contract management through DOUG (adding/removing contracts to/from the cluster), users and groups management, polls, and systems for messaging and fund-management.


DOUG is basically just a name registry for contracts in this system, and does not require an explanation. DOUG contracts are Dennis McKinnons' invention, and the latest versions includes more stuff, such as an access control layer (though I'm not sure if he has made an actual working contract yet). My DOUG is different, in that I've chosen to decouple everything but the name registry from the contract itself - and made it "actions compatible".


The republic is an implementation of the platform, where certain groups are added, such as citizens, the court and the senate, and the organzation is run by granting people different permissions based on what group(s) they are in. A judge, for example, can rule on whether a person can become a citizen (or if they should have their citizenship revoked). A senator can distribute public funds (and appoint judges). Citizens can appoint senators etc. It is supposed to work like a democratic country, you could say. It is still new, and under construction.


This system (and most others like it) have two main components. One is the contracts that make up the DOUG cluster, which could be seen as the server code. This would be the difference between a Dapp and a normal webpage/app. The other part is the front end, which is essentially a webpage that communicates with the contract code through javascript. Both of these parts will be available for download, and will be open source. Actually, they are already stored in public github repos, but it is still early so the code is often being refactored, and is not very neat. I would not recommend working with the code at this point (June 8'th, 2014). I will add a link section and instructions for bootstrapping when I feel it has matured enough for people to start using it.

The contracts are written in LLL, but future organizations based on this platform (if any) would be concerned mostly with adding new actions and polls, and that should/will be possible to do using other languages too. Most actions are trivial. If you want to add a new action for adding users to the organization, you'd want to check the users contract if the name is already taken, and maybe a few other things, then register the new user. Those are all elementary operations, regardless of what language you write in. The code that makes the contract into a proper action is the same for most actions. Same thing for polls. There will be templates available.


Everything works on private chains, as you can see in the video, but the public (or 'dev') chain is a bit unstable atm., so I have not managed to deploy the system yet. Actually I came part way, then added to little gas for one contracts and got perma-banned from the blockchain (even after rebuilding, clearing caches and changing my address). There has been blockchain issues all throughout PoC-5, so hopefully when all these great new LLL upgrades are done, and that scumbag that stole Gavin's computer gives it back, and PoC-5 is being wrapped up, it will be possible to deploy.


Sign In or Register to comment.