Skip to content

Latest commit

 

History

History
418 lines (395 loc) · 27.5 KB

release-notes-1.9.0.md

File metadata and controls

418 lines (395 loc) · 27.5 KB

Release Notes for BCH Unlimited 1.9.0

BCH Unlimited version 1.9.0 is now available from:

https://bitcoinunlimited.info/download

Please report bugs using the issue tracker at github:

https://github.com/BitcoinUnlimited/BitcoinUnlimited/issues

This is a major release of BCH Unlimited compatible with the upcoming protocol upgrade of the Bitcoin Cash network. You could find Nov 15th, 2020 upgrade specifications here:

The following is a list of the previous network upgrades specifications:

Upgrading

If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux).

Main Changes in 1.9.0

This is list of the main changes that have been merged in this release:

  • ASERT: new difficulty adjustment algorithm
  • DSProof: Double spend Proof
  • libsecp256k1 update
  • Benchmark suites update
  • QA test improvements
  • Improve code base parallelism
  • Bundled with ElectrsCash new version 2.0.0
  • Xversion upgrade

Commit details

  • e03d523c7 Bump version of BCHUnlimited to 1.9 (Andrea Suisani)
  • 5a38ab366 Fix MAX_STANDARD_TX_WEIGHT check (Johnson Lau)
  • be4e4329d a few small extra checks: make sure pskip is not nullptr, and be explicit about the uint16 to uint64 type promotion rather than relying on the compiler's implicit rules (Andrew Stone)
  • 371c542ae Update the user facing name for the miningForkTime tweak (Andrea Suisani)
  • cf6c258e4 change frac from auto to uint16_t just for clarity. (Griffith)
  • abb3d9ee5 add asert spec to docs folder (Griffith)
  • 210de0257 port additional asert c++ tests and fix formatting (Griffith)
  • cc8e2504b port ASERT daa c++ test from BCHN (contains minor changes) (Griffith)
  • 17b9b0f06 port ASERT daa from BCHN (contains minor changes) (Griffith)
  • d53a7e29e add nDAAHalfLife to consensus params (Griffith)
  • 5d55cb348 Add more logging to ctor.py (Andrew Stone)
  • 4198bbd33 Add ctorout.txt to the artifacts set for qa testing (Andrea Suisani)
  • 4f62981e1 Save the spend hash rather than the mempool iterator (Peter Tschipper)
  • 4bc1a779b break up nodeps build in CI (Griffith)
  • 2b4ab5bde Correctly remove orphans from the doubleSpendProofStorage (Peter Tschipper)
  • b8fa47688 Add code comments to DoubleSpendProof.cpp/.h (Peter Tschipper)
  • 8f9e7b163 When validating DSP, return Invalid if P2SH is true or GetOp fails (Peter Tschipper)
  • 4c1ffdac8 Remove unused functions firstSpender(), doubleSpender() (Peter Tschipper)
  • 0b791cdc1 Add DbgAssert() in hashTx() (Peter Tschipper)
  • 0103f9129 Update the double-spend-proof-specification (Peter Tschipper)
  • 3abb57535 change creatHash() and make it GetHash() (Peter Tschipper)
  • 3944684da Re-enable the early return if respend is not interesting (Peter Tschipper)
  • 0246f38bb refactor broadcastDSPInv() out of the mempool write lock scope (Peter Tschipper)
  • dcc6b80fb Send a reject message is the dsproof was not found when requested (Peter Tschipper)
  • 44e3d196d Convert assert() statements to DbgAssert() (Peter Tschipper)
  • af1966edb Fix potential assert (Peter Tschipper)
  • 84c8b968e change dsproof to dsproof-beta (Peter Tschipper)
  • 57a471614 Forward dsproofs to SPV peers for descendant txns (Peter Tschipper)
  • 00804e89c Consolidate duplicate code for dsp broadcasting (Peter Tschipper)
  • c108933e7 fix failing test in respenddetector_tests.cpp (Peter Tschipper)
  • 0adefa1a7 fix locking issue (Peter Tschipper)
  • 803c07839 Add tests for doublespend proof orphans (Peter Tschipper)
  • 86ec70ec8 Reintroduce the handling of dsproof orphans (Peter Tschipper)
  • 4d2fa151f Use a multi input transaction for testing dsproof (Peter Tschipper)
  • 000e4ccfc Add Log message when broadcasting INV for dsproof (Peter Tschipper)
  • 9a9a3cdb8 Remove last check for missing signature (Peter Tschipper)
  • 94e713995 Add check for identical transactions (Peter Tschipper)
  • 2a4c4a60b Add test for order of transactions in dsproof (Peter Tschipper)
  • 0a2bab0b6 Unit tests for DoubleSpend proofs (Peter Tschipper)
  • 35a458aa2 Add DSPROOF to the allNetMessageType array (Peter Tschipper)
  • 566b9f6dc Clean up the requesting of a dsproof via and INV message (Peter Tschipper)
  • 8980eddc4 Remove relaying of double spent transactions (Peter Tschipper)
  • 038147e97 Only print out log messages if DSPROOF is enalbed (Peter Tschipper)
  • b3d3cbc53 Fix Resend Relayer test (Peter Tschipper)
  • 48091facc Remove the old dsproof broadcasting code (Peter Tschipper)
  • 8a6454a40 Broadcast the dbouble spend from within the respendrelayer trigger (Peter Tschipper)
  • 78baf3c54 change message name from dsproof-beta to dsproof (Peter Tschipper)
  • 8c6a45577 fix getlogcategories.py (Peter Tschipper)
  • f164d51fc Fix various complile wanrnings (Peter Tschipper)
  • c1420c9ec Add doublespend cpp/h files to .formatted-files (Peter Tschipper)
  • cb40a023b fix compile issue for some platforms (Peter Tschipper)
  • 974825702 Fix a host of rebase issues and formatting issues (Peter Tschipper)
  • 524f45c07 Add some more comments and sanity checks (TomZ)
  • 4d8cb8825 Nicely initialize the variable every loop (TomZ)
  • c9e450390 Import DSP spec from gitlab.com/snippets/1883331 (TomZ)
  • 28ab94520 Import DoubleSpendProof support (TomZ)
  • e3c734c96 clean up how we use python Proc, add a notice to compact_blocks2 that an exception is expected. (Andrew Stone)
  • 65abd5b8e Make sure to remove an item when there are no longer any sources (Peter Tschipper)
  • 877c8895b Add a null check for CNode* when sending priority messages (Peter Tschipper)
  • 222da9f7e Change the isValid description in the validaterawtransaction help text (Peter Tschipper)
  • 0ad088092 adjust locking in pval to avoid cs_main being held thru delay loop (Andrew Stone)
  • 93765a87b fix a few timing issues in mempool_push that cause rare failures (Andrew Stone)
  • 3bacbb6ab treat too deep unconf chain tx as orphans (Andrew Stone)
  • 48e4193c3 Avoid deleting core files after inspection, mving it in a different path (Andrea Suisani)
  • af323b634 Remove useless gdb command from coreanalysis.gdb (Andrea Suisani)
  • 3c808fe30 Add info proc and info proc cmdline to the list of command executed by gdb (Andrea Suisani)
  • 1d4b1f622 Add bitcoind and cores to qa artifacts in case of failure (Andrea Suisani)
  • bac1dd08a Print the core file name before trying to extract info from it (Andrea Suisani)
  • fd3dc175a Use a catch-all exception when it comes to core dump analysis (Andrea Suisani)
  • 93fff3770 Add missing gdb package in case we need to analyze core dump (Andrea Suisani)
  • 62cb10a3a Increase DELAY_TIME in mempool_push.py (Andrea Suisani)
  • 63e3de960 Create the temporary folder where to store eventual core dump (Andrea Suisani)
  • 9c70cb410 Timeout individual tests after 20 minutes also when in gitlab CI (Andrea Suisani)
  • 4e87f3a33 update pull-tester rpc test list (Griffith)
  • 97b563b9c remove signchecks_inputs activation test (Griffith)
  • a4de1335b remove signchecks activation py test (Griffith)
  • 98aa733d0 simplify op_reversebytes_activation to op_reversebytes.py (Griffith)
  • 99eac98e7 remove activation for mempool policy. fork has already occurred. (Griffith)
  • 734c06e00 update may activation functions to use IsMay2020Activated (Griffith)
  • 4533ffa51 change may 2020 to block height in chain params, add nov2020 HF MTP (Griffith)
  • 59af25be3 change may 2020 HF variable to use the block height instead of time (Griffith)
  • 09f558410 add nov 2020 HF activation time variable to consensus params (Griffith)
  • 94ae8da66 add new next HF check functions and may HF activated functions (Griffith)
  • e5a55f518 Make thinblock and grapheneblock checks more permissive (Peter Tschipper)
  • 3bb385725 Handle modifications to mempool between hash access and tx access in graphene (Andrew Stone)
  • de8434a6b need to increase timeouts for debug build because mempool check is very slow for large mempools. need to provide the datadir to bitcoin-cli (Andrew Stone)
  • 461878e71 [cashlib] Export 'sign data' (Dagur Valberg Johannsson)
  • 448d4f631 Implement xversion handshake state (Griffith)
  • b558c5157 Always send inventory to SPV peers (Peter Tschipper)
  • de20d9b2e Change xversion key size (Griffith)
  • 3fc311655 upload qa tests as artifact on qa_tests failure (Griffith)
  • 13859fa24 remove old debugging prints (Peter Tschipper)
  • f204fd734 When checking for conflicts in mempool_accept.py use a subprocess (Peter Tschipper)
  • af55941a1 Use sendrawtransaction in mempool_accept.py (Peter Tschipper)
  • 116dd8c56 Serialize AcceptToMemoryPool() (Peter Tschipper)
  • f52c48b8e Add missing stack include (Axel Gembe)
  • 983cbb1c9 [electrum] Allow passing switch params with rawarg (Dagur Valberg Johannsson)
  • d723fb433 [qa] Add tests for blockchain.*.get_first_use (Dagur Valberg Johannsson)
  • 17d29fa2b Fix debug ui -> blockcount and size not updating (Peter Tschipper)
  • 91890c896 remove tag (Peter Tschipper)
  • 74b8585bb Always ensure we have at least one scriptcheck thread running (Peter Tschipper)
  • 5a4de43f3 Use the correct variable name CI_MERGE_REQUEST_IID (Andrea Suisani)
  • b25d36df1 Remove MSG_MEMPOOLSYNC as an inventory message type (Peter Tschipper)
  • 1fd81f61f Split build-debian in two job one for deps and for the actual bitcoind sw (Andrea Suisani)
  • d015961be Add NO_RUST parameter to depends Makefile (Andrea Suisani)
  • 1c905aa29 Activate Repo Lockdown bot on GitHub Legacy repository. (Andrea Suisani)
  • 238408531 [electrum] Introduce electrum.blocknotify (#2233) (dagurval)
  • ed84d5b9f [qa] Add benchmark comparator tool (freetrader)
  • f62f2d4c0 [qa] Multiple client electrum subscription test (Dagur Valberg Johannsson)
  • 9b84890e6 [qa] Convert electrum test to async (Dagur Valberg Johannsson)
  • cf49aaf4e bump cmake version due to linking problem compiling with old versions (#2230) (Andrew Stone)
  • e13a49d39 output confirmations and more accurate time in some RPC calls in some edge conditions (#2225) (Andrew Stone)
  • 5b488ba0b keep unprocessed priority messages, shorten messagehandler sleep (#2224) (Griffith)
  • 6b59ad008 Fix bench_bitcoin command line flags parsing (#2227) (Andrea Suisani)
  • 84b4695df Remove warning about not NUL-terminated string (Andrea Suisani)
  • 06fc6447c Fix shadowing warnings on csv parser (Andrea Suisani)
  • d05f815de Squashed 'src/fast-cpp-csv-parser/' changes from 3b439a6640..327671c577 (Andrea Suisani)
  • bb51d6723 Change xversion to match new spec (#2134) (Griffith)
  • 9cc8dccab Remove reference counting from the requestmanager (#2209) (Peter Tschipper)
  • e9aefddcd Do not shutdown bitcoind if ActivateBestChain() fails on startup (#2211) (Peter Tschipper)
  • 0defe16dc [cashlib] Throw in GetPubKey on invalid argument (Dagur Valberg Johannsson)
  • d341c5208 Add test case for stack mutation (Chris Pacia)
  • a1efff086 Add the ability to launch or kill txAdmissionThreads and msgHandlerThreads (#2200) (Peter Tschipper)
  • bc9c35869 Fix formatting for cashlib/cashlib.cpp (#2220) (Andrea Suisani)
  • 19420749b [cashlib] Handle address type correctly (#2219) (dagurval)
  • d72461a8e Make getblock RPC call works both with block height and block hash (#2205) (Andrea Suisani)
  • b356ba1ff Remove a useless assert() from getblockchainfo() (Andrea Suisani)
  • 67bd407bf [rpc] getblockchaininfo: add size_on_disk, prune_target_size (Daniel Edgecumbe)
  • c7ff1a5c6 Add mainet and testnet checkpoints for May 2020 net upgrade (Andrea Suisani)
  • 73c79c892 add missing defines for Android cashlib based on libssecp256k1 changes (Andrew Stone)
  • cad61c742 have mempool tests use global mempool object not locally created one (Greg-Griffith)
  • 0eb33f062 This will come in handy in a short while for benchmarking new UniValue code changes/optimizations. (Calin Culianu)
  • f4bd47227 update old rpm ius release link (#2215) (Griffith)
  • dce9ab871 Make getblockheader works both with block height and block hash (#2202) (Andrea Suisani)
  • f295dcd5c 4 fix/cleanups (#2199) (Andrew Stone)
  • 583659698 [qa] Electrum tests for blockchain.address.* (#2213) (dagurval)
  • f73a2a9d3 Add a new log category for priority queue messages (#2203) (Peter Tschipper)
  • 3c91b661d bench: Benchmark blockToJSON (Kirill Fomichev)
  • 54a3c9a6c bench: Move generated data to a dedicated translation unit (João Barbosa)
  • eb12dc156 Remove unused includes (Andrea Suisani)
  • 288342cc6 Add src/bench/bench_constants.h to Makefile.bench.include (#2212) (Andrea Suisani)
  • ed175e2a9 bench: Benchmark mempoolToJSON (#2206) (Andrea Suisani)
  • edc2b1389 Disable reconsidermostworkchain during initial bootstrap when chain is not synced (Andrea Suisani)
  • 02b4fc4ee Change txvalidationcache unit tests to work with the new max len chain limit (#2208) (Andrea Suisani)
  • 37645dad5 add modaloverlay.cpp/h to formatted files (Peter Tschipper)
  • c7bd75a22 Use compare_exchange_weak when setting bestBlockHeight (Peter Tschipper)
  • 105b6122c fix format (Peter Tschipper)
  • 285a7db79 Add signal for Header Tip UI update (Peter Tschipper)
  • bee2d4e77 Add code that went missing during the port from Core. (Peter Tschipper)
  • 203da05d5 [Qt] modalinfolayer: removed unused comments, renamed signal, code style overhaul (Jonas Schnelli)
  • 25839fa97 [Qt] only update "amount of blocks left" when the header chain is in-sync (Jonas Schnelli)
  • 242fd66a6 [Qt] add out-of-sync modal info layer (Jonas Schnelli)
  • 9bfade775 [Qt] make Out-Of-Sync warning icon clickable (Jonas Schnelli)
  • eb799d4b6 [Refactor] refactor function that forms human readable text out of a timeoffset (Jonas Schnelli)
  • 0709f4d07 Move ActivateBestChain() into ThreadImport() during startup (#2184) (Peter Tschipper)
  • e67b8c5b6 [giga-net] Concatenate transactions before sending (#1852) (Peter Tschipper)
  • fe38cf34b [Giga-net] Activate XVal for newly mined blocks (#1791) (Peter Tschipper)
  • 9213429e5 Speed up OP_REVERSEBYTES test significantly (tobiasruck)
  • b9ed54231 Error out and exit if unknown command line parameters are used (Andrea Suisani)
  • b7db11c8e trivial: Mark overrides as such. (Daniel Kraft)
  • 7f743ad5c bench: Add block assemble benchmark (MarcoFalke)
  • 05765d9b6 Remove SATOSHI constant from sigcache_tests.cpp (Andrea Suisani)
  • f1cacf162 benchmark: Removed bench/perf.{cpp.h} (Thomas Snider)
  • 3f62aaba9 bench: Move constructors out of mempool_eviction hot loop (MarcoFalke)
  • ea3e14617 bench/tests: Avoid copies of CTransaction (MarcoFalke)
  • 2405fb6fb Fix missing or inconsistent include guards (practicalswift)
  • b6bc4a612 Add missing bench files to the list of the ones that have to be formatted (Andrea Suisani)
  • a04452116 Fix a memory leak in bench and use C++1 for loop rather than BOOST_FOREACH (Andrea Suisani)
  • eafd104f1 Use PACKAGE_NAME instead of hardcoding application name in log message (Wladimir J. van der Laan)
  • 439a25c86 Log debug build status and warn when running benchmarks (Wladimir J. van der Laan)
  • 7ba49f939 Removed CCheckQueueSpeed benchmark (Martin Ankerl)
  • cc4599f80 Improved microbenchmarking with multiple features. (Martin Ankerl)
  • c7af95c75 Remove deadlock detector variable definition in bench_bitcoin (Andrea Suisani)
  • 499ac76b7 Remove useless include from Example.cpp (Andrea Suisani)
  • 6a265f8c0 Initialize recently introduced non-static class member lastCycles to zero in constructor (practicalswift)
  • 789b4fdea Require a steady clock for bench with at least micro precision (Matt Corallo)
  • 58ede7cd2 bench: prefer a steady clock if the resolution is no worse (Cory Fields)
  • f90ee20e6 bench: switch to std::chrono for time measurements (Cory Fields)
  • 16959e0a1 Remove countMaskInv caching in bench framework (Matt Corallo)
  • 19340bfbd Changing &vec[0] to vec.data() (Andrea Suisani)
  • aba39dd86 Avoid unwanted conversion for the PrevectorJob contructor (Andrea Suisani)
  • 14c4eab45 Avoid static analyzer warnings regarding uninitialized arguments (practicalswift)
  • e9abdbaff Replace boost::function with std::function for bench suite (Andrea Suisani)
  • e8ba4a81e Use FastRandomContext::randrange in src/bench/checkqueue.cpp (Andrea Suisani)
  • 60530c41d Properly initialize random number generator for the unit tests suite (Andrea Suisani)
  • 40ef87874 [bench] Avoid function call arguments which are pointers to uninitialized values (practicalswift)
  • dbc84dbf3 bench: Fix initialization order in registration (Wladimir J. van der Laan)
  • 7d0404964 Assert that what might look like a possible division by zero is actually unreachable (practicalswift)
  • bd59d6a61 Fix a typo in src/bench/perf.cpp (Andrea Suisani)
  • 1fa8b619b Address ryanofsky feedback on CCheckQueue benchmarks. (Jeremy Rubin)
  • 3c978c714 Add Basic CheckQueue Benchmark (Jeremy Rubin)
  • 4f43bf145 Add missing random generator initialization in bench_bitcoin.cpp (Andrea Suisani)
  • 713256fa8 build: Make "make clean" remove all files created when running "make check" (practicalswift)
  • e06d1b467 Bugfix: Correctly replace generated headers and fail cleanly (Luke Dashjr)
  • 7cc5f249b Add microbenchmarks to profile more code paths. (Russell Yanofsky)
  • 491787c6c bench: Add support for measuring CPU cycles (Wladimir J. van der Laan)
  • a7a719130 Add deserialize + CheckBlock benchmarks, and a full block hex (Matt Corallo)
  • feb52902e bench: Added base58 encoding/decoding benchmarks (Yuri Zhykin)
  • bc617fe74 bench: Fix subtle counting issue when rescaling iteration count (Wladimir J. van der Laan)
  • 5ca3c9248 Avoid integer division in the benchmark inner-most loop. (Gregory Maxwell)
  • 0f519a504 Try to send xthin blokcs via expedited only if when needed (Andrea Suisani)
  • f4484ba3f Use trasaction reference in hasNoDependencies mempool method (Andrea Suisani)
  • d82171eed [Doc only] update the xversion spec (#2132) (Griffith)
  • 6a1825bbc [electrum] Add test for .scripthash.unsubscribe (Dagur Valberg Johannsson)
  • 9cc80486f Revert "Pin ElectrsCash to v1.1.1 tag (#2167)" (Andrea Suisani)
  • 24c7c9b47 Use correct type for syncMempoolWithPeers tweak (Andrea Suisani)
  • 298d0881c Removed unused reference to removed tweaks (Andrea Suisani)
  • e08bee049 remove some commented out code for gui alerts (Greg-Griffith)
  • 22ca076de change connection limitation log prints to be more descriptive (Greg-Griffith)
  • b6636e0ff [electrum] Catch http_get error in getelectruminfo (Dagur Valberg Johannsson)
  • b084cf4eb Fixes warning on variable shadowing (Dagur Valberg Johannsson)
  • a46189e96 try to bump file descriptors to requested amount before setting maxconns (Greg-Griffith)
  • c49b589a5 set the maxoutboundconns after maxconns as it depends on it (Greg-Griffith)
  • 400cd73af add missing lot_mutex lock in DeleteCritical method in CLockOrderTracker (Greg-Griffith)
  • ab516bf84 Add regular blocks to the priority queue (Peter Tschipper)
  • cf383f79f Remove duplicate code from TestConservativeBlockValidity() (Peter Tschipper)
  • 449867661 Add bool flag fConservative to TestBlockValidity (Peter Tschipper)
  • bfe022da5 Move TestConservativeBlockValidity into validation.cpp (Peter Tschipper)
  • 69fed501d [SECP256K1] Fix issue where travis does not show the logs (Jonas Nick)
  • c6e94f53b [SECP256K1] Request --enable-experimental for the multiset module (Fabien)
  • b9a4ef081 [SECP256K1] Fix a valgrind issue in multisets (Fabien)
  • e464333f9 Remove secret-dependant non-constant time operation in ecmult_const. (Gregory Maxwell)
  • 04ff1abbf Preventing compiler optimizations in benchmarks without a memory fence (Elichai Turkel)
  • 987738996 README: add a section for test coverage (Marko Bencun)
  • 3979c6ed3 Overhaul README.md (Tim Ruffing)
  • 48279ad90 Convert bench.h to fixed-point math (Wladimir J. van der Laan)
  • dab9ca5ff Add SECURITY.md (Jonas Nick)
  • ea96adf14 Clarify that a secp256k1_ecdh_hash_function must return 0 or 1 (Tim Ruffing)
  • a0e817337 doc: document the length requirements of output parameter. (Rusty Russell)
  • 4d14cdbf2 variable signing precompute table (djb)
  • 6e370d486 Docstrings (Marko Bencun)
  • 87b2d7160 Increase robustness against UB in secp256k1_scalar_cadd_bit (roconnor-blockstream)
  • 06ea34ef9 Remove mention of ec_privkey_export because it doesn't exist (Jonas Nick)
  • bcf9360ed Remove note about heap allocation in secp256k1_ecmult_odd_multiples_table_storage_var (Jonas Nick)
  • 046f1930b Make no-float policy explicit (Tim Ruffing)
  • b81b98936 JNI: fix use sig array (liuyujun)
  • ddce63353 Avoid calling secp256k1_is_zero when secp256k1_set_b32 fails. (Gregory Maxwell)
  • 911c810db Add a descriptive comment for secp256k1_ecmult_const. (Gregory Maxwell)
  • e9c5af824 secp256k1/src/tests.c: Properly handle sscanf return value (Mustapha Abiola)
  • 9800a4714 Fix typo (practicalswift)
  • 73fc00228 Fix typo in secp256k1_preallocated.h (Jan Xie)
  • 14d7ac520 Make ./configure string consistent (Tim Ruffing)
  • 6de23a816 Fix a nit in the recovery tests (Elichai Turkel)
  • 2bb1c151d typo in comment for secp256k1_ec_pubkey_tweak_mul () (philsmd)
  • 8775aed21 scalar_impl.h: fix includes (Marko Bencun)
  • b1345a2c6 Moved a dereference so the null check will be before the dereferencing (Elichai Turkel)
  • 0a7a55f6e Fix typo in docs for _context_set_illegal_callback (Tim Ruffing)
  • 49069982f [secp256k1] Allow to use external default callbacks (Tim Ruffing)
  • 513503326 [secp256k1] Remove a warning in multiset test (Amaury Séchet)
  • 4b0e48bd6 Add ECMH multiset module to libsecp256k1 (Tomas van der Wansem)
  • 787737ffc [SECP256K1] Fix ability to compile tests without -DVERIFY. (Gregory Maxwell)
  • 078670905 scratch space: use single allocation (Andrew Poelstra)
  • f249faa83 Enable context creation in preallocated memory (Tim Ruffing)
  • b4a1d3148 Make WINDOW_G configurable (Tim Ruffing)
  • 7a7e3fc1e Use trivial algorithm in ecmult_multi if scratch space is small (Jonas Nick)
  • b4ef9a242 Note intention of timing sidechannel freeness. (Gregory Maxwell)
  • 38e5a1885 configure: Use CFLAGS_FOR_BUILD when checking native compiler (Tim Ruffing)
  • b31767625 Respect LDFLAGS and #undef STATIC_PRECOMPUTATION if using basic config (DesWurstes)
  • b3963c12e Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...) (practicalswift)
  • 9b262aae3 Pass scalar by reference in secp256k1_wnaf_const() (Tim Ruffing)
  • d0a8fb83f Avoid implementation-defined and undefined behavior when dealing with sizes (Tim Ruffing)
  • cfee5fb47 Guard memcmp in tests against mixed size inputs. (Gregory Maxwell)
  • 5d5cabdca Use __GNUC_PREREQ for detecting __builtin_expect (Tim Ruffing)
  • 8e4bf0341 Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build (Gregory Maxwell)
  • b99e73c8c Switch x86_64 asm to use "i" instead of "n" for immediate values. (Gregory Maxwell)
  • 41026917f Allow field_10x26_arm.s to compile for ARMv7 architecture (Roman Zeyde)
  • a37c4b0d9 Clear a copied secret key after negation (Seonpyo Kim)
  • 45285e88c Use size_t shifts when computing a size_t (Pieter Wuille)
  • ec8e0c73d Fix integer overflow in ecmult_multi_var when n is large (Jonas Nick)
  • f69ba0b35 Add trivial ecmult_multi algorithm which does not require a scratch space (Jonas Nick)
  • 739354368 Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing. (Gregory Maxwell)
  • fab890597 Summarize build options in configure script (Evan Klitzke)
  • 588fa2825 Portability fix for the configure scripts generated (Pierre Pronchery)
  • b1a92f87b Correct order of libs returned on pkg-config --libs --static libsecp256k1 call. (Phillip Mienk)
  • 01fa0c8c6 Eliminate scratch memory used when generating contexts (Andrew Poelstra)
  • 7c02862ce Optimize secp256k1_fe_normalize_weak calls. (Russell O'Connor)
  • b2e52710e Assorted minor corrections (Russell O'Connor)
  • 2d3bdf82b Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B; (Russell O'Connor)
  • fd9b158da secp256k1_fe_sqrt: Verify that the arguments don't alias. (Russell O'Connor)
  • 850582f1a Make randomization of a non-signing context a noop (Tim Ruffing)
  • 5ff4d3d06 add static context object which has no capabilities (Andrew Poelstra)
  • 3af502fe8 Fix algorithm selection in bench_ecmult (Jonas Nick)
  • 2ed9a0770 Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse (Ben Woosley)
  • 13747a767 improvements to random seed in src/tests.c (Don Viszneki)
  • 462e2b0cf [secp256k1] [ECDH API change] Support custom hash function (Amaury Séchet)
  • c86a8df67 Update secp256k1 README (Antony Zegers)
  • 27030cd4b [SECP256K1] Create a different library when building with JNI (Fabien)
  • 9cb5bc507 [SECP256K1] Build java class files out of tree (Fabien)
  • c15b224b6 [SECP256K1] JNI tests : remove dependency to obsolete DatatypeConverter (Fabien)
  • 96c19b148 [TRIVIAL] Cleanup the JNI test file (Fabien)
  • 97e7b4ee0 [schnorr] Refactor the signature process in reusable component (Amaury Séchet)
  • 954372d1a [secp256k1] add schnorr sign jni binding (sken)
  • b7be9d9dc [secp256k1] refactor nativeECDSABuffer to a more generic name (sken)
  • de3a385dc [secp256k1] add schnorr verify jni binding (sken)
  • 539dfda15 [secp256k1] remove unused byte array (sken)
  • 4fd3b91ef [secp256k1] remove guava dep (sken)
  • 6d955c645 [secp256k1] fix java secp256k1 test (sken)
  • d10db37f6 Allow for running secp256k1 java build/tests out of tree (Fabien)

Credits

Thanks to everyone who directly contributed to this release:

  • Andrea Suisani
  • Andrew Stone
  • Axel Gembe
  • Cory Fields
  • Dagur Valberg Johannsson
  • Greg-Griffith
  • Peter Tschipper
  • TomZ

We have backported an amount of changes from other projects, namely Bitcoin Core, BCHN, BCHD, Flowee and Bitcoin ABC.

Following all the indirect contributors whose work has been imported via the above backports:

  • Amaury Séchet
  • Andrew Poelstra
  • Antony Zegers
  • Ben Woosley
  • Calin Culianu
  • Chris Pacia
  • Daniel Edgecumbe
  • Daniel Kraft
  • DesWurstes
  • djb
  • Don Viszneki
  • Elichai Turkel
  • Evan Klitzke
  • Fabien
  • freetrader
  • Gregory Maxwell
  • Jan Xie
  • Jeremy Rubin
  • João Barbosa
  • Johnson Lau
  • Jonas Nick
  • Jonas Schnelli
  • Kirill Fomichev
  • liuyujun
  • Luke Dashjr
  • MarcoFalke
  • Marko Bencun
  • Martin Ankerl
  • Matt Corallo
  • Mustapha Abiola
  • Phillip Mienk
  • philsmd
  • Pierre Pronchery
  • Pieter Wuille
  • practicalswift
  • roconnor-blockstream
  • Roman Zeyde
  • Russell O'Connor
  • Russell Yanofsky
  • Rusty Russell
  • Seonpyo Kim
  • sken
  • Thomas Snider
  • Tim Ruffing
  • tobiasruck
  • Tomas van der Wansem
  • Wladimir J. van der Laan
  • Yuri Zhykin