C/C++ implementation of Meowpow - the Meowcoin Proof of Work algorithm
Project description
Meowpow
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.
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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file meowpow-0.5.2.tar.gz.
File metadata
- Download URL: meowpow-0.5.2.tar.gz
- Upload date:
- Size: 45.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e22df01d1f57b84de4649b84df55d00d5365b24f375a02577b14030b2a2b9f4
|
|
| MD5 |
1aaddaf2ee5db54ca9b3658422c4c9b3
|
|
| BLAKE2b-256 |
0125008e2eba4068eb58ba4920e8d29670d8fc40ce0f6a06e06baebf4c824f20
|
File details
Details for the file meowpow-0.5.2-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 26.0 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87b02bc2647c520bae983ced48a18af5b0c2e38f4a01829d7213d770466e2b14
|
|
| MD5 |
139960adaa4bbf0af3fa8a9059a78cf1
|
|
| BLAKE2b-256 |
64ff3b290738fc639b0d32166bcf919e0800898b592e043912b5922baab9aca3
|
File details
Details for the file meowpow-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa04246b936838d1cfe91c6901d91916658fed5da0f811bef700124130edab35
|
|
| MD5 |
861711ac3c57070b06e3fde157585e0f
|
|
| BLAKE2b-256 |
bcc878ea794b7ade281f13d2ed7fb8ce37f1b56869dbcbbf47019ce45ac5714f
|
File details
Details for the file meowpow-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 39.1 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f65464bee0feee56b738e21c7e59f8f1ad9f0bcaf38de95f640c0181d6df8670
|
|
| MD5 |
081e32e108c5c762b20d7eac0f71c2cd
|
|
| BLAKE2b-256 |
1aa7cde4e6fc64fa06a24aa24f58e5229e65c7ecb89ccbad04f7b4415d47802b
|
File details
Details for the file meowpow-0.5.2-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 23.7 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5790e2d428153b902b3e8d3619a1bd988a984874b1bfb6de2f670a984266420d
|
|
| MD5 |
ccce06b297a64b719ba6eaa23cf76c93
|
|
| BLAKE2b-256 |
14171db5d920f2e8619c22454ccfbf0dc81496c88ec2ca7c85124785a41fedce
|
File details
Details for the file meowpow-0.5.2-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 26.0 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83788afa570ee75f98b02060ee68949445e25c38b5a40a277eba512db2175be6
|
|
| MD5 |
08cf6aaf485823abcf5f8816c1f06baa
|
|
| BLAKE2b-256 |
80b30594f215c8372b91fa58961d634ec943d3fdb975e3ecb476bc25e1e9add7
|
File details
Details for the file meowpow-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a8fadcfe9e0ac054f1793344d4e0bd3ed6626ccbe8c2a96a490deada2b5507e
|
|
| MD5 |
82d1fefb5335780d856460d00b5d21c2
|
|
| BLAKE2b-256 |
48aee35bc403c5a6ffcffabce440fdf0a1fd044edbb078785b6f4c90b5931d65
|
File details
Details for the file meowpow-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 39.1 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a7bce12bbcc0a82fec95b24637611ca0cc515acc4ae1610285f2e0af2626bd2b
|
|
| MD5 |
180a6e0f06ce546dc7b886b4f5fb80a7
|
|
| BLAKE2b-256 |
909cd364d301c2389c0e9edf41728ae387acec411f882c2765ef3c89d393d6f7
|
File details
Details for the file meowpow-0.5.2-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 23.7 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2dce51245cab57539fb8ff7c29ee745858cb6d0ee2f9e3256f606a7958c8db3c
|
|
| MD5 |
58a76733a7ce795676c0c05b462577c5
|
|
| BLAKE2b-256 |
6e62267e7ed3b9cb5e863946194b0f38e3d2617d0fd43719ff19e6fcaa1c0f08
|
File details
Details for the file meowpow-0.5.2-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 26.0 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08166ef510b042b77119d1dc9c867846177029672350758d978d68313fe87265
|
|
| MD5 |
c576f382b118170b8ad8e9bf50e9f1ad
|
|
| BLAKE2b-256 |
1299054cf2c8f1082dc2ad8259d611df8d72ab6e0a859d98e5c5d44d4e6d28b2
|
File details
Details for the file meowpow-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4a9989bb35f7e8183534f68748e46aaeb69db4939819cb0cec29b405367b127
|
|
| MD5 |
2aa8c2c8bcb8005decce4fc43e53e25a
|
|
| BLAKE2b-256 |
2cb1b53c4be2187ad5be92a03c8f4a138fa807f1ee6e503d382138a1700598c6
|
File details
Details for the file meowpow-0.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 38.9 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
737308c7e049c2d318ff43904078a935103902e1d69ea3b4e90a27cc770b69a2
|
|
| MD5 |
c1399ca18ac3257147f2adc240335426
|
|
| BLAKE2b-256 |
c075c57a328d2fa8ba72435255e9b2819d8a7d17797f48e65319f43b89cf66e5
|
File details
Details for the file meowpow-0.5.2-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 23.7 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39be573a9048f5df49a3475b50caf94b17995c242bc6b117b99f3eae7a371edc
|
|
| MD5 |
5f1cc18ec4b3d3203acd4f150d3960e2
|
|
| BLAKE2b-256 |
7214086ff5fca5313d2edfd5f5ff5055dc773c75cf0371e58994820397ba5ce8
|
File details
Details for the file meowpow-0.5.2-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 26.0 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12e32e4cac249091db5adfcd23d49e7b078937dead3cc96085c0c12d12a8a6d4
|
|
| MD5 |
18379903c2e3d8450a119188587d0667
|
|
| BLAKE2b-256 |
0bc77a6f1e093e158ffe279146a7e0d91eea341e3d7c96a2b80259874c991d72
|
File details
Details for the file meowpow-0.5.2-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81b904c5f9b214b9fd934b1728631f91858f72daef7dddac027412ba5129fd4b
|
|
| MD5 |
b5ff2f9a9ea11acf24e7d84d9fd6d43c
|
|
| BLAKE2b-256 |
c8ce338aac1a5930377e7d57e60093dc2b6513c73ae46a00693a1413e3a54ce3
|
File details
Details for the file meowpow-0.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 38.9 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4830530f5a320ed12ebdb41edfb8672212d2ae41812453c84dc9e37a5885d4a1
|
|
| MD5 |
0fa10b092c86ae3b13ab2eacfcf51f0e
|
|
| BLAKE2b-256 |
96e370c9b3278aa8a42b1d4d2ec9e8b5695e57ecdfda4a3a0dc65608621d3da9
|
File details
Details for the file meowpow-0.5.2-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: meowpow-0.5.2-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 23.7 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
820a77a139adc08b0b0ac58d6a594bd4630ffd870fb19fbab9cbf5dfb8531506
|
|
| MD5 |
3e494f548e45816f3e10fcb69eb2df79
|
|
| BLAKE2b-256 |
3b2525be7ce7cb931ddfa04ae1d67aece854f3b75e7d42b9c3a91b41cd173f17
|