Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
fa7934e
script: val64 implementation.
rustyrussell Nov 8, 2024
29cfb7a
script: valtype_stack implementation, script stack wrapper that inter…
jmoik Oct 14, 2025
7843b9f
script: add new tapscript_v2 constants
jmoik Oct 14, 2025
098e51f
script/val64: replace Span with std::span, add OP_MIN and OP_MAX, inl…
jmoik Oct 14, 2025
fda438c
script/interpreter: add TAPROOT_LEAF_TAPSCRIPT_V2 = 0xc2
jmoik Oct 14, 2025
d6a341e
script: add sigversion argument to IsOpSuccess for tapscript_v2 suppo…
jmoik Oct 14, 2025
d8e654f
script: add tapscript_v2 specific ScriptError cases
jmoik Oct 14, 2025
aca0cdf
build: update CMakeLists with valtype_stack and val64
jmoik Oct 14, 2025
64d36ea
validation: add varops_budget to CScriptCheck
jmoik Oct 14, 2025
5e3d38b
script/interpreter: add varops_budget argument to VerifyScript()
jmoik Oct 14, 2025
ffd8967
script/interpreter: add varops_budget argument to VerifyWitnessProgram()
jmoik Oct 14, 2025
df709fc
script/interpreter: add varops_budget argument to ExecuteWitnessScrip…
jmoik Oct 14, 2025
bbb93aa
script/interpreter: add tapscript_v2 stack size limit checks in Execu…
jmoik Oct 14, 2025
e432193
script/interpreter: interpret final onstack value as unsigned in taps…
jmoik Oct 14, 2025
37bbbed
script/interpreter: extend EvalChecksigTapscript() by SigVersion::TAP…
jmoik Oct 14, 2025
dce0bf5
script/interpreter: add SigVersion::TAPSCRIPT_V2 to SignatureHashSchn…
jmoik Oct 14, 2025
5608ba6
script/interpreter: adjust IsOpSuccess() call with sigversion to enab…
jmoik Oct 14, 2025
2de9ae7
script/interpreter: add includes for valtype_stack and val64, add pop…
jmoik Oct 14, 2025
58096a2
script/interpreter: copy EvalScript() and add varops_budget argument,…
jmoik Oct 14, 2025
ddea966
script/interpreter: remove new inquisition opcodes from the copied ta…
jmoik Jan 30, 2026
0b47b89
script/interpreter: remove dead code from the new EvalScript() overlo…
jmoik Oct 14, 2025
0b01f07
script/interpreter: replace nested vector with ValtypeStack type, add…
jmoik Oct 16, 2025
9a3e9ab
script/interpreter: OP_1NEGATE is OP_SUCCESS
jmoik Oct 16, 2025
32c1521
script/interpreter: Tapscript v2: interpret numbers as varnums not CS…
jmoik Oct 17, 2025
7871873
script/interpreter: add varcost to following push operations: OP_TOAL…
jmoik Oct 17, 2025
6b59686
script/interpreter: add varcost and output numbers as varnums not CSc…
jmoik Oct 17, 2025
026c70d
script/interpreter: enable OP_IF and OP_NOTIF for tapscript_v2 and re…
jmoik Oct 17, 2025
6cf0aa3
script/interpreter: use std::rotate instead of double swap for OP_ROT…
jmoik Oct 17, 2025
0c2ed10
script/interpreter: use val64 operations for following opcodes: OP_1A…
jmoik Oct 17, 2025
9d08066
script/interpreter: use val64 operations for following opcodes: OP_AD…
jmoik Oct 17, 2025
a98b849
script/interpreter: OP_RIPEMD160 and OP_SHA1 in tapscript_v2 are defi…
jmoik Oct 17, 2025
ae59379
script/interpreter: add varcost to OP_EQUAL, OP_EQUALVERIFY, OP_CHECK…
jmoik Oct 17, 2025
8e8c041
script/interpreter: restore disabled opcodes in tapscript_v2:
jmoik Oct 17, 2025
84dc5b0
script/interpreter: remove unused variable nOpCount in tapscript_v2
jmoik Oct 17, 2025
fea5886
script/interpreter: update size limits and enforce varops_budget for …
jmoik Oct 17, 2025
3949315
make ECC_Start and ECC_Stop members of KeyPair for compile
jmoik Mar 19, 2025
ff3544d
script/interpreter: fix script result check for tapscript_v2
jmoik Oct 24, 2025
212994b
policy: add MAX_STANDARD_TAPSCRIPT_V2_STACK_ITEM_SIZE
jmoik Oct 24, 2025
13f2f86
script/sign: add TAPROOT_LEAF_TAPSCRIPT_V2 to SignTaprootScript()
jmoik Oct 24, 2025
7110015
script/interpreter: use std::move for OP_TOALTSTACK and OP_FROMALTSTA…
jmoik Oct 24, 2025
3331689
test: simple Val64 class tests. These compare simple values, then ran…
jmoik Oct 28, 2025
f9191c2
benchmarks: add new benchmarks.
jmoik Oct 28, 2025
f5ca7cd
test: add json test vectors for varops costs and restored opcodes, ad…
jmoik Oct 31, 2025
d17b67a
bench: add bench_varops
jmoik Nov 7, 2025
cd713e1
build: update CMakeLists bench and test
jmoik Nov 7, 2025
693ae0b
bench: tidy: emove benchmarks returning script errors
jmoik Nov 21, 2025
bea8ea2
test: gsr_tests: add PrintStackComparison(), expand json with stack m…
jmoik Nov 29, 2025
f979adc
bench: add IsGsrOnly bool and add new worst case bench with 3DUP_RIPE…
jmoik Dec 14, 2025
ecfd171
script: fix function signatures for compilation
jmoik Jan 9, 2026
4fb1880
util: add tapscript_v2 to sigver2str
jmoik Jan 9, 2026
99add38
cmake: remove non existing obfuscation.cpp from CMakeList
jmoik Jan 9, 2026
ab1c4b0
test: add functional tests for tapscript v2
jmoik Jan 12, 2026
8a05914
bench: increase varops budget of BenchEvalScript
jmoik Jan 12, 2026
9ff3542
script and test: add Val64::suppress_alignment_warnings for misalignm…
jmoik Jan 12, 2026
df88a7a
script/val64: replace #if with #ifdef to fix compiler warnings
jmoik Jan 9, 2026
fb96683
script/interpreter: add TAPSCRIPT_V2 path to ExecuteWitnessScript
jmoik Jan 12, 2026
a5e89d8
test: add wallet options to tapscript v2 feature test
jmoik Jan 12, 2026
22c76ca
script/interpreter: fix OP_SUBSTR including incorrect tests
jmoik Jan 16, 2026
832dd5a
build: fix method signature issues after rebasing onto master
jmoik Jan 16, 2026
e3bed65
build: fix CI
jmoik Jan 19, 2026
57e8127
script/interpreter: restore disabled opcodes in tapscript_v2
jmoik Jan 20, 2026
9f9d535
bench/bench_varops: add additional benchmarks for shift ops
jmoik Jan 20, 2026
a30fbf0
script/val64: fix const on pass-by-value parameters
jmoik Jan 21, 2026
d807d26
bench/build: add missing priority levels in benchmarks
jmoik Jan 21, 2026
19f606b
test: fix codeseparator_pos in tapscript_v2 feature test
jmoik Jan 21, 2026
d17bb8e
build: inherit Val64 constructor for derived classes
jmoik Jan 21, 2026
dca3074
bench: add ScriptTemplate constructor for older compiler compatibility
jmoik Jan 22, 2026
e4ea47b
script/interpreter: rename the tapscript_v2 specific overload of Eval…
jmoik Jan 30, 2026
3dd4fda
script/interpreter: tapscript v2: improve OP_TUCK performance with sw…
jmoik Feb 1, 2026
ac56cf4
typos: fix typos in val64.cpp and val64_tests.cpp
jmoik Feb 6, 2026
c775fae
test: mine witness element size tests directly to test consensus limi…
jmoik Feb 20, 2026
8b4bab4
varops: revise cost constants, increase the cost of copying bytes and…
jmoik Feb 20, 2026
a43c8de
bench: replace slowest ops display with worst-case GSR vs existing co…
jmoik Feb 20, 2026
bcd67b1
test: add OP_DIV and OP_MOD test vectors to gsr_tests.json
jmoik Feb 20, 2026
58cc4ee
varops: fix cost to match BIP for CHECKSIGADD, OP_RIGHT, OP_MIN/MAX
jmoik Feb 20, 2026
4c674fd
script: change MAX_TAPSCRIPT_V2_STACK_SIZE from 32'000 to 32'768
jmoik Feb 20, 2026
efb0cc1
test: update OP_MIN/MAX varops_tests.json expected costs from *2 to *4
jmoik Feb 21, 2026
5cd9fb2
test: update stack size limit test to use 32768
jmoik Feb 21, 2026
e9ac9fc
tests: add additional json test vectors for restored opcodes: OP_LSHI…
jmoik Mar 7, 2026
9aa11db
tests: fix desciptions of hash cost in varops test vectors
jmoik Mar 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,8 @@ add_library(bitcoin_consensus STATIC EXCLUDE_FROM_ALL
script/interpreter.cpp
script/script.cpp
script/script_error.cpp
script/valtype_stack.cpp
script/val64.cpp
uint256.cpp
)
target_link_libraries(bitcoin_consensus
Expand Down
18 changes: 18 additions & 0 deletions src/bench/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ add_executable(bench_bitcoin
disconnected_transactions.cpp
duplicate_inputs.cpp
ellswift.cpp
evalscript.cpp
examples.cpp
gcs_filter.cpp
hashpadding.cpp
Expand All @@ -34,6 +35,7 @@ add_executable(bench_bitcoin
mempool_eviction.cpp
mempool_stress.cpp
merkle_root.cpp
micro.cpp
parse_hex.cpp
peer_eviction.cpp
poly1305.cpp
Expand All @@ -48,10 +50,25 @@ add_executable(bench_bitcoin
streams_findbyte.cpp
strencodings.cpp
util_time.cpp
val64.cpp
verify_script.cpp
xor.cpp
)

add_executable(bench_varops
bench_varops.cpp
bench.cpp
nanobench.cpp
)

target_link_libraries(bench_varops
core_interface
test_util
bitcoin_node
secp256k1
Boost::headers
)

include(TargetDataSources)
target_raw_data_sources(bench_bitcoin NAMESPACE benchmark::data
data/block413567.raw
Expand All @@ -61,6 +78,7 @@ target_link_libraries(bench_bitcoin
core_interface
test_util
bitcoin_node
secp256k1
Boost::headers
)

Expand Down
Loading