<aside> 💡 See https://github.com/subspace/protocol-specs/blob/main/docs/consensus/proof_of_time.md for the latest version
</aside>
Timekeeper
Timekeepers are the nodes that run the evaluation of the Proof-of-Time chain and gossip their outputs to other nodes. Timekeepers are expected to dedicate a full CPU core to Proof-of-Time.
Node
A Node or Consensus Node (unless otherwise noted as Timekeeper) is a PoT client node that does not run the PoT evaluation component. It only consumes PoT messages from Timekeepers or the blockchain.
We construct a PoT function by iterating AES-128 a large number of times. The prover evaluation latency for the fastest available hardware platform is calculated as the number of iterations times the latency for a single iteration of AES-128 on that hardware platform. We may then tune the number of iterations based on the lowest-latency hardware platform at the time to guarantee the minimum wall-clock time required for anyone to evaluate the PoT.
BLOCK_AUTHORING_DELAY
: number of slots between when the new global randomness value is revealed at slot t
and when the farmer can claim block with that randomness at slot t + BLOCK_AUTHORING_DELAY
, currently set to the maximum time needed to produce a PoS solution (4 slots, ~4 seconds)POT_ENTROPY_INJECTION_INTERVAL
: number of blocks after which the proof-of-time chain input is updated with consensus chain entropy, currently 50 blocks, roughly equal to ~5 minutes at the expected block production rate
POT_ENTROPY_INJECTION_LOOKBACK_DEPTH
: depth at which the injected block is taken, measured in multiples of POT_ENTROPY_INJECTION_INTERVAL
s, currently 2
(equal to 100 blocks, the archiving depth)POT_ENTROPY_INJECTION_DELAY
: number of slots between when the injection condition is met at slot t
and when the injection into the PoT chain happens at slot t + POT_ENTROPY_INJECTION_DELAY
, currently equal to 15 slotsNUM_CHECKPOINTS
: number of checkpoint values for the proof-of-time verification published in 1 slot, currently 8EXPECTED_POT_VERIFICATION_SPEEDUP
: expected speed-up of PoT verification to evaluation, currently 7. Used by nodes to decide whether to attempt to verify or evaluate locally under a potential DoS attack.pot_slot_iterations
: number of iterations of PoT function required per single time slot. Should be divisible by 2 * NUM_CHECKPOINTS