Merge pull request #12 from zcash/witness-updating

Fix witness-updating bug, and enforce witness validity
This commit is contained in:
str4d 2019-02-14 15:01:00 -05:00 committed by GitHub
commit d415cf4558
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 88 additions and 61 deletions

110
Cargo.lock generated
View File

@ -109,17 +109,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "bellman"
version = "0.1.0"
source = "git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3#669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
source = "git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3#59c57e260d09a054a99d4b0060fe71abeef7add3"
dependencies = [
"bit-vec 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"crossbeam 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
"futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"group 0.1.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"group 0.1.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
]
@ -375,17 +375,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "ff"
version = "0.4.0"
source = "git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3#669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
source = "git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3#59c57e260d09a054a99d4b0060fe71abeef7add3"
dependencies = [
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"ff_derive 0.3.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"ff_derive 0.3.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "ff_derive"
version = "0.3.0"
source = "git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3#669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
source = "git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3#59c57e260d09a054a99d4b0060fe71abeef7add3"
dependencies = [
"num-bigint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
@ -459,9 +459,9 @@ dependencies = [
[[package]]
name = "group"
version = "0.1.0"
source = "git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3#669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
source = "git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3#59c57e260d09a054a99d4b0060fe71abeef7add3"
dependencies = [
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
]
@ -736,11 +736,11 @@ dependencies = [
[[package]]
name = "pairing"
version = "0.14.2"
source = "git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3#669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
source = "git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3#59c57e260d09a054a99d4b0060fe71abeef7add3"
dependencies = [
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"group 0.1.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"group 0.1.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
]
@ -991,14 +991,14 @@ dependencies = [
[[package]]
name = "sapling-crypto"
version = "0.0.1"
source = "git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3#669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
source = "git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3#59c57e260d09a054a99d4b0060fe71abeef7add3"
dependencies = [
"bellman 0.1.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"bellman 0.1.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"blake2-rfc 0.2.18 (git+https://github.com/gtank/blake2-rfc?rev=7a5b5fc99ae483a0043db7547fb79a6fa44b88a9)",
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
]
@ -1465,93 +1465,93 @@ dependencies = [
"android_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
"dirs 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
"grpc 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"jni 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"log-panics 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"protobuf 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"rusqlite 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)",
"sapling-crypto 0.0.1 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"sapling-crypto 0.0.1 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
"zcash_client_backend 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"zcash_primitives 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"zip32 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"zcash_client_backend 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"zcash_primitives 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"zip32 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
]
[[package]]
name = "zcash_client_backend"
version = "0.0.0"
source = "git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3#669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
source = "git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3#59c57e260d09a054a99d4b0060fe71abeef7add3"
dependencies = [
"bech32 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bellman 0.1.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"bellman 0.1.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"blake2-rfc 0.2.18 (git+https://github.com/gtank/blake2-rfc?rev=7a5b5fc99ae483a0043db7547fb79a6fa44b88a9)",
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"chacha20-poly1305-aead 0.1.2 (git+https://github.com/gtank/chacha20-poly1305-aead?rev=aefc71f95e8bc43f2070e3c5b08130d9c86bbf4f)",
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"protobuf 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"protobuf-codegen-pure 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"sapling-crypto 0.0.1 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"zcash_primitives 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"zcash_proofs 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"zip32 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"sapling-crypto 0.0.1 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"zcash_primitives 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"zcash_proofs 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"zip32 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
]
[[package]]
name = "zcash_primitives"
version = "0.0.0"
source = "git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3#669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
source = "git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3#59c57e260d09a054a99d4b0060fe71abeef7add3"
dependencies = [
"blake2-rfc 0.2.18 (git+https://github.com/gtank/blake2-rfc?rev=7a5b5fc99ae483a0043db7547fb79a6fa44b88a9)",
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"sapling-crypto 0.0.1 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"sapling-crypto 0.0.1 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "zcash_proofs"
version = "0.0.0"
source = "git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3#669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
source = "git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3#59c57e260d09a054a99d4b0060fe71abeef7add3"
dependencies = [
"bellman 0.1.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"bellman 0.1.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"blake2-rfc 0.2.18 (git+https://github.com/gtank/blake2-rfc?rev=7a5b5fc99ae483a0043db7547fb79a6fa44b88a9)",
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"sapling-crypto 0.0.1 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"zcash_primitives 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"sapling-crypto 0.0.1 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"zcash_primitives 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
]
[[package]]
name = "zip32"
version = "0.0.0"
source = "git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3#669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
source = "git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3#59c57e260d09a054a99d4b0060fe71abeef7add3"
dependencies = [
"aes 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"blake2-rfc 0.2.18 (git+https://github.com/gtank/blake2-rfc?rev=7a5b5fc99ae483a0043db7547fb79a6fa44b88a9)",
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"fpe 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"sapling-crypto 0.0.1 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"zcash_primitives 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)",
"pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"sapling-crypto 0.0.1 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
"zcash_primitives 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)",
]
[metadata]
@ -1568,7 +1568,7 @@ dependencies = [
"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6"
"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
"checksum bech32 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad20b907fd16610c3960c7fe9dae13dd243343409bab80299774c9a8b5d7bed8"
"checksum bellman 0.1.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)" = "<none>"
"checksum bellman 0.1.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)" = "<none>"
"checksum bit-vec 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "02b4ff8b16e6076c3e14220b39fbc1fabb6737522281a388998046859400895f"
"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
"checksum blake2-rfc 0.2.18 (git+https://github.com/gtank/blake2-rfc?rev=7a5b5fc99ae483a0043db7547fb79a6fa44b88a9)" = "<none>"
@ -1601,8 +1601,8 @@ dependencies = [
"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2"
"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1"
"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
"checksum ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)" = "<none>"
"checksum ff_derive 0.3.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)" = "<none>"
"checksum ff 0.4.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)" = "<none>"
"checksum ff_derive 0.3.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)" = "<none>"
"checksum fpe 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce3371c82bfbd984f624cab093f55e7336f5a6e589f8518e1258f54f011b89ad"
"checksum fuchsia-cprng 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "81f7f8eb465745ea9b02e2704612a9946a59fa40572086c6fd49d6ddcf30bf31"
"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
@ -1611,7 +1611,7 @@ dependencies = [
"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
"checksum generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c0f28c2f5bfb5960175af447a2da7c18900693738343dc896ffbcabd9839592"
"checksum generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef25c5683767570c2bbd7deba372926a55eaae9982d7726ee2a1050239d45b9d"
"checksum group 0.1.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)" = "<none>"
"checksum group 0.1.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)" = "<none>"
"checksum grpc 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8e530ef7894a104a1c8525ce68787b3491efa2098ce5e5454e8324ea78893548"
"checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77"
"checksum httpbis 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7689cfa896b2a71da4f16206af167542b75d242b6906313e53857972a92d5614"
@ -1643,7 +1643,7 @@ dependencies = [
"checksum opaque-debug 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d620c9c26834b34f039489ac0dfdb12c7ac15ccaf818350a64c9b5334a452ad7"
"checksum opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "93f5bb2e8e8dec81642920ccff6b61f1eb94fa3020c5a325c9851ff604152409"
"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13"
"checksum pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)" = "<none>"
"checksum pairing 0.14.2 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)" = "<none>"
"checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337"
"checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9"
"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c"
@ -1672,7 +1672,7 @@ dependencies = [
"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
"checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9"
"checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267"
"checksum sapling-crypto 0.0.1 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)" = "<none>"
"checksum sapling-crypto 0.0.1 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)" = "<none>"
"checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28"
"checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
"checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
@ -1722,7 +1722,7 @@ dependencies = [
"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
"checksum zcash_client_backend 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)" = "<none>"
"checksum zcash_primitives 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)" = "<none>"
"checksum zcash_proofs 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)" = "<none>"
"checksum zip32 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3)" = "<none>"
"checksum zcash_client_backend 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)" = "<none>"
"checksum zcash_primitives 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)" = "<none>"
"checksum zcash_proofs 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)" = "<none>"
"checksum zip32 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=59c57e260d09a054a99d4b0060fe71abeef7add3)" = "<none>"

View File

@ -25,27 +25,27 @@ time = "0.1"
[dependencies.ff]
git = "https://github.com/str4d/librustzcash.git"
rev = "669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
rev = "59c57e260d09a054a99d4b0060fe71abeef7add3"
[dependencies.pairing]
git = "https://github.com/str4d/librustzcash.git"
rev = "669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
rev = "59c57e260d09a054a99d4b0060fe71abeef7add3"
[dependencies.sapling-crypto]
git = "https://github.com/str4d/librustzcash.git"
rev = "669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
rev = "59c57e260d09a054a99d4b0060fe71abeef7add3"
[dependencies.zcash_client_backend]
git = "https://github.com/str4d/librustzcash.git"
rev = "669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
rev = "59c57e260d09a054a99d4b0060fe71abeef7add3"
[dependencies.zcash_primitives]
git = "https://github.com/str4d/librustzcash.git"
rev = "669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
rev = "59c57e260d09a054a99d4b0060fe71abeef7add3"
[dependencies.zip32]
git = "https://github.com/str4d/librustzcash.git"
rev = "669df0fa7b2fbd8e1d2ee78d7f0c6544ea04bfd3"
rev = "59c57e260d09a054a99d4b0060fe71abeef7add3"
[dev-dependencies]
dirs = "1"

View File

@ -387,6 +387,33 @@ pub fn scan_cached_blocks<P: AsRef<Path>, Q: AsRef<Path>>(
)
};
// Enforce that all roots match
{
let cur_root = tree.root();
for row in &witnesses {
if row.witness.root() != cur_root {
return Err(format_err!(
"Witness for note {} has incorrect anchor after scanning block {}",
row.id_note,
last_height
));
}
}
for (tx, new_witnesses) in &txs {
for (i, witness) in new_witnesses.iter().enumerate() {
if witness.root() != cur_root {
return Err(format_err!(
"New witness for output {} in tx {} has incorrect anchor after scanning block {}: {:?}",
tx.shielded_outputs[i].index,
tx.txid,
last_height,
witness.root(),
));
}
}
}
}
// Insert the block into the database.
let mut encoded_tree = Vec::new();
tree.write(&mut encoded_tree)