Learn how to use Celo arbitrage strategies
Updated as of v0.28.1
Since Celo is a blockchain protocol, in addition to the normal inventory requirements, you will need access to a Celo node and the
celo-cli command line tool in the same machine in which you are running the Hummingbot client.
- Similar to the arbitrage strategy, you will need to hold inventory of Celo tokens (i.e. Celo Gold (CELO) or cUSD) in a Celo wallet and on a secondary exchange), in order to be able to trade and capture price differentials (i.e. buy low on one exchange, sell high on the other).
- You may also need some CELO tokens in your Celo wallet in order to pay for transaction fees on the Celo blockchain.
Celo nodes allow the Hummingbot client to interact with the Celo blockchain by connecting to peers, sending transactions, and fetching chain state. Since the client just needs access to the chain and recent blocks, you can run either a Celo full node or an ultra-light node.
Follow the Celo documentation to install and run a full node. Note that the node must be synced in order for the
celo-arb strategy to run.
Tip: Ultra-light sync mode — The
celo-arbstrategy works with Celo node running in "ultra-light" mode, which is much faster to sync. See our Quickstart for instructions on how to start a node in ultra-light mode.
To interact with the Celo node, the Hummingbot client depends upon the
celo-cli command line tool. Please install
celo-cli by following these instructions in the Celo documentation.
This configuration installs the Docker build of Hummingbot on AWS. Note that you can use other cloud providers besides AWS, and you can also install Hummingbot by source or binary in addition to Docker.
We assume that you already have an AWS account.
While the free
t2.micro tier may be sufficient to run
celo-arb, we recommend a
t2.medium instance as the minimum instance type for improved performance.
By default, AWS instances come with 8 GB of storage. We recommend that you increase storage to at least 16 GB to install the Docker version along with the Celo node.
# 1) Download Docker install script wget https://raw.githubusercontent.com/CoinAlpha/hummingbot/development/installation/install-docker/install-docker-ubuntu.sh # 2) Enable script permissions chmod a+x install-docker-ubuntu.sh # 3) Run installation ./install-docker-ubuntu.sh
You may need to exit and reconnect to your AWS instance afterwards.
Follow the Celo documentation to pull the Celo Docker image and install/configure a node, but stop right after the step Configure the node and before the step Start the node:
Instead, run the following command to start an ultra-light node rather than a full node:
docker run --name celo-ultralight-node -d --restart unless-stopped -p 127.0.0.1:8545:8545 -v $PWD:/root/.celo $CELO_IMAGE --verbosity 3 --networkid $NETWORK_ID --syncmode lightest --rpc --rpcaddr 0.0.0.0 --rpcapi eth,net,web3,debug,admin,personal --etherbase $CELO_ACCOUNT_ADDRESS --bootnodes $BOOTNODE_ENODES --allow-insecure-unlock
Make sure that you save the address and password of the new Celo account address you created. You will need it later.
Install the Docker version of Hummingbot:
# 1) Download Hummingbot install, start, and update script cd ~ wget https://raw.githubusercontent.com/CoinAlpha/hummingbot/development/installation/docker-commands/create.sh wget https://raw.githubusercontent.com/CoinAlpha/hummingbot/development/installation/docker-commands/start.sh wget https://raw.githubusercontent.com/CoinAlpha/hummingbot/development/installation/docker-commands/update.sh # 2) Enable script permissions chmod a+x *.sh # 3) Create a hummingbot instance ./create.sh
Afterwards, Hummingbot will start automatically and prompt you to set a password. After you exit, you can use the
./update.sh commands to run and update Hummingbot, respectively.
Run the command
Enter the Celo address and password from when you created the Celo account in Step 3.
You should now be connected to Celo. To check, run the
balance command and check that the balances of CELo and cUSD match what you hold in your Celo wallet.
The following walks through all the steps when running
create command. These parameters are fields in Hummingbot configuration files (located in the
/conf folder, e.g.
Enter another exchange you would like to trade on.
Enter the token trading pair for the secondary exchange.
Minimum profitability target required to execute trades.
Order amount for each leg of the arbitrage trade.
Percent buffer added to the Celo exchange price to account for price movement before trade execution