Jeff Garzik [ARCHIVE] on Nostr: π Original date posted:2012-06-15 π Original message:On Thu, Jun 14, 2012 at ...
π
Original date posted:2012-06-15
π Original message:On Thu, Jun 14, 2012 at 7:52 AM, Mike Hearn <mike at plan99.net> wrote:
>> filterinit(false positive rate, number of elements): initialize
>> filterload(data): input a serialized bloom filter table metadata and data.
>
> Why not combine these two?
This is a fair point that sipa raised.
Consensus concluded that 'filterload' includes all necessary metadata
required to initialize a bloom filter. That implies 'filterinit'
would only be needed for 'filteradd'. If we don't think 'filteradd'
has a compelling use case, filterinit + filteradd can be dropped.
>> 'filterload' and 'filteradd' enable special behavior changes for
>> 'mempool' and existing P2P commands, whereby only transactions
>> matching the bloom filter will be announced to the connection, and
>> only matching transactions will be sent inside serialized blocks.
>
> Need to specify the format of how these arrive. It means that when a
> new block is found instead of inv<->getdata<->block we'd see something
> like Β inv<->getdata<->merkleblock where a "merkleblock" structure is a
> header + list of transactions + list of merkle branches linking them
> to the root. I think CMerkleTx already knows how to serialize this,
> but it redundantly includes the block hash which would not be
> necessary for a merkleblock message.
Yes, the format is something that must be hashed out (no pun
intended). Need input from potential users about what information
they might need.
--
Jeff Garzik
exMULTI, Inc.
jgarzik at exmulti.com
π Original message:On Thu, Jun 14, 2012 at 7:52 AM, Mike Hearn <mike at plan99.net> wrote:
>> filterinit(false positive rate, number of elements): initialize
>> filterload(data): input a serialized bloom filter table metadata and data.
>
> Why not combine these two?
This is a fair point that sipa raised.
Consensus concluded that 'filterload' includes all necessary metadata
required to initialize a bloom filter. That implies 'filterinit'
would only be needed for 'filteradd'. If we don't think 'filteradd'
has a compelling use case, filterinit + filteradd can be dropped.
>> 'filterload' and 'filteradd' enable special behavior changes for
>> 'mempool' and existing P2P commands, whereby only transactions
>> matching the bloom filter will be announced to the connection, and
>> only matching transactions will be sent inside serialized blocks.
>
> Need to specify the format of how these arrive. It means that when a
> new block is found instead of inv<->getdata<->block we'd see something
> like Β inv<->getdata<->merkleblock where a "merkleblock" structure is a
> header + list of transactions + list of merkle branches linking them
> to the root. I think CMerkleTx already knows how to serialize this,
> but it redundantly includes the block hash which would not be
> necessary for a merkleblock message.
Yes, the format is something that must be hashed out (no pun
intended). Need input from potential users about what information
they might need.
--
Jeff Garzik
exMULTI, Inc.
jgarzik at exmulti.com