# 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.