Context
Currently, node cannot operate after fast-sync because it cannot validate finalizer commit inputs as these checks perform GetTransaction that leads to reading block from the disk; but node doesn't have such a block when running in fast-sync mode. Finally, node rejects finalizer commits and ban its peers. On the other hand, snapshot transfers UTXO set which has all needed transactions but there is a lack of transaction type in UTXO representation that prevents from using it.
This PR fixes that by:
adding transaction type to the UTXO set (via Coin and snapshot classes).
performing UTXO lookup prior to GetTransaction() in esperanza::ContextualCheck*;
Context Currently, node cannot operate after fast-sync because it cannot validate finalizer commit inputs as these checks perform
GetTransaction
that leads to reading block from the disk; but node doesn't have such a block when running in fast-sync mode. Finally, node rejects finalizer commits and ban its peers. On the other hand, snapshot transfers UTXO set which has all needed transactions but there is a lack of transaction type in UTXO representation that prevents from using it.This PR fixes that by:
GetTransaction()
inesperanza::ContextualCheck*
;Fixes #547.