/cilantro-enterprise

Enterprise fork of cilantro

Primary LanguagePythonOtherNOASSERTION

Lamden Blockchain

Get a computer with Ubuntu 18.04.

  • DigitalOcean droplets are our favorites if you are new.

Install Pip3

sudo apt-get update
sudo apt-get install python3-pip -y

Other Pip3 Pkg

pip3 install --upgrade pip setuptools

Install MongoDB

sudo apt-get install -y mongodb

Install Haveged (Recommended)

For some reason, DigitalOcean droplets, and perhaps other cloud providers, have /dev/random blocking problems. This probably is because they are running many small computers on a single Linux instance and the entropy pool dries up pretty quickly. If this doesn't make sense, install Haveged and don't worry about it.

If it does, libsodium, which is the public-private key cryptography library we use, uses /dev/random with no option to use /dev/urandom. Haveged solves this problem.

sudo apt-get install haveged -y
systemctl start haveged
systemctl enable haveged

Install Contracting

git clone https://github.com/Lamden/contracting.git
cd contracting
git fetch
git checkout dev
python3 setup.py develop

Install Cilantro

cd ~
git clone https://github.com/Lamden/cilantro-enterprise.git
cd cilantro-enterprise
git fetch
git checkout dev-final
python3 setup.py develop

Setup and run Mongo

mkdir ~/blocks
mongod --dbpath ~/blocks --logpath ~/logs.log --bind_ip 127.0.0.1 --fork
# cd cilantro-enterprise/scripts
# python3 create_user.py # nolonger needed

Make a Constitution

nano ~/constitution.json

{
  "masternodes": {
    "<vk>": "<ip>",
    "<vk>": "<ip>"
  },
  "delegates": {
    "<vk>": "<ip>",
    "<vk>": "<ip>"
  },
}

Ctrl+X, save the file.

Start your node (if you are starting a new network from scratch)

cil start <masternode | delegate> -k <sk in hex format>

Join your node (if you are trying to join an existing running network)

cil join <masternode | delegate> -k <sk in hex format> -m <ip address of any online masternode>