Pages:
Author

Topic: Why do you have to download the whole history since genesis? (Read 1665 times)

donator
Activity: 980
Merit: 1000
On the bright side, you have locally in your computer all balances and all transactions in bitcoin ever. That's cool if you know how to use it.

How do I? Cheesy

You can play with this source code https://bitcointalk.org/index.php?topic=88584.0;topicseen
newbie
Activity: 39
Merit: 0
On the bright side, you have locally in your computer all balances and all transactions in bitcoin ever. That's cool if you know how to use it.

How do I? Cheesy
newbie
Activity: 14
Merit: 0
Ohh alright that makes a lot of sense now. I would assume the server downloads the blockchain and notifies the client of the transaction etc?

Yes, in clients like Electrum, the server has the entire blockchain and uses it to keep the client updated.
donator
Activity: 980
Merit: 1000
Just out of curiosity, if you haven't logged on your BTC client 3 months in and received a payment a week after you stopped using the client.
Wouldn't it be possible that if we didnt download the full blockchain the client's wallet wouldnt be updated properly?

Sure. The wallet will be updated when it reaches that part of the blockchain. However that doesn't change that your balance is there, even if your wallet doesn't reflect it. You just need to give it time. You would still be able to check your balance with blockexplorer.com , for instance.

I think I mistook your post. I thought you meant that if the client were to download the latest N blocks, and lets say where N == 200. That the wallet.dat would update even if the transaction was 1000 blocks back. I know that the wallet balance should be a certain amount -- if you look at block explorer -- but if the client were never to download that part of the blockchain how would they be able to spend it?


Such a client would validate transactions but wouldn't know your balance from your blockchain alone, it would need to check elsewhere like Electrum does. You can use blockexplorer.com to check your balance. Or blockchain.info .

To know your balance for sure, the client would need at least the tail of the blockchain since your address first received a transaction. Then, if you only care about a number of addresses, there are tricks to compress the blockchain further but it gets complicated and you cannot manage more addresses afterwards. But normally, a new user starting just now and only managing new addresses won't need all the blockchain for genesis for any normal operation including checking balance (we are assuming his addresses are new and have no balance when he first installs the client). Maybe such cases should be covered as an option during install.
newbie
Activity: 11
Merit: 0
Just out of curiosity, if you haven't logged on your BTC client 3 months in and received a payment a week after you stopped using the client.
Wouldn't it be possible that if we didnt download the full blockchain the client's wallet wouldnt be updated properly?

To calculate wallet balances, the client just needs to know of any transactions where one of its addresses is an in/out of a transaction. In a client that downloads the entire blockchain, the balance is updated when the blockchain update reaches a relevant transaction. If the client relies on a server (like Electrum) then it would be easy for the server to send the right data when you open the wallet.

Ohh alright that makes a lot of sense now. I would assume the server downloads the blockchain and notifies the client of the transaction etc?
newbie
Activity: 11
Merit: 0
Just out of curiosity, if you haven't logged on your BTC client 3 months in and received a payment a week after you stopped using the client.
Wouldn't it be possible that if we didnt download the full blockchain the client's wallet wouldnt be updated properly?

Sure. The wallet will be updated when it reaches that part of the blockchain. However that doesn't change that your balance is there, even if your wallet doesn't reflect it. You just need to give it time. You would still be able to check your balance with blockexplorer.com , for instance.

I think I mistook your post. I thought you meant that if the client were to download the latest N blocks, and lets say where N == 200. That the wallet.dat would update even if the transaction was 1000 blocks back. I know that the wallet balance should be a certain amount -- if you look at block explorer -- but if the client were never to download that part of the blockchain how would they be able to spend it?
newbie
Activity: 14
Merit: 0
Just out of curiosity, if you haven't logged on your BTC client 3 months in and received a payment a week after you stopped using the client.
Wouldn't it be possible that if we didnt download the full blockchain the client's wallet wouldnt be updated properly?

To calculate wallet balances, the client just needs to know of any transactions where one of its addresses is an in/out of a transaction. In a client that downloads the entire blockchain, the balance is updated when the blockchain update reaches a relevant transaction. If the client relies on a server (like Electrum) then it would be easy for the server to send the right data when you open the wallet.
donator
Activity: 980
Merit: 1000
Just out of curiosity, if you haven't logged on your BTC client 3 months in and received a payment a week after you stopped using the client.
Wouldn't it be possible that if we didnt download the full blockchain the client's wallet wouldnt be updated properly?

Sure. The wallet will be updated when it reaches that part of the blockchain. However that doesn't change that your balance is there, even if your wallet doesn't reflect it. You just need to give it time. You would still be able to check your balance with blockexplorer.com , for instance.
newbie
Activity: 11
Merit: 0
Just out of curiosity, if you haven't logged on your BTC client 3 months in and received a payment a week after you stopped using the client.
Wouldn't it be possible that if we didnt download the full blockchain the client's wallet wouldnt be updated properly?
donator
Activity: 980
Merit: 1000
In all fairness not all the blockchain is necessary to operate, just the latest N blocks would suffice (for N no smaller than 10). But that's the way the "official" client works right now.

Needless to say, this will need changing sometime soon. Especially after satoshidice started crapping the blockchain.

On the bright side, you have locally in your computer all balances and all transactions in bitcoin ever. That's cool if you know how to use it.
legendary
Activity: 1148
Merit: 1008
If you want to walk on water, get out of the boat
Downloading it now. Thanks in advance for removing the only bad part of Bitcoin.

No, that wasn't sarcasm.
Please note that having people running the full client with the full blockchain help making bitcoin safe.
newbie
Activity: 14
Merit: 0
Here is a relevant article on the Bitcoin wiki about clients that don't download the entire blockchain (i.e. thin clients).

https://en.bitcoin.it/wiki/Thin_Client_Security

There are added security risks because there is no way for a thin client to verify a transaction independently of contacting other nodes or servers. This makes thin clients susceptible to a greater variety of attacks, especially on untrusted networks.
member
Activity: 107
Merit: 10
Are you using it on Windows or Linux?
I'm trying to get it installed on Slacko 5.3.3 but am having trouble with the dependencies.

So far, I've used it on Windows and Mac. The Windows one is far better than its Mac counterpart. If you can't get it working, try to run the Windows version in Wine.

Why? I thought they had the same codebase?
full member
Activity: 166
Merit: 100
Downloading it now. Thanks in advance for removing the only bad part of Bitcoin.

No, that wasn't sarcasm.
newbie
Activity: 11
Merit: 0
Are you using it on Windows or Linux?
I'm trying to get it installed on Slacko 5.3.3 but am having trouble with the dependencies.

So far, I've used it on Windows and Mac. The Windows one is far better than its Mac counterpart. If you can't get it working, try to run the Windows version in Wine.
member
Activity: 107
Merit: 10
If you don't want to have to download the blockchain all the time (or at all), check out Electrum. I first tried it about a week ago and haven't used another wallet since!

Are you using it on Windows or Linux?
I'm trying to get it installed on Slacko 5.3.3 but am having trouble with the dependencies.
newbie
Activity: 11
Merit: 0
If you don't want to have to download the blockchain all the time (or at all), check out Electrum. I first tried it about a week ago and haven't used another wallet since!
newbie
Activity: 19
Merit: 0
Judging by the average weight of a single one of these days datablocks, I'm pretty sure that the "thin" wallets are the future of the Bitcoin economy.
Clearly I'm not saying the classic type wallets will totally disappear...
legendary
Activity: 2506
Merit: 1010
It takes hours to download the whole history! And as it gets closer to finished it starts taking longer.. why does it have to do the whole thing?

To verify that transactions have not been previously spent, Bitcoin uses a chain of data blocks.  This is called the blockchain.



 - http://en.bitcoin.it/wiki/Blockchain

So to verify a transaction, there needs to be a chain with integrity, all the way back to block #0.

The reason it starts to take longer with more recent blocks has to do with Bitcoin's growth as a payment network.  In the past few months, half or more of those transactions are wagers from a single online gambling service,  SatoshiDICE, incidentally

If you are finding this to be too slow, make sure you are using the most recent release of the software (v0.6.3) as that has performance improvements.  Also, if you are running on an encrypted filesystem, that will really bog things down.  At some point in the future, the Bitcoin.org client will be getting a couple of improvements -- LevelDB (instead of BDB) for storage and Ultraprune, which will help make it so less storage will be necessary.

Not all users need to run the full bitcoin.org client.  Some would be just fine running Simplified Payment Verification (SPV) clients.  Electrum is an example of a thin client that uses a server for transactions yet remains secure where the private key(s) are stored locally.  There is no blockchain download required.

legendary
Activity: 1148
Merit: 1008
If you want to walk on water, get out of the boat
Because Bitcoin rely on ppl having the client with the full blockchain with all the transactions
Pages:
Jump to: