Bitcoin Forum
September 23, 2024, 07:57:58 PM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Bitcoin / Bitcoin Discussion / Re: Win 10 BTC: Guess the price on February 1st (no entry fee) on: January 30, 2013, 02:08:55 AM
$23.47

edit: oops, I'm too late. Oh well, I'll leave it here for fun anyway.
2  Bitcoin / Development & Technical Discussion / Re: What does my client know and how can it verify a transaction input? on: January 28, 2013, 03:53:22 PM
Thank you for the explanations.

Every node using the reference client is a "full node" with a full blockchain history.  But, it turns out that you only need a subset of the blockchain for most things, including transaction verification.  You can discard transactions after they are spent and just keep the unspent ones*.  The set of unspent outputs is relative small, like a couple hundred MB, rather than several GB for the full block history.

Right now, the protocol doesn't allow requesting or sending partial blocks, but they are working on it.  That will allow even lighter clients.

* Well, you need rollback history too.

If you had such a lighter client that could request partial blocks, it seems that it would be able to verify the existence of a transaction input (e.g., by checking the Merkle branch and making sure the hashes work) but is there any way that it could verify that the input hadn't already been spent (i.e., in some block that the client doesn't have a copy of)?
3  Bitcoin / Development & Technical Discussion / What does my client know and how can it verify a transaction input? on: January 28, 2013, 07:56:55 AM
[moved from Technical Support]

Hi,

I’m new to Bitcoin, find it fascinating, and have been trying to understand how all the pieces work. Here are a few questions I’ve been wrestling with...

When I started the Bitcoin client for the first time it spent several hours downloading (I think) all the blocks. What exactly was it downloading? Was it the full data for every block with every committed transaction ever? Or was it something smaller, like maybe just a few important fields from the block? And related to this, how much of what my client downloaded did it retain? (E.g., does it download a lot of detail, verify it, and then keep just some hash of this, like say the Merkle tree?)

On a related note, how does my client verify that a transaction is good (if it’s even possible for it do this)? I know there are a lot of pieces to the verification but the particular point I’m wondering about is how it confirms that a particular transaction input is in fact the output of an earlier transaction. It seems to do this my client would either need to have (1) the full contents of the input’s block; or (2) the full Merkle tree of the input’s block; or (3) the Merkle root of the input’s block + the Merkle branch of the input transaction. (1) seems unlikely since that’s a lot of data (I believe this is what a “full node” has). (3) doesn’t seem possible because AFAICT the protocol for a transaction doesn’t allow for including a Merkle branch. So I guess then it’s either (2) or something else entirely.

Thanks for your help!
4  Other / Beginners & Help / Re: Newbie restrictions on: January 28, 2013, 06:37:32 AM
Very sensible. Does the Technical Support Forum get trolled a lot? If not it would be handy to have it open.

+1, I came here solely to ask technical questions
5  Other / Beginners & Help / Re: Reusing bitcoin addresses? on: January 28, 2013, 12:37:50 AM
Yeah, this feels like paranoia for the normal use case. If you're just fiddling around with bitcoins (and not, I dunno, laundering drug money) is it really worth all the effort and maintenance to have a new address for every transaction?
6  Other / Beginners & Help / Re: Introduce yourself :) on: January 28, 2013, 12:29:41 AM
new to bitcoin, think it's a captivating idea though pretty skeptical about it's possibilities for large-scale adoption. still, fun to learn about so i'll be around!
7  Other / Beginners & Help / Re: Whitelist Requests (Want out of here?) on: January 27, 2013, 08:33:52 PM
I'd like to be whitelisted, at least to post to the technical discussion forum. I've composed a fairly detailed question which I will paste below, but I think it's competent enough to benefit the general community if posted there. Thanks.

*** candidate post ***

Subject: What does my client know and how can it verify a transaction input?

Hi,

I’m new to Bitcoin, find it fascinating, and have been trying to understand how all the pieces work. Here are a few questions I’ve been wrestling with...

When I started the Bitcoin client for the first time it spent several hours downloading (I think) all the blocks. What exactly was it downloading? Was it the full data for every block with every committed transaction ever? Or was it something smaller, like maybe just a few important fields from the block? And related to this, how much of what my client downloaded did it retain? (E.g., does it download a lot of detail, verify it, and then keep just some hash of this, like say the Merkle tree?)

On a related note, how does my client verify that a transaction is good (if it’s even possible for it do this)? I know there are a lot of pieces to the verification but the particular point I’m wondering about is how it confirms that a particular transaction input is in fact the output of an earlier transaction. It seems to do this my client would either need to have (1) the full contents of the input’s block; or (2) the full Merkle tree of the input’s block; or (3) the Merkle root of the input’s block + the Merkle branch of the input transaction. (1) seems unlikely since that’s a lot of data (I believe this is what a “full node” has). (3) doesn’t seem possible because AFAICT the protocol for a transaction doesn’t allow for including a Merkle branch. So I guess then it’s either (2) or something else entirely.

Thanks for your help!
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!