Raw dump of the notes I got from Satoshi with the headersonly patch (which is in the git tree as headersonly branch):
@s{quotedtext}
@s{quotedtext}
My plan was to dive into what Satoshi wrote already, understand it, test it in fClient=true mode (sending/receiving/relaying transactions on testnet), fix whatever is broken/unimplemented.
And then write code to switch from fClient=true to fClient=false, downloading full blocks, etc. And then writing code that does the toggle when generation is turned on for the first time or when getwork is called (I think those are the only times you need full blocks).
I haven't looked at or thought about the relaying code. Simply relaying all transactions (without checking to see if they're valid) if fClient=true should work nicely.