-
Notifications
You must be signed in to change notification settings - Fork 10
V0.7.0 #90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Did a quick check. All STF, safrole/fallback traces, storage light/full traces, and preimage light traces look okay. I'm seeing a gas difference in preimages/00000008. Will investigate later today. |
|
All clear for everything except for preimages, failing ..008 with expected gas 117630, actual 113986. And possibly more preimage failures after 8, looking later |
|
in..008 how many times you call the vm accumulate for service 0? And what packages you end up accumulating? |
Same result with 113986. Service 0 accumulates once with these work packages: |
|
Ok we call accumulate twice. Please stop investigating, I suppose |
|
We match on all 0.7.0 traces except 2:
A trace for 00000008 may help us all diagnose together. We'll study 00000089 closely in the next day. We posted a 0.7.0 fuzzer target in case thats useful to get started on 0.7.0 this week |
|
FastRoll passes all STF / traces except 2: For This gives us ServiceInfo diffs when decoded: I believe this discrepancy comes from |
Agree with @0xjunha assessment on this! |
|
+1, seems that polkajam erroneously updating total octets/items in that case would explain the discrepancy |
TL;DRI think the issue might be that GP sets Why the difference? Mainly to make things more interesting for fuzzy/testing :-) I thought this was already documented, but I’ll make sure to add it to the tiny spec and include it in the test vectors documentation. Are you fine with this value? AnalysisIn step 00000008 we end up with three reports to accumulate: w1 = 0x30106542a08638f4b03aa444a502e84c5d8c0af2f4e7d78dec6fcf20839ba96c I think there is a misunderstanding about how many times service 0 calls into accumulate. IIUC you call into accumulate just once with all the reports in one shot. However, this approach does not account for the fact that each call to In our case we have:
Thus, given 12.21 we have that the max gas that can be used is 20_000_000. All the three reports have a gas for accumulate set to 10_000_000.
Given that w1_gas + w2_gas hits the max accumulate gas we first call accumulate for w1 and w2 (i.e. In the end the service 0 calls into accumulate twice and not once. |
|
I'll have a look at 00000089 tomorrow :-) |
|
8 works for me now after setting G_T = 20M. related, https://docs.jamcha.in/basics/chain-spec/tiny I think also the documentation should have D = 32 for tiny? |
Yes, I'm editing it :-) |
|
Can confirm |
|
@0xjunha @ascrivener @sourabhniyogi @jaymansfield @clearloop 000000089 has been fixed |
|
SpaceJam now passes all at 536eb7c |
|
jamzilla passes all, published 0.7.0 binaries at https://github.com/ascrivener/jamzilla-conformance-releases/releases/tag/v0.7.0.0 |
|
JavaJAM now passes all. |
|
I'm passing all the traces expect for preimages/00000095.json and preimages/00000099.json, where I have a discrepancy of 10 gas unit in the service accumulate_gas_used statistics (I have 10 less). I'm still trying to figure what the issue could be |
|
FastRoll passes all as well :) |
|
Jamduna passes all traces (including the 2 [00000008 + 00000089]). We needed to actually fix a slice input that we didn't ever test until this 00008.json new case -- we would appreciate a new fuzzing wave in 0.7.0 to harden our outeraccumulate! Our new fuzz target is v0.7.0.1 |

Protocol version 0.7.0$^*$
CHANGELOG
(*) WARNING: DEVIATIONS
** Unreleased**
New TINY constant
tinyspec fixed to 20_000_000 (ref Define D, G_T, G_R tiny spec params JamBrains/jam-docs#59)