v2.1.1 — BRC-100 Stable + Chronicle Network Upgrade + Python 3.13
·
13 commits
to master
since this release
Immutable
release. Only release title and notes can be modified.
v2.1.1 — BRC-100 Stable + Chronicle Network Upgrade + Python 3.13
This release graduates the BRC-100 Wallet Protocol implementation from beta to stable, adds full support for the BSV Chronicle network upgrade, and modernizes the project's dependency management.
Highlights
🏗️ BRC-100 Wallet Protocol (Stable)
- Graduated from beta (2.0.0b1) — no breaking changes
- Complete Wallet infrastructure with serializers, substrates, and implementations
- Authentication system: peer auth, certificates, session management, HTTP transport
- Enhanced BEEF builder, serializer, and validator
- Script interpreter with comprehensive opcode support
- Overlay tools: lookup resolver, SHIP broadcaster, historian, host reputation tracker
- Registry client, identity client, headers client, keystore
- Additional cryptographic primitives: Schnorr signatures, DRBG, AES-GCM
- TOTP, BIP-276, PushDrop token protocol, Teranode broadcaster
🔗 Chronicle Network Upgrade
- 10 restored opcodes:
OP_VER,OP_VERIF,OP_VERNOTIF,OP_2MUL,OP_2DIV,OP_SUBSTR,OP_LEFT,OP_RIGHT,OP_LSHIFTNUM,OP_RSHIFTNUM SIGHASH_CHRONICLE(0x20) with OTDA (Original Transaction Digest Algorithm) preimage supportMAX_SCRIPT_NUMBER_LENGTHincreased from 750 KB to 32 MB- Malleability relaxation for transaction version > 1
- 250+ mock tests and 98 live testnet broadcast tests
🐍 Python Support
- Added Python 3.13 support — verified with 5,413 tests
- Dropped Python 3.9 — minimum is now Python 3.10
📦 Dependency Management Overhaul
- Consolidated to
pyproject.tomlas single source of truth (PEP 621) - Deleted
setup.cfgandrequirements.txt - Added
uv.lockfor reproducible dependency pinning
Updated Dependencies
Package | From | To -- | -- | -- coincurve | 20.0.0 | 21.0.0 pycryptodomex | 3.21.0 | 3.23.0 aiohttp | 3.12.14 | 3.13.5 requests | 2.32.3 | 2.34.2 pytest | 8.3.4 | 9.0.3 pytest-asyncio | 0.24.0 | 1.3.0 cryptography | 42.0.0 | 48.0.0Bug Fixes
BroadcastResponseisinstance mismatch between old and new import pathsOP_INVERT: corrected~btob ^ 0xFFfor proper bitwise NOT- Removed
ecdsadependency (unused, had unfixed Minerva timing vulnerability) - Added missing
typing_extensionsto declared dependencies - Fixed version mismatch in
bsv/__init__.py
Installation
pip install bsv-sdk==2.1.1
Full Changelog: v2.0.0b1...v2.1.1