Subject: [Bitcoin-development] Bitcoin components.

From: Alan Grimes <[email-masked]>
Date: Thu, 28 Jul 2011 01:25:46 -0400

Lets look at:

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

This is OK as a super high-level overview, but it leaves a great deal to 
be explained.

First what is the status of this? Is it fully implemented? A working 
proposal? An approved proposal? etc...

I am working on the peer and the wallet boxes in this diagram. I want to 
implement my own version because the existing code is completely 
untrustworthy, it is totally slap-dash and almost completely uncommented.

My questions related to the peer are these:

It is taken for granted that the peer will have a listening component 
that accepts connections from other peers.

Does it also have an active component? If so, what operations does it 
perform autonomously?

/me looks at wallet.h and GAH!! Someone reversed the concept of debit 
and credit! =( (GetDebit(), GetCredit())

Interesting... What is the exact relationship between the wallet and the 
miner? (The miner is irrelevant to me until I have a wallet I can trust 
enough to experiment with...)

After reading the dox on libdb, I'm leaning towards an inetd 
implementation. That is, inetd handles all the dirty work with regards 
to connections, and spawns off a server for each client. This minimizes 
the quantity of code at the cost of a wee bit of overhead (maybe 10k per 
process). Basically, the penguin acts like the KoAC in Katamari Damacy, 
if you don't do it in the regal old-fashioned way, he rains down 
thunderbolts on you and you get to write 3 or 4 times as much code.

The upside is that each peer is served by a single completely isolated 
process with extremely simple and highly auditable code.

A general problem that I haven't seen any documentation on yet is that 
most of today's operating systems are properly multi-user systems. 
Naturally, each user would keep his wallet in an encrypted store in his 
home directory. Are there any standards yet for users to set up their 
personal wallet daemon that connects to a system-wide peer node and 
provides an interface for only their own GUI?

-- 
E T F
N H E
D E D

Powers are not rights.