Hi all! Just a status update:
We’re up to 4 developers publicly testing the C++ implementation now, thanks @cculianu, @bitcoincashautist, and @tom for all of the review and implementation performance testing work you’re doing!
Reviews so far seem to range from, “these limits are conservative enough,” to, “these limits could easily be >100x higher,” – which is great news.
It also looks like one or two additional node implementations will have draft patches by October 1. I think we should coordinate a cross-implementation test upgrade of chipnet
soon – how about October 15th at 12 UTC? (Note: a live testnet can only meaningfully verify ~1/6 of the behaviors and worst-case performance exercised by our test vectors and benchmarks, but sanity-checking activation across implementations is a good idea + testnets are fun.) I’ll mine/maintain the test fork and a public block explorer until after Nov 15.
I just published a cleaned up and trimmed down set of ~36K test vectors and benchmarks, the previous set(s) had grown too large and were getting unwieldy (many GBs of tests) – this set is just over 500MB
and compresses down to less than 15MB
, so it can be committed or submodule
-ed directly into node implementation repos without much bloat. (And diffs for future changes will also be much easier for humans to review and Git to compress.) The test set now includes more ancillary data too:
-
*.[non]standard_limits.json
includes the expected maximum and final operation cost of each test,
-
*.[non]standard_results.json
provides more detailed error explanations (or true
if expected to succeed)
-
*.[non]standard_stats.csv
provides lots of VM metrics for easier statistical analysis in e.g. spreadsheet software:
- Test ID, Description, Transaction Length, UTXOs Length, UTXO Count, Tested Input Index, Density Control Length, Maximum Operation Cost, Operation Cost, Maximum SigChecks, SigChecks, Maximum Hash Digest Iterations, Hash Digest Iterations, Evaluated Instructions, Stack Pushed Bytes, Arithmetic Cost
Next I’ll be working on merging and resolving the open PRs/issues on the CHIP repos:
- Committing test vectors and benchmarks directly to the CHIP repos (now that they’ve been trimmed down),
- A risk assessment that reviews and summarizes each testing/benchmarking methodology and results, and
- Some language clarifications requested by reviews so far.
After that, I’ll cut spec-finalized versions of the CHIPs and start collecting formal stakeholder statements on September 23. Next week:
- I’ll host a written AMA about the CHIPs on Reddit, Telegram, and/or 𝕏 on Wednesday, September 25;
- I’ll be joining @BitcoinCashPodcast at 20 UTC, Thursday, September 26; and
- I’ll be joining General Protocols’ Space on 𝕏 at 16 UTC, Friday September 27.
Thanks everyone!