-
Notifications
You must be signed in to change notification settings - Fork 99
Setup Komodo Notary Node
Note: This is still in BETA phase. This is to give you a good understanding on building a Komodo Notary Node, but it is possible that some commands could be deprecated by the time you read it.
If you have any problems, please join #notarynode on the Komodo Discord
Komodo currently only works on Linux. To setup Komodo Notary Node be sure you have a good solid server with the following requirements:
- CPU: A good CPU (Xeon/i7)
- RAM: 64GB
- Disk: 500GB SSD
- Bandwidth: 100Mbps
Ubuntu LTS x64 - minimal installation with Openssh server.
Before doing anything further, please ensure that your server is secure.
- Update the Operating System:
sudo apt-get update && sudo apt-get upgrade -y
- Install Fail2ban.
- Perform Initial Setup for creating new user, give sudo permission, change SSH port, disable
root
login, disable password authentication for login - Please run processes as an unprivileged user and use sudo where necessary
Here is a repo with automated script to prepare your fresh Ubuntu server with initial setup https://github.com/webworker01/freshubuntu
Install regular deps
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool libncurses-dev unzip git python zlib1g-dev wget bsdmainutils automake libboost-all-dev libssl-dev libprotobuf-dev protobuf-compiler libgtest-dev libqt4-dev libqrencode-dev libevent-dev libdb++-dev ntp ntpdate software-properties-common curl libcurl4-gnutls-dev cmake clang libsodium-dev jq htop -y
Install nanomsg
(requires for iguana)
cd ~
git clone https://github.com/nanomsg/nanomsg
cd nanomsg
cmake . -DNN_TESTS=OFF -DNN_ENABLE_DOC=OFF
make -j2
sudo make install
sudo ldconfig
cd ~
git clone https://github.com/jl777/komodo
cd komodo
git checkout beta
./zcutil/fetch-params.sh
./zcutil/build.sh -j$(nproc)
-j$(nproc)
uses all available processor threads while compiling. If you don't want to use all threads, you can use -j8
which will use only 8 threads.
sudo ln -sf /home/$USER/komodo/src/komodo-cli /usr/local/bin/komodo-cli
sudo ln -sf /home/$USER/komodo/src/komodod /usr/local/bin/komodod
cd ~
mkdir .komodo
nano ~/.komodo/komodo.conf
Insert the following contents inside komodo.conf
file and save it. (change the rpcuser
and rpcpassword
values)
rpcuser=usernameChangeItToSomethingSecure
rpcpassword=passwordChangeItToSomethingSecure
txindex=1
server=1
daemon=1
rpcworkqueue=256
rpcbind=127.0.0.1
rpcallowip=127.0.0.1
Secure the komodo.conf
file
chmod 600 ~/.komodo/komodo.conf
cd ~
git clone https://github.com/bitcoin/bitcoin
cd bitcoin
git checkout 0.16
Step 2: Create a build script called build.sh
inside the ~/bitcoin
dir for easy compiling and put the contents below inside the script. The script will also symlink the binaries with /usr/local/bin/
and for that, you will be asked to provide sudo
password.
#!/bin/bash
berkeleydb () {
BITCOIN_ROOT=$(pwd)
BITCOIN_PREFIX="${BITCOIN_ROOT}/db4"
mkdir -p $BITCOIN_PREFIX
wget -N 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz' | sha256sum -c
tar -xzvf db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix/
../dist/configure -enable-cxx -disable-shared -with-pic -prefix=$BITCOIN_PREFIX
make install
cd $BITCOIN_ROOT
}
buildBITCOIN () {
git pull
make clean
./autogen.sh
./configure LDFLAGS="-L${BITCOIN_PREFIX}/lib/" CPPFLAGS="-I${BITCOIN_PREFIX}/include/" --with-gui=no --disable-tests --disable-bench --without-miniupnpc --enable-experimental-asm --enable-static --disable-shared
make -j$(nproc)
}
cd ~/bitcoin
berkeleydb
buildBITCOIN
sudo ln -sf /home/$USER/bitcoin/src/bitcoin-cli /usr/local/bin/bitcoin-cli
sudo ln -sf /home/$USER/bitcoin/src/bitcoind /usr/local/bin/bitcoind
chmod +x build.sh
./build.sh
cd ~
mkdir .bitcoin
nano ~/.bitcoin/bitcoin.conf
Insert the following contents inside bitcoin.conf
file and save it. (change the rpcuser
and rpcpassword
values)
server=1
daemon=1
txindex=1
rpcuser=bitcoinrpc
rpcpassword=password
bind=127.0.0.1
rpcbind=127.0.0.1
rpcallowip=127.0.0.1
secure the bitcoin.conf
file
chmod 600 ~/.bitcoin/bitcoin.conf
cd ~
git clone https://github.com/jl777/chips3
cd chips3
git checkout dev
Step 2: Create a build script called build.sh
inside the ~/chips3
dir for easy compiling and put the contents below inside the script. The script will also symlink the binaries with /usr/local/bin/
and for that, you will be asked to provide sudo
password.
#!/bin/bash
berkeleydb () {
CHIPS_ROOT=$(pwd)
CHIPS_PREFIX="${CHIPS_ROOT}/db4"
mkdir -p $CHIPS_PREFIX
wget -N 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz' | sha256sum -c
tar -xzvf db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix/
../dist/configure -enable-cxx -disable-shared -with-pic -prefix=$CHIPS_PREFIX
make install
cd $CHIPS_ROOT
}
buildCHIPS () {
git pull
make clean
./autogen.sh
./configure LDFLAGS="-L${CHIPS_PREFIX}/lib/" CPPFLAGS="-I${CHIPS_PREFIX}/include/" --with-gui=no --disable-tests --disable-bench --without-miniupnpc --enable-experimental-asm --enable-static --disable-shared
make -j$(nproc)
}
cd ~/chips3
berkeleydb
buildCHIPS
sudo ln -sf /home/$USER/chips3/src/chips-cli /usr/local/bin/chips-cli
sudo ln -sf /home/$USER/chips3/src/chipsd /usr/local/bin/chipsd
chmod +x build.sh
./build.sh
cd ~
mkdir .chips
nano ~/.chips/chips.conf
Insert the following contents inside chips.conf
file and save it. (change the rpcuser
and rpcpassword
values)
server=1
daemon=1
txindex=1
rpcuser=user
rpcpassword=password
addnode=5.9.253.195
addnode=74.208.210.191
rpcbind=127.0.0.1
rpcallowip=127.0.0.1
secure the chips.conf
file
chmod 600 ~/.chips/chips.conf
cd ~
git clone https://github.com/gamecredits-project/GameCredits
cd GameCredits
git checkout master
Step 2: Create a build script called build.sh
inside the ~/GameCredits
dir for easy compiling and put the contents below inside the script. The script will also symlink the binaries with /usr/local/bin/
and for that, you will be asked to provide sudo
password.
#!/bin/bash
# GameCredits build script for Ubuntu & Debian 9 v.3 (c) Decker
# Step 1: Build BDB 4.8
GAMECREDITS_ROOT=$(pwd)
GAMECREDITS_PREFIX="${GAMECREDITS_ROOT}/db4"
mkdir -p $GAMECREDITS_PREFIX
wget -N 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz' | sha256sum -c
tar -xzvf db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix/
../dist/configure -enable-cxx -disable-shared -with-pic -prefix=$GAMECREDITS_PREFIX
make -j$(nproc)
make install
cd $GAMECREDITS_ROOT
# Step 2: Build OpenSSL (libssl-dev) 1.0.x
version=1.0.2o
mkdir -p openssl_build
wget -qO- http://www.openssl.org/source/openssl-$version.tar.gz | tar xzv
cd openssl-$version
export CFLAGS=-fPIC
./config no-shared --prefix=$GAMECREDITS_ROOT/openssl_build
make -j$(nproc)
make install
cd ..
export PKG_CONFIG_PATH="$GAMECREDITS_ROOT/openssl_build/pkgconfig"
export CXXFLAGS+=" -I$GAMECREDITS_ROOT/openssl_build/include/ -I${GAMECREDITS_PREFIX}/include/"
export LDFLAGS+=" -L$GAMECREDITS_ROOT/openssl_build/lib -L${GAMECREDITS_PREFIX}/lib/ -static"
export LIBS+="-ldl"
# p.s. for Debian added -ldl in LDFLAGS it's enough, but on Ubuntu linker doesn't recognize it, so,
# we moved -ldl to LIBS and added -static to LDFLAGS, because linker on Ubuntu doesn't understan that
# it should link librypto.a statically.
#
# Or we can build OpenSSL 1.0.x as shared (instead of no-shared) and use:
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/$USER/GameCredits/openssl_build/lib before
# starting gamecreditsd.
# Step 3: Build GameCredits daemon
./autogen.sh
./configure --with-gui=no --disable-tests --disable-bench --without-miniupnpc --enable-experimental-asm --enable-static --disable-shared
make -j$(nproc)
sudo ln -sf /home/$USER/GameCredits/src/gamecredits-cli /usr/local/bin/gamecredits-cli
sudo ln -sf /home/$USER/GameCredits/src/gamecreditsd /usr/local/bin/gamecreditsd
chmod +x build.sh
./build.sh
cd ~
mkdir .gamecredits
nano ~/.gamecredits/gamecredits.conf
Insert the following contents inside gamecredits.conf
file and save it. (change the rpcuser
and rpcpassword
values)
server=1
daemon=1
txindex=1
rpcuser=user
rpcpassword=password
bind=127.0.0.1
rpcbind=127.0.0.1
rpcallowip=127.0.0.1
secure the gamecredits.conf
file
chmod 600 ~/.gamecredits/gamecredits.conf
cd ~
git clone https://github.com/emc2foundation/einsteinium
cd einsteinium
git checkout master
Step 2: Create a build script called build.sh
inside the ~/einsteinium
dir for easy compiling and put the contents below inside the script. The script will also symlink the binaries with /usr/local/bin/
and for that, you will be asked to provide sudo
password.
#!/bin/bash
berkeleydb () {
EMC2_ROOT=$(pwd)
EMC2_PREFIX="${EMC2_ROOT}/db4"
mkdir -p $EMC2_PREFIX
wget -N 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz' | sha256sum -c
tar -xzvf db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix/
../dist/configure -enable-cxx -disable-shared -with-pic -prefix=$EMC2_PREFIX
make install
cd $EMC2_ROOT
}
buildEMC2 () {
git pull
make clean
./autogen.sh
./configure LDFLAGS="-L${EMC2_PREFIX}/lib/" CPPFLAGS="-I${EMC2_PREFIX}/include/" --with-gui=no --disable-tests --disable-bench --without-miniupnpc --enable-experimental-asm --enable-static --disable-shared
make -j$(nproc)
}
cd ~/einsteinium
berkeleydb
buildEMC2
sudo ln -sf /home/$USER/einsteinium/src/einsteinium-cli /usr/local/bin/einsteinium-cli
sudo ln -sf /home/$USER/einsteinium/src/einsteiniumd /usr/local/bin/einsteiniumd
chmod +x build.sh
./build.sh
cd ~
mkdir .einsteinium
nano ~/.einsteinium/einsteinium.conf
Insert the following contents inside einsteinium.conf
file and save it. (change the rpcuser
and rpcpassword
values)
server=1
daemon=1
txindex=1
rpcuser=user
rpcpassword=password
bind=127.0.0.1
rpcbind=127.0.0.1
rpcallowip=127.0.0.1
secure the einsteinium.conf
file
chmod 600 ~/.einsteinium/einsteinium.conf
cd ~
git clone https://github.com/GIN-coin/gincoin-core
cd gincoin-core
git checkout master
Step 2: Create a build script called build.sh
inside the ~/gincoin-core
dir for easy compiling and put the contents below inside the script. The script will also symlink the binaries with /usr/local/bin/
and for that, you will be asked to provide sudo
password.
#!/bin/bash
berkeleydb () {
GIN_ROOT=$(pwd)
GIN_PREFIX="${GIN_ROOT}/db4"
mkdir -p $GIN_PREFIX
wget -N 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz' | sha256sum -c
tar -xzvf db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix/
../dist/configure -enable-cxx -disable-shared -with-pic -prefix=$GIN_PREFIX
make install
cd $GIN_ROOT
}
buildgin () {
git pull
make clean
./autogen.sh
./configure LDFLAGS="-L${GIN_PREFIX}/lib/" CPPFLAGS="-I${GIN_PREFIX}/include/" --with-gui=no --disable-tests --disable-bench --without-miniupnpc --enable-experimental-asm --enable-static --disable-shared --without-gui
make -j$(nproc)
}
berkeleydb
buildgin
sudo ln -sf /home/$USER/gincoin-core/src/gincoin-cli /usr/local/bin/gincoin-cli
sudo ln -sf /home/$USER/gincoin-core/src/gincoind /usr/local/bin/gincoind
chmod +x build.sh
./build.sh
cd ~
mkdir .gincoincore
nano ~/.gincoincore/gincoin.conf
Insert the following contents inside gincoin.conf
file and save it. (change the rpcuser
and rpcpassword
values)
server=1
daemon=1
txindex=1
rpcuser=user
rpcpassword=password
bind=127.0.0.1
rpcbind=127.0.0.1
rpcallowip=127.0.0.1
secure the gincoin.conf
file
chmod 600 ~/.gincoincore/gincoin.conf
Clone HUSH3 source and compile
cd ~
git clone https://github.com/MyHush/hush3
cd hush3
git checkout dev
./zcutil/build.sh -j$(nproc)
Clone VRSC source and compile
cd ~
git clone https://github.com/VerusCoin/VerusCoin
cd VerusCoin
git checkout master
./zcutil/build.sh -j$(nproc)
For the first time sync, we will run all the coin daemons normally. Make sure you have successfully compiled all daemon above. We will create a start
script later on this guide to start the chains for notarisation with -pubkey
.
bitcoind &
chipsd &
gamecreditsd &
einsteiniumd &
gincoind &
cd ~/komodo/src
./komodod &
./assetchains.old
Now wait for all chain to finish sync. You can check check sync progress with tail -f
command. All coin data dir creates a debug.log
file, we just need a tail
that file. Komodo assetchains has their own data dir inside ~/.komodo
directory.
# BTC
tail -f ~/.bitcoin/debug.log
# CHIPS
tail -f ~/.chips/debug.log
# GAME
tail -f ~/.gamecredits/debug.log
# EMC2
tail -f ~/.einsteinium/debug.log
# GIN
tail -f ~/.gincoincore/debug.log
# KMD
tail -f ~/.komodo/debug.log
# VRSC
tail -f ~/.komodo/VRSC/debug.log
# HUSH3
tail -f ~/.komodo/HUSH3/debug.log
# SUPERNET
tail -f ~/.komodo/SUPERNET/debug.log
For any other Komodo assetchain, use the example of VRSC, HUSH3 or SUPERNET and change the path with coin name accordingly. Wait for sync to finish fully for all coins.
The mainnet operators will have 2 seed phrase (passphrase) which will generate 2 sets of pubkey, address and private key (WIF). For security best practices, you should never use your seed phrase or privatekey in another node other than your notary node. If you ever expose a private key for any coin, it can be converted to all other coins easily.
You need to provide 2 sets of pubkey to Kolo when he asks for it (pubkey starts with 02
or 03
). Follow this guide to generate all required info in your server. You will need the "Compressed Public Key", "Compressed WIF" and "Compressed Address" from the output generated by the script. Based on the default seed used in the genkomodo.php
file, we get the following information:
Pubkey: 02a854251adfee222bede8396fed0756985d4ea905f72611740867c7a4ad6488c1
BTC Address: 1M68ML9dMZZPEdrjncUCe7ZWadAGUxMNyv
BTC WIF: L24bEAJSkFCdjoQNEcboWfJdsLGLmkBgfGb4TSHnbhEmU9jenaes
KMD Address: RVNKRr2uxPMxJeDwFnTKjdtiLtcs7UzCZn
KMD WIF: UtrRXqvRFUAtCrCTRAHPH6yroQKUrrTJRmxt2h5U4QTUN1jCxTAh
GAME Address: Gdw3mTUaLRAgK7A2iZ8K4suQVnx7VRJ9rf
GAME WIF: Re6YxHzdQ61rmTuZFVbjmGu9Kqu8VeVJr4G1ihTPFsspAjGiErDL
EMC2 Address: EdF2quz8nWrJDwTbbTTieFYUMGfPsVB5dv
EMC2 WIF: T7trfubd9dBEWe3EnFYfj1r1pBueqqCaUUVKKEvLAfQvz3JFsNhs
GIN Address: Gdw3mTUaLRAgK7A2iZ8K4suQVnx7VRJ9rf
GIN WIF: WNejFTXR11LFx2L8wvEKEqvjHkL1D3Aa4CCBdEYQyBzbBKjPLHJQ
CHIPS & all Komodo assetchain including HUSH3 & VRSC uses same address and WIF as Komodo (KMD).
It is recommended that you write down 24 words random seed in a piece of paper and type directly into your server. Do not keep the seed saved in your local computer.
Important: Make sure your daemon is running and fully synced before importing any privkey. Importing key into daemon will trigger rescan which can take some time to finish depending on tx history.
- Follow the below example to import key into your coin daemons:
komodo-cli importprivkey UtrRXqvRFUAtCrCTRAHPH6yroQKUrrTJRmxt2h5U4QTUN1jCxTAh
bitcoin-cli importprivkey WNejFTXR11LFx2L8wvEKEqvjHkL1D3Aa4CCBdEYQyBzbBKjPLHJQ
chips-cli importprivkey UtrRXqvRFUAtCrCTRAHPH6yroQKUrrTJRmxt2h5U4QTUN1jCxTAh
gamecredits-cli importprivkey Re6YxHzdQ61rmTuZFVbjmGu9Kqu8VeVJr4G1ihTPFsspAjGiErDL
einsteinium-cli importprivkey T7trfubd9dBEWe3EnFYfj1r1pBueqqCaUUVKKEvLAfQvz3JFsNhs
gincoin-cli importprivkey WNejFTXR11LFx2L8wvEKEqvjHkL1D3Aa4CCBdEYQyBzbBKjPLHJQ
komodo-cli -ac_name=HUSH3 importprivkey UtrRXqvRFUAtCrCTRAHPH6yroQKUrrTJRmxt2h5U4QTUN1jCxTAh
komodo-cli -ac_name=VRSC importprivkey UtrRXqvRFUAtCrCTRAHPH6yroQKUrrTJRmxt2h5U4QTUN1jCxTAh
- For all other Komodo assetchains, use the following command to import privkey
cd ~/komodo/src
./fiat-cli importprivkey UtrRXqvRFUAtCrCTRAHPH6yroQKUrrTJRmxt2h5U4QTUN1jCxTAh
This command will import keys into all assetchains that are using the main Komodo daemon. This may take some time and will display the coin name and address after each import. You can tail the coin specific debug.log
files to check progress.
After all addresses are imported, using the $COIN-cli
validate all address and make sure it is showing ismine:true
. If you have ismine:false
, dPoW will not work for that coin. Sample command for that is below.
komodo-cli validateaddress RVNKRr2uxPMxJeDwFnTKjdtiLtcs7UzCZn
We will need to create a pubkey.txt
file inside ~/komodo/src/
directory. This will be used to start all assetchains including HUSH3 & VRSC with -pubkey=
param. pubkey.txt
file should contain only the below information. Change 02a854251adfee222bede8396fed0756985d4ea905f72611740867c7a4ad6488c1
with your own pubkey.
pubkey=02a854251adfee222bede8396fed0756985d4ea905f72611740867c7a4ad6488c1
Never use kill -9
to kill any wallet daemon if you don't like corrupt database. Always shutdown wallet daemon and iguana gracefully with pkill -15 iguana
or use the below RPC commands for wallets.
komodo-cli stop
bitcoin-cli stop
chips-cli stop
gamecredits-cli stop
einsteinium-cli stop
gincoin-cli stop
komodo-cli -ac_name=HUSH3 stop
komodo-cli -ac_name=VRSC stop
For all other Komodo assetchains, use the following command to stop
the daemons.
cd ~/komodo/src
./fiat-cli stop
After all chains daemons were stopped gracefully, let's secure all Komodo Assetchin conf file inside .komodo
dir.
find ~/.komodo -type f -iname "*.conf" -exec chmod 600 {} \;
cd ~
git clone https://github.com/jl777/SuperNET
cd SuperNET/iguana
git checkout dev
cp ~/komodo/src/pubkey.txt ~/SuperNET/iguana/pubkey.txt
Create wp_7776
file inside iguana
dir with your 24 words passphrase. The file should look like below (replace YOUR VERY SECURE PASSPHRASE
with your own):
curl --url "http://127.0.0.1:7776" --data "{\"method\":\"walletpassphrase\",\"params\":[\"YOUR VERY SECURE PASSPHRASE\", 9999999]}"
chmod 700 wp_7776
Create userhome.txt
file inside iguana
dir with your server user name. Here is an example using user dextar
and how the file should look like.
home/dextar
There shouldn't be any other text or space.
By default the number of open files per user in Ubuntu is 1024. In our case this number is too small so you have to increase it.
This is done with the ulimit
command:
$ulimit -a # see all the kernel parameters
$ulimit -n # see the number of open files
$ulimit -n 1000000 # set the number open files to 1000000
The problem with this way is that the ulimit
parameter is only set currently for this command terminal and user. This means that after a reboot you’ll need to set the parameter again. Do the following to set it permanent:
sudo nano /etc/security/limits.conf
add these lines:
* soft nofile 1000000
* hard nofile 1000000
Save and close file
sudo nano /etc/pam.d/common-session
add this line:
session required pam_limits.so
save and close file
We are done. Now let's stop all our wallet daemons safely with RPC commands and reboot the server using sudo reboot
or sudo shutdown -r
command.
ulimit -n
We need a start
script in the home dir to start Komodo, assetchains and all 3rd party coin daemons with -pubkey
option. -pubkey
is not required for BTC daemon. All other coins needs it. Here is an example of start script (change the pubkey with your Notary Node pubkey):
#!/bin/bash
source ~/komodo/src/pubkey.txt
bitcoind &
chipsd -pubkey=$pubkey &
gamecreditsd -pubkey=$pubkey &
einsteiniumd -pubkey=$pubkey &
gincoind -pubkey=$pubkey &
~/VerusCoin/src/verusd -pubkey=$pubkey &
~/hush3/src/hushd -pubkey=$pubkey &
sleep 60
cd komodo/src
./komodod -gen -genproclimit=1 -notary -pubkey=$pubkey &
sleep 600
./assetchains
Make the file executable:
chmod +x start
This may take upto 20-30 minutes max depending on system spec.
cd ~
./start
Make sure all daemons started properly before starting iguana in the next step.
Once all required daemons are running, we have funds on all coins, we can go ahead and start iguana
.
cd ~/SuperNET/iguana
./m_notary
m_notary
script will issue a git pull
command to update the repo, remove old iguana, compile fresh and start all the process. This can take about 10 minutes maximum to finish. You will see INIT with 64 notaries
once the process finishes.
After you see INIT with 64 notaries
, you can safely start dPoW process. Just issue the following command from inside iguana
dir to start with it.
./dpowassets
Iguana should split your utxos automatically. If you want to test or split manually, you can follow this guide.
Whitepapers
dPoW Whitepaper
barterDEX Whitepaper v2
JUMBLR Whitepaper
dICO Whitepaper
Install and build
Installing Komodo
Install barterDEX CLI
Install ETOMIC barterDEX
ElectrumX guide for barterDEX
Setup Insight Explorer
Notary Node
Notary Node security
Updating Notary Node
NN Assetchains Guide
Monitor Notary Node
Developers
barterDEX API
Create Assetchain
iguana API
Doing PAX deposits
Using JUMBLR
Using Key/Value
0conf Swaps
Testers
debug Komodo