You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
1.0 KiB

6 years ago
6 years ago
  1. Transactional Semantics
  2. =======================
  3. In `Using
  4. Tendermint <./using-tendermint.html#broadcast-api>`__ we
  5. discussed different API endpoints for sending transactions and
  6. differences between them.
  7. What we have not yet covered is transactional semantics.
  8. When you send a transaction using one of the available methods, it
  9. first goes to the mempool. Currently, it does not provide strong
  10. guarantees like "if the transaction were accepted, it would be
  11. eventually included in a block (given CheckTx passes)."
  12. For instance a tx could enter the mempool, but before it can be sent
  13. to peers the node crashes.
  14. We are planning to provide such guarantees by using a WAL and
  15. replaying transactions (See
  16. `GH#248 <https://github.com/tendermint/tendermint/issues/248>`__), but
  17. it's non-trivial to do this all efficiently.
  18. The temporary solution is for clients to monitor the node and resubmit
  19. transaction(s) or/and send them to more nodes at once, so the
  20. probability of all of them crashing at the same time and losing the
  21. msg decreases substantially.