Skip to main content

Meowpow

readme style standard

C/C++ implementation of Meowpow – the Meowcoin Proof of Work algorithm

Table of Contents

Install

Build from source using CMake.

mkdir build
cd build
cmake ..
cmake --build .

Python wheel (PyPI)

This repo includes Python bindings (CFFI) and can build a binary wheel.

py -m pip install -U build
py -m build -w

The wheel will be written to the dist/ directory.

Note: building a wheel requires a working C/C++ toolchain and CMake.

Multiple Python versions (3.10–3.13)

Binary wheels are Python-version-specific (e.g. cp310, cp311, ...). To build a set of wheels for multiple Python versions, use cibuildwheel:

py -m pip install -U cibuildwheel
py -m cibuildwheel --output-dir dist

Usage

See meowpow.hpp for list of exported function and documentation.

Test vectors

Optimizations

This section decscribes the optimizations, modification and tweaks applied in this library in relation to Meowpow reference implementation.

The library contains a set of micro-benchmarks. Build and run bench tool.

Seed hash is computed on the fly.

Seed hash is sequence of keccak256 hashes applied the epoch number of times. Time needed to compute seed hash is negligible comparing to time needed to build light cache. Computing seed hash for epoch 10000 takes ~ 5 ms, building light cache for epoch 1 takes ~ 500 ms.

Dataset size is computed on the fly

Computing the size of full dataset and light cache requires finding the largest prime number given an upper bound. For similar reasons as with seed hash, this is computed on the fly. The procedure used is quite naive and forks well only up to 40-bit number, so some additional improvement can be done in future.

Maintainer

Paweł Bylica @chfast

License

Licensed under the Apache License, Version 2.0.

Metadata

Release files for meowpow 0.5.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for meowpow 0.5.2
File Size Uploaded Provenance Actions
meowpow-0.5.2.tar.gz 45.6 kB Without provenance Details for meowpow-0.5.2.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for meowpow 0.5.2
File Actions
meowpow-0.5.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for meowpow-0.5.2-cp313-cp313-win_amd64.whl
meowpow-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for meowpow-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl
meowpow-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for meowpow-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
meowpow-0.5.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for meowpow-0.5.2-cp313-cp313-macosx_11_0_arm64.whl
meowpow-0.5.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for meowpow-0.5.2-cp312-cp312-win_amd64.whl
meowpow-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for meowpow-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl
meowpow-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for meowpow-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
meowpow-0.5.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for meowpow-0.5.2-cp312-cp312-macosx_11_0_arm64.whl
meowpow-0.5.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for meowpow-0.5.2-cp311-cp311-win_amd64.whl
meowpow-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for meowpow-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl
meowpow-0.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for meowpow-0.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
meowpow-0.5.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for meowpow-0.5.2-cp311-cp311-macosx_11_0_arm64.whl
meowpow-0.5.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for meowpow-0.5.2-cp310-cp310-win_amd64.whl
meowpow-0.5.2-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details for meowpow-0.5.2-cp310-cp310-musllinux_1_2_x86_64.whl
meowpow-0.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for meowpow-0.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
meowpow-0.5.2-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for meowpow-0.5.2-cp310-cp310-macosx_11_0_arm64.whl

Total release size: 4.7 MB

Release files / meowpow-0.5.2.tar.gz

Download URL meowpow-0.5.2.tar.gz
Size 45.6 kB
Tags Source
SHA-256 checksum
How to use checksums
6e22df01d1f57b84de4649b84df55d00d5365b24f375a02577b14030b2a2b9f4
BLAKE2b-256 checksum
How to use checksums
0125008e2eba4068eb58ba4920e8d29670d8fc40ce0f6a06e06baebf4c824f20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp313-cp313-win_amd64.whl

Download URL meowpow-0.5.2-cp313-cp313-win_amd64.whl
Size 26.0 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
87b02bc2647c520bae983ced48a18af5b0c2e38f4a01829d7213d770466e2b14
BLAKE2b-256 checksum
How to use checksums
64ff3b290738fc639b0d32166bcf919e0800898b592e043912b5922baab9aca3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL meowpow-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl
Size 1.1 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
aa04246b936838d1cfe91c6901d91916658fed5da0f811bef700124130edab35
BLAKE2b-256 checksum
How to use checksums
bcc878ea794b7ade281f13d2ed7fb8ce37f1b56869dbcbbf47019ce45ac5714f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL meowpow-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 39.1 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f65464bee0feee56b738e21c7e59f8f1ad9f0bcaf38de95f640c0181d6df8670
BLAKE2b-256 checksum
How to use checksums
1aa7cde4e6fc64fa06a24aa24f58e5229e65c7ecb89ccbad04f7b4415d47802b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL meowpow-0.5.2-cp313-cp313-macosx_11_0_arm64.whl
Size 23.7 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5790e2d428153b902b3e8d3619a1bd988a984874b1bfb6de2f670a984266420d
BLAKE2b-256 checksum
How to use checksums
14171db5d920f2e8619c22454ccfbf0dc81496c88ec2ca7c85124785a41fedce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp312-cp312-win_amd64.whl

Download URL meowpow-0.5.2-cp312-cp312-win_amd64.whl
Size 26.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
83788afa570ee75f98b02060ee68949445e25c38b5a40a277eba512db2175be6
BLAKE2b-256 checksum
How to use checksums
80b30594f215c8372b91fa58961d634ec943d3fdb975e3ecb476bc25e1e9add7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL meowpow-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl
Size 1.1 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
2a8fadcfe9e0ac054f1793344d4e0bd3ed6626ccbe8c2a96a490deada2b5507e
BLAKE2b-256 checksum
How to use checksums
48aee35bc403c5a6ffcffabce440fdf0a1fd044edbb078785b6f4c90b5931d65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL meowpow-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 39.1 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a7bce12bbcc0a82fec95b24637611ca0cc515acc4ae1610285f2e0af2626bd2b
BLAKE2b-256 checksum
How to use checksums
909cd364d301c2389c0e9edf41728ae387acec411f882c2765ef3c89d393d6f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL meowpow-0.5.2-cp312-cp312-macosx_11_0_arm64.whl
Size 23.7 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2dce51245cab57539fb8ff7c29ee745858cb6d0ee2f9e3256f606a7958c8db3c
BLAKE2b-256 checksum
How to use checksums
6e62267e7ed3b9cb5e863946194b0f38e3d2617d0fd43719ff19e6fcaa1c0f08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp311-cp311-win_amd64.whl

Download URL meowpow-0.5.2-cp311-cp311-win_amd64.whl
Size 26.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
08166ef510b042b77119d1dc9c867846177029672350758d978d68313fe87265
BLAKE2b-256 checksum
How to use checksums
1299054cf2c8f1082dc2ad8259d611df8d72ab6e0a859d98e5c5d44d4e6d28b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL meowpow-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl
Size 1.1 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
f4a9989bb35f7e8183534f68748e46aaeb69db4939819cb0cec29b405367b127
BLAKE2b-256 checksum
How to use checksums
2cb1b53c4be2187ad5be92a03c8f4a138fa807f1ee6e503d382138a1700598c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL meowpow-0.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 38.9 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
737308c7e049c2d318ff43904078a935103902e1d69ea3b4e90a27cc770b69a2
BLAKE2b-256 checksum
How to use checksums
c075c57a328d2fa8ba72435255e9b2819d8a7d17797f48e65319f43b89cf66e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL meowpow-0.5.2-cp311-cp311-macosx_11_0_arm64.whl
Size 23.7 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
39be573a9048f5df49a3475b50caf94b17995c242bc6b117b99f3eae7a371edc
BLAKE2b-256 checksum
How to use checksums
7214086ff5fca5313d2edfd5f5ff5055dc773c75cf0371e58994820397ba5ce8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp310-cp310-win_amd64.whl

Download URL meowpow-0.5.2-cp310-cp310-win_amd64.whl
Size 26.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
12e32e4cac249091db5adfcd23d49e7b078937dead3cc96085c0c12d12a8a6d4
BLAKE2b-256 checksum
How to use checksums
0bc77a6f1e093e158ffe279146a7e0d91eea341e3d7c96a2b80259874c991d72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL meowpow-0.5.2-cp310-cp310-musllinux_1_2_x86_64.whl
Size 1.1 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
81b904c5f9b214b9fd934b1728631f91858f72daef7dddac027412ba5129fd4b
BLAKE2b-256 checksum
How to use checksums
c8ce338aac1a5930377e7d57e60093dc2b6513c73ae46a00693a1413e3a54ce3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL meowpow-0.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 38.9 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4830530f5a320ed12ebdb41edfb8672212d2ae41812453c84dc9e37a5885d4a1
BLAKE2b-256 checksum
How to use checksums
96e370c9b3278aa8a42b1d4d2ec9e8b5695e57ecdfda4a3a0dc65608621d3da9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / meowpow-0.5.2-cp310-cp310-macosx_11_0_arm64.whl

Download URL meowpow-0.5.2-cp310-cp310-macosx_11_0_arm64.whl
Size 23.7 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
820a77a139adc08b0b0ac58d6a594bd4630ffd870fb19fbab9cbf5dfb8531506
BLAKE2b-256 checksum
How to use checksums
3b2525be7ce7cb931ddfa04ae1d67aece854f3b75e7d42b9c3a91b41cd173f17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Security for meowpow 0.5.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.5.2 This release

17 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page