This project deploys a Docker container with cryptocurrency nodes in regtest mode (Bitcoin, Dogecoin, Litecoin) and dev mode (Ethereum). It's optimized for testing and development purposes, featuring pre-configured wallets, RPC access, and balance checking.
- Bitcoin Core (v27.0): Regtest, RPC port
18444 - Dogecoin Core (v1.14.8): Regtest, RPC port
22556, P2P port44555 - Litecoin Core (v0.21.3): Regtest, RPC port
19335 - Ethereum (Geth): Dev mode, HTTP RPC port
8545 - Balance Checker: Convenient script (
check_balances.sh) to display wallet balances
- Docker: Ensure Docker Desktop is installed and running
- Disk Space: Approximately 2GB
- Available Ports:
18444,22556,19335,8545,44555
crypto-nodes/
├── Dockerfile
├── bitcoin.conf
├── dogecoin.conf
├── litecoin.conf
├── geth.json
├── check_balances.sh
└── README.md
Ensure all necessary files (Dockerfile, config files, check_balances.sh) are in your project directory, e.g., /home/user/crypto-nodes.
cd /home/user/crypto-nodes
docker build -t crypto-nodes .docker run -d \
-p 18444:18444 -p 22556:22556 -p 19335:19335 -p 8545:8545 \
--name crypto-nodes crypto-nodesdocker exec -it crypto-nodes bashConfirm nodes are operational:
ps aux | grep -E 'bitcoind|dogecoind|litecoind|geth'Test connectivity:
bitcoin-cli -regtest -rpcport=18444 getblockchaininfo
dogecoin-cli -regtest -rpcport=22556 getblockchaininfo
litecoin-cli -regtest -rpcport=19335 getblockchaininfo
geth --exec 'eth.blockNumber' attach http://localhost:8545Generate wallets:
bitcoin-cli -regtest -rpcport=18444 createwallet "testwallet"
dogecoin-cli -regtest -rpcport=22556 getnewaddress
litecoin-cli -regtest -rpcport=19335 createwallet "testwallet"
geth --datadir /root/.ethereum account newNote: Dogecoin utilizes the default wallet (wallet.dat). Securely store Ethereum wallet passwords.
Regtest mode requires mining blocks for coinbase maturity:
bitcoin-cli -regtest -rpcport=18444 generatetoaddress 101 $(bitcoin-cli -regtest -rpcport=18444 getnewaddress)
dogecoin-cli -regtest -rpcport=22556 generatetoaddress 101 $(dogecoin-cli -regtest -rpcport=22556 getnewaddress)
litecoin-cli -regtest -rpcport=19335 generatetoaddress 101 $(litecoin-cli -regtest -rpcport=19335 getnewaddress)Ethereum dev mode accounts are pre-funded.
Use the balance checker script:
bash /usr/local/bin/check_balances.shExpected results:
Checking Bitcoin balance...
50.00000000
Checking Dogecoin balance...
50.00000000
Checking Litecoin balance...
50.00000000
Checking Ethereum balance...
Balance for 0x...: 115792089237316195423570985008687907853269984665564039457584007913129639927 ETH
Save your container state to preserve wallets:
docker commit crypto-nodes crypto-nodes:workingRestart:
docker run -d -p 18444:18444 -p 22556:22556 -p 19335:19335 -p 8545:8545 --name crypto-nodes crypto-nodes:workingPersist wallets and blockchain data:
- Docker volume:
docker run -d -p 18444:18444 -p 22556:22556 -p 19335:19335 -p 8545:8545 \
-v crypto_data:/root --name crypto-nodes crypto-nodes- Backup wallets:
docker cp crypto-nodes:/root/.bitcoin/regtest/wallet.dat ./bitcoin_wallet.dat
docker cp crypto-nodes:/root/.dogecoin/regtest/wallet.dat ./dogecoin_wallet.dat
docker cp crypto-nodes:/root/.litecoin/regtest/wallet.dat ./litecoin_wallet.dat
docker cp crypto-nodes:/root/.ethereum/keystore ./ethereum_keystore- Port Conflicts:
netstat -tuln | grep -E '18444|22556|19335|8545|44555'Modify dogecoin.conf if needed.
- Node Issues: Check logs:
cat /root/.bitcoin/regtest/debug.log
cat /root/.dogecoin/regtest/debug.log
cat /root/.litecoin/regtest/debug.log
cat /root/.ethereum/geth.log- Balance Issues: Confirm blockchain height:
bitcoin-cli -regtest -rpcport=18444 getblockcount
dogecoin-cli -regtest -rpcport=22556 getblockcount
litecoin-cli -regtest -rpcport=19335 getblockcount- Ethereum Balance Display: Avoid scientific notation:
geth --exec "web3.fromWei(eth.getBalance('0x...'), 'ether').toFixed(0)" attach http://localhost:8545This project is for educational purposes. Use at your own risk.
To ensure everything works with the README:
- Confirm all files are in
/home/user/crypto-nodes:Dockerfilebitcoin.confdogecoin.conflitecoin.confgeth.jsoncheck_balances.shREADME.md
- Follow the README’s setup steps:
cd /home/user/crypto-nodes docker build -t crypto-nodes . docker rm -f crypto-nodes docker run -d -p 18444:18444 -p 22556:22556 -p 19335:19335 -p 8545:8545 --name crypto-nodes crypto-nodes docker exec -it crypto-nodes bash
Run through steps 5–8 (verify nodes, create wallets, generate funds, check balances). Share the output of: check_balances.sh
