Inconsistent VIDA Results from Non-Deterministic Execution?

Non-deterministic execution is not allowed in a VIDA, randomness and other Non-deterministic practices make it impossible to create a consistent execution result across different VIDA Execution Instances.

If a VIDA wants to use randomness, it should derive randomness from on-chain data (e.g., block hashes or timestamps) to ensure reproducibility. Example:

python# Seed RNG with block hash of transaction  
import hashlib  
seed = hashlib.sha256(pwr_chain.get_block_header(tx.block_height)).digest()  
random.seed(seed)  

Or it should Use external randomness providers (e.g., Chainlink VRF) only if their outputs are recorded on PWR Chain first1.

Time-based logic can still be implemented because PWR Chain timestamps all transactions and that can be used to create time-based logic.

Last updated

Was this helpful?