Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SPV support #219

1 of 10 tasks
jrick opened this issue Mar 31, 2015 · 2 comments
1 of 10 tasks

SPV support #219

jrick opened this issue Mar 31, 2015 · 2 comments


Copy link

jrick commented Mar 31, 2015

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
cjepson added a commit to cjepson/btcwallet that referenced this issue May 2, 2016
Fix lockup relating to channel blocking
Copy link

Bump because of bitcoin/bitcoin#19070. See too.

Copy link

raedah commented Feb 17, 2021

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
None yet

No branches or pull requests

3 participants