# On Determinism

Arguably, the most difficult part of blockchain programming is determinism - that is, ensuring that sources of indeterminism do not creep into the design of such systems.

See [this issue](https://github.com/tendermint/abci/issues/56) for more information on the potential sources of indeterminism.
