Mike Hearn [ARCHIVE] on Nostr: 📅 Original date posted:2011-07-07 🗒️ Summary of this message: The client ...
📅 Original date posted:2011-07-07
🗒️ Summary of this message: The client wants to calculate the balance of specific addresses without requiring the entire blockchain, and introducing new commands is acceptable.
📝 Original message:> What I want to be able to do though is calculate a balance for an aribtrary
> address. Not every address; just the particular ones that the client is
> interested in. It's complete overkill to require the whole block chain just
> to calculate the balance of a few addresses.
But what is that for? You said it's for a lightweight client to do
that when it receives a transaction, to verify that all the
dependencies are in blocks recursively. But why?
> Not entirely. If I ask for "the block that contains transaction with hash
> 12345678abcd..." then when I get that full block, I can verify the merkle tree
> myself.
Well, it's more efficient to just verify the merkle branch. But yes.
> I'm not entirely sure I see how a filter helps. If I've been offline for ten
> minutes then I need all the transactions pending in the last ten minutes. No
> amount of filtering makes that list any smaller.
Why do you need all of them? You just care about the ones sending
coins to you, surely?
> That would be fine. My reason for suggesting using getblocks was that it
> didn't introduce a new command.
IMHO it's fine to introduce new commands. They'll just be ignored by
old clients in any event.
🗒️ Summary of this message: The client wants to calculate the balance of specific addresses without requiring the entire blockchain, and introducing new commands is acceptable.
📝 Original message:> What I want to be able to do though is calculate a balance for an aribtrary
> address. Not every address; just the particular ones that the client is
> interested in. It's complete overkill to require the whole block chain just
> to calculate the balance of a few addresses.
But what is that for? You said it's for a lightweight client to do
that when it receives a transaction, to verify that all the
dependencies are in blocks recursively. But why?
> Not entirely. If I ask for "the block that contains transaction with hash
> 12345678abcd..." then when I get that full block, I can verify the merkle tree
> myself.
Well, it's more efficient to just verify the merkle branch. But yes.
> I'm not entirely sure I see how a filter helps. If I've been offline for ten
> minutes then I need all the transactions pending in the last ten minutes. No
> amount of filtering makes that list any smaller.
Why do you need all of them? You just care about the ones sending
coins to you, surely?
> That would be fine. My reason for suggesting using getblocks was that it
> didn't introduce a new command.
IMHO it's fine to introduce new commands. They'll just be ignored by
old clients in any event.