Open
Description
btcwallet should not only work with btcd, but other bitcoin nodes as well (Bitcoin Core and other alternate full node implementations) and should not require a user to set their own full node either locally or on another machine. In today's Bitcoin ecosystem, SPV is the accepted method of syncing wallets against both trusted and untrusted nodes on the network.
Tasks to complete this issue:
- Refactor btcd peer code into a package usable by wallet to handle messages over the wire protocol (this will also handle connecting to the network, negotiating versions, etc.). This design is currently being planned out by @davecgh.
- Find peers to connect to, if one was not specified, using
btcd/addrmgr
- Save known peers to the db (instead of serializing peers to a file in JSON format like btcd does)
- Create bloom filters (
btcutil/bloom
) for active addresses and unspent outputs - Inform peers to respond to matching transactions with filterload
- Reload filters for each new address generated, and perhaps periodically if the filter begins matching too many unrelevant transactions
- Store block headers in the db
- Validate merkleblocks
- Decide which transactions in the merkleblock are relevant to the wallet
- Make the RPC connection to btcd optional
Metadata
Metadata
Assignees
Labels
No labels