When running an SPV node with a wallet as a process there will be missing transactions from blocks.
Reproduce
Run a full node in regtest. This could be ./src/bitcoind -regtest from another implementation.
Run an SPV node in regtest and only connect to that full node. This can be done using ./bin/bcoin --spv --no-wallet --network=regtest --only=127.0.0.1:18444.
Run a wallet process ./bin/bwallet --network=regtest.
Mine 100+ blocks on the full node. Such as ./src/bitcoin-cli -regtest generatetoaddress 150 <address> after getting a mining address via ./src/bitcoin-cli -regtest getnewaddress.
Generate an address from the wallet using /bin/bwallet-cli --network=regtest address default.
Send a few transactions to that address using ./src/bitcoin-cli -regtest sendtoaddress <address> 0.5.
Mine a block and watch the block be added to the wallet using /src/bitcoin-cli -regtest generatetoaddress 1 <address>.
The transaction will not appear in the wallet however the block was added, as can be seen with ./bin/bwallet --network=regtest balance.
Current Solution
Run the SPV node and wallet in the same process as a plugin.
Description
When running an SPV node with a wallet as a process there will be missing transactions from blocks.
Reproduce
./src/bitcoind -regtest
from another implementation../bin/bcoin --spv --no-wallet --network=regtest --only=127.0.0.1:18444
../bin/bwallet --network=regtest
../src/bitcoin-cli -regtest generatetoaddress 150 <address>
after getting a mining address via./src/bitcoin-cli -regtest getnewaddress
./bin/bwallet-cli --network=regtest address default
../src/bitcoin-cli -regtest sendtoaddress <address> 0.5
./src/bitcoin-cli -regtest generatetoaddress 1 <address>
../bin/bwallet --network=regtest balance
.Current Solution