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.5-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdf19dd0fc40125baf83b559511cad3afabc69418c8bc2c11a2484b915951977 |
|
MD5 | 89b938113b8e831bff9ff18599613ec5 |
|
BLAKE2b-256 | c7fdec17bc727dbc71ada6f7bd9371127920256c0e582daaf6f01dd30233768a |
Hashes for chiapos-0.12.5-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b8b432be6b5676c8e48246e19e5c32b8337d0b3015a0a116f63dcafd346e808 |
|
MD5 | bae14e11cdda6e37ceefa2c33b8ca631 |
|
BLAKE2b-256 | f1bad1321e61e9754230bf3fe50a32f770c9a1107a68878dfa15b050b5778072 |
Hashes for chiapos-0.12.5-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e22116a989a65df112c037f4cdeb76451da7ff5dd6b7763b86c902c1ca8f3c3 |
|
MD5 | 73c2782947d81f3e99b9f594923f408f |
|
BLAKE2b-256 | a3443e9f2259676c011aad6649668389e9892620692167fe4b311138ad6e4455 |
Hashes for chiapos-0.12.5-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de2c6e49e8f62925e240fbe839ae762ec8cc9ba92fe288b37b0f66083afa7430 |
|
MD5 | b4ae2a848717afa5ad27dd64190e6713 |
|
BLAKE2b-256 | 97923dcd62a88131185b721817d6f4a1efc972ee0eb0fc91d563f57447b31dd2 |