Good point. One fix is to allow account balances to dip into negative, keeping track of which accounts currently have negative balances. And when finished processing, accept the block only if no such account balances exist.
This method is applicable only to payments. It won't work on advanced features like asset exchange.
Nah, same idea, just treat every asset balance like a seperate account balance for that account.
You still have to have some canonical order for market orders.
True, maybe a little trickier but I don't see it being impossible. Perhaps something like your chaining idea could be involved or the block creator could simply include a numbering for all trades on same asset in same block. And again, right now I'm focused on version one, assets probably won't be till version 3, and parallelizing their processing until later still.. or perhaps parallelize first, then assets. Either way, I'm still in the early stages of the initial product, eventual parallelization was just meant as one more reason for choosing Rust.
CfB based on the previous conv, sounds like you are too busy for something like this. Bcdev,would you be interested?