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.10-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ff30a39ad45fc29d501c1fa851d3d5a5d4a72afff0c2d8a978569d3b9afd239 |
|
MD5 | 784f83474faa13002f1605879af6a775 |
|
BLAKE2b-256 | e329098f9c825e6b0a304f595dc5586a56c16ed7e982fa9efb55c092edce3ea9 |
Hashes for chiapos-0.12.10-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7a0a7c1e0171807b548071d342e0deae4e3797c5511e1e4be6aca04cc6ba9f1 |
|
MD5 | 6f676690320059348b86b2ca0e6c32d3 |
|
BLAKE2b-256 | d48091fe9d198bab91959fe3e24a621523bb064fe4827b65b809bd7aa730cb53 |
Hashes for chiapos-0.12.10-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfecfe629191737f46b9e684363039ac977346ba15e2aec0534c9ea787232e18 |
|
MD5 | 2ef3eb1a1372f0cd383ff6dac83a79a4 |
|
BLAKE2b-256 | fb994d66eb96cc7beddd469a35debe2f7dea94db276cb04f90750673a76e7595 |
Hashes for chiapos-0.12.10-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19581ca36f59611e333e34d77f6ae47cdfdf9f3838a21c5d53772826d194ac40 |
|
MD5 | 4802059989153a1f97f891fef2bcebad |
|
BLAKE2b-256 | e48f65bef28b893a65d09ab5bb1aadaeb896f83e75b502d4390df4fe3a3d21d8 |
Hashes for chiapos-0.12.10-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 095eefea89052a99dddf0505a33873013198eb40b08f311f36f0d20fbd9ccdfd |
|
MD5 | 46e96c9fbf5ed153b5642777450fee71 |
|
BLAKE2b-256 | 38942031c90cc716037fe086ffc5bc5cdc1cab94fc33298d4697b24bdce4772f |
Hashes for chiapos-0.12.10-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e91c7e0220a3160021dc6b3a429677d02029b788a0ed0582331049c5f13442d |
|
MD5 | 6c95a5a0fa98b08ce50eb19ffbb3828d |
|
BLAKE2b-256 | fed67884227ad7400fc4141fcec494f564e8a7a9a6a990658dc73870dc9ddb7a |