[137608] in cryptography@c2.net mail archive

home help back first fref pref prev next nref lref last post

Re: Bitcoin P2P e-cash paper

daemon@ATHENA.MIT.EDU (Satoshi Nakamoto)
Fri Nov 14 17:29:13 2008

Date: Sat, 15 Nov 2008 02:55:35 +0800
From: "Satoshi Nakamoto" <satoshi@vistomail.com>
Reply-To: satoshi@vistomail.com
To: hal@finney.org
Cc: cryptography@metzdowd.com, jamesd@echeque.com

Hal Finney wrote:
> I think it is necessary that nodes keep a separate=20
> pending-transaction list associated with each candidate chain.=20
> ... One might also ask ... how many candidate chains must=20
> a given node keep track of at one time, on average?

Fortunately, it's only necessary to keep a pending-transaction pool for =
the current best branch.  When a new block arrives for the best branch, =
ConnectBlock removes the block's transactions from the pending-tx pool. =
 If a different branch becomes longer, it calls DisconnectBlock on the m=
ain branch down to the fork, returning the block transactions to the pen=
ding-tx pool, and calls ConnectBlock on the new branch, sopping back up =
any transactions that were in both branches.  It's expected that reorgs =
like this would be rare and shallow.

With this optimisation, candidate branches are not really any burden.  T=
hey just sit on the disk and don't require attention unless they ever be=
come the main chain.


> Or as James raised earlier, if the network broadcast=20
> is reliable but depends on a potentially slow flooding=20
> algorithm, how does that impact performance?

Broadcasts will probably be almost completely reliable.  TCP transmissio=
ns are rarely ever dropped these days, and the broadcast protocol has a =
retry mechanism to get the data from other nodes after a while.  If broa=
dcasts turn out to be slower in practice than expected, the target time =
between blocks may have to be increased to avoid wasting resources.  We =
want blocks to usually propagate in much less time than it takes to gene=
rate them, otherwise nodes would spend too much time working on obsolete=
 blocks.

I'm planning to run an automated test with computers randomly sending pa=
yments to each other and randomly dropping packets.


> 3. The bitcoin system turns out to be socially useful and valuable, so
> that node operators feel that they are making a beneficial contributio=
n
> to the world by their efforts (similar to the various "@Home" compute
> projects where people volunteer their compute resources for good cause=
s).
>=20
> In this case it seems to me that simple altruism can suffice to keep t=
he
> network running properly.

It's very attractive to the libertarian viewpoint if we can explain it p=
roperly.  I'm better with code than with words though.

Satoshi Nakamoto

---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@metzdowd.com

home help back first fref pref prev next nref lref last post