Merge pull request #772 from zcash/release-0.10

`zcash_primitives 0.10.0`, `zcash_proofs 0.10.0`, `zcash_client_backend 0.7.0`, `zcash_client_sqlite 0.5.0`
This commit is contained in:
str4d 2023-02-01 02:55:44 +00:00 committed by GitHub
commit 847c187beb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 53 additions and 66 deletions

View File

@ -7,46 +7,47 @@ and this library adheres to Rust's notion of
## [Unreleased]
## [0.7.0] - 2023-02-01
### Added
- `zcash_client_backend::data_api::wallet`:
- `input_selection::Proposal::{is_shielding, target_height}`
- `propose_transfer`
- `propose_shielding`
- `create_proposed_transaction`
### Changed
- MSRV is now 1.60.0.
- `zcash_client_backend::data_api::wallet::shield_transparent_funds` now
takes a `shielding_threshold` argument that can be used to specify the
minimum value allowed as input to a shielding transaction. Previously
the shielding threshold was fixed at 100000 zatoshis.
- Bumped dependencies to `zcash_primitives 0.10`.
- `zcash_client_backend::data_api::chain`:
- `BlockSource::with_blocks` now takes `from_height` as `Option<BlockHeight>`
instead of `BlockHeight`. Trait implementors should return all available
blocks in the datastore when `from_height` is `None`.
- Various **breaking changes** to `validate_chain`:
- The `parameters: &ParamsT` argument has been removed. When `None` is given
as the `validate_from` argument, `validate_chain` will now pass `None` to
`BlockSource::with_blocks` (instead of the Sapling network upgrade's
activation height).
- A `limit: Option<u32>` argument has been added. This enables callers to
validate smaller intervals of blocks already present on the provided
`BlockSource`, shortening processing times of the function call at the
expense of obtaining a partial result. When providing a `limit`, a result
of `Ok(())` means that the chain has been validated on its continuity of
heights and hashes in the range `[validate_from, validate_from + limit)`.
Callers are responsible for making subsequent calls to `validate_chain` in
order to complete validating the totality of `block_source`.
- `zcash_client_backend::data_api::wallet`:
- `input_selection::Proposal` no longer has a `TransparentInput` generic
parameter, and `Proposal::transparent_inputs` now returns
`&[zcash_client_backend::wallet::WalletTransparentOutput]`.
- `shield_transparent_funds` now takes a `shielding_threshold` argument that
can be used to specify the minimum value allowed as input to a shielding
transaction. Previously the shielding threshold was fixed at 100000 zatoshis.
- Note commitments now use
`zcash_primitives::sapling::note::ExtractedNoteCommitment` instead of
`bls12_381::Scalar` in the following places:
- The `cmu` field of `zcash_client_backend::wallet::WalletShieldedOutput`.
- `zcash_client_backend::proto::compact_formats::CompactSaplingOutput::cmu`.
- **breaking changes** to `zcash_client_backend::data_api::chain::validate_chain`
- `validate_chain` now requires a non-optional `validate_from` parameter that
indicates the starting point of the `BlockSourceT` validation. An Optional
`limit` can be specified as well. This allows callers to validate smaller
intervals of blocks already present on the provided `BlockSource` shortening
processing times of the function call at the expense of obtaining a partial
result.
- `params: &ParamsT` has been removed from the arguments since they were only
needed to fall back to `sapling_activation_height` when `None` as passed as
the `validate_from` argument. Implementors of `BlockSource` are resposible
of definining how they will fall back to a suitable value when `validate_from`
is `None`.
- When passing a `limit` to the chain validation function, a successful output,
indicates that the chain has been validated on its continuity of heights and hashes
within the limits of the range `[validate_from, validate_from + limit)`.
Callers providing a `limit` argument are responsible for making subsequent calls to
`validate_chain()` in order to complete validating the totality of the block_source.
### Removed
- `zcash_client_backend::data_api`:
- `WalletWrite::remove_unmined_tx` (was behind the `unstable` feature flag).

View File

@ -1,7 +1,7 @@
[package]
name = "zcash_client_backend"
description = "APIs for creating shielded Zcash light clients"
version = "0.6.1"
version = "0.7.0"
authors = [
"Jack Grigg <jack@z.cash>",
"Kris Nuttycombe <kris@electriccoin.co>"
@ -23,7 +23,7 @@ development = ["zcash_proofs"]
zcash_address = { version = "0.2", path = "../components/zcash_address" }
zcash_encoding = { version = "0.2", path = "../components/zcash_encoding" }
zcash_note_encryption = { version = "0.2", path = "../components/zcash_note_encryption" }
zcash_primitives = { version = "0.9", path = "../zcash_primitives" }
zcash_primitives = { version = "0.10", path = "../zcash_primitives" }
# Dependencies exposed in a public API:
# (Breaking upgrades to these require a breaking upgrade to this crate.)
@ -84,7 +84,7 @@ proptest = "1.0.0"
rand_core = "0.6"
rand_xorshift = "0.3"
tempfile = "3.1.0"
zcash_proofs = { version = "0.9", path = "../zcash_proofs" }
zcash_proofs = { version = "0.10", path = "../zcash_proofs" }
zcash_address = { version = "0.2", path = "../components/zcash_address", features = ["test-dependencies"] }
[features]

View File

@ -6,7 +6,9 @@ and this library adheres to Rust's notion of
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
## [0.7.0] - 2023-02-01
### Added
- `zcash_client_sqlite::FsBlockDb::rewind_to_height` rewinds the BlockMeta Db
to the specified height following the same logic as homonymous functions on
`WalletDb`. This function does not delete the files referenced by the rows
@ -17,32 +19,11 @@ and this library adheres to Rust's notion of
### Changed
- MSRV is now 1.60.0.
- **breaking changes** to `validate_chain`.
- `zcash_client_backend::data_api::chain::validate_chain` now requires a
non-optional `validate_from` parameter that indicates the starting point of
the `BlockSourceT` validation. An Optional `limit` can be specified as
well. This allows callers to validate smaller intervals of the given
`BlockSourceT` shortening processing times of the function call at the
expense of obtaining a partial result on a given section of interest of the
block source.
- `params: &ParamsT` has been removed from the arguments since they were only needed
to fall back to `sapling_activation_height` when `None` as passed as the
`validate_from` argument. Passing `None` as validation start point on a
pre-populated `block_source` would result in an error
`ChainError::block_height_discontinuity(sapling_activation_height - 1, current_height)`
- With this new API callers must specify a concrete `validate_from` argument and
assume that `validate_chain` will not take any default fallbacks to chain
`ParamsT`.
- The addition of a `limit` to the chain validation function changes the
meaning of its successful output, being now a `BlockHeight, BlockHash)` tuple
indicating the block height and block has up to which the chain as been
validated on its continuity of heights and hashes. Callers providing a
`limit` aregumente are responsible of subsequent calls to `validate_chain()`
to complete validating the totality of the block_source.
### Removed
- implementation of unstable function `WalletWrite::remove_unmined_tx`,
- Bumped dependencies to `zcash_primitives 0.10`, `zcash_client_backend 0.7`.
- `zcash_client_backend::FsBlockDbError`:
- Renamed `FsBlockDbError::{DbError, FsError}` to `FsBlockDbError::{Db, Fs}`.
- Added `FsBlockDbError::MissingBlockPath`.
- `impl fmt::Display for FsBlockDbError`
## [0.4.2] - 2022-12-13
### Fixed

View File

@ -1,7 +1,7 @@
[package]
name = "zcash_client_sqlite"
description = "An SQLite-based Zcash light client"
version = "0.4.2"
version = "0.5.0"
authors = [
"Jack Grigg <jack@z.cash>",
"Kris Nuttycombe <kris@electriccoin.co>"
@ -14,8 +14,8 @@ edition = "2021"
rust-version = "1.60"
[dependencies]
zcash_client_backend = { version = "0.6", path = "../zcash_client_backend" }
zcash_primitives = { version = "0.9", path = "../zcash_primitives" }
zcash_client_backend = { version = "0.7", path = "../zcash_client_backend" }
zcash_primitives = { version = "0.10", path = "../zcash_primitives" }
# Dependencies exposed in a public API:
# (Breaking upgrades to these require a breaking upgrade to this crate.)
@ -51,8 +51,8 @@ rand_core = "0.6"
regex = "1.4"
tempfile = "3"
zcash_note_encryption = { version = "0.2", path = "../components/zcash_note_encryption" }
zcash_proofs = { version = "0.9", path = "../zcash_proofs" }
zcash_primitives = { version = "0.9", path = "../zcash_primitives", features = ["test-dependencies"] }
zcash_proofs = { version = "0.10", path = "../zcash_proofs" }
zcash_primitives = { version = "0.10", path = "../zcash_primitives", features = ["test-dependencies"] }
zcash_address = { version = "0.2", path = "../components/zcash_address", features = ["test-dependencies"] }
[features]

View File

@ -11,14 +11,14 @@ rust-version = "1.60"
[dependencies]
blake2b_simd = "1"
zcash_primitives = { version = "0.9", path = "../zcash_primitives", features = ["zfuture" ] }
zcash_primitives = { version = "0.10", path = "../zcash_primitives", features = ["zfuture" ] }
[dev-dependencies]
ff = "0.12"
jubjub = "0.9"
rand_core = "0.6"
zcash_address = { version = "0.2", path = "../components/zcash_address" }
zcash_proofs = { version = "0.9", path = "../zcash_proofs" }
zcash_proofs = { version = "0.10", path = "../zcash_proofs" }
[features]
transparent-inputs = []

View File

@ -6,6 +6,8 @@ and this library adheres to Rust's notion of
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.10.0] - 2023-02-01
### Added
- `zcash_primitives::sapling`:
- `keys::DiversifiedTransmissionKey`

View File

@ -1,7 +1,7 @@
[package]
name = "zcash_primitives"
description = "Rust implementations of the Zcash primitives"
version = "0.9.1"
version = "0.10.0"
authors = [
"Jack Grigg <jack@z.cash>",
"Kris Nuttycombe <kris@electriccoin.co>"

View File

@ -6,6 +6,8 @@ and this library adheres to Rust's notion of
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.10.0] - 2023-02-01
### Added
- `zcash_proofs::circuit::sapling`:
- `ValueCommitmentOpening`
@ -13,6 +15,7 @@ and this library adheres to Rust's notion of
### Changed
- MSRV is now 1.60.0.
- Bumped dependencies to `zcash_primitives 0.10`.
- Note commitments now use
`zcash_primitives::sapling::note::ExtractedNoteCommitment` instead of
`bls12_381::Scalar` in `zcash_proofs::sapling`:

View File

@ -1,7 +1,7 @@
[package]
name = "zcash_proofs"
description = "Zcash zk-SNARK circuits and proving APIs"
version = "0.9.0"
version = "0.10.0"
authors = [
"Jack Grigg <jack@z.cash>",
]
@ -17,7 +17,7 @@ categories = ["cryptography::cryptocurrencies"]
all-features = true
[dependencies]
zcash_primitives = { version = "0.9", path = "../zcash_primitives" }
zcash_primitives = { version = "0.10", path = "../zcash_primitives" }
# Dependencies exposed in a public API:
# (Breaking upgrades to these require a breaking upgrade to this crate.)