Prover selection
Novanet supports scriptable prover selection with Rhai. Each orchestrator keeps track of the performance of the provers that it knows about and each prover profile contains information such as how many shards they have proven and how many times they have disconnected while proving. When an orchestrator receives a request from client to prove a job, it fetches these prover profiles and calls a prover selection script which is fed these profiles and the number of provers the selector must choose from the set of available provers. The current prover selection strategy for NovaNet orchestrators is to ignore disconnected provers and sort the rest of provers in increasing order by their job queue size:
The selection can be fallible, meaning if there isn't enough suitable provers to complete the job, the script can return ()
to indicate that it failed. This will cause the job to be rejected and either some other orchestrator will pick up the job or the client has to try with a lower shard count.
Currently, the prover file exports the following fields:
prover
- on-chain address of the provernum_shards_proven
- how many shards has the prover provennum_disconnections
- how many times has the prover disconnected while provingjob_queue_size
- how many jobs does the prover have in queueconnected
- is the prover currently connected to the orchestrator
Last updated