Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

Chia BIP158 (wraps C++)

Project description

Chia BIP158

Build PyPI PyPI - Format GitHub

Total alerts Language grade: Python Language grade: C/C++

This implements the compact block filter construction in BIP 158. The code is not used anywhere in the Bitcoin Core code base yet. The next step towards BIP 157 support would be to create an indexing module similar to TxIndex that constructs the basic and extended filters for each validated block.

Install

python3 -m venv venv
. venv/bin/activate
pip3 install .

Run python tests

python3 tests/simple_test.py

Installation steps on a fresh OSX image

Install brew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew install python3  
brew install boost  

At this point the only error is can’t find boost_thread lib

The issue is the homebrew boost ships libboost_thread-mt libs but doesn’t include plain libboost_thread, so clang can’t find it. Interestingly, homebrew boost does have both plain and -mt files for the libboost_system libraries.

$ find /usr/local/lib/ | grep boost_thread  
libboost_thread-mt.a  
libboost_thread-mt.dylib  

Solution, with no guarantees that this is "the Right Way to do things", but appears to work fine for the configure stage:

cd /usr/local/lib  
ln -s libboost_thread-mt.a libboost_thread.a  
ln -s libboost_thread-mt.dylib libboost_thread.dylib  

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 to download pybind11. Building is then managed by cibuildwheel. Further installation is then available via pip install chiabip158 e.g.

Contributing and workflow

Contributions are welcome and more details are available in chia-blockchain's CONTRIBUTING.md.

The master branch is usually the currently released latest version on PyPI. Note that at times chiabip158 will be ahead of the release version that chia-blockchain requires in it's master/release version in preparation for a new chia-blockchain release. Please branch or fork master and then create a pull request to the master branch. Linear merging is enforced on master and merging requires a completed review. PRs will kick off a GitHub actions ci build and analysis of chiabip158 at lgtm.com. Please make sure your build is passing and that it does not increase alerts at lgtm.

Project details


Download files

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

Files for chiabip158, version 1.0
Filename, size File type Python version Upload date Hashes
Filename, size chiabip158-1.0-cp37-cp37m-macosx_10_14_x86_64.whl (143.9 kB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size chiabip158-1.0-cp37-cp37m-manylinux2010_i686.whl (2.3 MB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size chiabip158-1.0-cp37-cp37m-manylinux2010_x86_64.whl (2.3 MB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size chiabip158-1.0-cp37-cp37m-manylinux2014_aarch64.whl (2.2 MB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size chiabip158-1.0-cp37-cp37m-win32.whl (79.0 kB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size chiabip158-1.0-cp37-cp37m-win_amd64.whl (88.1 kB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size chiabip158-1.0-cp38-cp38-macosx_10_14_x86_64.whl (144.5 kB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size chiabip158-1.0-cp38-cp38-manylinux2010_i686.whl (2.2 MB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size chiabip158-1.0-cp38-cp38-manylinux2010_x86_64.whl (2.3 MB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size chiabip158-1.0-cp38-cp38-manylinux2014_aarch64.whl (2.1 MB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size chiabip158-1.0-cp38-cp38-win32.whl (78.3 kB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size chiabip158-1.0-cp38-cp38-win_amd64.whl (87.7 kB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size chiabip158-1.0-cp39-cp39-macosx_10_14_x86_64.whl (143.7 kB) File type Wheel Python version cp39 Upload date Hashes View
Filename, size chiabip158-1.0-cp39-cp39-manylinux2010_i686.whl (2.2 MB) File type Wheel Python version cp39 Upload date Hashes View
Filename, size chiabip158-1.0-cp39-cp39-manylinux2010_x86_64.whl (2.3 MB) File type Wheel Python version cp39 Upload date Hashes View
Filename, size chiabip158-1.0-cp39-cp39-manylinux2014_aarch64.whl (2.1 MB) File type Wheel Python version cp39 Upload date Hashes View
Filename, size chiabip158-1.0-cp39-cp39-win32.whl (78.1 kB) File type Wheel Python version cp39 Upload date Hashes View
Filename, size chiabip158-1.0-cp39-cp39-win_amd64.whl (86.8 kB) File type Wheel Python version cp39 Upload date Hashes View
Filename, size chiabip158-1.0.tar.gz (117.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page