I'm reading through each blk*.dat file in order.
As I'm reading through each transaction, is it possible that I will read a transaction that is referencing an output (as an input) that I haven't encountered yet?
|--------| | header | |--------| | tx1 | | tx2 | <- This transaction is referencing inputs I haven't encountered... | tx3 | | tx4 | <- ...because the outputs are created in this transaction. | tx5 | |--------|
Furthermore, if this is true, it possible that the required inputs will be found in a transaction in a future block (and not just in a transaction further down the current block)?