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

More trace fixes #386

Merged
merged 9 commits into from
Feb 12, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
changelog and notes
Signed-off-by: Danno Ferrin <danno.ferrin@gmail.com>
  • Loading branch information
shemnon committed Feb 12, 2020
commit 67b5ada537a359b3363eb8c5d3cb88c10b18fbb4
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 1.4 RC

### Additions and Improvements

- New`trace_replayBlockTransactions` JSON-RPC API

This can be enabled via the `--rpc-http-api TRACE` CLI flag. There are some philosophical differences between Besu and other implementations that are outlined in the `[trace_rpc_apis.md](./docs/trace_rpc_apis.md)` documentation.
grantnoble marked this conversation as resolved.
Show resolved Hide resolved

## 1.4 Beta 3

### Additions and Improvements
Expand Down
37 changes: 37 additions & 0 deletions docs/trace_rpc_apis.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Trace RPC API nodes

This document outlines major differences for `trace_replayBlockTransactions`
compared to other implementations.

## `stateDiff`

No major differences have been observed in the `stateDiff` field.
shemnon marked this conversation as resolved.
Show resolved Hide resolved

## `trace`

Besu will report `gasUsed` after applying the effects of gas refunds. Future
shemnon marked this conversation as resolved.
Show resolved Hide resolved
implementations of Besu may track gas refunds separately.
shemnon marked this conversation as resolved.
Show resolved Hide resolved

## `vmTrace`

### Returned Memory from Calls

In the `vmTrace` `ope.ex.mem` fields Besu will only report actual data returned
shemnon marked this conversation as resolved.
Show resolved Hide resolved
fron a `RETURN` opcode. Other implementations return the contents of the
reserved output space for the call operations. Two major differences will be
shemnon marked this conversation as resolved.
Show resolved Hide resolved
noted:

1. Besu will report null when a call operation ends because of a `STOP`, `HALT`,
shemnon marked this conversation as resolved.
Show resolved Hide resolved
`REVERT`, running out of instructions, or any exceptional halts.
2. When a `RETURN` operation returns data of a different length than the space
reserved by the call only the data passed to the `RETURN` operation will be
shemnon marked this conversation as resolved.
Show resolved Hide resolved
reported. Other implementations will include pre-existing memory data or
trim the returned data.

### Precompiled contracts calls

Besu reports only the actual cost of the precompiled contract call in the
`"cost"` field.
shemnon marked this conversation as resolved.
Show resolved Hide resolved