-
Notifications
You must be signed in to change notification settings - Fork 412
Description
Current RpcBlockchain grants full access to transaction history, however, it requires a non-pruned node (a node storing the full blockchain, which at the time of writing is over 400GB).
However, by renouncing to a wallet full transaction history, it is still possible to compute the wallet balance and be able to spend without needing a non-pruned node.
The key to achieve that is using RPC method scantxoutset
Note: if someone want to turn this into a "summer-of-bitcoin" project is welcome
Summer of Bitcoin Project Proposal
Description
Current RpcBlockchain grants full access to transaction history, however, it requires a non-pruned node (a node storing the full blockchain, which at the time of writing is over 400GB).
However, even without a wallet's full transaction history it is still possible to compute the wallet balance and be able to spend with only a pruned core full node.
The key to achieve that is using RPC method scantxoutset
Expected Outcomes
- Implement
blockchain::rpc::PrunedRpcBlockchainandblockchain::rpc::PrunedRpcConfig. PrunedRpcBlockchainwill use corescantxoutsetRPC to compute wallet balances.PrunedRpcBlockchainwill create spending transactions with a pruned core full node.
Resources
Skills Required
- Experience with git. Guide
- Familiarity with rust. First seven chapters of the book
- Able to setup a local core node in regtest and testnet mode.
Difficulty
Hard
Competency Test
- Install rust, compile and run all bdk examples and tests.
- Read through the BDK docs.
- Setup a local Bitcoin Core node daemon in Regtest mode.
- Make a dummy wallet with and test with
example_bitcoind_rpc_pollingclient. - Familiarity with basic rust, should be able to write basic trait implementations on foreign structures.