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

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

Finally, 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

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.4

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.4.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12 Windows x86-64

chiapos-2.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.1 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

chiapos-2.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.1 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

chiapos-2.0.4-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.4-cp312-cp312-macosx_11_0_arm64.whl (321.9 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 Windows x86-64

chiapos-2.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

chiapos-2.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

chiapos-2.0.4-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.4-cp311-cp311-macosx_11_0_arm64.whl (322.6 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 Windows x86-64

chiapos-2.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

chiapos-2.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

chiapos-2.0.4-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.4-cp310-cp310-macosx_11_0_arm64.whl (321.6 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 Windows x86-64

chiapos-2.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

chiapos-2.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

chiapos-2.0.4-cp39-cp39-macosx_11_0_x86_64.whl (377.6 kB view details)

Uploaded CPython 3.9 macOS 11.0+ x86-64

chiapos-2.0.4-cp39-cp39-macosx_11_0_arm64.whl (321.7 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.8 Windows x86-64

chiapos-2.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

chiapos-2.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

chiapos-2.0.4-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.4.tar.gz.

File metadata

  • Download URL: chiapos-2.0.4.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for chiapos-2.0.4.tar.gz
Algorithm Hash digest
SHA256 6498d75a7ac01bb64055055b2937f7f964270582a2f82be9a332aa828fc3e3ce
MD5 af55182f8ad7c4aaad4364009051d3ac
BLAKE2b-256 6101ce358d00e1a12a551df05f01284d9fcfd25834e9cceec4b03e3b00b4c1d1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: chiapos-2.0.4-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/4.0.2 CPython/3.11.8

File hashes

Hashes for chiapos-2.0.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f662b5b58edc1aebee14e7e0085e9e19793efdf2dfb09956e0fb082bffcd48bd
MD5 cd866af35d04d8dda3edfa213374e772
BLAKE2b-256 19facab13b5bdcffde6bff173f4dc64b3f02e173256c2070f3436af93fde55ac

See more details on using hashes here.

File details

Details for the file chiapos-2.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0e120bbca94b511c7fb1c011efbfdd12d2a569a084fed26e53051650fdf28bf2
MD5 a781e8e897a00808d1becd14c7cf04a4
BLAKE2b-256 a86f58872d6fa8142caff6f54a3573ec9e44a5a5ecbfe226908a9b033c1f4275

See more details on using hashes here.

File details

Details for the file chiapos-2.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fe238271df585a8277b46775124f4cef1dc28a2a475e9950ec292eadacac1c3f
MD5 db9ada015baf61a9b9eccc6d8c770baa
BLAKE2b-256 df7a5a04e4b67b5a0199ed563fbd71b8d515f7fd0ffe1f0a9ac6c138f03b90fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for chiapos-2.0.4-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 0c9f315b12ddb9b7a726b19711c841b7f199c568963dd6473495074fc23b8f63
MD5 982a8b6550265a2fbbc69267bcd60fcc
BLAKE2b-256 7245f67205fe2549831a0df374b85fbc0dd965b898ed5de71996c721580396a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for chiapos-2.0.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cc946f0bb74313c85a5fd769ba2d36a9a3684a111cde38293c8ed7b54f9a4d12
MD5 e7881fb9ea4ff3813141968bfdd164e8
BLAKE2b-256 31f3e04e136bba7d25ffcdab8a0157d18ff618c466bd7c4119ace2875f67c7c8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: chiapos-2.0.4-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/4.0.2 CPython/3.11.8

File hashes

Hashes for chiapos-2.0.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2c11c6891217ab49e20ef4b9ae1e2e6aaed752fd41e360515b65ee36c0ec29f8
MD5 283fb14f1ec903f86209eb9532a8efe5
BLAKE2b-256 862c8386087f76d761eb34229268f2e13c847d43c61dc7a18bc4e331981eec5b

See more details on using hashes here.

File details

Details for the file chiapos-2.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ca1a2f4fe886b71af206966b5c8001df5703d0d3b5a47bf7c207325b25ab784d
MD5 9332a5128c97c731ca518d777209a598
BLAKE2b-256 5a16a1ad7e655d3427750f741459387222a6dce74f5dcfe4f9c6f074d4d2f19c

See more details on using hashes here.

File details

Details for the file chiapos-2.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2729ca64281b31d05bc1160860a8ed654f2a34a92775ef13292f25e5b64d34ad
MD5 98a5ca32c3afe6cb66b660fb35bd89af
BLAKE2b-256 43771e7206d5fce199e078ed69e2e5e8d9c031169ee135149054068c43cf0c4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for chiapos-2.0.4-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 c8c6a0d4a302edb8cecddc253db876ca1727149ddc6911dd255ee058d39c1d78
MD5 8c3e2987df13d7a2c9b472882c61eff0
BLAKE2b-256 2cc830afe4b11e2b4860e32fb93b40f8c339da8c8a24c073b0892187636ab6d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for chiapos-2.0.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d691cf50beae2f8f7e751a9a376701997b72c8e0c1d8fa56d2c441f4290c30a
MD5 4466f748ccdf2323c223581129956bac
BLAKE2b-256 8668ba4f40561bdf95040b96cc439ddcbccd1f138b0f68a28d1a9c57dfcee141

See more details on using hashes here.

File details

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

File metadata

  • Download URL: chiapos-2.0.4-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/4.0.2 CPython/3.11.8

File hashes

Hashes for chiapos-2.0.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 579c87cd8e028f008fe75fb37ad0aea8a80a81774ac269c4bbb6195a5a4f7937
MD5 28574979d2566667302f1d195d76baf2
BLAKE2b-256 20c4bafd32341e9f69544e7102949454a6176d92b9bc961815376bbc4534fedf

See more details on using hashes here.

File details

Details for the file chiapos-2.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9394d1c02c56829951379d6a2ef155f33760a3722e926f03e5e1e771e7161cd6
MD5 88dca6b8e805ca600cd82e0ea651bdce
BLAKE2b-256 249c6a0ec08777d943499cd40360e02809b1c9a07fe07b1984b9ac0c84f0dc47

See more details on using hashes here.

File details

Details for the file chiapos-2.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 86a6822b5aa7c5855cd5ff59c6644a441a01c2ce09c38a47a292f8bebb0a042c
MD5 d64f8a3d509d3f8f3cddeddc9c4ef0fb
BLAKE2b-256 60508602a28a4be71761153ed5ee9fc4bed43fc2ec0fbbddcc8e5a96a416db7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for chiapos-2.0.4-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 a9e2cf709690efafa16fa1f66c5b5b8a0e00ed0fa4c66ce6939828035f4bb9f9
MD5 49662439f51a20939a11c0dc9a9726a2
BLAKE2b-256 0823492eab7d63843f77a8a4c55b43769bfff4af3f15366af7197a6b3d1146e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for chiapos-2.0.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fa7d13ad72c97d6081ab494f41ea5dbb1e8e7898ba644b45f4512443a4368f45
MD5 6560d2d478d15988da00055b4ef1fca4
BLAKE2b-256 db6732299edcc0f95e370d9083f59fa343963807b139a4599be6db97e4625a66

See more details on using hashes here.

File details

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

File metadata

  • Download URL: chiapos-2.0.4-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/4.0.2 CPython/3.11.8

File hashes

Hashes for chiapos-2.0.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1dbc6d7e3ce961ecd99c48e9df8d1448ea8623b228927ff91517b903fcf1486f
MD5 28ed7e70f8545a1af3401d0fa8fc047b
BLAKE2b-256 240a21b5ceb02e48e98864cfda2ecf247c9ff9213a66df61704364a7ab4b654a

See more details on using hashes here.

File details

Details for the file chiapos-2.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4060e71c468c654778458a47a05a68b6599aeb2f66e2794a820e11b89c6e3c33
MD5 e9fd911841517e976b1f527fbb76fbd5
BLAKE2b-256 1e072ed808fdaf52685e952174d829faeaf16b1fd70a3dbf180ea87799ca4df8

See more details on using hashes here.

File details

Details for the file chiapos-2.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0ae108016b0cad03cd3fa25caf57924781e6e62c99151be581e976966bf48f7d
MD5 47c4f16b890218898e58c5df8dbf1661
BLAKE2b-256 bff8556eebaf47321bba34e3170a5b87af0a37e4471ce308555edb0b5c6a6129

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for chiapos-2.0.4-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 82f7c5b2ef0f514321b7edd2ef864e8927ba8b7c15c27a6621ea6fb7a7ad2d19
MD5 a30ddffe4bef279a093cef3adc353c55
BLAKE2b-256 923bc6838171c83a26f032ef756cd4ab22cf9728cdc92332d6e3e8671fa3eb3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for chiapos-2.0.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 86ec4db0980ed9a9e1d72a6a0874c2b51ba58af42f1765fa8b32e674ad46af75
MD5 b1eb6fa60ce6f1afd19f87705f70017c
BLAKE2b-256 554c96014a36aee7acf94116b80611e674dd0803a9a79021fb0a3662b46c4a8e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: chiapos-2.0.4-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/4.0.2 CPython/3.11.8

File hashes

Hashes for chiapos-2.0.4-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f75920e0a6355b4882834b74d6a325f7bc9b4f20ca776ac79ecbc8dab91dd640
MD5 ecab8c2d6ff932ef2c24b261631a5072
BLAKE2b-256 790e65a6350208922e0ee5fbb77627b9027c658db32529545650f8d67d3ff5ec

See more details on using hashes here.

File details

Details for the file chiapos-2.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a286924cbba2770551bea1b315741d9980a67f242fe99629d84708a4e3b926df
MD5 15b0dc219adc40c8f5f8643561683acd
BLAKE2b-256 dc0983e7f8cdd0b9edcd32e22523c3db9a88524572035535bf4476aaa742123b

See more details on using hashes here.

File details

Details for the file chiapos-2.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for chiapos-2.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b5a259f2557d38b4b775ea1943e553b47db599bbd2ba6784f1c26e9ac1cdead8
MD5 1a3328569d2be741613f9a342137439e
BLAKE2b-256 dd06463bed7c1fa366277a3372938fab80bfbbecb464d9bec90d8b895f97f280

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for chiapos-2.0.4-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 f1e2f828b340160813c573bd0c7b11011332203e1c36fa791a685db9c54f2c5b
MD5 6c87759cb0d9a573573c489e7b9c4f9b
BLAKE2b-256 7b29536fafd7653e14f8b5ce8cf17dbe4d31b6fbfaeceb78fcd4c36320523cc9

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