Why isn’t there an endpoint that can find the transaction only through transaction hash?
We view the Data API
as a “data extraction framework” instead of a “data indexing framework”. In our analysis, we found requiring methods like this (which we generically categorize as “Explorer Methods”) often require a more complex implementation to service and can require more storage/compute on each request. We believe methods like this should be built on top of Data API
implementations as a generic service instead of embedding in an implementation itself (in a Rosetta Gateway or generic indexing package). If your implementation already can serve “Explorer-like Methods”, we consider it to be superseding the expectations of Rosetta.
On another note, we also found that just including a /transaction
endpoint could break the idempotency guarantees of the Data API
. In many cases, transaction parsing depends on some block context (ex: who should be paid a fee). I wrote a little about this here:
I also wrote about this very briefly on the website (links and excerpt below):
Fetching a transaction by hash is considered an Explorer Method (which is classified under the Future Work section).
Got it, thanks.