
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.


bool CanProvide(const CScript& script, SignatureData& sigdata) override;
    bool SignTransaction(CMutableTransaction& tx, const std::map<COutPoint, Coin>& coins, int sighash, std::map<int, bilingual_str>& input_errors) const override;
    SigningResult SignMessage(const std::string& message, const PKHash& pkhash, std::string& str_sig) const override;
    TransactionError FillPSBT(PartiallySignedTransaction& psbt, const PrecomputedTransactionData& txdata, int sighash_type = 1 , bool sign = true, bool bip32derivs = false, int* n_signed = nullptr, bool finalize = true) const override;
    uint256 GetID() const override;
    
    std::map<CKeyID, CKeyMetadata> mapKeyMetadata GUARDED_BY(cs_KeyStore);
    
    std::map<CScriptID, CKeyMetadata> m_script_metadata GUARDED_BY(cs_KeyStore);
    
    bool AddKeyPubKey(const CKey& key, const CPubKey &pubkey) override;
    
    bool LoadKey(const CKey& key, const CPubKey &pubkey);
    
    bool AddCryptedKey(const CPubKey &vchPubKey, const std::vector<unsigned char> &vchCryptedSecret);
    
    bool LoadCryptedKey(const CPubKey &vchPubKey, const std::vector<unsigned char> &vchCryptedSecret, bool checksum_valid);
    void UpdateTimeFirstKey(int64_t nCreateTime) EXCLUSIVE_LOCKS_REQUIRED(cs_KeyStore);
    
    bool LoadCScript(const CScript& redeemScript);
    
    void LoadKeyMetadata(const CKeyID& keyID, const CKeyMetadata &metadata);
    void LoadScriptMetadata(const CScriptID& script_id, const CKeyMetadata &metadata);
    
    CPubKey GenerateNewKey(WalletBatch& batch, CHDChain& hd_chain, bool internal = false) EXCLUSIVE_LOCKS_REQUIRED(cs_KeyStore);
    
    void AddHDChain(const CHDChain& chain);
    
    void LoadHDChain(const CHDChain& chain);
    const CHDChain& GetHDChain() const { return m_hd_chain; }