1

What would happen if someone ran a nondeterministic smart contract on the blockchain, for example, by using a oracle to get the current time and basing the output on that?

Would the block just be thrown out and another block without the contract be accepted instead?

anonymous
  • 13
  • 2
  • Related: https://ethereum.stackexchange.com/questions/301/why-cant-contracts-make-api-calls – eth Jan 21 '18 at 12:36

1 Answers1

2

You can't run a non-deterministic transaction, all transactions are deterministic.

Oracle data is sent to the network in a transaction. This transaction is accepted into a block, and all nodes validating that block will be seeing the same transaction containing the same data from the oracle.

Edmund Edgar
  • 16,897
  • 1
  • 29
  • 58