zakura-client-sqlite 0.1.0-rc9.2

An SQLite-based Zcash light client
docs.rs failed to build zakura-client-sqlite-0.1.0-rc9.2
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: zakura-client-sqlite-0.1.0-rc7

Security Disclaimer

This is a beta build, and is currently under active development. Please be advised of the following:

  • This code currently is not audited by an external security auditor, use it at your own risk.
  • The code has not been subjected to thorough review by engineers at the Electric Coin Company.
  • We are actively changing the codebase and adding features where/when needed.

zcash_client_sqlite

This library contains APIs that collectively implement a Zcash light client in an SQLite database.

One-time IVKs

With the orchard feature, WalletDb keeps one-time IVKs: a durable registry of derived refund and incoming keys, their scanning, discovery of a restored seed's keys through a receiver directory, and spending. WalletDb implements the backend's OneTimeIvkRead and OneTimeIvkWrite, so a wallet scans with scan_cached_blocks_with_one_time_ivks, and the restore protocol's OneTimeIvkRestoreRead and OneTimeIvkRestoreWrite. Compact scanning and software spending retain each note's derived key; change uses ordinary account keys. The wallet::one_time_ivk rustdoc lists the calls a wallet makes; swap issuance, operations and closing are in wallet::one_time_ivk::swap. The zakura-one-time-ivk README describes the key derivation and refund memo.

Discovery turns each payment a directory reports into a scan hint, so the scan finds the note itself, or, if the scan already passed its block, into a late candidate. The wallet admits a late candidate only after it authenticates the ciphertext, verifies the note's inclusion and position against its own chain, and its scan has covered every block from the payment on for the account. The spend journal, which keeps every Ironwood nullifier of the wallet's own transactions, then says whether it was spent. Until then the payment adds nothing to balance. zakura-pir-receiver runs discovery against a receiver directory.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.