ShardTree Zingo! 1.3.0

Folks, it gives me great pleasure to announce Zingo! 1.3.0 is released.

This release uses the ShardTree note commitment store to enable rapid witness updates.

To end users this means a long awaited increase in sync performance.

In addition to the core upgrade, we added 40% more tests of three different types, and onboarded more developers.

We’ll be releasing again soon!

21 Likes

Congratulations!

2 Likes

Thanks!

I have to mention that @Edicksonjga who found the BOBA bug which affected the ECC’s Orchard implementation, is the person who found bugs in our app.

He’s contributed enormously to the quality, not just of Zingo, but to Zcash generally.

He deserves wide recognition!

He has my deep gratitude, and respect.

Thanks @Edicksonjga !!

10 Likes

Awesome news @zancas !

+1 for @Edicksonjga - Edickson has given f2z a ton of QA, support and product feedback

u19cd4nhq2l0gpn985h8d63xkqj2man6gpzm8fkjczzy7lkgaermgv5ueuyp86r4eemwef0x4mavg9mmuycxcar3x477mrp98p97x7l3qvzrut6ap4y9c8xuy7hcq8q90ek6rhkd3xlufshjyv7dzpv4mx428pzq568jrye77hratw4tjwdwqekqljgyalnm8l3y72sqdd9jed6k65vpf

7 Likes

It will always be a pleasure to help and drive the use of Zcash, wallets are part of the foundation to build adoption.

By the way, I just checked and the new version is now available on Google Play.

10 Likes

¡Muchas gracias Skylar! (para que sigas aprendiendo español) :grin:

And I will continue to collaborate in Free2Z so that it becomes an excellent platform where users can generate content, monetize and receive p2p shielded ZEC. :sunglasses::shield: - 2Z

6 Likes

It’s great to be part such a vibrant distributed community!!

My gratitude to the other Anonymous Zingoistas who labored heroically to make this happen!

¡Muchas gracias a todos!

You are the future!

7 Likes

For folks who are interested in more details this is a reasonable starting point:

6 Likes

Great news! :clap: :clap: :clap:

We will have new things to teach in the next workshops and activities that we are preparing.

2 Likes

How much improvement should users expect to see?

2 Likes

@Edicksonjga is our workhorse in the Zcash community.

Good thing we have him!

4 Likes

Thanks… :sunglasses::shield:

2 Likes

I like this question.

TL;DR: It’s definitely faster, and there will be more speed-ups built on top of this release in the coming releases.

Sync performance improvements due to the ShardTree upgrade are a result of more efficient witness construction.

That means that the more unspent notes a wallet is syncing, the greater the sync performance speed up.

Even a modest number of unspent notes under management should sync somewhat more quickly.

We have benchmarked an 8x speed up in a somewhat contrived benchmark where every single block published a new receipt in the wallet.

Critically this upgrade is pre-requisite to using more innovations both from our own redesign, and from the work done by @nuttycom, @str4d and others in librustzcash.

To get more detailed information I recommend that you reach out to @fluidvanadium or @oscar-pepper as they are the most involved with the sync performance upgrade.

Additionally you could reach out to @AloeareV who is going to be working adjacent to your TorV3 ingration work, on our Nym integration.

5 Likes

Congrats to all Zingo Team for their hard work and major update! I’m updating and testing the new update on mobile and desktop.

1 Like

Edickson is a valuable member of the Zcash community! Thank you for all your efforts :pray:

1 Like

Thanks for your words, Yoditar. I hope everything works fine in both versions and you can enjoy the wallet.

4 Likes

We use yo call him (@Edicksonjga ) our personal GPT. Now he semms our IA who always has the right answer

2 Likes

To be honest he deserve it

1 Like

I have some crude benchmark data I’d like to share here. I will clean up the docs and produce some more benchmarks next week, but I want to get more information into the community’s hands even if it’s a little rough, right now.

Here goes…

This graph is our performance benchmarks for code derived from the last release (1.2.5):

This graph is our performance benchmarks for code derived from the new ShardTree release (1.3.0):

TL;DR:

In our OLD 1.2.5 release this scenario took just over 40 seconds to complete witness constructing sync for the spend key.

In our current ShardTree 1.3.0 release this scenario took around 5 seconds to complete witness constructing sync for the spend key.

Each graph runs the Code Under Test through the same scenario (syncing 1153 blocks, where each block contains a single block-reward transaction).

In column 1 (blue dots) the client being tested does not have any relevant key (and shouldn’t be affected by a performance upgrade to witness construction).

In column 2 (red dots) the client being tested has a full-viewing key encumbered with the coinbase transaction, and will therefore decrypt the transaction, but will NOT construct a witness to spend.

In colummn 3 the rightmost (green dots) show the performance of a full-key client, that must compute witnesses, after the same decryption step that occurs for the red (view key) case.

The code we wrote to produce these graphs can be found here:

I’d like to clean this presentation a bit (e.g. run 10 replicates per test-case, to show variance etc.)

We HAVE run many 10-replicate benchmarks, but the results were so consistent and the time cost for iterations on development were high enough that we dropped to 2 replicate benchmarks. Relative to the between condition spread, the variance is small, and the findings are very robust across code versions.

Obviously there’s a ton of room for improvement:

  • controlling the benchmark environment
  • running against more conditions including a matrix of interactions (e.g. device architecture, vs. blockchain state)
  • increasing the replicates
  • listing summary statistics (e.g. variances)

That having been said the between code version, and between case and control variable results are very stable and have been informally replicated on many developer systems, and across many code versions. We believe the observed performance increase is not an artifact of test conditions, and is user-relevant in the real world.

5 Likes

Thanks for taking the time to do this benchmark.

Unfortunately, I was not able to reproduce your results. I used Zingo Mobile 1.3.0 for Android and restored an 11-month-old wallet (birth height = 1997893). That took more than 8 hours. (My screen recording stopped after 5h:30 but there was 40% left to do).

I did the same test with YWallet and it finished in 15 minutes.

Maybe the good results you got are due to much better hardware than what I am using (since you are sharding).

My phone specs are average. It is a OnePlust 5T and is worth less than 200 USD on ebay now.

Do you have suggestions on how to make Zingo run faster?

1 Like