-
Notifications
You must be signed in to change notification settings - Fork 282
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
fix: making sent tx's fail at validation, rather than waiting for the non inclusion of the tx at a block #7841
base: master
Are you sure you want to change the base?
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
a51d888
to
71e587c
Compare
152f234
to
684caac
Compare
Benchmark resultsMetrics with a significant change:
Detailed resultsAll benchmarks are run on txs on the This benchmark source data is available in JSON format on S3 here. Proof generationEach column represents the number of threads used in proof generation.
L2 block published to L1Each column represents the number of txs on an L2 block published to L1.
L2 chain processingEach column represents the number of blocks on the L2 chain where each block has 8 txs.
Circuits statsStats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.
Stats on running time collected for app circuits
AVM SimulationTime to simulate various public functions in the AVM.
Public DB AccessTime to access various public DBs.
Tree insertion statsThe duration to insert a fixed batch of leaves into each tree type.
MiscellaneousTransaction sizes based on how many contract classes are registered in the tx.
Transaction size based on fee payment method | Metric | | |
71e587c
to
2a464b1
Compare
684caac
to
2574895
Compare
ea59527
to
2f4d23a
Compare
36e2089
to
991a16d
Compare
This PR fixes the outdated error messages brought on by #7841. Please see that PR for more context.
e3794ed
to
595b0ad
Compare
This PR fixes the outdated error messages brought on by #7841. Please see that PR for more context.
d13b336
to
ee7cb6b
Compare
33c9509
to
1f3fce3
Compare
ee7cb6b
to
9936978
Compare
This PR fixes the outdated error messages brought on by #7841. Please see that PR for more context.
4add105
to
0741b46
Compare
This PR fixes the outdated error messages brought on by #7841. Please see that PR for more context.
9936978
to
d00810d
Compare
This PR fixes the outdated error messages brought on by #7841. Please see that PR for more context.
f51e8b8
to
50017f4
Compare
2563301
to
da8276c
Compare
This PR fixes the outdated error messages brought on by #7841. Please see that PR for more context.
50017f4
to
752ca9c
Compare
da8276c
to
501d079
Compare
This PR fixes the outdated error messages brought on by #7841. Please see that PR for more context.
752ca9c
to
dfee9c2
Compare
501d079
to
c006b33
Compare
This PR fixes the outdated error messages brought on by #7841. Please see that PR for more context.
dfee9c2
to
178f2d9
Compare
c006b33
to
6d1ef00
Compare
This PR fixes the outdated error messages brought on by #7841. Please see that PR for more context.
178f2d9
to
36f87a2
Compare
6d1ef00
to
9f14a97
Compare
This PR fixes the outdated error messages brought on by #7841. Please see that PR for more context.
36f87a2
to
47f47d1
Compare
9f14a97
to
159fe3b
Compare
This PR fixes the outdated error messages brought on by #7841. Please see that PR for more context.
47f47d1
to
24f43be
Compare
This PR fixes the outdated error messages brought on by #7841. Please see that PR for more context.
24f43be
to
403c62c
Compare
403c62c
to
b094dbe
Compare
await expect(contract.methods.emit_nullifier(nullifier).send().wait()).rejects.toThrow( | ||
'The simulated transaction is unable to be added to state and is invalid.', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a way to have the validators pass further context to the error, e.g. in this case explain that it's due to a duplicated nullifier?
Right now when we send a TX to the node, it gets "fake" validated; because if invalid, a no-op occurs, it doesn't give users feedback directly in any way. The transaction is not forwarded to the p2p client, and nothing is returned to the user.
This change makes a sent transaction fail early if the transaction is invalid (that is, unable to be included in any block to advance state).
The mechanism by which this occurs is similar to what is implemented for a simulation, that is we use the previously introduced endpoint on the node to validate if the transaction is not invalid according to our above definition, and if it is invalid, we throw an error on the spot.
Addresses #8231.