Zcash Z3 updates (formerly Zcashd Deprecation)

August 8th

Hello! Another week, another Zcash Z3 update!

Outreach

Status: resumed
We concluded the outreach for Zcashd 6.3.0 with a high degree of responses. In the following days we will probably hear from those who didn’t update in time and we will troubleshoot their issues if needed. We also started scoping and discussing Z3’s alpha which we call mostly Zallet’s alpha because we mainly aim those entities that make use of the Zcashd wallet.

Zebra

Project Roadmap board
Priority board
The ZF engineering released Zebra 2.5.0 which includes NU 6.1 for testnet in concordance with Zcashd 6.3.0. There is a lot of work and coordination behind this that ZF and ECC have carried out while also attending everything else. Kudos to both teams.

Zebra is also receiving some improvements in their CI infrastructure code and also Regtest support is being enhanced in cooperation with ZingoLabs which are their main users at the moment.

Zaino (ZingoLabs)

  • Status: in progress

Project Board
ZingoLabs is wrapping up Zaino Respec work which enhances support of finalized and non finalized state views of the Zcash blockchain. Lightwalletd replacement milestone has been delayed a bit because of an unfortunate hardware failure in Zaino’s lead dev but we are just a few days to reach code completion of it. The Light Client Working Group discussed on their last call (#101) a new addition to the light client protocol and it was planned to be a Zaino-only update. That’s how close we are! Wohooo!

According to ZingoLabs estimations, Zaino’s Block Explorer support will be wrapped up a few days after lightwalled replacement is complete.

In-Memory backend wrap up

- status: pending review :warning:

PR: https://github.com/zcash/librustzcash/pull/1634
We have exciting news that can’t be shared yet but this is taking more relevance at the moment so Kris and Pacu will start to figure out what’s the path of this PR to librustzcash’s main branch and try to push it forward with higher priority.

Zallet full node wallet

  • Status: in progress

tracking work on this repository.

Now that ECC core developers have wrapped up Zcashd 6.3.0 release and all that it entailed, the team is focused on Zallet Alpha which is starting soon. As you see on this cropped version of the Zcashd deprecation dag, just a handful of green little remains Also some of them are actually in review!

Call for testers and Developers is still open! Check the previous updates to know what’s that about.

Block Explorer Support

  • Status: Testing

It is possible that Zcash block explorer will switch to Zebra with the patched version nighthawks ZBE soon. Although this is just the beginning of it. As we mentioned in the Zaino section above, Block Explorer support APIs are close to land into Zaino and then the Block Explorer will be “unpatched” to use the right APIs that are far more efficient.

Pending reviews:

Thanks for reading!

7 Likes

August 15th

We are all jumping through moving trains.

This is a thought exercise. You can skip it and continue to the updates. I swear that I wrote it before this ZK AV Club post. But the coincidence gives me a lot more to reflect and think.

Imagine that there are three parallel rails where three passenger trains go side by side.
These trains go to one destination where one of them will stop forever there and the other two will continue perpetually circling earth. There’s an even MORE unusual railroad setup. All three trains have to reach that destination at the same time so they can stop and let passengers go off one of them and let the other two continue forward. How far they get, depends on the overall collective distance of all trains from the destination regardless which one of the trains is ahead or behind.

The trains are not adversarial, they’ll cooperate to their best ability. They can’t stop their march until their destination. Also, if this wasn’t twisted enough, two of the trains must exactly coincide on certain points or one of them will yield away. Things can get worse because, due to weird rails conditions, the trains need to balance the passenger count depending on the structural state of the railways. These railway conditions are uneven across the path in all three of these parallel rails. Railroad experts have determined that it’s not possible to run one of the trains forward to the finish line and wait for the others, because the load balancing needs won’t allow it. Given that these trains can’t stop, people will have to jump from one train to the other and account for slight train speed variability while the trains go unevenly marching together towards their destination. These trains also need repair, and even one of them is being built on the go! Oh… and there’s one more thing! there aren’t any redundant train engineers for some critical tasks.

All train jumpers have been given this vignette so they can jump to their best ability. (Credits: ChatGPT)

How should people jumping from one train to the other should evaluate their jump to be sure they will land it?
What if the train slows down or accelerates in between someone’s jump?

There are a myriad of things that could go wrong. Still, trains are steady going towards their destination (although slower than we would have thought).

Pacu, What kind of LSD trip is this? :joy:

As crazy and far-fetched this sounds, this is the magnitude of the problem the Zcash ecosystem is dealing with right now with Zcashd deprecation, Z3 development and future NU7 deployment.

Because these all are very good trains, with excellent crew members, we sometimes forget how complex it is, and we take for granted that things will go well no matter what.

Plan every jump, protect every jumper, maintain every train. That’s the key to our success.

Now, let’s see how the trains are doing!

Outreach

Status: paused

So far we haven’t gotten any reports of reached organizations with Zcashd 6.3.0 roll out. Once we have definitions on Zallet’s Alpha readiness we will resume this effort.

Zebra

Project Roadmap board

Priority board

The ZF engineering team is working on a lot of things, for this particular goal, Zebra is getting performance improvements like adoption of BatchVerifiers and the team is performing chores that are needed to keep Zebre lean and fast.

Zaino (ZingoLabs)

  • Status: in progress

Project Board

Zaino continues their Restructure and continuation grants. A lot of tests are being added. Block explorer support and Lightwalletd feature replacement being wrapped up. Along those lines @nuttycom walked by the Zaino stables and left a neat contribution to link the canonical light client protofiles. ATH in collaboration continues!

In-Memory backend wrap up

  • status: pending review :warning:

PR: https://github.com/zcash/librustzcash/pull/1634

No changes from last update

Zallet full node wallet

  • Status: in progress

tracking work on this repository.

Zallet keeps progressing towards its alpha readiness. Z3 developers are working on configuration schemes for the Z3 Stack to be distributed to Alpha testing candidate organizations whose list is being defined.

The PR review bottleneck is striking us hard but fortunately @OxArbitrage is helping Zallet devs out with this. If you have good rust skills and time, please care to share your review!

Call for testers and Developers is still open! Check the previous updates to know what’s that about.

Block Explorer Support

  • Status: Testing

@cacho is maintaining the current ZBE and helping out with some bugs that are causing shielded coinbase transactions not being displayed properly. We were reported an outage on API that supports CoinMarketCap’s APIs which Cacho fixed overnight. Thanks!

Pending reviews:

Thanks for reading!

10 Likes

Great metaphor, but very true.

Thanks for sharing your thoughts on this, Pacu!

1 Like

August 22nd

Hello! There are a lot of updates this week. Let’s get to it!

Outreach

Status: Resumed
We’ve concluded Zcashd 6.3.0 roll out. We are still monitoring the situation (thanks @edicksonga for some reports). We are now starting a Zcash Network Upgrade Friction Survey to get some insight on pain points generated by transaction changes in the ecosystem. @nuttycom proposed this in Light Client Working Group and we kicked it off right away.

Zebra

Project Roadmap board
Priority board

ZF folks released Zebra 2.5.0 which enables NU 6.1 in testnet. Zebra now does Orchard batch validation and also has a few more enhancements to existing RPCs to be more compatible with Block Explorers and Zcashd clients. Also the team keeps housekeeping continuous integration (CI) infrastructure and contributing to the Z3 distribution pipeline.

Zaino (ZingoLabs)

  • Status: in progress

Project Board

Zingo folks continue to progress on their Zaino chain index API, Respec grant and block explorer support code completion.

In-Memory backend wrap up

- status: pending review :warning:

PR: https://github.com/zcash/librustzcash/pull/1634
@nuttycom has been working on this so that we can merge this PR into the main development branch so that WebZ.js and the Metamask snap gets the needed updates for NU 6.1.

Zallet full node wallet

  • Status: in progress

tracking work on this repository.

We are getting closer to Alpha Phase code requirements to be complete.

  • Kris has sent PRs to Zebra and Zaino to keep Z3 dependencies up-to-date
  • Str4d has worked on PCZT support for P2SH
  • Zallet support of zero-conf-shielding as Zcashd has

Also, Did you know there is a Zallet Book?

Call for testers and Developers is still open! Check the previous updates to know what’s that about.

Block Explorer Support

  • Status: Testing

RPCs are in development on Zaino’s repo and we are progressing on this front.

Pending reviews:

Thanks for reading!

7 Likes

August 29th

Hello! There are a lot of updates this week. Let’s get to it!

Outreach

Status: Resumed :white_check_mark:
We started some interesting conversations with different ecosystem actors about the Network Upgrade Friction survey. We still have a good way to go to get a full picture of the impact of transaction changes in the ecosystem. Once we have more data we will process it and share it with the different teams.

Zebra

Project Roadmap board
Priority board

Zebra infrastructure is being revamped. This will benefit everyone not only Zcashd deprecation. Meanwhile the RPCs keep being completed with the missing information that was once “lower priority” :slightly_smiling_face: and now we have progressed enough that it’s time to get to it.

Zaino (ZingoLabs)

  • Status: in progress

Project Board

Zallet integration has brought up some improvement points that the Zaino team is working on, plus the re-architechting of Zaino is progressing towards completion next week as well as Lightwalletd functionality code completion. Zaino is also undergoing some major changes in the configuration front. It’s important that anyone interested in opens issues on the Zaino repo about it!

In-Memory backend wrap up

- status: Done :white_check_mark:

PR: https://github.com/zcash/librustzcash/pull/1634

We have merged the In-memory backend PR Add `zcash_client_memory` crate. by nuttycom · Pull Request #1923 · zcash/librustzcash · GitHub into Librustzcash :tada:

Thanks @nuttycom @str4d and @daira for all the rebasing, merging, reviewing and patching involved :heart:

Zallet full node wallet

  • Status: in progress

tracking work on this repository.

Important announcement: now it’s the perfect time to hand your documentation feedback to the Zallet team. Act now! Spin up Zallet and leave your feedback in form of github issue. So that we can enhance Zallet’s documentation. In the following week we are very interested to know what are the friction points when setting up a new wallet in Zallet.

In terms of progress, Kris and Str4d keep advancing towards Zallet alpha at full speed. .

Block Explorer Support

  • Status: Testing

No changes from last week here. RPCs are in development on Zaino’s repo and we are progressing on this front.

Pending reviews:

Thanks for reading!

9 Likes

September 5th

Hello! There are a lot of updates this week. Let’s get to it!

Outreach

Status: Resumed :white_check_mark:
We are still collecting responses for the NU friction survey. We’ll post results as soon as we have concluding answers. Zallet Alpha is paused until the Z3 dev teams give a green light for it to start.

Zebra

Project Roadmap board
Priority board

Zebra is going through continuous optimizations. Redundant code is being deleted thanks to further integration to librustzcash’s crates. Configuration is being overhauled as well as CI infrastructure. ZF folks are wrapping up Zebra work on their plate and prepare to have room on their backlog to contribute to Zallet or Zaino if needed.

ATH in collaboration continues!

Zaino (ZingoLabs)

  • Status: in progress

Project Board

Zaino is getting integrated into Zallet and we are seeing the expected issues of systems integration. We triage the problems as they come and Zaino folks are working with Zallet folks to fix those problems.

In-Memory backend wrap up

- status: Completed! :white_check_mark:

@nuttycom and myself completed this and we have left TODO items for ChainSafe to work on. Their maintenance grant is just starting so @gguy and I are making sure that they have a full backlog with these pending items for NU 6.1, bugs reported by users and the homework Kris and Str4d have left in the zcash_memory_crate when it merged. This no longer will be part of this update. Another checkbox checked. Kudos!

Zallet full node wallet

  • Status: in progress

tracking work on this repository.

Zallet is integrating Zaino and preparing for the Closed Alpha Phase. Things aren’t a bed of roses but nothing that wasn’t unexpected when it comes to integrating two systems that are in active development. Next Thursday Z3 devs will do an interactive testing session among themselves to document any issues in the “new wallet” workflow

Block Explorer Support

  • Status: Testing

Zingo folks continue to work on RPC support. Given that integration issues take precedence over this work it’s going a bit slower than expected

Pending reviews:

Thanks for reading!

9 Likes