-
Notifications
You must be signed in to change notification settings - Fork 2.6k
upgrade schnorrkel to 0.10 #10048
Comments
Previous upgrade notes: #3243 |
I saw #10025, is there a good reason schnorrkel wasn't updated yet? |
It's likely some computational dependency that caused the regression, so curve2551-dalek or merlin or rand, since not much else changed. It could be tested vs schnorrkel 10.1 to detect when the regression happened. A priori, we do not use rand enough to have much impact, except I switched from ThreadRng or OsRng in w3f/schnorrkel@c333370 and w3f/schnorrkel@f155c2a which likely slows down signing. Any idea if the regression comes from verification or signing? We could test with this change reverted easily I guess. I always prefer transcript-like hash functions like merlin when implementing Fiat-Shamir protocols, but merlin is based upon Keccak STROBE and slower than blake2b. In substrate, we typically pass big messages through blake2b before signing, but perhaps somewhere we pass some large-ish message into merlin directly, so then a merlin regression could trigger a noticeable substrate regression. I donno.. It's more likely some curve25519-dalek regression caused this regression somehow, because elliptic curve arithmetic runs way slower than hashing. I've merged everything from @gilescope into 10.2 except w3f/schnorrkel@5334cb6 but since then we've decided to drop the -ng versions, since not even zcash uses them, so we should see if this commit improves or worsens things relative to 9.2. We'll definitely observe some speedup from non -ng versions because others besides HdV and Isis contributes patches like dalek-cryptography/curve25519-dalek#379 although that specific one never got merged. We therefore risk some mixed bag here regardless. We should maybe recheck that no dependency uses |
I see there is a verification bench in |
Yes likely so, but verification is by far the most important benchmark. I donno how big the substrate regression was either. |
we are a few versions behind and this gets us to rand 0.8.
linked to upgrade substrate-bip39 crate.
The text was updated successfully, but these errors were encountered: