  Smart contract transactions demonstrate issues of performance and correctness
that application programmers must work around. Although the blockchain
consensus mechanism approaches ACID compliance, use cases that rely on frequent
state changes are impractical due to the block publishing interval of $O(10^1)$
seconds. The effective isolation level is Read-Committed, only revealing state
transitions at the end of the block interval. Values read may be stale and not
match program order, causing many transactions to fail when a block is
committed. This paper perceives the blockchain as a transactional data
structure, using this analogy in the development of a new algorithm,
Hash-Mark-Set (HMS), that improves transaction throughput by providing a
Read-Uncommitted view of state variables. HMS creates a directed acyclic graph
(DAG) from the pending transaction pool. The transaction order derived from the
DAG is used to provide a Read-Uncommitted view of the data for new
transactions, which enter the DAG as they are received. An implementation of
HMS is provided, interoperable with Ethereum and ready for use in smart
contracts. Over a wide range of transaction mixes, HMS is demonstrated to
improve throughput. A side product of the implementation is a new technique,
Runtime Argument Augmentation (RAA), that allows smart contracts to communicate
with external data services before submitting a transaction. RAA has use cases
beyond HMS and can serve as a lightweight replacement for blockchain oracles.
