Skip to main content

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

chiapos-0.12.12.tar.gz (1.8 MB view details)

Uploaded Source

Built Distributions

chiapos-0.12.12-cp38-cp38-win_amd64.whl (188.3 kB view details)

Uploaded CPython 3.8 Windows x86-64

chiapos-0.12.12-cp38-cp38-manylinux2010_x86_64.whl (189.8 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

chiapos-0.12.12-cp38-cp38-macosx_10_14_x86_64.whl (178.1 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

chiapos-0.12.12-cp37-cp37m-win_amd64.whl (188.6 kB view details)

Uploaded CPython 3.7m Windows x86-64

chiapos-0.12.12-cp37-cp37m-manylinux2010_x86_64.whl (190.2 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

chiapos-0.12.12-cp37-cp37m-macosx_10_14_x86_64.whl (177.2 kB view details)

Uploaded CPython 3.7m macOS 10.14+ x86-64

File details

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

File metadata

  • Download URL: chiapos-0.12.12.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.6

File hashes

Hashes for chiapos-0.12.12.tar.gz
Algorithm Hash digest
SHA256 438301daea57bbd269eb055ce3db38d19fd046848b634b41780b42301ee019e5
MD5 935ef20ebb7d303868862f819e34d9ab
BLAKE2b-256 48fe4455b5bc6073ee7de8f42addbb22b2233441366288aaa923e7df7cdc1430

See more details on using hashes here.

File details

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

File metadata

  • Download URL: chiapos-0.12.12-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 188.3 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.6

File hashes

Hashes for chiapos-0.12.12-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 71457f22ab569702ce82cbca774137b99445698478f78e80d1d6f1794f6c93bd
MD5 a9f10522655718b772a27e182c029f32
BLAKE2b-256 ad7371b8a9eec566a3926044ec0da01762903d652e16a0ea298ac572592c0f63

See more details on using hashes here.

File details

Details for the file chiapos-0.12.12-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: chiapos-0.12.12-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 189.8 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.6

File hashes

Hashes for chiapos-0.12.12-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 dd9445cb3341be4815c51199f40e21952511a090d5208922c5c518871b9d8006
MD5 18bf6335ea692f5ee34324342a6e435d
BLAKE2b-256 647d5a4da22dccbe9fa7a9fcca5308b12e759a73bd31da9b9305cb50d0a47512

See more details on using hashes here.

File details

Details for the file chiapos-0.12.12-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: chiapos-0.12.12-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 178.1 kB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.6

File hashes

Hashes for chiapos-0.12.12-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 61cf4c9950b66a456a747b5c74a81dc6e3eac2b13d03652f5c1c35295069dfbf
MD5 c8c08a4a8e4e610c4f942b875c0b4670
BLAKE2b-256 682b9021584566b40c665a2392d54d7515b8a7045d10f8931bca021dd95100fa

See more details on using hashes here.

File details

Details for the file chiapos-0.12.12-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: chiapos-0.12.12-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 188.6 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.6

File hashes

Hashes for chiapos-0.12.12-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 96199c8cfbdc4c69ccdeb6a2755349a8acf473938d541ec4ef3c01405872e3f8
MD5 9d81ff589ee94110a179d2181a38da2e
BLAKE2b-256 4c5b6986b7fb37b894178bbaf63b1608959be3b2d3d6cba62c83ce8e2d0869ea

See more details on using hashes here.

File details

Details for the file chiapos-0.12.12-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: chiapos-0.12.12-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 190.2 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.6

File hashes

Hashes for chiapos-0.12.12-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 c5fafa03beac5218349a07a7ac2f7c865e109ccf1d472dc9df9d65ae339fe69b
MD5 60462c92fb6c8a30a41d6518bf2e39d9
BLAKE2b-256 7c726d5ba9154e6eab5c988e5ff83b7dfbebcb87e50ee8bbf9bafb4b98a93100

See more details on using hashes here.

File details

Details for the file chiapos-0.12.12-cp37-cp37m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: chiapos-0.12.12-cp37-cp37m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 177.2 kB
  • Tags: CPython 3.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.6

File hashes

Hashes for chiapos-0.12.12-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a93dfa18a536233f9a877e295c2259985c9ba49ad922a68ae3c914d59cf0e178
MD5 204e85151dd2b2c733de9d1153e0dcb4
BLAKE2b-256 99c77029ddda3a51974dd401eb4283842f7958bda0b420840bb4aab95c0af359

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