%global _empty_manifest_terminate_build 0 Name: python-chiapos Version: 1.0.11 Release: 1 Summary: Chia proof of space plotting, proving, and verifying (wraps C++) License: Apache License URL: https://github.com/Chia-Network/chiapos Source0: https://mirrors.nju.edu.cn/pypi/web/packages/b8/f0/236bbf5e57efa58bfcf4e3991db81ed5412b8e9ad199baf21a4a893fed3a/chiapos-1.0.11.tar.gz %description # Chia Proof of Space ![Build](https://github.com/Chia-Network/chiapos/workflows/Build/badge.svg) ![PyPI](https://img.shields.io/pypi/v/chiapos?logo=pypi) ![PyPI - Format](https://img.shields.io/pypi/format/chiapos?logo=pypi) ![GitHub](https://img.shields.io/github/license/Chia-Network/chiapos?logo=Github) [![Total alerts](https://img.shields.io/lgtm/alerts/g/Chia-Network/chiapos.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/Chia-Network/chiapos/alerts/) [![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/Chia-Network/chiapos.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/Chia-Network/chiapos/context:python) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/Chia-Network/chiapos.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/Chia-Network/chiapos/context:cpp) 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](https://www.chia.net/assets/Chia_Proof_of_Space_Construction_v1.1.pdf) to learn about what proof of space is and how it works. ## C++ Usage Instructions ### Compile ```bash # Requires cmake 3.14+ mkdir -p build && cd build cmake ../ cmake --build . -- -j 6 ``` ## Static Compilation With glibc ### Statically compile ProofOfSpace ```bash mkdir -p build && cd build cmake -DBUILD_PROOF_OF_SPACE_STATICALLY=ON ../ cmake --build . -- -j 6 ``` ### Run tests ```bash ./RunTests ``` ### CLI usage ```bash ./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 <32 byte hex challenge> ./ProofOfSpace -f "plot.dat" check ``` ### Benchmark ```bash 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. ```bash ./HellmanAttacks -k 18 -f "plot.dat" -m "0x1234" create ./HellmanAttacks -f "plot.dat" check ``` ## 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. Linting uses flake8 and mypy. ```bash 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](https://cmake.org/cmake/help/latest/module/FetchContent.html) to download [pybind11](https://github.com/pybind/pybind11). Building is then managed by [cibuildwheel](https://github.com/joerick/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](https://github.com/Chia-Network/chia-blockchain/blob/main/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](https://lgtm.com/projects/g/Chia-Network/chiapos/?mode=list). Please make sure your build is passing and that it does not increase alerts at lgtm. %package -n python3-chiapos Summary: Chia proof of space plotting, proving, and verifying (wraps C++) Provides: python-chiapos BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip BuildRequires: python3-cffi BuildRequires: gcc BuildRequires: gdb %description -n python3-chiapos # Chia Proof of Space ![Build](https://github.com/Chia-Network/chiapos/workflows/Build/badge.svg) ![PyPI](https://img.shields.io/pypi/v/chiapos?logo=pypi) ![PyPI - Format](https://img.shields.io/pypi/format/chiapos?logo=pypi) ![GitHub](https://img.shields.io/github/license/Chia-Network/chiapos?logo=Github) [![Total alerts](https://img.shields.io/lgtm/alerts/g/Chia-Network/chiapos.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/Chia-Network/chiapos/alerts/) [![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/Chia-Network/chiapos.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/Chia-Network/chiapos/context:python) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/Chia-Network/chiapos.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/Chia-Network/chiapos/context:cpp) 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](https://www.chia.net/assets/Chia_Proof_of_Space_Construction_v1.1.pdf) to learn about what proof of space is and how it works. ## C++ Usage Instructions ### Compile ```bash # Requires cmake 3.14+ mkdir -p build && cd build cmake ../ cmake --build . -- -j 6 ``` ## Static Compilation With glibc ### Statically compile ProofOfSpace ```bash mkdir -p build && cd build cmake -DBUILD_PROOF_OF_SPACE_STATICALLY=ON ../ cmake --build . -- -j 6 ``` ### Run tests ```bash ./RunTests ``` ### CLI usage ```bash ./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 <32 byte hex challenge> ./ProofOfSpace -f "plot.dat" check ``` ### Benchmark ```bash 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. ```bash ./HellmanAttacks -k 18 -f "plot.dat" -m "0x1234" create ./HellmanAttacks -f "plot.dat" check ``` ## 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. Linting uses flake8 and mypy. ```bash 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](https://cmake.org/cmake/help/latest/module/FetchContent.html) to download [pybind11](https://github.com/pybind/pybind11). Building is then managed by [cibuildwheel](https://github.com/joerick/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](https://github.com/Chia-Network/chia-blockchain/blob/main/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](https://lgtm.com/projects/g/Chia-Network/chiapos/?mode=list). Please make sure your build is passing and that it does not increase alerts at lgtm. %package help Summary: Development documents and examples for chiapos Provides: python3-chiapos-doc %description help # Chia Proof of Space ![Build](https://github.com/Chia-Network/chiapos/workflows/Build/badge.svg) ![PyPI](https://img.shields.io/pypi/v/chiapos?logo=pypi) ![PyPI - Format](https://img.shields.io/pypi/format/chiapos?logo=pypi) ![GitHub](https://img.shields.io/github/license/Chia-Network/chiapos?logo=Github) [![Total alerts](https://img.shields.io/lgtm/alerts/g/Chia-Network/chiapos.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/Chia-Network/chiapos/alerts/) [![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/Chia-Network/chiapos.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/Chia-Network/chiapos/context:python) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/Chia-Network/chiapos.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/Chia-Network/chiapos/context:cpp) 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](https://www.chia.net/assets/Chia_Proof_of_Space_Construction_v1.1.pdf) to learn about what proof of space is and how it works. ## C++ Usage Instructions ### Compile ```bash # Requires cmake 3.14+ mkdir -p build && cd build cmake ../ cmake --build . -- -j 6 ``` ## Static Compilation With glibc ### Statically compile ProofOfSpace ```bash mkdir -p build && cd build cmake -DBUILD_PROOF_OF_SPACE_STATICALLY=ON ../ cmake --build . -- -j 6 ``` ### Run tests ```bash ./RunTests ``` ### CLI usage ```bash ./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 <32 byte hex challenge> ./ProofOfSpace -f "plot.dat" check ``` ### Benchmark ```bash 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. ```bash ./HellmanAttacks -k 18 -f "plot.dat" -m "0x1234" create ./HellmanAttacks -f "plot.dat" check ``` ## 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. Linting uses flake8 and mypy. ```bash 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](https://cmake.org/cmake/help/latest/module/FetchContent.html) to download [pybind11](https://github.com/pybind/pybind11). Building is then managed by [cibuildwheel](https://github.com/joerick/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](https://github.com/Chia-Network/chia-blockchain/blob/main/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](https://lgtm.com/projects/g/Chia-Network/chiapos/?mode=list). Please make sure your build is passing and that it does not increase alerts at lgtm. %prep %autosetup -n chiapos-1.0.11 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-chiapos -f filelist.lst %dir %{python3_sitearch}/* %files help -f doclist.lst %{_docdir}/* %changelog * Sun Apr 23 2023 Python_Bot - 1.0.11-1 - Package Spec generated