Closed lrettig closed 10 months ago
One of the problems with the eth design is that receipts are part of canonical state. e.g. I think full nodes are supposed to verify them in order to verify the global state as the tx root is part of the block state, and so they were abused as cheap storage of historical data / state for dapps. Something we need to keep in mind.
I think is that where we left things (see other smip draft) was here:
I think this covers the core.
we should start from scratch with all things related to transactions and receipts
Overview
Transaction receipts are an essential part of any smart contract platform. They enable many light client use cases. As discussed in #13, they're the only way a user knows that their transaction has been executed, and its results (without rerunning a transaction through a full node). They're how a user keeps track of "internal" transactions affecting their balance, both in the native coin and in tokens. They also allow smart contracts to pass success, failure, or other events up to the application layer.
Background reading:
Goals and motivation
High-level design
Proposed implementation
Implementation plan
Questions
Dependencies and interactions
Stakeholders and reviewers
Testing and performance