VDF
A guide to running a VDF Server.
What is VDF?
The VDF (Verifiable Delay Function) controls the speed of mining with new mining "seeds" available at roughly 1 second intervals. To keep up with the network your CPU must be able to maintain this 1 second cadence while calculating the VDF. For that the CPU needs to support hardware SHA2 acceleration. Additional cores will not improve VDF performance as VDF hash calculations are sequential and therefore limited to a single thread on a single core.
The node will report its VDF performance on startup, warning you if it is too low. You can also run ./bin/benchmark-vdf
to print your system's VDF performance.
VDF Difficulty
The network VDF difficulty adjusts daily to target an average VDF time of 1 second across all mined blocks. For ease of comparison the VDF performance printed on startup and from the ./bin/benchmark-vdf
assumes a fixed difficulty of 600,000
. You can expect your actual VDF performance when connected to the network to be lower than the benchmark.
For context the current VDF difficulty is 685,976
(May 2024, block height 1417119). So with a benchmark VDF of 1 second you can expect a network performance of 1.14 seconds (1 second * (685,976 / 600,000)
).
VDF Servers
Since VDF is so important to mining performance you may have another machine compute VDF for you. For instance, you may set up a dedicated VDF node broadcasting VDF outputs to all your mining nodes.
Running a node fetching VDF states from a peer (aka a "VDF client"):
./bin/start vdf_server_trusted_peer IP-ADDRESS ...
Running a node pushing its VDF outputs to other peers (aka a "VDF server"):
./bin/start vdf_client_peer IP-ADDRESS-1 vdf_client_peer IP-ADDRESS-2 ...
Make sure to specify [IP-ADDRESS]:[PORT] if your node is configured to listen on a TCP port other than 1984.
In all cases IP-ADDRESS
can also be a resolvable domain name.
For an example invocation see Mining Examples.
Do not connect to an external peer you do not trust.
Last updated
Was this helpful?