Chia proof of space plotting, proving, and verifying (wraps C++)
Project description
# Chia Proof of Space
A prototype of Chia’s proof of space, written in C++. Includes a plotter, prover, and verifier. Only runs on 64 bit architectures with AES-NI support. Read the [Proof of Space document](https://www.chia.net/assets/proof_of_space.pdf) to learn about what proof of space is and how it works.
## C++ Usage Instructions
### Compile
`bash mkdir -p build && cd build cmake ../ cmake --build . -- -j 6 `
### Run tests
`bash ./RunTests `
### CLI usage
`bash ./ProofOfSpace -k 25 -f "plot.dat" -m "0x1234" generate ./ProofOfSpace -f "plot.dat" prove <32 byte hex challenge> ./ProofOfSpace -k 25 verify <hex proof> <32 byte hex challenge> ./ProofOfSpace -f "plot.dat" check <iterations> `
### Benchmark
`bash time ./ProofOfSpace -k 25 generate `
### Hellman Attacks usage
There is an experimental implementation which implements some of the Hellman Attacks that can provide significant space savings for the final file.
`bash ./HellmanAttacks -k 18 -f "plot.dat" -m "0x1234" generate ./HellmanAttacks -f "plot.dat" check <iterations> `
## Python
Finally, python bindings are provided in the python-bindings directory.
### Install
`bash python3 -m venv .venv . .venv/bin/activate pip3 install . `
### Run python tests
Testings uses pytest. Type checking uses pyright, and linting uses flake8.
`bash py.test ./tests -s -v `
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for chiapos-0.12.6-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3800100e4e2ff8e39c99ebfd4606c2e83bfb25171e9513a6103e90bdbc631964 |
|
MD5 | 5ddb94703f0fea2420ab2b1310c2a0e1 |
|
BLAKE2b-256 | a9f5bcf3e558cc55b75b75b101f53dcff423d7d9bc8822398d98c8d9d5f69689 |
Hashes for chiapos-0.12.6-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b84cfdc2d23c6420fc8246f7f069ad994b02974f3228cdff80cb652cf35b89f |
|
MD5 | bc33ae0cf5553dfb6210192e9b4ff970 |
|
BLAKE2b-256 | 5134f3087174c758b3cfea438556c2c5e543db0351554cd9ca95d6e1c0bf83cf |
Hashes for chiapos-0.12.6-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f21b9d20d419262a725ff21f85b76b72985f903c4328b550d6550971af2b7710 |
|
MD5 | a9efad6cd1662d213f5f7cc6585b40fd |
|
BLAKE2b-256 | 102af22650e280dc60789f102b7c3e4e5d54a5812d73cd8a92d1dcca51566ade |
Hashes for chiapos-0.12.6-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a989507a701971ed00ec2a2beefc85a7be3d6d0e95556381add853ef2239b62 |
|
MD5 | e09f040955b6ff11c80578f792bad682 |
|
BLAKE2b-256 | 3a3afc4f70e3b3828a1ab8684dace9b72e6753d24e9263efaa5bb2cc9582980a |
Hashes for chiapos-0.12.6-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aad25d4d31619ecf1fbd2adb49b19d6f5a8539280f8f88ce972b83332cf6befb |
|
MD5 | aee3abf6d0eefd6d3a6aaa5ea2027bf0 |
|
BLAKE2b-256 | c532ef707b3431e9b6cc69bf29f9267950052f33cc8dc034c5c298e791327e41 |
Hashes for chiapos-0.12.6-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6ec66f0c427bb86f478acb6a60dd35b035d4cd0a316970b748dec5440b20968 |
|
MD5 | 31ec2e120edf5e22e8cf9a4188a10060 |
|
BLAKE2b-256 | a5b759d2b6e3d1723559894f8ef2b4fb17cfbc67e086d304a63d87a02b5004a3 |