Blockchain Transaction Lifecycle Security Standard Audit Framework
previous: Index
Transactions' Finality | Contents | next: References
Index Failed Transactions
Statement of Requirement
Indexers SHOULD
record relevant transactions that were deployed but not incorporated in
a block, along with useful metadata.
See it
in the specification
Applicability
Purpose
Help understand why transactions failed
Audit Procedure
- Verify that logged deployment attempts that were not accepted into
the blockchain are indexed
- Reperformance: Create an invalid transaction, or one with too little
Gas to be accepted, and verify that it is indexed
Success Criteria
Transactions that were deployed but not incorporated in a block are
indexed.
Best Practice
Best practice is to provide information that explains, or suggests,
why the transaction was not accepted. This can include
- Noting the transaction was not valid
- Showing the Gas or Fees were lower than transactions accepted at the
time, taking into account the relative sizes of transactions
- Showing that preference for transactions vulnerable to timing
attacks or other attacks crowded out the transaction
Failure Criteria
Transactions are only recorded if they are successfully deployed
Justifiable Exceptions
This is a useful feature. However, its absence is justifiable on the
grounds of keeping code or interfaces simple. Justification for not
meeting this requirement does not need to be explicit.
Key Evidence
previous: Index
Transactions' Finality | Contents | next: References