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.dev0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8768cc940c48b6fda2d512c6dc6be1064c9009f208bfb6577c0903ca1163f04 |
|
MD5 | 2ba5993c5bbb51423526e0d1bd5875d8 |
|
BLAKE2b-256 | eb2a8af0f55cd59e9e76a146ea2a10bf1d07bc9e45a1c62a6263b1e644fccfe0 |
Hashes for chiapos-0.12.6.dev0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23e369819f2f44f09744e38cef3d8ec5b22d660d52de24c06a4b41633a093c66 |
|
MD5 | 439861d6f6f59c05075d9f9ee390a9cd |
|
BLAKE2b-256 | 36a47fa89cb7979a74f632ab0b03cdbdf546c0fda3cd31c2817507308865e5d2 |