docs/src/proposals/rip-curl.md
Solana's initial RPC implementation was created for the purpose of allowing users to confirm transactions that had just recently been sent to the cluster. It was designed with memory usage in mind such that any validator should be able to support the API without concern of DoS attacks.
Later down the line, it became desirable to use that same API to support the Solana explorer. The original design only supported minutes of history, so we changed it to instead store transaction statuses in a local RocksDB instance and offer days of history. We then extended that to 6 months via BigTable.
With each modification, the API became more suitable for applications serving static content and less appealing for transaction processing. The clients poll for transaction status instead of being notified, giving the false impression of higher confirmation times. Furthermore, what clients can poll for is limited, preventing them from making reasonable real-time decisions, such as recognizing a transaction is confirmed as soon as particular, known validators vote on it.
A web-friendly, transaction-oriented, streaming API built around the validator's ReplayStage.
Improved client experience:
Easier for validators to support:
How it works:
CommitmentLevel::Max),
the signature is unregistered and the server closes the upstream channel.