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] ## [Unreleased]
## [0.7.0] - 2023-02-01
### Added ### Added
- `zcash_client_backend::data_api::wallet`: - `zcash_client_backend::data_api::wallet`:
- `input_selection::Proposal::{is_shielding, target_height}`
- `propose_transfer` - `propose_transfer`
- `propose_shielding` - `propose_shielding`
- `create_proposed_transaction` - `create_proposed_transaction`
### Changed ### Changed
- MSRV is now 1.60.0. - MSRV is now 1.60.0.
- Bumped dependencies to `zcash_primitives 0.10`.
- `zcash_client_backend::data_api::wallet::shield_transparent_funds` now - `zcash_client_backend::data_api::chain`:
takes a `shielding_threshold` argument that can be used to specify the - `BlockSource::with_blocks` now takes `from_height` as `Option<BlockHeight>`
minimum value allowed as input to a shielding transaction. Previously instead of `BlockHeight`. Trait implementors should return all available
the shielding threshold was fixed at 100000 zatoshis. 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 - Note commitments now use
`zcash_primitives::sapling::note::ExtractedNoteCommitment` instead of `zcash_primitives::sapling::note::ExtractedNoteCommitment` instead of
`bls12_381::Scalar` in the following places: `bls12_381::Scalar` in the following places:
- The `cmu` field of `zcash_client_backend::wallet::WalletShieldedOutput`. - The `cmu` field of `zcash_client_backend::wallet::WalletShieldedOutput`.
- `zcash_client_backend::proto::compact_formats::CompactSaplingOutput::cmu`. - `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 ### Removed
- `zcash_client_backend::data_api`: - `zcash_client_backend::data_api`:
- `WalletWrite::remove_unmined_tx` (was behind the `unstable` feature flag). - `WalletWrite::remove_unmined_tx` (was behind the `unstable` feature flag).

View File

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

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). [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased] ## [Unreleased]
## [0.7.0] - 2023-02-01
### Added ### Added
- `zcash_client_sqlite::FsBlockDb::rewind_to_height` rewinds the BlockMeta Db - `zcash_client_sqlite::FsBlockDb::rewind_to_height` rewinds the BlockMeta Db
to the specified height following the same logic as homonymous functions on to the specified height following the same logic as homonymous functions on
@ -17,32 +19,11 @@ and this library adheres to Rust's notion of
### Changed ### Changed
- MSRV is now 1.60.0. - MSRV is now 1.60.0.
- Bumped dependencies to `zcash_primitives 0.10`, `zcash_client_backend 0.7`.
- **breaking changes** to `validate_chain`. - `zcash_client_backend::FsBlockDbError`:
- `zcash_client_backend::data_api::chain::validate_chain` now requires a - Renamed `FsBlockDbError::{DbError, FsError}` to `FsBlockDbError::{Db, Fs}`.
non-optional `validate_from` parameter that indicates the starting point of - Added `FsBlockDbError::MissingBlockPath`.
the `BlockSourceT` validation. An Optional `limit` can be specified as - `impl fmt::Display for FsBlockDbError`
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`,
## [0.4.2] - 2022-12-13 ## [0.4.2] - 2022-12-13
### Fixed ### Fixed

View File

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

View File

@ -11,14 +11,14 @@ rust-version = "1.60"
[dependencies] [dependencies]
blake2b_simd = "1" 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] [dev-dependencies]
ff = "0.12" ff = "0.12"
jubjub = "0.9" jubjub = "0.9"
rand_core = "0.6" rand_core = "0.6"
zcash_address = { version = "0.2", path = "../components/zcash_address" } 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] [features]
transparent-inputs = [] 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). [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased] ## [Unreleased]
## [0.10.0] - 2023-02-01
### Added ### Added
- `zcash_primitives::sapling`: - `zcash_primitives::sapling`:
- `keys::DiversifiedTransmissionKey` - `keys::DiversifiedTransmissionKey`

View File

@ -1,7 +1,7 @@
[package] [package]
name = "zcash_primitives" name = "zcash_primitives"
description = "Rust implementations of the Zcash primitives" description = "Rust implementations of the Zcash primitives"
version = "0.9.1" version = "0.10.0"
authors = [ authors = [
"Jack Grigg <jack@z.cash>", "Jack Grigg <jack@z.cash>",
"Kris Nuttycombe <kris@electriccoin.co>" "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). [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased] ## [Unreleased]
## [0.10.0] - 2023-02-01
### Added ### Added
- `zcash_proofs::circuit::sapling`: - `zcash_proofs::circuit::sapling`:
- `ValueCommitmentOpening` - `ValueCommitmentOpening`
@ -13,6 +15,7 @@ and this library adheres to Rust's notion of
### Changed ### Changed
- MSRV is now 1.60.0. - MSRV is now 1.60.0.
- Bumped dependencies to `zcash_primitives 0.10`.
- Note commitments now use - Note commitments now use
`zcash_primitives::sapling::note::ExtractedNoteCommitment` instead of `zcash_primitives::sapling::note::ExtractedNoteCommitment` instead of
`bls12_381::Scalar` in `zcash_proofs::sapling`: `bls12_381::Scalar` in `zcash_proofs::sapling`:

View File

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