c8efdc7431
Added `latest_vdf_outputs` in `state` initialised to an array of `ZERO_HASH` of length `LATEST_RANDAO_MIXES_LENGTH // EPOCH_LENGTH`. (There's one VDF output per epoch. The VDF input is the RANDAO mix at the epoch boundary.) Further changes to activate VDFs (in a future phase): * Add a new beacon "VDF output and proof" transaction, e.g. with `MAX_VDF_OUTPUT_AND_PROOF := 1`. * Adjust the `MAX_SEED_LOOKAHEAD` constant, e.g. to `2**4 * EPOCH_LENGTH`. (The `2**4` parameter is essentially `A_max`.) * Add a `process_vdf_output_and_proof` helper function in the per-block processing: * Verify the VDF input hasn't already been processed (check the corresponding `state.latest_vdf_outputs` entry is not `ZERO_HASH`.) * Verify the proof is correct, i.e. matches the VDF input and output * Save the VDF output to `state.latest_vdf_outputs` * In the per-epoch processing set the corresponding entry in `state.latest_vdf_outputs` to `ZERO_HASH`. * Use a VDF output for the shuffling seed. |
||
---|---|---|
.. | ||
0_beacon-chain.md | ||
1_shard-data-chains.md |