Looking at the data for getblock, we can store that data in our database and update balances. eg:
For asset transfers
vout n=0 : amount 30 of an asset with type transfer, we can add that to an address
vout n=1 (or next number with different address) : amount of 30 (from above n=0) deduct from the address listed there
For native currency transfers, not quite sure how best to calculate it, as the tx fee varies.
Does anyone have advice on how to calculate from getblock and transaction data?