Testing integration with fake Bitcoins
Given the nature of Bitcoin's scarcity. Testing your application can be
challening specially if you want to test it in the closest scenario to the
production as possible. This is why the Bitcoin core team have come up with the
Testnet, which is a network with the same rules as the actual Bitcoin network
but the coins have no value.
This guide will walk you through the process of testing bamotf with a testnet wallet. This includes setting up the Bitcoin core over the testnet, configuring bamotf, and setting up your testnet wallet.
To set up the Bitcoin Core over the testnet, you will need to download and install the Bitcoin Core on your server. You can find lots of guides on how to do this online. This approach can be time-consuming and resource-intensive so it can get expensive.
Optionally, you can use Docker to run the Bitcoin Core over the testnet on your
own machine or server using the
ruimarinho/bitcoin-core Docker image. This is
a lightweight image that is easy to set up and use. You can find more
information about this image on its
Docker Hub page (opens in a new tab). Or you can
use the following
docker-compose.yml file to run the Bitcoin Core
version: '3.8' services: bamotf: ... bitcoin-core-testnet: image: ruimarinho/bitcoin-core:latest command: [ '-printtoconsole', '-testnet=1', '-prune=550', '-debug=http', '-rpcbind=0.0.0.0', '-rpcallowip=0.0.0.0/0', '-rpcuser=myrpcuser', # Replace with your own RPC username '-rpcpassword=myrpcpassword', # Replace with your own RPC password ] ports: - 18332:18332 volumes: - ./docker-data/bitcoin:/home/bitcoin/.bitcoin
Be aware that this may take some time to download and sync the blockchain. You can check the status of the blockchain sync by running the following command:
docker logs -f bitcoin-core-testnet
If you prefer, you can download the snapshot of the
blockchain (opens in a new tab) and unpack it on the
./bitcoin/testnet3 folder to speed up the process.
To configure bamotf to use the Bitcoin Core over the testnet, you will need to
TESTNET_BITCOIN_CORE_URL environment variable to your bamotf server.
This URL should include the user and password for the RPC connection.
If you want to test it locally, you just need to set the
TESTNET_BITCOIN_CORE_URL environment variable on your docker-compose file.
version: '3.8' services: bamotf: ... environment: ... - TESTNET_BITCOIN_CORE_URL=http://myrpcuser:myrpcpassword@bitcoin-core-testnet:18332 bitcoin-core-testnet: ...
Download and install the
Blockstream's Green Wallet (opens in a new tab)
on your phone.
In order to create a testnet wallet, you first need to create a mainet wallet.
After creating the mainet wallet, head back to the list of wallets screen and
click on the
App Settings button and turn on
Enable testnet then, click on
After that just follow the normal "New Wallet" flow.
Now that you have a testnet wallet, you need to get some testnet coins. Go to one of the following testnet faucets and enter your testnet wallet address to get some testnet coins:
- https://testnet-faucet.com/btc-testnet/ (opens in a new tab)
- https://tbtc.bitaps.com/ (opens in a new tab)
- https://testnet-faucet.mempool.co/ (opens in a new tab)
- https://bitcoinfaucet.uo1.net/ (opens in a new tab)
- https://kuttler.eu/en/bitcoin/btc/faucet/ (opens in a new tab)
- https://coinfaucet.eu/en/btc-testnet/ (opens in a new tab)
Remember, the testnet network is separate from the main Bitcoin network. Coins on the testnet have no real-world value and are useful for testing purposes only.
This is mainly used by the bamotf team to test the integration.
We also ship this
bamotf/core-dev image which is a base image for building and
testing the Bitcoin core under the regtest network. During the
inicialization, it creates a
test-wallet and mine 101 blocks to it so you can
start testing your application right away.
You probably don't need it but in case you do, you can access this image with the following RPC access: