I am working on a app in which my project communicates with the bitcoin server to get the details of a transaction with transaction id as the parameter. I have bitcoind, bitcoin-cli and bitcoin-qt installed on my system. When I run the bitcoin-qt in regtest mode, I am able to create test transactions in which I can send money to an address and get the transaction id for the same. I use this transaction id in my app, I am able to get the transaction details from bitcoin-qt. The problem is, now my testing is limited to only outward transactions wherein I transfer bitcoins to another account. How can I create some test transactions wherein bitcoins are credited to my wallet?
Asked
Active
Viewed 4,800 times
1 Answers
9
You probably want to run multiple bitcoind instances in regtest to simulate multiple nodes.
Thats pretty easy. You can run a second instance by starting bitcoind with a clean data directory and a different RPC and P2P port.
For that, you could create a 2nd data directory (example: /tmp/datadir2). Create /tmp/datadir2/bitcoin.conf.
Use something similar than:
regtest=1
rpcuser=rt
rpcuser=rt
port=12340
rpcport=10340
discover=0
Now you need to connect your first node with your 2nd node by sending a addnode over the RPC interface.
bitcoin-cli addnode 127.0.0.1:10340 onetry
You can than distinct between both nodes with the -datadir argument while calling bitcoin-cli.
bitcoin-cli -datadir=/tmp/datadir2/ getinfo
Some examples:
generate coins in first node (50 BTC available)
bitcoin-cli generate 101
get address from 2nd node
bitcoin-cli -datadir=/tmp/datadir2/ getnewaddress
send coins to 2nd node
bitcoin-cli sendtoaddress <address> 10.0
Jonas Schnelli
- 5,992
- 1
- 20
- 33
-
Thanks for the reply. I had done the exact same thing and got it running. I was setting the datadir on my host system to a separate directory when starting bitcoin-qt. This was somehow preventing my app from talking with bitcoin-qt. – plbit Aug 20 '15 at 09:28
-
After doing the above, when I do `getmempoolinfo` for the node that receives the transaction, it still shows 0. How do I send the transaction over. – thenakulchawla Aug 06 '18 at 18:38
-
1Maybe the received funds are not yet confirmed,... call a generate(1) again or try to list unconfirmed balance – Jonas Schnelli Aug 09 '18 at 10:39
-
I am trying to use the same above script but its adding the following error to the log 2019-01-10T12:35:51Z Binding RPC on address ::1 port 18443 failed. 2019-01-10T12:35:51Z Binding RPC on address 127.0.0.1 port 18443 failed. 2019-01-10T12:35:51Z Unable to bind any endpoint for RPC server 2019-01-10T12:35:51Z Error: Unable to start HTTP server. See debug log for details. 2019-01-10T12:35:51Z Shutdown: In progress... – Pankaj Kumar Jan 10 '19 at 12:37
-
1For the record, starting at 0.18 the command `generate` is deprecated and in 0.19 it will be completely removed. Use `generatetoaddress` instead. – Thalis K. Apr 06 '19 at 18:22