Update release-notes-4.1.0-rc1.md

This commit is contained in:
therealyingtong 2020-10-28 02:54:01 +08:00
parent 3cdef42bcc
commit d66cabf8c9
1 changed files with 37 additions and 7 deletions

View File

@ -8,18 +8,48 @@ Migration to Clang and static libc++
of Clang, and statically links libc++ instead of dynamically linking libstdc++.
This migration enables us to reliably use newer C++ features while supporting
older LTS platforms, be more confident in the compiler's optimisations, and
leverage security features such as sanitisers and efficient fuzzing.
Additionally, because both Clang and rustc use LLVM as their backend, we can
optimise across the FFI boundary between them. This reduces the cost of moving
between C++ and Rust, making it easier to build more functionality in Rust
(though not making it costless, as we still need to work within the constraints
of the C ABI).
leverage security features such as sanitisers and efficient fuzzing. In future,
this will also allow optimizing across the boundary between Rust and C++.
The system compiler is still used to compile a few native dependencies (used by
the build machine to then compile `zcashd` for the target machine). These will
likely also be migrated to use the pinned Clang in a future release.
Fast sync for initial block download
------------------------------------
The `-ibdskiptxverification` flag allows faster synchronization during initial
block sync, by skipping transaction verification and instead verifying only PoW.
Note that this mode requires checkpoints to be enabled, to make sure that each
block under inspection is an ancestor of the latest checkpoint.
Convenient testing for invalid note plaintexts
----------------------------------------------
After the mainnet activation of Canopy (block 1046400), correct wallet software
will no longer produce v1 note plaintexts (with a lead byte of `0x01`). However,
v1 note plaintexts will continue to be accepted for a grace period of 32256
blocks (about 4 weeks), as specified in [ZIP 212](https://zips.z.cash/zip-0212).
The new `receiveunsafe` log category complains if an invalid note plaintext is
received.
Additional lightwalletd and light client RPCs
---------------------------------------------
- lightwalletd is now able to retrieve all UTXOs related to a t-address through
the `getaddressutxos` RPC. (Previously, this was only available to the Insight
Explorer.)
- The new `z_gettreestate` RPC returns the Sprout and Sapling treestate at a
given block height or block hash. This makes it easier for light clients to
generate checkpoints.
Update/removal of several cryptographic dependencies
----------------------------------------------------
This release updates secp256k1 to enable the GLV endomorphism optimisation by
default, after the recent expiry of the GLV patents. It also removes OpenSSL,
and replaces libsodium BLAKE2b usage with the [blake2b_simd Rust crate](https://github.com/oconnor663/blake2_simd).
Changelog
=========