Created
January 12, 2015 19:33
-
-
Save compleatang/23b9a9ddf350955221be to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
# Eris | |
### Participatory Architecture for Social Scientists (and Everyone Else) | |
--- | |
### Ideas Alone Are Not That Powerful | |
* 2008 -- Koyoto Protocol CDM + Kiva | |
* 2009 -- Aquaponics for Villages | |
* 2010 -- Uber for Veggies | |
* 2011 -- Picture This | |
* 2012 -- Clan Based Insurance Mechanism | |
* 2013 -- Smart Recycling | |
* 2014 -- The Dawn of the DAO..? | |
--- | |
But **ideas** combined with a **vernacular** and **tools** can be very powerful indeed. | |
--- | |
Wanna follow along? Have a laptop? Make sure you have [golang](https://golang.org/doc/install) installed! | |
``` | |
https://golang.org/doc/install | |
``` | |
--- | |
![eris](lib/img/EI-Rect-Med.png) | |
We empower developers to embrace participatory software architecture via distributed computing and smart contract systems. | |
--- | |
In other words: we are a `devtools` shop. | |
--- | |
### What is **Participatory Architecture**? | |
It is a method of designing software where the users of the application participate in the **operation** and **scaling** of the application via: | |
1. lending computational power to assist in data management | |
2. lending storage space to assist in content distribution | |
--- | |
Using participatory architecture, distributed systems, and smart contracts, **complex ideas** become easier to study. | |
And to implement | |
--- | |
What is a **Smart Contract**? | |
`A cryptographically provable execution of code` | |
--- | |
![smart contracts intro](lib/img/smart-ks.png) | |
--- | |
What is **Eris Industries** Building? | |
--- | |
`a distributed application server -- distributed systems agnosticism with a harmonized actions layer` | |
--- | |
`a distributed database management system -- blockchains for everyone` | |
--- | |
### Scenario | |
> A group of social scientists is interested in researching some aspect of Universal Basic Income. The research will be collaborative and distributed among a dozen researchers across the globe. | |
--- | |
#### Step 1: Get the Tools | |
```bash | |
go get github.com/eris-ltd/thelonious/cmd/monk | |
cd $GOPATH/src/github.com/eris-ltd/thelonious/cmd/monk/ | |
go install | |
``` | |
```bash | |
go get github.com/eris-ltd/epm-go/cmd/epm/ | |
cd $GOPATH/src/github.com/ethereum/serpent-go | |
git submodule init | |
git submodule update | |
cd $GOPATH/src/github.com/eris-ltd/epm-go/cmd/epm/ | |
go install | |
epm init | |
``` | |
--- | |
#### Step 2: Design Your Chain | |
* Transactors | |
* Creators | |
* Committers | |
* Doug-ers | |
--- | |
#### Step 3: Create Accounts | |
We don't have a tool for this yet, but we will be building one soon. | |
Distribute the keys for the accounts to all of the participants. | |
--- | |
#### Step 4: Build genesis.json (1/4) | |
```json | |
{ | |
"address": "0000000000THISISDOUG", | |
"pdx": "", | |
"doug": "", | |
"unique": true, | |
"private-key": "", | |
"no-gendoug": false, | |
"consensus": "", | |
"difficulty": 15, | |
"public:mine": 0, | |
"public:create": 0, | |
"public:tx": 0, | |
"maxgastx": "", | |
"tapow": 0, | |
"blocktime": 0, | |
"vm": null | |
} | |
``` | |
--- | |
#### Step 4: Build genesis.json (2/4) | |
```json | |
"accounts": [ | |
{ | |
"address": "0xbbbd0256041f7aed3ce278c56ee61492de96d001", | |
"name": "researcherA", | |
"balance": "1000000000000000000000000000000000000", | |
"permissions": {"tx":1,"mine":1,"create":1,"doug":1}, | |
"stake": 0 | |
}, | |
... | |
] | |
} | |
``` | |
`x12` | |
--- | |
#### Step 4: Build genesis.json (3/4) | |
```json | |
"accounts": [ | |
{ | |
"address": "0xaaad0256041f7aed3ce278c56ee61492de96d224", | |
"name": "trustedParticipantA", | |
"balance": "0", | |
"permissions": {"tx":1,"mine":1,"create":0,"doug":0}, | |
"stake": 0 | |
}, | |
... | |
] | |
} | |
``` | |
`x100` | |
--- | |
#### Step 4: Build genesis.json (4/4) | |
```json | |
"accounts": [ | |
{ | |
"address": "0xcccd0256041f7aed3ce278c56ee61492de96d445", | |
"name": "participantA", | |
"balance": "0", | |
"permissions": {"tx":1,"mine":0,"create":0,"doug":0}, | |
"stake": 0 | |
}, | |
... | |
] | |
} | |
``` | |
`x100000` | |
--- | |
#### Step 5: Deploy Your Chain | |
```bash | |
epm new --genesis ./genesis.json --name researchProjectUBI_A | |
2015/01/12 19:21:04 [EPM-CLI] Deployed and installed chain: thelonious/d144e0971c674bbc3b983b8cbb29660dcf0ca530 | |
2015/01/12 19:21:04 [EPM-CLI] Checked out chain: thelonious/d144e0971c674bbc3b983b8cbb29660dcf0ca530 | |
``` | |
```bash | |
epm refs | |
Available refs: | |
researchProjectUBI_a : thelonious/d144e0971c674bbc3b983b8cbb29660dcf0ca530 | |
researchProjectUBI_b : thelonious/a2f25e98b90410a132fa0e6f75f83b333bc9f2d7 | |
researchProjectUBI_c : thelonious/15deb792e5577ed67bc39105001c8044720586e3 | |
researchProjectUBI_d : thelonious/0eab6abd02e1a79e60cb96c3d63e70fac2c31f8c | |
``` | |
--- | |
#### Step 6: Build & Deploy Your Smart Contracts | |
```bash | |
epm deploy --chain researchProjectUBI_A | |
``` | |
--- | |
#### Step 7: Have Fun! | |
--- | |
### Thanks for Listening | |
```bash | |
erisindustries.com | |
``` |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment