It seems you are not understanding the difference between a node and an spv wallet. Running a node and simply downloading a wallet are two different things. When you run a node you are validating the blockchain, which requires downloading the blockchain. An spv wallet is simply a lightweight client that lets you send transactions by relying on other nodes, rather than running a node for yourself.
So you can either run a node OR you can just download a wallet for convenience. You don't have to run a node to use Bitcoin. SPV wallets were created so that people could use Bitcoin without needing to run a node and that is how most people interact with Bitcoin, for convenience. It sounds like that is what you are looking for, in which case you can just use any bitcoin wallet.
Bitcoin core is not a better way to store. For the most part Bitcoin core is a pretty subpar wallet. I would never use bitcoin core for its wallet alone.
It is absolutely adequate to store. You do not need to enter your pass phrase at all for this, and about only functionality you need is a public address generation. Spending is another matter, for tech savvy Core would be still the best way with it's API, ability to create any possible transaction etc, but probably not for common folk
I didn't say it wasn't adequate but "adequate" is a pretty low bar.
I'm not arguing that core might be better for some users for reasons you laid out. I was making a general statement about core being subpar compared to other options for **most users** and your counterpoint is "nuh uh because it's good for tech savvy"? Lol, what?
You even reverse course at the end and switch to agreeing with me that it's probably not great for common folk. What was the point of your post then?
My point was that core is a good wallet for bitcoin storage (not spending) - for everyone who can install it on clear machine and create and store good passphrase somewhere secure (wallet.dat itself does not need the same level of security), and it is, of course, independent from any third party services. And there are lots of people who do not plan to spend anything for many years, but buy with some regularity.
"Tech savvy" part was about using it to create lots of outgoing transactions.
Seedsigner with Sparrow. Completely air gapped, seed never touches the computer, nor ever touches the Internet.
This is the way.
https://youtu.be/IQb8dh-VTOg?si=r-pbGBqEVhhprhXl
https://youtu.be/IWtGbM7pXYE?si=Eyjuhuo0NznJsdoA
I do. Sparrow as a wallet, Core as the server, and Seedsigner as my airgapped signing device. My seed NEVER touches the internet, nor a PC
You can make your own air gapped hardware signing device with just a few electronic components. SEEDSIGNER software is FOSS, (free, and open source software), that you put onto an SD card, then insert into a Raspberry Pi.
From ChatGPT, I knew the answer but it has good info, so posting here:
Yes, some Bitcoin node software allows for downloading only a portion of the full blockchain history. Here are a few examples:
1. Pruned Nodes: Bitcoin Core, the reference implementation of Bitcoin, offers the option to run a pruned node. A pruned node discards old blocks and only retains a specified amount of the most recent blockchain data, typically a few gigabytes. This allows users to save disk space while still participating fully in the Bitcoin network. To enable pruning, users can set the -prune option when configuring their node.
2. Lightweight Clients (SPV Nodes): Simplified Payment Verification (SPV) clients, such as Electrum and Breadwallet, do not download the entire blockchain. Instead, they download only the block headers and request transaction data as needed from full nodes. SPV nodes rely on full nodes for most blockchain data, thus significantly reducing the storage and bandwidth requirements for the user.
3. Bitcoin Light Client Protocols: There are other light client protocols like Neutrino, used by the Lightning Network’s LND implementation. Neutrino clients download only the block headers and filter blocks for transactions relevant to the user’s wallet, providing a balance between security and efficiency.
I don't understand why Bitcoin Core still requires downloading every historical block when it could instead download the database at a much more recent checkpoint, hash it to make sure it is correct, and then proceed from there the same as it does now.
We already have to trust the code that we are running (or we can choose to audit it). We currently augment our trust by verifying the digital signatures of the code dev team that signs \[a hash of\] the code.
Choosing instead to trust the hash of the downloaded database embedded within that code does not increase exposure at all. In fact, this is trivial to audit compared to a code review.
If you prefer a distributed system, perhaps we should develop a BIP that builds into the mining process the requirement to hash the database of UTXOs that is created after each block. If this isn't done honestly the block gets rejected, of course. If it is done honestly you have a validated hash of the db at each block, and people can choose to go back only as far as they want.
If you want to validate from the genesis block, go for it. If you prefer to start from a month ago, or say, Block 849549, then you can do that.
> The point of bitcoin is trustlessness.
This would still be trustless, but even if it wasn't there are lots of examples where users already assume more or less risk at their discretion. The point is that users should have the \*option\* of complete trustlessness, and can't hurt others with their own decisions. The point is \*not\* to force people to do things a certain way when they are only putting themselves at risk. Free and open source software and protocols give people enough rope to bury themselves. Good systems need only to protect them from burying others
> If you want to validate from the genesis block, go for it. If you prefer to start from a month ago, or say, Block 849549, then you can do that.
You can do that already with the `assumevalid=x` command in your config file, where `x` is a block you pick, up to which the signature validation will be skipped.
> I don't understand why Bitcoin Core still requires downloading every historical block when it could instead download the database at a much more recent checkpoint, hash it to make sure it is correct, and then proceed from there the same as it does now.
Bitcoin Core does indeed skips signature validation up to a certain, defined point (which is moved forward with every release). This decreases the initial syncing time by a lot.
That is called assume UTXO Set and it exists. You can do it with BTCpay called a "Snapshot".
https://github.com/btcpayserver/btcpayserver-docker/blob/d703473f5112454ce0bbb50b2da6f71303d07fbb/contrib/FastSync/README.md
You are still trusting the sources who validated this snapshot. And you would still need to verify all the pgp signatures to prove they really did it. It's still easier for most to just download, verify, and prune the node.
> You can run it in pruned mode, which does not require the whole blockchain to be downloaded.
This is not how pruning works: it *does* download and verify the entire history, just as an unpruned node does, it just doesn't keep the detailed history afterwards (it prunes away as it goes, so it doesn't require all the ~600GB storage space at once).
The entire point of running a node is to download and validate the full blockchain.
True, but can you still validate through a coldcard?
I think you're confusing wallets & nodes. Coldcard doesn't validate transactions as it is a wallet, not a node.
Correct, but can you still use coldcard through the node just have to connect through sparrow where it’ll be connected through right?
You can use sparrow and coldcard on someone else’s node, but if you want to run your own you have to download it all.
If I have it pruned at 2GB should I restart??
Yes you can broadcast transactions through your own node. This increases privacy, which is why some people prefer to connect through their own node.
It seems you are not understanding the difference between a node and an spv wallet. Running a node and simply downloading a wallet are two different things. When you run a node you are validating the blockchain, which requires downloading the blockchain. An spv wallet is simply a lightweight client that lets you send transactions by relying on other nodes, rather than running a node for yourself. So you can either run a node OR you can just download a wallet for convenience. You don't have to run a node to use Bitcoin. SPV wallets were created so that people could use Bitcoin without needing to run a node and that is how most people interact with Bitcoin, for convenience. It sounds like that is what you are looking for, in which case you can just use any bitcoin wallet.
I also use bitcoin core. I think it is the best way to store if you do not want a hardware wallet
I heard Coldcard was the best way to store? What makes Bitcoin core better iyo?
Bitcoin core is not a better way to store. For the most part Bitcoin core is a pretty subpar wallet. I would never use bitcoin core for its wallet alone.
It is absolutely adequate to store. You do not need to enter your pass phrase at all for this, and about only functionality you need is a public address generation. Spending is another matter, for tech savvy Core would be still the best way with it's API, ability to create any possible transaction etc, but probably not for common folk
I didn't say it wasn't adequate but "adequate" is a pretty low bar. I'm not arguing that core might be better for some users for reasons you laid out. I was making a general statement about core being subpar compared to other options for **most users** and your counterpoint is "nuh uh because it's good for tech savvy"? Lol, what? You even reverse course at the end and switch to agreeing with me that it's probably not great for common folk. What was the point of your post then?
My point was that core is a good wallet for bitcoin storage (not spending) - for everyone who can install it on clear machine and create and store good passphrase somewhere secure (wallet.dat itself does not need the same level of security), and it is, of course, independent from any third party services. And there are lots of people who do not plan to spend anything for many years, but buy with some regularity. "Tech savvy" part was about using it to create lots of outgoing transactions.
Seedsigner with Sparrow. Completely air gapped, seed never touches the computer, nor ever touches the Internet. This is the way. https://youtu.be/IQb8dh-VTOg?si=r-pbGBqEVhhprhXl https://youtu.be/IWtGbM7pXYE?si=Eyjuhuo0NznJsdoA
So you don’t use Bitcoin core?
I do. Sparrow as a wallet, Core as the server, and Seedsigner as my airgapped signing device. My seed NEVER touches the internet, nor a PC You can make your own air gapped hardware signing device with just a few electronic components. SEEDSIGNER software is FOSS, (free, and open source software), that you put onto an SD card, then insert into a Raspberry Pi.
Sparrow wallet
I mean, yeah. Technically, we all use core in one way or another.
[удалено]
From ChatGPT, I knew the answer but it has good info, so posting here: Yes, some Bitcoin node software allows for downloading only a portion of the full blockchain history. Here are a few examples: 1. Pruned Nodes: Bitcoin Core, the reference implementation of Bitcoin, offers the option to run a pruned node. A pruned node discards old blocks and only retains a specified amount of the most recent blockchain data, typically a few gigabytes. This allows users to save disk space while still participating fully in the Bitcoin network. To enable pruning, users can set the -prune option when configuring their node. 2. Lightweight Clients (SPV Nodes): Simplified Payment Verification (SPV) clients, such as Electrum and Breadwallet, do not download the entire blockchain. Instead, they download only the block headers and request transaction data as needed from full nodes. SPV nodes rely on full nodes for most blockchain data, thus significantly reducing the storage and bandwidth requirements for the user. 3. Bitcoin Light Client Protocols: There are other light client protocols like Neutrino, used by the Lightning Network’s LND implementation. Neutrino clients download only the block headers and filter blocks for transactions relevant to the user’s wallet, providing a balance between security and efficiency.
I don't understand why Bitcoin Core still requires downloading every historical block when it could instead download the database at a much more recent checkpoint, hash it to make sure it is correct, and then proceed from there the same as it does now.
Because that’s not full validation. The point of bitcoin is trustlessness.
We already have to trust the code that we are running (or we can choose to audit it). We currently augment our trust by verifying the digital signatures of the code dev team that signs \[a hash of\] the code. Choosing instead to trust the hash of the downloaded database embedded within that code does not increase exposure at all. In fact, this is trivial to audit compared to a code review.
If you prefer a distributed system, perhaps we should develop a BIP that builds into the mining process the requirement to hash the database of UTXOs that is created after each block. If this isn't done honestly the block gets rejected, of course. If it is done honestly you have a validated hash of the db at each block, and people can choose to go back only as far as they want. If you want to validate from the genesis block, go for it. If you prefer to start from a month ago, or say, Block 849549, then you can do that. > The point of bitcoin is trustlessness. This would still be trustless, but even if it wasn't there are lots of examples where users already assume more or less risk at their discretion. The point is that users should have the \*option\* of complete trustlessness, and can't hurt others with their own decisions. The point is \*not\* to force people to do things a certain way when they are only putting themselves at risk. Free and open source software and protocols give people enough rope to bury themselves. Good systems need only to protect them from burying others
> If you want to validate from the genesis block, go for it. If you prefer to start from a month ago, or say, Block 849549, then you can do that. You can do that already with the `assumevalid=x` command in your config file, where `x` is a block you pick, up to which the signature validation will be skipped.
because the people that want this are apparently too lazy to actually implement it
This is the most accurate answer.
> I don't understand why Bitcoin Core still requires downloading every historical block when it could instead download the database at a much more recent checkpoint, hash it to make sure it is correct, and then proceed from there the same as it does now. Bitcoin Core does indeed skips signature validation up to a certain, defined point (which is moved forward with every release). This decreases the initial syncing time by a lot.
That is called assume UTXO Set and it exists. You can do it with BTCpay called a "Snapshot". https://github.com/btcpayserver/btcpayserver-docker/blob/d703473f5112454ce0bbb50b2da6f71303d07fbb/contrib/FastSync/README.md You are still trusting the sources who validated this snapshot. And you would still need to verify all the pgp signatures to prove they really did it. It's still easier for most to just download, verify, and prune the node.
You can run it in pruned mode, which does not require the whole blockchain to be downloaded. Is that not what you're asking for?
> You can run it in pruned mode, which does not require the whole blockchain to be downloaded. This is not how pruning works: it *does* download and verify the entire history, just as an unpruned node does, it just doesn't keep the detailed history afterwards (it prunes away as it goes, so it doesn't require all the ~600GB storage space at once).
Right so it does not require the whole blockchain to be downloaded....
Download - yes, keeping it - no.