Skip to main content

Bloom cascade

To install, run:

pip install bloom_cascade

To use it, first import it like this:

from bloom_cascade import Cascade

Creating a cascade

Example of building a cascade:

cascade = Cascade()
R = set()
S = set()

for i in range(100):
    R.add(str(i))

for i in range(100,400):
    S.add(str(i))
  
cascade.build_cascade_blob(R, S) 

Recreate a cascade from BLOB data

An example retriving a bloom cascade from a blob transaction on Holesky testnet, using the blobscan API:

import requests
import json
import hexbytes
from bloom_cascade import Cascade

clean_tx = '0x8fd37f5db4ab0e4c0b8dad166842d0ac7c3aeb86303a3bce3d5b19656dd65c2c'

tx_url = f"https://api.holesky.blobscan.com/transactions/{clean_tx}"
        
print(f" Requesting: {tx_url}")

# Get transaction details
response = requests.get(tx_url)

if response.status_code != 200:
    print(f" Transaction not found: HTTP {response.status_code}")
    print(f"Response: {response.text}")

tx_data = response.json()

print(f" Transaction found: {tx_data.get('hash', 'Unknown')}")
print(f" Block: {tx_data.get('blockNumber', 'Unknown')}")

if not tx_data.get('blobs'):
    print(" No blob versioned hashes found in transaction")


blob_hash = tx_data['blobs'][0]['versionedHash']
print(f" Found {len(blob_hash)} blob hash(es): {blob_hash}")

blobs_url = f"https://api.holesky.blobscan.com/blobs/{blob_hash}/data"
blobs_response = requests.get(blobs_url)

if blobs_response.status_code != 200:
    print(f" Could not retrieve blobs: HTTP {blobs_response.status_code}")


blobs_data = blobs_response.json()
blobs_data_bytes = bytes.fromhex(blobs_data[2:])



csd = Cascade()
# USE THE DEDICATED FUNCTION FOR PROCCESING BLOBS
csd.deserialize_cascade_blob(blobs_data_bytes)

for i in range(100):
    if csd.is_revoked(str(i)):
        print('d'+ str(i))

for i in range(100,200):
    if not csd.is_revoked(str(i)):
        print('R' + str(i))

Metadata

Release files for bloom-cascade 1.0.5

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

Source distribution (sdist)

Source distribution for bloom-cascade 1.0.5
File Size Uploaded
bloom_cascade-1.0.5.tar.gz 4.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bloom-cascade 1.0.5
File Interpreter ABI Platform
bloom_cascade-1.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 8.9 kB

Release files / bloom_cascade-1.0.5.tar.gz

Download URL bloom_cascade-1.0.5.tar.gz
Size 4.3 kB
Tags Source
SHA-256 checksum
How to use checksums
8e633f8c6b1fa976afc2b2758303f87fd117fdc7fc5e659c300520bb8650bfed
BLAKE2b-256 checksum
How to use checksums
c51185b328f8e82dd93734f69b4b76981533abb0146cf0b76e37542215895946
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bloom_cascade-1.0.5-py3-none-any.whl

Download URL bloom_cascade-1.0.5-py3-none-any.whl
Size 4.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6a5c27bc28729dd6baba0666b76c7492aaed51036da1995ad410fb37d48225f0
BLAKE2b-256 checksum
How to use checksums
e6eb75a46a93fcfde309f79ecac1d2580c55c77a701cc83731299e1620b217b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

1.0.5 This release

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

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