Are transactions only stored to RocksDB after confirmation? And unconfirmed tx are just passed around between neighbors and kept in memory?
In the current IRI (18.104.22.168), the transaction is stored in the DB when it is received and if and only if it is valid.
But don't misunderstand the term valid. It means that the transaction has:
- an acceptable timestamp
- an acceptable value field
- a valid signature
- a valid nonce (i.e. the Weight Magnitude must be at least the min weight magnitude, or in other words: check that the POW was done)
A valid, but unconfirmed transaction is stored in DB when it is received.