This guide is designed to guide your through the installation of BitGo Express node, to enable CAS to use your BitGo wallet (on the BitGo website) after you’ve created your BitGo account (on their website).
BitGo Express is designed and written by BitGo for their BitGo website wallet.
IMPORTANT: you will be exposing your BitGo wallet's private keys on this server. This may be a substantial security risk. Without airtight protection, your funds might be exposed. Securing your server is of paramount importance. If you proceed, you are doing so at your own risk. |
BitGo holds and secures your cryptocurrency keys. BitGo Wallet is a hot wallet option in the Crypto Application Server (CAS). BitGo Express is used to interface with BitGo. CAS does not interact with BitGo directly. |
This article presumes you have a bare installation of Ubuntu 20.04 LTS running on a VPS with a publicly exposed IP.
|
Install the Ubuntu dependencies:
sudo apt update && sudo apt dist-upgrade sudo apt-get install ca-certificates curl gnupg lsb-release |
Install the product signatures to verify file integrity:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update |
Install the latest stable version of Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io |
Assuming the installation went as planned, this next command should succeed:
sudo docker run hello-world |
Success looks like this:
Click this link to open installation instructions.
The BE (Bitgo Express) node should always be on a dedicated & separate server.
You may ignore this step if you use, understand, and deploy your own SSH tunnel between CAS ↔︎ BE.
Navigate to your home directory (~). The home directory is the default login directory.
cd ~ |
Run BitGo Express:
sudo docker run -it -p 3080:3080 bitgosdk/express:latest -p 3080 -e prod --disablessl |
This is an example of a successful start:
Verify that your node is working properly by sending a command via another terminal window.
Open a new Terminal window/tab.
Login on the second window via SSH to the Bitgo Express node.
Type the following:
curl localhost:3080/api/v2/ping |
You should see something similar to this reply:
On the first window, you’ll see confirmation that the second window said “hello”:
Great, everything seems to be working with that! You can close the second window, we’re done there.
You’ll also see messages from CAS (in the first window) as you test the Hot Wallet settings. This is a great tool to help diagnose any problems. |
BitGo Express MUST be running at all times to be available as a Hot Wallet for CAS. If the program terminates for any reason, the Hot Wallet will fail to function. If the server goes down, so does your Hot Wallet. You need the server up & Bitgo Express operating constantly for proper operation.
The best way to ensure that Bitgo Express is always running is to implement Docker’s detached mode:
sudo docker run -d -p 3080:3080 bitgosdk/express:latest -p 3080 -e prod --disablessl & |
This is an example of BitGo Express successfully started in the background (detached mode):
the reply indicates that Bitgo Express was successfully started, and assigned an identifier. That number will vary every time - and it’s not very important unless you wish to stop the program. Normally you won’t stop the program.
To stop Bitgo Express, simply re-attach the container (use the first 12 characters of the identifier):
sudo docker attach a2be980a8ef9 |
you can now close Bitgo Express by pressing Ctrl-C, or
watch incoming test messages from CAS (or another window, as described above).