Wholesum network is a p2p verifiable computing network tailored for ETH L2 sequencer proving
. It builds on top of Risc0, Libp2p, and decentralized storage options like Swarm and Filecoin to facilitate verifiable computing at scale. The design of the network follows a p2p parallel proving scheme where Risc0 jobs are passed around, proved, and finally combined into a final proof ready for L1 verification.
You would need to get certain environments ready for the client to function properly.
Docker runtime is needed as it is used to run Risc0
containers. This awesome guide from DigitalOcean is helpful in this regard.
-
Lighthouse:
You would need a subscription plan from Lighthouse to run the client. Please obtain an api key and specify it with-d
flag when running the client. -
Swarmy: Still under development.
To run a client agent, you would first need to fork the following libraries and put them in the parent("..") directory of the client:
You would need a job file to engage with the network. Here's a sample job file for the SHA example:
# schema of a tyipcal job title = "yet another job" timeout = 30 # matching criteria [criteria] # min memory capacity(in gb) memory_capacity = 4 # benchmark score/duration(secs) benchmark_duration_secs = 10000 # benchmark expiry from now(secs) benchmark_expiry_secs = 864000 [compute] # docker image run by the server docker_image = "rezahsnz/r0-sha:1.0.1" # command to run, will run as: "sh -c command" command = "/home/prince/sha 1>/home/prince/residue/stdout 2>/home/prince/residue/stderr" [verification] # Risc0 image_id of the "sha example" image_id = "BgXFTkDBZcx8VYUJJvRcU1jQDsW9SZddNgFQEdSUwGXihuhhd" # minimum number of independent successful verifications min_required = 1 [harvest] # minimum number of verified traces to make the whole job verified and done min_verified_traces = 1
Save the above content to a file named simple_job.toml
, and feed it to the CLI with the -j
flag.
Wholesum is a P2P verifiable computing marketplace and this program is a CLI for client nodes. Usage: client [OPTIONS] Options: -d, --dstorage-key-file -j, --job --dev -k, --key-file -h, --help Print help -V, --version Print version