Skip to content
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

Kovan 1.3.15 #2094

Merged
merged 46 commits into from Jun 4, 2019
Merged

Kovan 1.3.15 #2094

merged 46 commits into from Jun 4, 2019

Conversation

vbaranov
Copy link
Member

@vbaranov vbaranov commented Jun 4, 2019

A part of #2061

Kovan release 1.3.15

#1917 and #2027 are switched off because of performance issues

saneery and others added 16 commits May 24, 2019 10:50
Currently in Geth variant raw traces are converted into internal_transactions
using a custom JS tracer in [1]. cpp-ethereum nodes don't support custom JS
tracers and return raw traces regardless of provided parameters.

This PR adds an Elixir implementation of the tracer, which is utilized in
case raw traces are detected in the response from the node. It was
cross-checked for correctness with Geth builtin `callTracer`[2].
In the process some bugs were discovered in the our JS tracer, which will
be fixed with a separate PR.

Though, unlike JS tracer, we don't have access to EVM internal state during
tracing, so additional requests to node are required: transactions and receipts
are fetched before tracing, created contract codes and pre-selfdestruct
balances are fetched after.

[1] priv/js/ethereum_jsonrpc/geth/debug_traceTransaction/tracer.js
[2] https://github.com/ethereum/go-ethereum/blob/master/eth/tracers/internal/tracers/call_tracer.js
Transaction receipt from cpp-ethereum doesn't contain these fields.
Now `gas` is the amount of gas given to the first opcode in a call, and
`gas_used` is the amount of gas left after the last opcode in the call.
That was most probably a typo.
Now `gas` is the gas available in the first opcode of a call, while
`gas_used` is the gas available _after_ the last opcode of the call.
It is unnecessary to set `refetch_needed` to blocks that do not yet have a consensus, so this small change can save some time in the migration and avoid some checking from the temporary fetcher.
@vbaranov vbaranov merged commit 5f70542 into production-kovan Jun 4, 2019
@vbaranov vbaranov deleted the production-kovan-stg branch June 4, 2019 12:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants