Open notmandatory opened 4 months ago
Mind if I work on this? I'm not SOB but I am doing a similar program haha
Is this still open? Would like to give it a shot
Not sure if our architecture actually supports this kind of usage. The problem is how do you figure out when an output has been spent? The only way is that it is no longer returned from the scantxoutset
output. But in bdk_chain
we tell it outputs are spent by providing a full transaction that spent it. We can't get that here.
It can be used to find your current balance, but can't be used in a way where you persist anything. So the workflow would be to just scantxout
then get the outputs, create a transaction from them and spend them. You could .insert_txout
them into a temporary Wallet
and create transactions from there. I think that's the only way to get value from bdk
with this atm.
Hey @notmandatory the link you shared for rpc commands (https://developer.bitcoin.org/reference/rpc/) is somehow not working.
Hey @notmandatory the link you shared for rpc commands (https://developer.bitcoin.org/reference/rpc/) is somehow not working.
I think this can be a good alternative resource for the same.
@star-gazer111 https://chainquery.com/bitcoin-cli i prefer to use this one, its kinda better.
@LLFourn what if we use the RPC syncing as it is now but with a bitcoind node set to "manual" pruning? then we just have to add functionality to call the "pruneblockchain" command after syncing to remove old (maybe older than 1000 deep or so) already ingested blocks.
@notmandatory yeah cool I didn't know about this setting but that also works. I feel like the usage is a little niche:
Certainly not an unlikely situation within a small Bitcoin startup. Also can exist in user facing software that actually embeds a pruned node.
This looks interesting, I think I will give it a shot
Summer of Bitcoin Project Proposal
Description
The current
bdk_bitcoind_rpc
module requires full access to transaction history using 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 bitcoind node using the RPC method
scantxoutset
. This project will update the existingbdk_bitcoind_rpc
module to work with a pruned bitcoind node.Expected Outcomes
full_scan
to use thescantxoutset
if the bitcoind node is pruned.full_scan
works with a pruned node.Resources
Skills Required
Mentor(s)
@notmandatory
Difficulty
Hard
Competency Test
example_bitcoind_rpc_polling
example wallet and receive and send regtest bitcoin.