Skip to main content

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

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meowpow-0.5.2.tar.gz (45.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

meowpow-0.5.2-cp313-cp313-win_amd64.whl (26.0 kB view details)

Uploaded CPython 3.13Windows x86-64

meowpow-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

meowpow-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (39.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

meowpow-0.5.2-cp313-cp313-macosx_11_0_arm64.whl (23.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

meowpow-0.5.2-cp312-cp312-win_amd64.whl (26.0 kB view details)

Uploaded CPython 3.12Windows x86-64

meowpow-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

meowpow-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (39.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

meowpow-0.5.2-cp312-cp312-macosx_11_0_arm64.whl (23.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

meowpow-0.5.2-cp311-cp311-win_amd64.whl (26.0 kB view details)

Uploaded CPython 3.11Windows x86-64

meowpow-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

meowpow-0.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (38.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

meowpow-0.5.2-cp311-cp311-macosx_11_0_arm64.whl (23.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

meowpow-0.5.2-cp310-cp310-win_amd64.whl (26.0 kB view details)

Uploaded CPython 3.10Windows x86-64

meowpow-0.5.2-cp310-cp310-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

meowpow-0.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (38.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

meowpow-0.5.2-cp310-cp310-macosx_11_0_arm64.whl (23.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Hashes for meowpow-0.5.2.tar.gz
Algorithm Hash digest
SHA256 6e22df01d1f57b84de4649b84df55d00d5365b24f375a02577b14030b2a2b9f4
MD5 1aaddaf2ee5db54ca9b3658422c4c9b3
BLAKE2b-256 0125008e2eba4068eb58ba4920e8d29670d8fc40ce0f6a06e06baebf4c824f20

See more details on using hashes here.

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

Hashes for meowpow-0.5.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 87b02bc2647c520bae983ced48a18af5b0c2e38f4a01829d7213d770466e2b14
MD5 139960adaa4bbf0af3fa8a9059a78cf1
BLAKE2b-256 64ff3b290738fc639b0d32166bcf919e0800898b592e043912b5922baab9aca3

See more details on using hashes here.

File details

Details for the file meowpow-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for meowpow-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 aa04246b936838d1cfe91c6901d91916658fed5da0f811bef700124130edab35
MD5 861711ac3c57070b06e3fde157585e0f
BLAKE2b-256 bcc878ea794b7ade281f13d2ed7fb8ce37f1b56869dbcbbf47019ce45ac5714f

See more details on using hashes here.

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

File hashes

Hashes for meowpow-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f65464bee0feee56b738e21c7e59f8f1ad9f0bcaf38de95f640c0181d6df8670
MD5 081e32e108c5c762b20d7eac0f71c2cd
BLAKE2b-256 1aa7cde4e6fc64fa06a24aa24f58e5229e65c7ecb89ccbad04f7b4415d47802b

See more details on using hashes here.

File details

Details for the file meowpow-0.5.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for meowpow-0.5.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5790e2d428153b902b3e8d3619a1bd988a984874b1bfb6de2f670a984266420d
MD5 ccce06b297a64b719ba6eaa23cf76c93
BLAKE2b-256 14171db5d920f2e8619c22454ccfbf0dc81496c88ec2ca7c85124785a41fedce

See more details on using hashes here.

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

Hashes for meowpow-0.5.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 83788afa570ee75f98b02060ee68949445e25c38b5a40a277eba512db2175be6
MD5 08cf6aaf485823abcf5f8816c1f06baa
BLAKE2b-256 80b30594f215c8372b91fa58961d634ec943d3fdb975e3ecb476bc25e1e9add7

See more details on using hashes here.

File details

Details for the file meowpow-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for meowpow-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2a8fadcfe9e0ac054f1793344d4e0bd3ed6626ccbe8c2a96a490deada2b5507e
MD5 82d1fefb5335780d856460d00b5d21c2
BLAKE2b-256 48aee35bc403c5a6ffcffabce440fdf0a1fd044edbb078785b6f4c90b5931d65

See more details on using hashes here.

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

File hashes

Hashes for meowpow-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7bce12bbcc0a82fec95b24637611ca0cc515acc4ae1610285f2e0af2626bd2b
MD5 180a6e0f06ce546dc7b886b4f5fb80a7
BLAKE2b-256 909cd364d301c2389c0e9edf41728ae387acec411f882c2765ef3c89d393d6f7

See more details on using hashes here.

File details

Details for the file meowpow-0.5.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for meowpow-0.5.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2dce51245cab57539fb8ff7c29ee745858cb6d0ee2f9e3256f606a7958c8db3c
MD5 58a76733a7ce795676c0c05b462577c5
BLAKE2b-256 6e62267e7ed3b9cb5e863946194b0f38e3d2617d0fd43719ff19e6fcaa1c0f08

See more details on using hashes here.

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

Hashes for meowpow-0.5.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 08166ef510b042b77119d1dc9c867846177029672350758d978d68313fe87265
MD5 c576f382b118170b8ad8e9bf50e9f1ad
BLAKE2b-256 1299054cf2c8f1082dc2ad8259d611df8d72ab6e0a859d98e5c5d44d4e6d28b2

See more details on using hashes here.

File details

Details for the file meowpow-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for meowpow-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f4a9989bb35f7e8183534f68748e46aaeb69db4939819cb0cec29b405367b127
MD5 2aa8c2c8bcb8005decce4fc43e53e25a
BLAKE2b-256 2cb1b53c4be2187ad5be92a03c8f4a138fa807f1ee6e503d382138a1700598c6

See more details on using hashes here.

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

File hashes

Hashes for meowpow-0.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 737308c7e049c2d318ff43904078a935103902e1d69ea3b4e90a27cc770b69a2
MD5 c1399ca18ac3257147f2adc240335426
BLAKE2b-256 c075c57a328d2fa8ba72435255e9b2819d8a7d17797f48e65319f43b89cf66e5

See more details on using hashes here.

File details

Details for the file meowpow-0.5.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for meowpow-0.5.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 39be573a9048f5df49a3475b50caf94b17995c242bc6b117b99f3eae7a371edc
MD5 5f1cc18ec4b3d3203acd4f150d3960e2
BLAKE2b-256 7214086ff5fca5313d2edfd5f5ff5055dc773c75cf0371e58994820397ba5ce8

See more details on using hashes here.

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

Hashes for meowpow-0.5.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 12e32e4cac249091db5adfcd23d49e7b078937dead3cc96085c0c12d12a8a6d4
MD5 18379903c2e3d8450a119188587d0667
BLAKE2b-256 0bc77a6f1e093e158ffe279146a7e0d91eea341e3d7c96a2b80259874c991d72

See more details on using hashes here.

File details

Details for the file meowpow-0.5.2-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for meowpow-0.5.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 81b904c5f9b214b9fd934b1728631f91858f72daef7dddac027412ba5129fd4b
MD5 b5ff2f9a9ea11acf24e7d84d9fd6d43c
BLAKE2b-256 c8ce338aac1a5930377e7d57e60093dc2b6513c73ae46a00693a1413e3a54ce3

See more details on using hashes here.

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

File hashes

Hashes for meowpow-0.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4830530f5a320ed12ebdb41edfb8672212d2ae41812453c84dc9e37a5885d4a1
MD5 0fa10b092c86ae3b13ab2eacfcf51f0e
BLAKE2b-256 96e370c9b3278aa8a42b1d4d2ec9e8b5695e57ecdfda4a3a0dc65608621d3da9

See more details on using hashes here.

File details

Details for the file meowpow-0.5.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for meowpow-0.5.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 820a77a139adc08b0b0ac58d6a594bd4630ffd870fb19fbab9cbf5dfb8531506
MD5 3e494f548e45816f3e10fcb69eb2df79
BLAKE2b-256 3b2525be7ce7cb931ddfa04ae1d67aece854f3b75e7d42b9c3a91b41cd173f17

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page