Skip to content

Commit

Permalink
poc(scanner): get started with the blockchain scanner proof of concept (
Browse files Browse the repository at this point in the history
#7758)

* get started with the blockchain scanner poc

* rustfmt

* fix the tests

* Reads blocks from db

* Adds conversion functions

* scans blocks and counts transactions

* fix bug

* split into 2 tests

* add duplicated dependencies to deny.toml

* upgrade zebra-scanner version

* try removing ecc duplicated dependencies

* try fix deny.toml

* remove unintended paste from deny.toml

* remove duplicated code from the other test

* remove strict version of `zcash_primitives` crate

* change description

* remove feture

* remove tokio features

* change lib doc

* add more documentation

* change expect

* do not use default in compact block creation

* more docs

* add more checks to test

* remove zebra-consensus dependency

* move all deps to dev-deps

* change crate version

* rename crate to zebra-scan

* lock file

* ifix cargo.lock

* remove internal dev dependencies versions

Co-authored-by: teor <[email protected]>

* fix docs url

Co-authored-by: teor <[email protected]>

* fix expect messages

Co-authored-by: teor <[email protected]>

* remove duplicated in deny.toml

Co-authored-by: teor <[email protected]>

* add a comment about moving code to production

---------

Co-authored-by: arya2 <[email protected]>
Co-authored-by: teor <[email protected]>
  • Loading branch information
3 people authored Nov 8, 2023
1 parent 2efc6bf commit 86e468f
Show file tree
Hide file tree
Showing 5 changed files with 485 additions and 0 deletions.
64 changes: 64 additions & 0 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4018,6 +4018,18 @@ dependencies = [
"lazy_static",
]

[[package]]
name = "shardtree"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c19f96dde3a8693874f7e7c53d95616569b4009379a903789efbd448f4ea9cc7"
dependencies = [
"bitflags 2.4.1",
"either",
"incrementalmerkletree",
"tracing",
]

[[package]]
name = "shlex"
version = "1.2.0"
Expand Down Expand Up @@ -5413,6 +5425,39 @@ dependencies = [
"zcash_encoding",
]

[[package]]
name = "zcash_client_backend"
version = "0.10.0-rc.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ecc33f71747a93d509f7e1c047961e359a271bdf4869cc07f7f65ee1ba7df8c2"
dependencies = [
"base64 0.21.5",
"bech32",
"bls12_381",
"bs58",
"crossbeam-channel",
"group",
"hex",
"incrementalmerkletree",
"memuse",
"nom",
"orchard",
"percent-encoding",
"prost",
"rayon",
"secrecy",
"shardtree",
"subtle",
"time",
"tonic-build",
"tracing",
"which",
"zcash_address",
"zcash_encoding",
"zcash_note_encryption",
"zcash_primitives",
]

[[package]]
name = "zcash_encoding"
version = "0.2.0"
Expand Down Expand Up @@ -5733,6 +5778,25 @@ dependencies = [
"zebra-test",
]

[[package]]
name = "zebra-scan"
version = "0.1.0-alpha.0"
dependencies = [
"bls12_381",
"color-eyre",
"ff",
"group",
"jubjub",
"rand 0.8.5",
"tokio",
"zcash_client_backend",
"zcash_note_encryption",
"zcash_primitives",
"zebra-chain",
"zebra-state",
"zebra-test",
]

[[package]]
name = "zebra-script"
version = "1.0.0-beta.31"
Expand Down
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ members = [
"zebra-node-services",
"zebra-test",
"zebra-utils",
"zebra-scan",
"tower-batch-control",
"tower-fallback",
]
Expand Down
39 changes: 39 additions & 0 deletions zebra-scan/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
[package]
name = "zebra-scan"
version = "0.1.0-alpha.0"
authors = ["Zcash Foundation <[email protected]>"]
description = "Shielded transaction scanner for the Zcash blockchain"
license = "MIT OR Apache-2.0"
repository = "https://github.com/ZcashFoundation/zebra"
edition = "2021"

readme = "../README.md"
homepage = "https://zfnd.org/zebra/"
# crates.io is limited to 5 keywords and categories
keywords = ["zebra", "zcash"]
# Must be one of <https://crates.io/category_slugs>
categories = ["cryptography::cryptocurrencies"]

[features]

# Production features that activate extra dependencies, or extra features in dependencies

[dependencies]

[dev-dependencies]

zcash_client_backend = "0.10.0-rc.1"
zcash_primitives = "0.13.0-rc.1"
zcash_note_encryption = "0.4.0"

color-eyre = { version = "0.6.2" }
rand = "0.8.5"
bls12_381 = "0.8.0"
jubjub = "0.10.0"
ff = "0.13.0"
group = "0.13.0"
tokio = { version = "1.33.0", features = ["test-util"] }

zebra-state = { path = "../zebra-state" }
zebra-chain = { path = "../zebra-chain" }
zebra-test = { path = "../zebra-test" }
8 changes: 8 additions & 0 deletions zebra-scan/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
//! Shielded transaction scanner for the Zcash blockchain.

#![doc(html_favicon_url = "https://zfnd.org/wp-content/uploads/2022/03/zebra-favicon-128.png")]
#![doc(html_logo_url = "https://zfnd.org/wp-content/uploads/2022/03/zebra-icon.png")]
#![doc(html_root_url = "https://docs.rs/zebra_scan")]

#[cfg(test)]
mod tests;
Loading

0 comments on commit 86e468f

Please sign in to comment.