What are the trade-offs between posting transaction data and state diffs?