change(docs): update docs for new lightwalletd version used in Zebra (#7427)

* upgrade docs for new lightwalletd repo zebra is using now

* Update book/src/user/lightwalletd.md

Co-authored-by: Marek <mail@marek.onl>

---------

Co-authored-by: Marek <mail@marek.onl>
This commit is contained in:
Alfredo Garcia 2023-08-30 19:30:20 -03:00 committed by GitHub
parent 5888a4e5d6
commit 38caaafc02
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 15 additions and 9 deletions

View File

@ -2,7 +2,7 @@
Zebra's RPC methods can support a lightwalletd service backed by zebrad. We Zebra's RPC methods can support a lightwalletd service backed by zebrad. We
recommend using recommend using
[adityapk00/lightwalletd](https://github.com/adityapk00/lightwalletd) because we [zcash/lightwalletd](https://github.com/zcash/lightwalletd) because we
use it in testing. Other `lightwalletd` forks have limited support, see the use it in testing. Other `lightwalletd` forks have limited support, see the
[Sync lightwalletd](#sync-lightwalletd) section for more info. [Sync lightwalletd](#sync-lightwalletd) section for more info.
@ -92,14 +92,14 @@ For implementing zebra as a service please see [here](https://github.com/ZcashFo
## Download and build lightwalletd ## Download and build lightwalletd
[#download-and-build-lightwalletd]: #download-and-build-lightwalletd [#download-and-build-lightwalletd]: #download-and-build-lightwalletd
While you synchronize Zebra you can install [lightwalletd](https://github.com/adityapk00/lightwalletd). While you synchronize Zebra you can install [lightwalletd](https://github.com/zcash/lightwalletd).
Before installing, you need to have `go` in place. Please visit the [go install page](https://go.dev/doc/install) with download and installation instructions. Before installing, you need to have `go` in place. Please visit the [go install page](https://go.dev/doc/install) with download and installation instructions.
With go installed and in your path, download and install lightwalletd: With go installed and in your path, download and install lightwalletd:
```console ```console
git clone https://github.com/adityapk00/lightwalletd git clone https://github.com/zcash/lightwalletd
cd lightwalletd cd lightwalletd
make make
make install make install
@ -112,7 +112,7 @@ If everything went good you should have a `lightwalletd` binary in `~/go/bin/`.
Please make sure you have zebrad running (with RPC endpoint and up to date blockchain) to synchronize lightwalletd. Please make sure you have zebrad running (with RPC endpoint and up to date blockchain) to synchronize lightwalletd.
- `lightwalletd` requires a `zcash.conf` file, however this file can be empty if you are using the default Zebra rpc endpoint (`127.0.0.1:8232`) and the `adityapk00/lightwalletd` fork - `lightwalletd` requires a `zcash.conf` file, however this file can be empty if you are using the default Zebra rpc endpoint (`127.0.0.1:8232`) and the `zcash/lightwalletd` fork.
- Some `lightwalletd` forks also require a `rpcuser` and `rpcpassword`, but Zebra ignores them if it receives them from `lightwalletd` - Some `lightwalletd` forks also require a `rpcuser` and `rpcpassword`, but Zebra ignores them if it receives them from `lightwalletd`
- When using a non-default port, use `rpcport=28232` and `rpcbind=127.0.0.1` - When using a non-default port, use `rpcport=28232` and `rpcbind=127.0.0.1`
- When using testnet, use `testnet=1` - When using testnet, use `testnet=1`
@ -158,7 +158,8 @@ Please refer to [acceptance](https://github.com/ZcashFoundation/zebra/blob/main/
The final goal is to connect wallets to the lightwalletd service backed by Zebra. The final goal is to connect wallets to the lightwalletd service backed by Zebra.
For demo purposes we use [zecwallet-cli](https://github.com/adityapk00/zecwallet-light-cli). For demo purposes we used [zecwallet-cli](https://github.com/adityapk00/zecwallet-light-cli) with the [adityapk00/lightwalletd](https://github.com/adityapk00/lightwalletd) fork.
We didn't test [zecwallet-cli](https://github.com/adityapk00/zecwallet-light-cli) with [zcash/lightwalletd](https://github.com/zcash/lightwalletd) yet.
Make sure both `zebrad` and `lightwalletd` are running and listening. Make sure both `zebrad` and `lightwalletd` are running and listening.

View File

@ -14,7 +14,7 @@ pub const INVALID_PARAMETERS_ERROR_CODE: ErrorCode = ErrorCode::ServerError(-1);
/// The RPC error code used by `zcashd` for missing blocks. /// The RPC error code used by `zcashd` for missing blocks.
/// ///
/// `lightwalletd` expects error code `-8` when a block is not found: /// `lightwalletd` expects error code `-8` when a block is not found:
/// <https://github.com/adityapk00/lightwalletd/blob/c1bab818a683e4de69cd952317000f9bb2932274/common/common.go#L251-L254> /// <https://github.com/zcash/lightwalletd/blob/v0.4.16/common/common.go#L287-L290>
pub const MISSING_BLOCK_ERROR_CODE: ErrorCode = ErrorCode::ServerError(-8); pub const MISSING_BLOCK_ERROR_CODE: ErrorCode = ErrorCode::ServerError(-8);
/// When logging parameter data, only log this much data. /// When logging parameter data, only log this much data.

View File

@ -288,7 +288,7 @@ async fn rpc_getblock_missing_error() {
); );
// Make sure Zebra returns the correct error code `-8` for missing blocks // Make sure Zebra returns the correct error code `-8` for missing blocks
// https://github.com/adityapk00/lightwalletd/blob/c1bab818a683e4de69cd952317000f9bb2932274/common/common.go#L251-L254 // https://github.com/zcash/lightwalletd/blob/v0.4.16/common/common.go#L287-L290
let block_future = tokio::spawn(rpc.get_block("0".to_string(), Some(0u8))); let block_future = tokio::spawn(rpc.get_block("0".to_string(), Some(0u8)));
// Make the mock service respond with no block // Make the mock service respond with no block

View File

@ -57,8 +57,11 @@
//! //!
//! The lightwalletd software is an interface service that uses zebrad or zcashd RPC methods to serve wallets or other applications with blockchain content in an efficient manner. //! The lightwalletd software is an interface service that uses zebrad or zcashd RPC methods to serve wallets or other applications with blockchain content in an efficient manner.
//! There are several versions of lightwalled in the form of different forks. The original //! There are several versions of lightwalled in the form of different forks. The original
//! repo is <https://github.com/zcash/lightwalletd> but Zecwallet Lite uses a custom fork: <https://github.com/adityapk00/lightwalletd>. //! repo is <https://github.com/zcash/lightwalletd>, zecwallet Lite uses a custom fork: <https://github.com/adityapk00/lightwalletd>.
//! The custom fork from adityapk00 is the one Zebra use for this tests: //! Initially this tests were made with `adityapk00/lightwalletd` fork but changes for fast spendability support had
//! been made to `zcash/lightwalletd` only.
//!
//! We expect `adityapk00/lightwalletd` to remain working with Zebra but for this tests we are using `zcash/lightwalletd`.
//! //!
//! Zebra lightwalletd tests are not all marked as ignored but none will run unless //! Zebra lightwalletd tests are not all marked as ignored but none will run unless
//! at least the `ZEBRA_TEST_LIGHTWALLETD` environment variable is present: //! at least the `ZEBRA_TEST_LIGHTWALLETD` environment variable is present:

View File

@ -70,6 +70,8 @@ pub const LIGHTWALLETD_FAILURE_MESSAGES: &[&str] = &[
"into Go value of type", "into Go value of type",
// lightwalletd custom RPC error messages from: // lightwalletd custom RPC error messages from:
// https://github.com/adityapk00/lightwalletd/blob/master/common/common.go // https://github.com/adityapk00/lightwalletd/blob/master/common/common.go
// TODO: support messages from both implementations if there are differences?
// https://github.com/zcash/lightwalletd/blob/v0.4.16/common/common.go
"block requested is newer than latest block", "block requested is newer than latest block",
"Cache add failed", "Cache add failed",
"error decoding", "error decoding",