diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-chiapos.spec | 407 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 409 insertions, 0 deletions
@@ -0,0 +1 @@ +/chiapos-1.0.11.tar.gz diff --git a/python-chiapos.spec b/python-chiapos.spec new file mode 100644 index 0000000..a10b588 --- /dev/null +++ b/python-chiapos.spec @@ -0,0 +1,407 @@ +%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 + + + + + +[](https://lgtm.com/projects/g/Chia-Network/chiapos/alerts/) +[](https://lgtm.com/projects/g/Chia-Network/chiapos/context:python) +[](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 <hex proof> <32 byte hex challenge> +./ProofOfSpace -f "plot.dat" check <iterations> +``` + +### 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 <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. 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 + + + + + +[](https://lgtm.com/projects/g/Chia-Network/chiapos/alerts/) +[](https://lgtm.com/projects/g/Chia-Network/chiapos/context:python) +[](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 <hex proof> <32 byte hex challenge> +./ProofOfSpace -f "plot.dat" check <iterations> +``` + +### 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 <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. 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 + + + + + +[](https://lgtm.com/projects/g/Chia-Network/chiapos/alerts/) +[](https://lgtm.com/projects/g/Chia-Network/chiapos/context:python) +[](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 <hex proof> <32 byte hex challenge> +./ProofOfSpace -f "plot.dat" check <iterations> +``` + +### 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 <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. 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 +* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.11-1 +- Package Spec generated @@ -0,0 +1 @@ +9501989cc6297828defbbc85af2099f2 chiapos-1.0.11.tar.gz |
