Requirements for a Tendermint client
An evil proposer can drop valid transactions (https://github.com/tendermint/tendermint/issues/3322). To ensure tx A will be committed, the client needs to a) send it to multiple nodes b) subscribe for its result https://tendermint.com/docs/app-dev/subscribing-to-events-via-websocket.html or query the result later using
/txAPI endpoint (requires the tx indexer enabled) https://tendermint.com/rpc/#tx.
Multiple nodes above requirement comes from a simple fact that an evil node can drop your tx.
TODO: verifying a proof, etc.