Hot answers tagged

4

I found out that SPV has no mempool, but although SPV client is participating in transaction verification. So, what happens when node verifies transaction? Is SPV client checking only owner's outgoing transactions? That depends on what you mean by "verification". SPV clients cannot and do not verify the validity of transactions themselves; they ...


3

Bitcoin transactions are not stored in a Merkle tree. That is just one way of representing them. The most common serialization for blocks is just: Header (prevhash, merkleroot, time, nonce, difficulty, version) Number of transactions Concatenation of all those transactions This serialization is used on the P2P network in block messages, as well as on disk ...


3

Why would a thin node want to know information like this ? They quite possibly don't care about exactly which block the transaction was included in, but they most certainly care about knowing the transaction was included in the blockchain at all. It just so happens that there is no easy way to prove the latter without proving which block it is included in. ...


2

By design, Bitcoin Core is a fully validating Bitcoin node and does not have an SPV client mode. If disk space is your primary concern, you can run Bitcoin Core with pruning active. This will delete old blocks from disk but maintain a full UTXO set which is sufficient for full blockchain validation. Bitcoin Core can serve SPV clients, although there has ...


1

There is many wallets outhere, some of them open source that you could even compile and run into your device so you can audit the code if you don't want to trust the manufacturer. My advice use the one you think or see works good (in my case https://blockstream.com/green/) With the care you are proposing right now, having only what would spend. I like to ...


1

No, you essentially have to do exactly that: test the block filter for each address that might have gotten used by your wallet. That might not be quite as bad as you seem to think, though. Deterministic wallet backups usually come with a master secret and the derivation path. If you have both these pieces of information, only one derivation path needs to be ...


1

TL;DR: A Merkle branch provides costly-to-fake indicator that a transaction is actually part of the blockchain. The cost of forging a Merkle branch is sufficiently high to deter some attacks on low-value transactions, but trivial to validate by the thin client. Full nodes and thin clients are distinguished by whether they independently process the whole ...


1

First, I want to make sure that a sufficient number of lightweight wallets are connected to the node. There's very little use of BIP37 today, and it's not even served by default by modern versions of Bitcoin Core. The chance that anybody would even connect to you and supply filters to you is extremely low. It was always a terrible idea to begin with, giving ...


1

You are asking a few different questions here, I'll try to help with each: Wallet filters: See BIP37 which describes SPV wallets in general. A Bloom Filter is generated by the SPV wallet and sent to full nodes on the network. The filter is a compact data structure that represents every public key the SPV wallet is interested in. The full node will check each ...


1

You can use the command bitcoin-cli getblockheader "hash" ( verbose ) to return a specific block header. For more info: bitcoin-cli help getblockheader but I can't know where should I change get block to get headers: https://bitcoin.org/en/developer-reference#getheaders I want to get all headers instead of total blocks to have a SVP node. The ...


Only top voted, non community-wiki answers of a minimum length are eligible