This howto is for using a blockchain dev kit using Komodo, electrumx & atomicDEX. Using 3 existing containers and small mods, you can have HELLOWORLD trading with your team in less than one hour. Improvements to this to totally automate it are in the works to make a turnkey blockchain dev kit.
If you are on linux simply download and run the following commmands. It will download 1GB of cryptography stuff.
wget https://raw.githubusercontent.com/KomodoPlatform/komodo/master/zcutil/fetch-params.sh
chmod +x fetch-params.sh
./fetch-params.sh
Download the containers for this particular tutorial. You will need zcash params installed on your machine.
docker pull coingateways/blockchain-starter-kit:5000f2a.3
docker pull coingateways/atomicdexorderbook:0.9.2
docker pull lukechilds/electrumx:v1.15.0
I made a video on the blockchain dev kit in 2019. The current simplified version is similar. Watch from the 2:50 mark for what it does.
To start this container, after having the zcash-params installed type:
docker run -i -t -v /home/${USER}/.zcash-params:/root/.zcash-params:ro --name bdk -p 127.0.0.1:8096:8096 coingateways/blockchain-starter-kit:5000f2a.3
It will drop you into a bash, and you will want to change to the /komodo-in-a-box directory to execute setup/start.sh
cd /komodo-in-a-box ; setup/start.sh
cat ~/.komodo/HELLOWORLD/HELLOWORLD.conf
rpcuser=user4130001545
rpcpassword=pass26cc5f967a6c9e7c7dd35675429b5f6257f5b7f1a87a7f762bd4fba3553401075e
rpcport=8096
server=1
txindex=1
rpcworkqueue=256
rpcallowip=127.0.0.1
rpcallowip=172.17.0.1
rpcallowip=172.17.0.2
rpcallowip=172.17.0.3
rpcallowip=172.17.0.4
rpcallowip=172.17.0.5
rpcallowip=172.17.0.6
You will need the rpcuser & rpcpassword for the electrumx container!
Start the bdk console again with the command above cd /komodo-in-a-box ; setup/start.sh. And follow the prompts to create a mining node, but don't start mining yet. Let's get the rest of it setup.
This docker container comes from Luke Childs who used to be an Komodo notary node operator and the hyperDEX lead dev. We want to connect electrumx to the seed node. We need to know the IP address of the BDK (blockchain dev kit) container. From your workstation, issue docker inspect bdk | grep -i ipaddress
docker inspect bdk | grep -i ipaddress
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.4",
"IPAddress": "172.17.0.4",
I have other containers, running so my BDK for this writing is at 172.17.0.4. I'm using this address to start electrumx with this command. I'm also using the rpcuser & rpcpassword and rpcport from my HELLOWORLD.conf file above.
docker run -e DAEMON_URL=http://user4130001545:pass26cc5f967a6c9e7c7dd35675429b5f6257f5b7f1a87a7f762bd4fba3553401075e@172.17.0.4:8096 -e COIN=Komodo -p 50002:50002 -p 50001:50001 -p 8008:8000 --name electrumx lukechilds/electrumx
Generating a RSA private key
.......................................................+++++
.............+++++
writing new private key to '/data/electrumx.key'
-----
INFO:electrumx:ElectrumX server starting
INFO:electrumx:logging level: INFO
INFO:Controller:Python version: 3.7.7 (default, May 20 2020, 21:33:25) [GCC 9.2.0]
INFO:Controller:software version: ElectrumX 1.15.0
INFO:Controller:aiorpcX version: 0.18.4
INFO:Controller:supported protocol versions: 1.4-1.4.2
INFO:Controller:event loop policy: None
INFO:Controller:reorg limit is 800 blocks
INFO:Daemon:daemon #1 at 172.17.0.4:8096/ (current)
INFO:DB:switching current directory to /data
INFO:DB:using leveldb for DB backend
INFO:DB:created new database
INFO:DB:creating metadata directory
INFO:DB:UTXO DB version: 8
INFO:DB:coin: Komodo
INFO:DB:network: mainnet
Great! Electrum is up.
The orderbook app for atomicDEX already has a tutorial, but we need to add our HELLOWORLD coin, this requires one command in reality, but for this tutorial let's kill everything the container starts. First we need to know some info.
Again turning to our workstation, we need to issue the same docker inspect command but for the electrumx container.
docker inspect electrumx | grep -i ipaddress
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.5",
"IPAddress": "172.17.0.5",
The orderbook container needs starting and it will automatically start everything, we just need to enable HELLOWORLD with curl.
docker run -i -t -p 127.0.0.1:7780:7780 -p 127.0.0.1:8001:8001 -e MMBOT_URL="http://localhost:7780" -e ME_PUBLIC="false" -e ME_PRIVATE="true" --name orderbook coingateways/atomicdexorderbook:0.9.2
Let's enable HELLOWORLD!
source /usr/local/bin/userpass.txt ; curl --url "http://127.0.0.1:7783" --data "{\"userpass\":\"$userpass\",\"method\":\"electrum\",\"coin\":\"HELLOWORLD\",\"servers\":[{\"url\":\"172.17.0.5:50001\"}], \"mm2\": 1}"
Jump back into the container running the blockchain dev kit at the start. You will need to go to the mining node and start mining. Follow the menus for HELLOWORLD mining node. Spin one up, start mining. Go into the wallet menu and import the dev wallet. You will have 1000 coins to send to your lite wallet in the orderbook app.