Do you mean getdata? Here is the reason for the 6 new messages:
getseginv,seginv - These are for learning about what segments of a block a node
has. Else you could remove these messages and simply have nodes advertise
blocks via inventory messages. In this case nodes would have to wait until they
had fully received a block before relaying anything. No longer is there a
benefit with nodes being able to relay segments of blocks before they have
received the entire block.
gettreelevel,treelevel - These are to received a level of the merle tree.
Instead you might use get data but gettreelevel is more compact than get data
and is clearly differentiates itself as part of the new protocol. Perhaps these
messages could include the block headers alongside the hashes and you could
request many at once like with the getheaders message? If you skip these
messages, then you could verify the transactions at the end but there would be
problems when peers give bad segments where data would need to be downloaded
again.
getsegment,segment - These are clearly important to request and receive
segments for the blocks. These allows for nodes to download arbitrary segments
of blocks. The optimum number of segments could be calculated by node software
using measurements of download speeds and latency times, the number of
connections and how likely redundancy is to occur. If a node is up-to-date and
likely has many of the transactions in blocks, it can start asking for the
deepest merle level (tx hashes) and ask nodes for segments, avoiding
transactions it already has.
I'll get around to doing measurements myself sometime to estimate the benefit
of this proposal. It will certainly be beneficial when block sizes reach some
size but not much is really known except what can be assumed/guessed.
I should also mention the bitcointalk topic here:
https://bitcointalk.org/index.php?topic=103295.0
On 10 Sep 2012, at 19:59, "Luke-Jr" <l...@dashjr.org> wrote:
>
> Most of the problem with block propagation lies in implementation, not
> protocol... Distributing missing transaction on an as-needed basis is a
> possible improvement at the protocol level, but there hasn't (AFAIK) been any
> research into whether the little benefit outweighs the cost yet. In any case,
> I don't see why 6 new messages are needed instead of simply adding a single
> new type to getinv?
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development