I have two bitcoin core full nodes. I have one wallet.dat file on both nodes. One node is a master and second node is a reserve. Master signs and sends transactions. Reserve node only receives updates from network. I create new addresses on the master node only and the reserve node derives the same addresses.
I don’t use any other commands on the reserve node. The reserve node creates addresses automatically after receiving a transaction to a new address. This process is possible due to using BIP32 key derivation from one master key.
So, I have constantly synchronized master and reserve nodes. If there are problems with the master, then I switch to the reserve.
I see some strange behavior appear during this process. Some transactions are not shown in the listtransactions
output. I did a research an found that only “in-wallet” transactions are not shown in the listransactions
. The “in-wallet” transactions are transactions that were sent with sender’s and receiver’s keys, which are stored in my wallet. I also found that new addresses on the reserve node are created whithout a label.
After adding a label to the address the problem is gone. But adding a label requires additional steps I want to avoid.
Expected Behavior
Results of listtransactions
also shown “in-wallet” transactions to addresses without labels
Current Behavior
Results of listtransactions
doesn’t shown “in-wallet” transactions to addresses without labels
Possible Solution
-
Automatic adding of a default label to the addresses, derived to the reserve node.
-
Print transactions sent to addresses without labels in
listtransactions
.
Steps to Reproduce
-
Run and sync full nodes A and B.
-
Stop nodes A and B.
-
Copy wallet.dat from node A to node B.
-
Run nodes A and B
-
Use
getnewaddress
method on node A 10 times. Let’s assume the 10-th address is$ADDRESS
. -
Use
sendtoaddress
method on node A. Send 0.001 coins from another address to the$ADDRESS
.bitcoin-cli sendtoaddress $ADDRESS 0.001
. Let’s assume the result txid is$TXID
. -
Use
listtransaction "*"
method on node B. You don’t see the$TXID
transaction in list. -
Use
gettransactions
, orlistunspent
methods on node B. You can see the transaction details. Wallet balance changed on node B and is equal to node A. -
Use
getaddressinfo $ADDRESS
method on node A. You can see that address had the default label (""
). -
Use
getaddressinfo $ADDRESS
method on node B. You can see that the address doesn’t have any label.
Context (Environment)
The problem is occured on any version of bitcoin core testnet and mainnet. The problem is also occured on litecoin and any bitcoin-based coins.