Skip to content

bip375: import DLEQ from BIP-374 instead of vendoring - #2309

Open
jonatack wants to merge 1 commit into
bitcoin:masterfrom
jonatack:2026-09-bip375-import-DLEQ-from-BIP374-instead-of-vendoring
Open

jonatack wants to merge 1 commit into
bitcoin:masterfrom
jonatack:2026-09-bip375-import-DLEQ-from-BIP374-instead-of-vendoring

Conversation

@jonatack

@jonatack jonatack commented Sep 25, 2026 •

Copy link
Copy Markdown
Member

bip-0375/deps/dleq.py copied dleq_* functions from bip-0374/reference.py and could go out of sync (#2262, #2304). Replace with a loader so the validator uses bip-0374/reference.py.

To run the tests:

python bip-0375/test_runner.py

@jonatack

Copy link
Copy Markdown
Member Author

cc BIP authors @andrewtoth, @achow101, @josibake for feedback

bip-0375/deps/dleq.py was a copy of bip-0374/reference.py
and could go out of sync. Replace the copy with a loader so
the validator always uses the current BIP-374 reference.py.
@jonatack
jonatack force-pushed the 2026-09-bip375-import-DLEQ-from-BIP374-instead-of-vendoring branch from 7a95e2a to 503119d Compare September 27, 2026 17:59
@jonatack

Copy link
Copy Markdown
Member Author

Rebased following merge of #2286.

@macgyver13

Copy link
Copy Markdown
Contributor

tACK 503119d

@fametrano

Copy link
Copy Markdown
Contributor

I suggest also dropping bip-0375/deps/secp256k1lab in this PR, with its README entry, and pointing its path in test_runner.py to bip-0374/secp256k1lab/src. I tried this locally and the 43 tests pass. The path change is needed: with the copy dropped and the path unchanged, importing validator.inputs before deps.dleq fails with ModuleNotFoundError: No module named 'secp256k1lab'.

At 503119d that copy is no longer used. deps/dleq.py loads bip-0374/reference.py, which puts bip-0374/secp256k1lab/src at the front of sys.path. This happens before the validator's first secp256k1lab import. So the validator already runs on BIP-374's copy, as python3 -v bip-0375/test_runner.py shows. The tests pass either way because the two copies are identical today. If they drift apart, no test will notice, and the README will still list the unused copy as a dependency.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants