2 ms·
> I was confused about how it does sum up all transactions to get the balance so quickly, like we in accounting usually do For what it's worth, in a system des
by samhw 5y ago
> I was confused about how it does sum up all transactions to get the balance so quickly, like we in accounting usually do
For what it's worth, in a system design context, this is called event sourcing (in more general terms it's just a fold, though the idea of event sourcing doesn't preclude caching). I worked at a bank for a few years and this was how we calculated balances too.
> And instead it does this:
I don't quite follow you here. It does something distinct from either a fold or caching the current total? (Do you mean that each transaction encodes the resultant balance?)
- wruza 5y agoNot the entire balance, because a single wallet may have many "inputs", but that's just an implementation detail, as far as I understand it. https://en.bitcoin.it/wiki/Transaction https://en.bitcoin.it/wiki/Transaction If the input is worth 50 BTC but you only want to send 25 BTC, Bitcoin will create two outputs worth 25 BTC: one to the destination, and one back to you (known as "change", though you send it to yourself). Any input bitcoins not redeemed in an output is considered a transaction fee; whoever generates the block can claim it by inserting it into the coinbase transaction of that block. I.e. any "input" is spent completely by a transaction and this makes it irrelevant to future calculations. See also: https://bitcoin.stackexchange.com/questions/13069/how-does-the-network-know-my-current-balance https://bitcoin.stackexchange.com/questions/13069/how-does-t...