Chia proof of space plotting, proving, and verifying (wraps C++)
Project description
![Build](https://github.com/Chia-Network/chiapos/workflows/Build/badge.svg) # 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 Distribution
Built Distributions
Hashes for chiapos-0.12.12-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71457f22ab569702ce82cbca774137b99445698478f78e80d1d6f1794f6c93bd |
|
MD5 | a9f10522655718b772a27e182c029f32 |
|
BLAKE2b-256 | ad7371b8a9eec566a3926044ec0da01762903d652e16a0ea298ac572592c0f63 |
Hashes for chiapos-0.12.12-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd9445cb3341be4815c51199f40e21952511a090d5208922c5c518871b9d8006 |
|
MD5 | 18bf6335ea692f5ee34324342a6e435d |
|
BLAKE2b-256 | 647d5a4da22dccbe9fa7a9fcca5308b12e759a73bd31da9b9305cb50d0a47512 |
Hashes for chiapos-0.12.12-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61cf4c9950b66a456a747b5c74a81dc6e3eac2b13d03652f5c1c35295069dfbf |
|
MD5 | c8c08a4a8e4e610c4f942b875c0b4670 |
|
BLAKE2b-256 | 682b9021584566b40c665a2392d54d7515b8a7045d10f8931bca021dd95100fa |
Hashes for chiapos-0.12.12-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96199c8cfbdc4c69ccdeb6a2755349a8acf473938d541ec4ef3c01405872e3f8 |
|
MD5 | 9d81ff589ee94110a179d2181a38da2e |
|
BLAKE2b-256 | 4c5b6986b7fb37b894178bbaf63b1608959be3b2d3d6cba62c83ce8e2d0869ea |
Hashes for chiapos-0.12.12-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5fafa03beac5218349a07a7ac2f7c865e109ccf1d472dc9df9d65ae339fe69b |
|
MD5 | 60462c92fb6c8a30a41d6518bf2e39d9 |
|
BLAKE2b-256 | 7c726d5ba9154e6eab5c988e5ff83b7dfbebcb87e50ee8bbf9bafb4b98a93100 |
Hashes for chiapos-0.12.12-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a93dfa18a536233f9a877e295c2259985c9ba49ad922a68ae3c914d59cf0e178 |
|
MD5 | 204e85151dd2b2c733de9d1153e0dcb4 |
|
BLAKE2b-256 | 99c77029ddda3a51974dd401eb4283842f7958bda0b420840bb4aab95c0af359 |