Skip to main content

Chia proof of space plotting, proving, and verifying (wraps C++)

Project description

Chia Proof of Space

Build Wheels PyPI PyPI - Format GitHub Coverage Status

Chia's proof of space is written in C++. Includes a plotter, prover, and verifier. It exclusively runs on 64 bit architectures. Read the Proof of Space document to learn about what proof of space is and how it works.

C++ Usage Instructions

Compile

# Requires cmake 3.14+

mkdir -p build && cd build
cmake ../
cmake --build . -- -j 6

Static Compilation With glibc

Statically compile ProofOfSpace

mkdir -p build && cd build
cmake -DBUILD_PROOF_OF_SPACE_STATICALLY=ON ../
cmake --build . -- -j 6

Run tests

./RunTests

CLI usage

./ProofOfSpace -k 25 -f "plot.dat" -m "0x1234" create
./ProofOfSpace -k 25 -f "final-plot.dat" -m "0x4567" -t TMPDIR -2 SECOND_TMPDIR create
./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

time ./ProofOfSpace -k 25 create

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.

./HellmanAttacks -k 18 -f "plot.dat" -m "0x1234" create
./HellmanAttacks -f "plot.dat" check <iterations>

Python binding

Python bindings are provided in the python-bindings directory.

Install

python3 -m venv .venv
. .venv/bin/activate
pip3 install .

Run python tests

Testings uses pytest. Linting uses flake8 and mypy.

py.test ./tests -s -v

Rust binding

Finally, Rust bindings are provided, but only validation of proofs of space is supported, and it cannot be used to make plots or create proofs for plots.

ci Building

The primary build process for this repository is to use GitHub Actions to build binary wheels for MacOS, Linux (x64 and aarch64), and Windows and publish them with a source wheel on PyPi. See .github/workflows/build.yml. CMake uses FetchContent to download pybind11. Building is then managed by cibuildwheel. Further installation is then available via pip install chiapos e.g.

Contributing and workflow

Contributions are welcome and more details are available in chia-blockchain's CONTRIBUTING.md.

The main branch is usually the currently released latest version on PyPI. Note that at times chiapos will be ahead of the release version that chia-blockchain requires in it's main/release version in preparation for a new chia-blockchain release. Please branch or fork main and then create a pull request to the main branch. Linear merging is enforced on main and merging requires a completed review. PRs will kick off a GitHub actions ci build and analysis of chiapos at lgtm.com. Please make sure your build is passing and that it does not increase alerts at lgtm.

Project details


Release history Release notifications | RSS feed

This version

2.0.6

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chiapos-2.0.6.tar.gz (1.2 MB view details)

Uploaded Source

Built Distributions

chiapos-2.0.6-cp312-cp312-win_amd64.whl (8.9 MB view details)

Uploaded CPython 3.12 Windows x86-64

chiapos-2.0.6-cp312-cp312-manylinux_2_28_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ x86-64

chiapos-2.0.6-cp312-cp312-manylinux_2_28_aarch64.whl (10.1 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ ARM64

chiapos-2.0.6-cp312-cp312-macosx_11_0_x86_64.whl (378.3 kB view details)

Uploaded CPython 3.12 macOS 11.0+ x86-64

chiapos-2.0.6-cp312-cp312-macosx_11_0_arm64.whl (323.9 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

chiapos-2.0.6-cp311-cp311-win_amd64.whl (8.9 MB view details)

Uploaded CPython 3.11 Windows x86-64

chiapos-2.0.6-cp311-cp311-manylinux_2_28_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

chiapos-2.0.6-cp311-cp311-manylinux_2_28_aarch64.whl (10.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARM64

chiapos-2.0.6-cp311-cp311-macosx_11_0_x86_64.whl (378.9 kB view details)

Uploaded CPython 3.11 macOS 11.0+ x86-64

chiapos-2.0.6-cp311-cp311-macosx_11_0_arm64.whl (324.4 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

chiapos-2.0.6-cp310-cp310-win_amd64.whl (8.9 MB view details)

Uploaded CPython 3.10 Windows x86-64

chiapos-2.0.6-cp310-cp310-manylinux_2_28_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

chiapos-2.0.6-cp310-cp310-manylinux_2_28_aarch64.whl (10.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ ARM64

chiapos-2.0.6-cp310-cp310-macosx_11_0_x86_64.whl (377.4 kB view details)

Uploaded CPython 3.10 macOS 11.0+ x86-64

chiapos-2.0.6-cp310-cp310-macosx_11_0_arm64.whl (323.2 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

chiapos-2.0.6-cp39-cp39-win_amd64.whl (8.9 MB view details)

Uploaded CPython 3.9 Windows x86-64

chiapos-2.0.6-cp39-cp39-manylinux_2_28_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

chiapos-2.0.6-cp39-cp39-manylinux_2_28_aarch64.whl (10.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ ARM64

chiapos-2.0.6-cp39-cp39-macosx_11_0_x86_64.whl (377.5 kB view details)

Uploaded CPython 3.9 macOS 11.0+ x86-64

chiapos-2.0.6-cp39-cp39-macosx_11_0_arm64.whl (323.3 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

chiapos-2.0.6-cp38-cp38-win_amd64.whl (8.9 MB view details)

Uploaded CPython 3.8 Windows x86-64

chiapos-2.0.6-cp38-cp38-manylinux_2_28_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

chiapos-2.0.6-cp38-cp38-manylinux_2_28_aarch64.whl (10.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ ARM64

chiapos-2.0.6-cp38-cp38-macosx_11_0_x86_64.whl (377.3 kB view details)

Uploaded CPython 3.8 macOS 11.0+ x86-64

File details

Details for the file chiapos-2.0.6.tar.gz.

File metadata

  • Download URL: chiapos-2.0.6.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for chiapos-2.0.6.tar.gz
Algorithm Hash digest
SHA256 8924ffda0b5bd6dc004e16cf1d3f913075a8faf00a8be4e33fa9eeb0cf42fa4d
MD5 b67ed8fff2adfe553c324a74f71233be
BLAKE2b-256 97c4c1516d6c0fcd6a6f18481dca4b75e1fcbebf4482fa2e04f2951403ebc4a5

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: chiapos-2.0.6-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 8.9 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for chiapos-2.0.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b301b2760b55e4883576b6dc6755961189cd71d4f2c0812ed91d43545a06ea43
MD5 d84489589d674271c508e22e63266af7
BLAKE2b-256 087772bd814b93e20aaa305c8b41405f0c37fce9ab352ebdb3ffd207ad2df386

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d0ae396ca0779591c1089881afcb74e7bed60ca3f005b17d9767865d0f01e58a
MD5 ba7e3d325e863aa858b333aff41c7d24
BLAKE2b-256 ac0f876639a3b1e8cc47c4e290704499d8e24cdbe9db966ef722cb6745e239ff

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2d529aca84f7eaf96f3f1fb8dc547dac5381e081a18d104b9bef5168f56f0446
MD5 1fd2443f4259ded1ae8ca5c30eb42a2f
BLAKE2b-256 4d7ca8848c9ff6af7ae4066be50f340924192ad16322598c2a7d4331e7bbd096

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 9e001d516ec370578496c7802ebeb13b1298a9ff307815ac3fadd5780339eccc
MD5 16a9c46b7fa99172f30c5a1a96df6328
BLAKE2b-256 187c7b8520b508df6d23310988270903483cec501cd4f8fba6a288b0cfcf2a49

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 daba2cfc56da0db0812893c687cbc8890a8a7b5cce9bca26ca62738f43497bdd
MD5 3d672c912a263bfb46beee3f2b427252
BLAKE2b-256 617cd19c36e30584a443547edd84395def66801fd8fe1cfb75d62064658afb26

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: chiapos-2.0.6-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 8.9 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for chiapos-2.0.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 06b2e0f21ed522fd996b5f7773316320123eaef3a33688585a2c4fe47a6783e3
MD5 49b89f37cdec765de1d78b3c5076843c
BLAKE2b-256 834678937d798d60a46e147ae3ce4e335d2c2111a80a0a03ea88b7ea88f58b4c

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 572d423816b7b72086b280a2b1f4d8dd168f6691badc3688dc36b248ce1fdca7
MD5 372a93aebe9557c9c5866dba6a63274b
BLAKE2b-256 05d74704aff01bc9eb6aed7253811bc517f95b081615d1515900a9b5b143dbfe

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fec23f42eb70714895fb0fd3853da2e0f5a3db8446c77d624a9a9f62df6a11e8
MD5 3aa3456ad4b3238b0ce24d0e6fcb123c
BLAKE2b-256 53d495a35cb7dbabd3117de2498336f500102805f7b1fbecc36ac72b410cb928

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 9e9ef933fa113d2fe1229e24fc532732a8bf6e3551a323ae4108463f72da32fd
MD5 a59975977172f364cd9d0cf509304460
BLAKE2b-256 d689f23c6e0f4af3ee78d3f9b7b02ed466b32476a01973bcd9e3cf533a8e2ac2

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 885322b1c2a697c2f5a09bb344caca28a437b4504ad5d32c50beb580aaec8db6
MD5 93b83beb4211f8309f9767e7cb4a29c2
BLAKE2b-256 1a38bcb80a3cc509917545bb045647d1fe5e46d636dee4aa7de5a59b136fa56e

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: chiapos-2.0.6-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 8.9 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for chiapos-2.0.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 56f3906c88d336ef17490f5c5b233ebc4164db882886082dd18fb6136441cb00
MD5 68e661a6ae6691ed642dc94256360929
BLAKE2b-256 1af601c4399f1fe185e7b60fb7131abef606d35ca7299b153951ed575f0ac265

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bdf30c18a7ad3bd17d7078627356176f4b7a1982f819b05eff3d34e2a1126d59
MD5 62813323b28fc0fb944ad499be914f5b
BLAKE2b-256 f176844305efec992a9f2730db956ed8f5d20761bb61c54d612bcc804d2a8300

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 40e5b2e308b7d7d299e7637931805164450a4699203968c30ff77997ad763290
MD5 4aee757d139726cd99d12c7c70bb4662
BLAKE2b-256 807df1a5f922f011285daa9543173fe78201d446976d41f2fb2dd3f110728354

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 ad4b312161330953c6c78839eba9c2fb1a32f4a29bf55e5e592fdff42eea7db2
MD5 5d5f671685fc48da92addfd320b25fbc
BLAKE2b-256 1fbe0e26df2e14c439ac6c4506b84ee1c6d4d7c5fdfedfc3e6d372709cf50ec5

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 881a3d291b2f344f0a523af2d73dd5105bc9cae41ed27937dd6fc50e26334d1a
MD5 5f520a5622f5da7838a2a2dfe45d886a
BLAKE2b-256 66187cc7c12ece54b2c7cc534d2f2ddc380cd545d46207ba892ecb1cc95ecd5a

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: chiapos-2.0.6-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 8.9 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for chiapos-2.0.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 057b6607044594eaac89a802a9ba956a6ad22e718f9e8a807e24680b7e35110e
MD5 fc442761650b9f12101f5e322516c4a0
BLAKE2b-256 38e0e7130dab369aaa6dba8d46d461f9af14fbdd0af776d2a483d102cd0ab491

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 654e53d3d7723c0500ad3d403759c691a9d59994d1716d33cc9fdba61314f481
MD5 954d1562c888249ca7033551618d0040
BLAKE2b-256 96aedc631b8f44f300efecdb9a3e2934dc9c33fc2072ad51118914567334f0a8

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ba23915b00ac72f2d8fff46191e011004f185fb1a72104d941862ee1821afc5e
MD5 db9c0d67be9e48e5436af1f3cf9dfff2
BLAKE2b-256 2131312c1fb016ad74029fbd15cb940c1f47717a60516df081f07c42485f1aa9

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 04278e4044f21914cc054725ae372d30ac7a585638683530bda83c168b903584
MD5 02db76f56bb74b9a83d1b25e930bf239
BLAKE2b-256 db3f9228182fba71f74e92c35daf11cd2621c7a97364c3970626effb9616a514

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 abbfa3612394cbccd528cef12b6c98d1cdc97748865b1385b56339d7d5c3397b
MD5 c5f99becb0aab57a0ba8d344d60c8eec
BLAKE2b-256 85813ca9bb9451af57a4699b1ebe7b414e11bad2d4ebce3745a30436d9d61940

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: chiapos-2.0.6-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 8.9 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for chiapos-2.0.6-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 95d32f1dcaab441e980d3ba5e7dc6c7a9d4ff0bdfa54a4b622ac1d44b4576545
MD5 3d416b052a8e021f835f1eaca15b7dbd
BLAKE2b-256 76155ead8e1928a2d7b6dbf8daa0ce9e7ba310b5a8e767ac529fecc4f1618d13

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5f3053f9ff5cc98794a184ef068cb65816acd33ed640d10197ed171ae772bc55
MD5 1f59ddc43f5bdd5c1129db66f59afc68
BLAKE2b-256 5335aa3303edfc2d2724911da8d40348901c742dbc052df2150d7706ebadf144

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4e4b62808d3b8c82b44360909cd3ca3a1fa3d4343be5b4651c57c062a982f09a
MD5 a43077377325d8b0fc23e3f85bea11dc
BLAKE2b-256 296a74907186b2bc5d5b1af922f26c6ce03829bbb3ce9a0d0dd6ef7641cba073

See more details on using hashes here.

File details

Details for the file chiapos-2.0.6-cp38-cp38-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.6-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 f02663e903b4ee3d9e58a42847fda2f6925b2ccee332c831af67fa8c1f341106
MD5 5df3936d6956bb1cfbf2d6234d51f466
BLAKE2b-256 843c84165d95e1ce4a886cd148355ea1e932b44c7a757fd2389092112877206b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page