Update release-notes-4.1.0-rc1.md
This commit is contained in:
parent
3cdef42bcc
commit
d66cabf8c9
|
@ -8,18 +8,48 @@ Migration to Clang and static libc++
|
||||||
of Clang, and statically links libc++ instead of dynamically linking libstdc++.
|
of Clang, and statically links libc++ instead of dynamically linking libstdc++.
|
||||||
This migration enables us to reliably use newer C++ features while supporting
|
This migration enables us to reliably use newer C++ features while supporting
|
||||||
older LTS platforms, be more confident in the compiler's optimisations, and
|
older LTS platforms, be more confident in the compiler's optimisations, and
|
||||||
leverage security features such as sanitisers and efficient fuzzing.
|
leverage security features such as sanitisers and efficient fuzzing. In future,
|
||||||
|
this will also allow optimizing across the boundary between Rust and C++.
|
||||||
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).
|
|
||||||
|
|
||||||
The system compiler is still used to compile a few native dependencies (used by
|
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
|
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.
|
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
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue