govern8r

This is the repo for the govern8r client and server.

Environment setup

Unfortunately, for right now we need to use python 2.7.11.

Install virtualenv for both client and server.

virtualenv -p <path-to-python-2.7.11> govern8rClient
virtualenv -p <path-to-python-2.7.11> govern8rService

Setup packages for services

In directory govern8rService:

	source bin/activate
	sudo pip install flask
	sudo pip install flask-api
	sudo pip install pybitid
	sudo pip install blockcypher
	sudo pip install certifi
	sudo pip install configparser
	sudo pip install ecdsa
	sudo pip install pycrypto
	sudo pip install simple-crypt

I've had issues installing a few things due to SSL errors. When I installed pyopenssl, I had such an error. The failure was on the pycparser package. So, my resolution is to clone the repo and install manually.

	git clone https://github.com/eliben/pycparser.git

Change to the pycparser directory and:

sudo python ./setup.py install

Same deal with boto3 - the AWS APIs.

	git clone https://github.com/boto/botocore.git

Change to the botocore-develop directory

sudo python ./setup.py install

Now you can:

	sudo pip install boto3
	sudo pip install pyopenssl

For the template to start from...

	git clone https://github.com/LaurentMT/pybitid_demo.git

AWS setup

Since we are running this stuff in AWS, we should use AWS's dynamoDB since it provisions so easily on AWS. Here are the links:

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.DynamoDBLocal.html#Tools.DynamoDBLocal.DownloadingAndRunning
http://dynamodb-local.s3-website-us-west-2.amazonaws.com/dynamodb_local_latest.zip

We also have to install the aws client, to set up the credentials (contact me for these.)

	sudo pip install awscli
	sudo pip install awsebcli

Before you can connect to the database, you need to configure the credentials using:

aws configure

Setup packages for client

in directory govern8rClient:

	source bin/activate
	sudo pip install requests
	sudo pip install certifi
	sudo pip install ecdsa
	sudo pip install pycrypto
	sudo pip install configparser
	sudo pip install simple-crypt

I've had issues installing a few things due to SSL errors. When I installed pyopenssl, I had such an error. The failure was on the pycparser package. So, my resolution is to clone the repo and install manually.

	git clone https://github.com/eliben/pycparser.git

Change to the pycparser directory and:

	sudo python ./setup.py install
	sudo pip install pyopenssl

The python-bitcoinlib is a better utility than https://github.com/vbuterin/pybitcointools for some things. However, https://github.com/vbuterin/pybitcointools seems to be the most dominant bitcoin library in python. We need to use both. The problem is that both use the same package name - so they can't be used together. So what I did was forked the project and repackaged with a different name.

git clone https://github.com/cypherhat/python-bitcoinlib.git

Find the directory where setup.py is (should be python-bitcoinlib). Then set your virtual environment to client, lib, or service (whichever you are working with). And run this to install the package.

sudo python setup.py install

You should see this package now: python-bitcoinlib (0.5.1-SNAPSHOT)

sudo pip list