All Projects → Arcology-Builders → democracy

Arcology-Builders / democracy

Licence: MIT license
Tools for peer-to-peer privacy with Ethereum and AZTEC

Programming Languages

CSS
56736 projects
javascript
184084 projects - #8 most used programming language
typescript
32286 projects
HTML
75241 projects

Projects that are alternatives of or similar to democracy

Decidim
The participatory democracy framework. A generator and multiple gems made with Ruby on Rails
Stars: ✭ 894 (+2383.33%)
Mutual labels:  community, democracy
viewstamped-replication-made-famous
A $20k consensus challenge based on TigerBeetle's implementation of the pioneering Viewstamped Replication protocol.
Stars: ✭ 93 (+158.33%)
Mutual labels:  distributed-systems
vandal
Static program analysis framework for Ethereum smart contract bytecode.
Stars: ✭ 121 (+236.11%)
Mutual labels:  evm
community
Community documentation for the Tekton project
Stars: ✭ 266 (+638.89%)
Mutual labels:  community
clojang
Clojure API for Erlang/OTP Communications (built on jiface)
Stars: ✭ 61 (+69.44%)
Mutual labels:  distributed-systems
ipm
IOTA node peer manager. Useful for monitoring IOTA peers
Stars: ✭ 71 (+97.22%)
Mutual labels:  peer
prb-math
Solidity library for advanced fixed-point math
Stars: ✭ 404 (+1022.22%)
Mutual labels:  evm
Metrix
Decentralized, Anonymous, Fast & Secure Cryptocurrency
Stars: ✭ 41 (+13.89%)
Mutual labels:  evm
ipfs-chat
Real-time P2P messenger using go-ipfs pubsub. TUI. End-to-end encrypted texting & file-sharing. NAT traversal.
Stars: ✭ 84 (+133.33%)
Mutual labels:  peer
raftor
Distributed chat system built with rust
Stars: ✭ 31 (-13.89%)
Mutual labels:  distributed-systems
pat
Pat, the only SMTP postman!
Stars: ✭ 23 (-36.11%)
Mutual labels:  community
BnademOverflow
BnademOverFlow's Official Website
Stars: ✭ 37 (+2.78%)
Mutual labels:  community
ethereum-evm-illustrated
Ethereum EVM illustrated
Stars: ✭ 170 (+372.22%)
Mutual labels:  evm
pyevmasm
Ethereum Virtual Machine (EVM) disassembler and assembler
Stars: ✭ 206 (+472.22%)
Mutual labels:  evm
nebula
A distributed block-based data storage and compute engine
Stars: ✭ 127 (+252.78%)
Mutual labels:  distributed-systems
outboxer
A library that implements the outboxer pattern in go
Stars: ✭ 90 (+150%)
Mutual labels:  distributed-systems
guides
How we do things at OK GROW!
Stars: ✭ 16 (-55.56%)
Mutual labels:  community
skyring
Distributed timers as a service - for Node.js
Stars: ✭ 27 (-25%)
Mutual labels:  distributed-systems
bogota
Bogotá, Colombia 🍺
Stars: ✭ 22 (-38.89%)
Mutual labels:  community
jakob
A fault-tolerant, distributed cluster of Redis servers with built-in load-balancing and fall-backs to provide data availability
Stars: ✭ 19 (-47.22%)
Mutual labels:  distributed-systems

Democracy.js Purple Pipe Logo

Democracy.js Blue Pipe Logo

Democracy.js Gold Pipe Logo

democracy

Minimalist tools for coordinating decentralized and private computation, currently on Ethereum.

Create a Democracy wallet now

Our first major integration is with the AZTEC Protocol, to enable trading of zero-knowledge assets.

npm version CircleCI Gitter

API Documentation

You can include the top-level npm package democracy.js or just include the sub-packages you need.

Install with npm

npm i democracy.js

Then in your modules

const demo = require('democracy.js')

Get the Source Code to Experiment and Run Tests

You can perform all the following commands at a Unix terminal or in a VS Code terminal.

Clone our git repo locally

git clone https://github.com/invisible-college/democracy

You'll need Node.js v11 or later and the Yarn package manager. Democracy.js is developed with v11.14.0. We recommend using the Node Version Manager, which you can install for any Unix shell (including Mac OSX). bash is used in the example below, you can pipe the command and use the shell profile file for your favorite shell.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash
. ~/.nvm/nvm.sh
nvm install v11.14.0
curl -o- -L https://yarnpkg.com/install.sh | bash

Here the yarn script updated the path in your shell config file, probably ~/.bashrc, with a line like

export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"

You can source it, or log out and log in again, and then find yarn in your path.

. ~/.bashrc
yarn global add lerna

Also add postcss if you plan to build any of the React app projects.

yarn global add postcss

We manage a monorepo of multiple packages with lerna. You can build and test them all at once.

cd democracy
lerna bootstrap
lerna run init
lerna run test

Where Are We Going?

Curious about what a future democracy holds? Us too!

Check out our current RoadMap

REPL

To experiment with and administer Ethereum contracts, it's useful to have a central console able to attach to any JSONRPC endpoint, whether it's on the mainnet or one of the public testnets (Ropsten, Kovan, Rinkeby).

An example session looks like

NODE_ENV=TEST node
> demo = require('demo.js')
> eth = demo.getNetwork()       # you'll hit our public node at http://ganache.arcology.nyc
> eth.accounts().then((val) => accounts = vals)
                                # anything you would normally do (asyncly) with an Eth

If you cloned the repo above, you can get started with our test contracts. As with any JS module, when you import, you are shown a vast menu of delicious options to call. Unlike with most JS modules, when you call a Democracy function with you arguments, it tells you what it expects.

The four steps of Ethereum development operate on an automatic contract (sometimes called a smart contract by the exuberant)

  • compiling (from a high-level language like Solidity to EVM bytecode)
  • linking (connecting multiple contracts together, like using a library, and in our case, attaching a deploy account)
  • deploy (send a contract to a blockchain, where it will now live and act trustlessly according to its programming)
  • operate (send and receive messages from your contract, especially from a web page or app)

The first three tasks we'll show you how to do below by interacting with Democracy in a console. However, Democracy's real power comes in automating complicated builds and deploys, and then operating on it.

We'll add a blow-by-blow console below when our dust has settled from above.

Other Links

Democracy Subpackages

How to Contribute

Democracy is a framework for learning about distributed systems and community protocols, as well as a gateway for our upcoming distributed country. Welcome, especially if you are a beginner to Ethereum or programming.

Here are ways you can participate

  • Download the source code, send us suggestions, improvements, tests, documentations, via pull requests
  • Use us in your next Ethereum (or eventually, Secure Scuttlebutt) project!
    • The best way to decide what you want in a framework is to try building with it
  • Meet and chat with us on Gitter.

We are a project of the Invisible College.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].