-
Notifications
You must be signed in to change notification settings - Fork 1
/
params.json
6 lines (6 loc) · 3.33 KB
/
params.json
1
2
3
4
5
6
{
"name": "gdo",
"tagline": "Governance of Distributed Organizations",
"body": "Not a whole lot here yet -- throwing this together quickly for\r\ndiscussion at the [Aug 2016 Nation of\r\nMakers](https://www.whitehouse.gov/nation-of-makers) session. As of\r\nthis writing still scraping together code from various directories on\r\nmy hard drive, most of which will land in the [lab directory](lab)\r\nfirst. \r\n\r\n## Overview\r\n\r\nA distributed-ledger system suitable for hosting smart contracts and\r\nrunning on IoT devices. A few example applications:\r\n\r\n- Organizational governance\r\n- Workflow\r\n- Training and certification\r\n- Accounting\r\n- Inventory control\r\n- Door access control\r\n- Machine lockout\r\n- Membership\r\n- Reservations\r\n- Data storage and backups\r\n- Operating system and disk image management\r\n- IoT \r\n\r\nWe accomplish all this using a (relatively) simple model: Distributed\r\napplications (dapps) running in Linux containers managed by a\r\ndistributed ledger, hosted in a distributed version control system\r\nthat performs content-defined chunking to store and ship around large\r\nblobs, including the container images themselves.\r\n\r\nThe development roadmap, then, is (relatively) straightforward:\r\nImplement things in reverse order of the above paragraph. Beg,\r\nborrow, and paste where possible, take advantage of existing code and\r\nlibraries such as libcontainer, ledger-cli, and libgit2, and become\r\nself-hosting early.\r\n\r\nCompared to e.g. Ethereum or HyperLedger, we'd like to target more of\r\na git-like version control model, allowing forking and interbranch\r\nconsensus, rather than a single linear blockchain. For\r\nturing-complete smart contracts, we simply use Linux containers --\r\nthis allows dapps to be written in any language executable on Linux.\r\n\r\nWe'll use test-driven consensus (proof of merge), where new blocks are\r\ntested by one or more dapps, rather than use a hardcoded proof-of-work\r\nalgorithm. Not requiring a compute-intensive proof of work means\r\nsingle-board computers such as BeagleBone or Raspberry Pi can host\r\nfull nodes.\r\n\r\n## Example\r\n\r\nMaker space door access control, for instance, could be based on an\r\nexisting open source project such as\r\nhttps://github.com/makeitlabs/doorbot, living in a container, with\r\nmodifications to have it communicate with membership, accounting, and\r\ncertification dapps, each in their own containers. Comms are via the\r\nblockchain, and all of this runs on localhost, as opposed to talking\r\nto a central SQL db on a server somewhere else. Each door can have\r\nits own Raspberry Pi-sized host. These will check and log access\r\nevents as usual even during network outages, and the blockchain's\r\ndistributed consensus protocol will resync records when the network\r\ncomes back up.\r\n\r\n## References\r\n\r\nShares a few concepts with HyperLedger, Ethereum, Docker, Ledger-cli,\r\ngit, and git-annex. Builds on earlier work and prototyping at\r\ngithub.com/stevegt/librabinpoly and github.com/stevegt/git-devops.\r\n\r\n## Open Questions\r\n\r\n- If forks are allowed (depending on dapp) and there can be multiple\r\n roots as well as multiple heads, then is this a \"blockmesh\" instead\r\n of a blockchain?\r\n\r\n",
"note": "Don't delete this file! It's used internally to help with page regeneration."
}