Kite module for crypto-nodes deployment
There are two possible ways to deploy cryptonodes:
Using Packer
Inside the K8s cluster
Requirements
For Packer-based installation:
Supported currencies:
For K8s based installation:
Supported currencies:
Go through first steps, described in administration.md
Do not apply Terraform configuration from the environment
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
# THIS CONFIGURATION IS USED BOTH FOR PACKER AND K8S CRYPTONODES DEPLOYMENT
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 (enabled: false
)
Now you can deploy cryptonodes:
kite terraform init
kite terraform apply
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`
Apply the infrastructure configuration:
bin/opex infra install all
This will create K8s cluster and install all the required dependencies for us to deploy cryptonodes. After the command has finished successfully, verify cryptonodes configuration in the files:
$> $EDITOR config/environments/<env>/bitcoind.yml
$> $EDITOR config/environments/<env>/parity.yml
If the configuration is correct, deploy the cryptonodes using the command:
bin/opex deps install bitcoind
bin/opex deps install parity
This type of installation allows RPC requests only inside the local Kubernetes network. So in order to configure Peatio for deployed cryptonodes pass the following URLs:
Bitcoind url: http://user:password@bitcoind.*KITE_ENV*-backend:18332
Parity url: http://parity.*KITE_ENV*-backend:8545