Crytonodes

Kite module for crypto-nodes deployment

Overview

Requirements

Supported currencies:

  1. ETH and ERC20 tokens - Geth.

  2. BTC - Bitcoind.

  3. BCH - Bitcoin ABC.

  4. LTC - Litecoind.

  5. Dash - Dashd.

  6. Ripple - Rippled

Prepare

  • Installation
  • Create a base platform repository
    • Install the Kite DevOps tool
    • Create your Infrastructure as Code base repository
    • Change configuration for cloud provider
    • Generate an environment(e.g. development/test/production)
    • Add a module to your environment

Do not apply Terraform configuration from the environment

Usage

Fill in the configurations of your nodes deployment

$> $EDITOR config/environments/<env>/vars.kite-opex.yml

Find this block in the file and fill it in with the correct options

cryptonodes:
  ethereum:
    enabled:         true      # Set to false if you don't want it to be deployed
    client:          "geth"    # Available options: geth, parity.
    network:         "rinkeby" # Available options: rinkeby, kovan, mainnet.
    disk_size:       "30"
    hostname:        "eth.helioscloud.com"
    rpcport:         "8545"
    port:            "30303"
    whitelisted_ips: ["0.0.0.0/0"]

  ripple:
    ...

You need to build images for cryptonodes you want to deploy (ethereum bitcoind bitcoincash litecoind dashd rippled wcg):

$> bundle exec rake "cryptonodes:build[image]" # This will build the exact image you specify
$> bundle exec rake "cryptonodes:build:all"    # This will build all images enabled in config/environments/stage/vars.kite-opex.yml

All images will be stored in gcp, you do not need to build an image if you have one already.

After build finishes, put image (smth like geth-1524260905) to config/environments/<env>/vars.kite-opex.yml:

variables:
  terraform:
    ethereum_image: geth-1524260905

Make sure you disabled cryptonodes you do not want to deploy (enabnled: false)

Now you can deploy cryptonodes:

kite terraform init
kite terraform apply

RPC API Cheatsheet

Configuration for each cryptonode you can find in:

$> cat cryptonodes/images/(cryptonode).json                     # Configuration for cryptonode image
$> cat cryptonodes/resources/(cryptonode)/(cryptonode).conf     # Configuration for cryptonode image
$> cat cryptonodes/resources/(cryptonode)/(cryptonode).service  # Configuration for cryptonode image
$> cat cryptonodes/resources/scripts/install-(cryptonode).sh    # Bash script that packer uses to build cryptonode image

After successfull deployment, crypto node synchronization will start and take a while. Please be patient.

You can find more information about your deployment using gcloud or Google Cloud Platform UI.

$> gcloud compute instances list
NAME            ZONE            MACHINE_TYPE  PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP      STATUS
image-xxxx      xxxxxx-xxxxx-x  xx-xxxxxxxx-x              10.xxx.x.x   35.xxx.xxx.xxx   RUNNING

You can also see your deployed cryptonodes using

$> kite t show

Among other created resources you'll see deployed cryptonodes on virtual machines

If you want to tear down a cryptonode you can do:

$> kite t destroy (cryptonode VM) # you can find the exact VM by doing `kite t show`