BitGo Express via Docker

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.

1. Install Docker.

Install the Ubuntu dependencies:

1 2 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:

1 2 3 curl -fsSL | 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] $(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:

1 sudo apt-get install docker-ce docker-ce-cli

Assuming the installation went as planned, this next command should succeed:

1 sudo docker run hello-world

Success looks like this:

2. Install the GB Tunnel.

Click this link to open installation instructions.

Requires CAS version 20200323 or newer.

Required when using the GB Cloud as your CAS server.

3. Install & run Bitgo Express.

Navigate to your home directory (~). The home directory is the default login directory.

1 cd ~

Run BitGo Express:

1 sudo docker run -it -p 3080:3080 bitgosdk/express:latest -p 3080 -e prod --disablessl

This is an example of a successful start:

4. Test it.

Verify that your node is working properly by sending a command via another terminal window.

  1. Open a new Terminal window/tab.

  2. Login on the second window via SSH to the Bitgo Express node.

  3. Type the following:

1 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.

5. Ensure continuity.

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:

1 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):

1 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).

6. Create a new Crypto Setting for use with this node.

More Hot Wallet & Exchange guides:


Copyright © 2022 General Bytes USA LLC