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.11-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4da311ea490053d9f1f08cae23c0c36e3f820b0558724d7ffde17b10c0e19c7 |
|
MD5 | 5602ff4726848e6ee972955f84ce786c |
|
BLAKE2b-256 | 9e779ca75fffc1e83dafe1cbefea237c6f33806e37867b082e52c0a614a09341 |
Hashes for chiapos-0.12.11-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8eb2990e1bde5b141809213e7e1edab0f95ebe3073b9d543b6d49ed1a103701 |
|
MD5 | 3f71dc2233f338875e30edaea35cf30c |
|
BLAKE2b-256 | 31568f12734b868d9812faf6c70eee3c4dd649ff785d3cf6d1481270361c1a47 |
Hashes for chiapos-0.12.11-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78a7a4aff197965e018d9b3521a4ad4ed7de45a5ce4af289fc17f34906b22a82 |
|
MD5 | 4db33e1ec8432aef6865f5dc5713c771 |
|
BLAKE2b-256 | ebe22c8baba30584239be451289ca42e352f6bf6860856f720d25a57c23b1c47 |
Hashes for chiapos-0.12.11-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbd38da438efdb8173b1ddff847733c9b62616883c8c6440864b6e43ec6ff960 |
|
MD5 | 0eb6ca5d6ce9c8502c51b1cff6bc9db4 |
|
BLAKE2b-256 | 13c9e77b77154022a185f75d9a05f997fdc26158e86923f66995b69f679fd682 |
Hashes for chiapos-0.12.11-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2c506136dd6738919b64f5c19d6594a224e0181ca264bfcb82c352aec555d1b |
|
MD5 | fae7afa215d05d28c6a191298e80443f |
|
BLAKE2b-256 | 27614257a3513211cc3a8a6c96928a658a32f5b55df00b040cdaf9f4aba8a802 |
Hashes for chiapos-0.12.11-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b995a528056a6aca8fa3f19d664f75d90e8383b45db3982c981356b93c8b9ad9 |
|
MD5 | 477190adebe60129c040e4fd7b5af1ec |
|
BLAKE2b-256 | 97de7ebf55d63053058218f32e50af02b01fd6d3ec32624d42429fb0adb32272 |