
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**

1.  Run and sync full nodes A and B.

2.  Stop nodes A and B.

3.  Copy wallet.dat from node A to node B.

4.  Run nodes A and B

5.  Use `getnewaddress` method on node A 10 times. Let’s assume the 10-th address is `$ADDRESS`.

6.  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`.

7.  Use `listtransaction "*"` method on node B. You don’t see the `$TXID` transaction in list.

8.  Use `gettransactions`, or `listunspent` methods on node B. You can see the transaction details. Wallet balance changed on node B and is equal to node A.

9.  Use `getaddressinfo $ADDRESS` method on node A. You can see that address had the default label (`""`).

10. 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.


{
    return RPCHelpMan{"importmulti",
                "\nImport addresses/scripts (with private or public keys, redeem script (P2SH)), optionally rescanning the blockchain from the earliest creation time of the imported scripts. Requires a new wallet backup.\n"
                "If an address/script is imported without all of the private keys required to spend from that address, it will be watchonly. The 'watchonly' option must be set to true in this case or a warning will be returned.\n"
                "Conversely, if all the private keys are provided and the address/script is spendable, the watchonly option must be set to false, or a warning will be returned.\n"
            "\nNote: This call can take over an hour to complete if rescan is true, during that time, other rpc calls\n"
            "may report that the imported keys, addresses or scripts exist but related transactions are still missing.\n"
            "Note: Use \"getwalletinfo\" to query the scanning progress.\n",
                {
                    {"requests", RPCArg::Type::ARR, RPCArg::Optional::NO, "Data to be imported",
                        {
                            {"", RPCArg::Type::OBJ, RPCArg::Optional::OMITTED, "",
                                {
                                    {"desc", RPCArg::Type::STR, RPCArg::Optional::OMITTED, "Descriptor to import. If using descriptor, do not also provide address/scriptPubKey, scripts, or pubkeys"},
                                    {"scriptPubKey", RPCArg::Type::STR, RPCArg::Optional::NO, "Type of scriptPubKey (string for script, json for address). Should not be provided if using a descriptor",
                                        /* ", {"\"<script>\" | { \"address\":\"<address>\" }", "string / json"}
                                    },
                                    {"timestamp", RPCArg::Type::NUM, RPCArg::Optional::NO, "Creation time of the key expressed in " + UNIX_EPOCH_TIME + ",\n"
        "                                                              or the string \"now\" to substitute the current synced blockchain time. The timestamp of the oldest\n"
        "                                                              key will determine how far back blockchain rescans need to begin for missing wallet transactions.\n"
        "                                                              \"now\" can be specified to bypass scanning, for keys which are known to never have been used, and\n"