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

Add world context to transaction tracing API #5836

Merged
merged 7 commits into from
Sep 14, 2023
Merged

Add world context to transaction tracing API #5836

merged 7 commits into from
Sep 14, 2023

Conversation

delehef
Copy link
Contributor

@delehef delehef commented Sep 1, 2023

PR description

Add world context to the start/end transaction hooks in the tracing API.

Fixed Issue(s)

fixes: #5835

@github-actions
Copy link

github-actions bot commented Sep 1, 2023

  • I thought about documentation and added the doc-change-required label to this PR if updates are required.
  • I thought about the changelog and included a changelog update if required.
  • If my PR includes database changes (e.g. KeyValueSegmentIdentifier) I have thought about compatibility and performed forwards and backwards compatibility tests

@@ -270,6 +270,7 @@ static T8nResult runTest(
final TransactionProcessingResult result;
try {
tracer = tracerManager.getManagedTracer(i, transaction.getHash());
tracer.traceStartTransaction(worldStateUpdater, transaction);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure why the tracer was not called here previously?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it seems you added the traceEndTransaction @diega . do you know if it's normal to not have the startTransaction ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it looks like it was needed. I never used the --json|--trace flag from the t8n tool, so I cannot say if/how it was working without the tracer start. Probably @shemnon can confirm it

Copy link
Contributor

@shemnon shemnon Sep 7, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It feels like this should be called somewhere in MainnetTransactionProcessor.processTransaction rather than as part of the lead-up.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same with endTransaction.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shemnon given that gasUsed can't be computed from within processTransaction, that implies to either:

  • dirty processTransaction signature to pass gasUsed only for the sake of tracing;
  • just drop gasUsed from the traceEndTransaction API.

What do you think?

* @param transaction the transaction which will be processed
*/
default void traceStartTransaction(final Transaction transaction) {}
default void traceStartTransaction(final WorldView worldView, final Transaction transaction) {}

Check notice

Code scanning / CodeQL

Useless parameter

The parameter 'worldView' is never used.
* @param transaction the transaction which will be processed
*/
default void traceStartTransaction(final Transaction transaction) {}
default void traceStartTransaction(final WorldView worldView, final Transaction transaction) {}

Check notice

Code scanning / CodeQL

Useless parameter

The parameter 'transaction' is never used.
@matkt
Copy link
Contributor

matkt commented Sep 1, 2023

could you explain how you will use this updater. I don't think it's a good idea to pass the worldUpdater to the trace object. I think you want to use this worldUpdater later in order to retrieve some account or other data.

in bonsai you have a huge risk that this objet will be a closed snapshot and it will not work . I you need a specific data from this updater I think it's better to take it directly and pass the value to the trace object

@matkt
Copy link
Contributor

matkt commented Sep 1, 2023

could you explain how you will use this updater. I don't think it's a good idea to pass the worldUpdater to the trace object. I think you want to use this worldUpdater later in order to retrieve some account or other data.

in bonsai you have a huge risk that this objet will be a closed snapshot and it will not work . I you need a specific data from this updater I think it's better to take it directly and pass the value to the trace object

ok we did a check and it's fine regarding that .

Copy link
Contributor

@matkt matkt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM for me it's ok but I waiting for @diega regarding T8nExecutor class and maybe @shemnon

@macfarla
Copy link
Contributor

macfarla commented Sep 6, 2023

@diega @shemnon any objections to this approach?

@matkt matkt enabled auto-merge (squash) September 7, 2023 13:42
@diega
Copy link
Contributor

diega commented Sep 7, 2023

What's the practical use of this change? is there some other PR giving more context on why is this new interface needed?

Copy link
Contributor

@shemnon shemnon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I want to see some tests for this. They can be unit tests, or the full JSON tests using the T8n spec tracer, but I would like to have some output verified so that if the call to trace methods get moved around incorrectly or removed something breaks as part of the build.

@delehef
Copy link
Contributor Author

delehef commented Sep 8, 2023

What's the practical use of this change?

This change is part of a larger set of changes that are helping in the development of the Linea project.

@delehef delehef requested a review from shemnon September 12, 2023 16:01
auto-merge was automatically disabled September 12, 2023 18:57

Head branch was pushed to by a user without write access

* @param gasUsed the gas used by the entire transaction
* @param timeNs the time in nanoseconds it took to execute the transaction
*/
default void traceEndTransaction(final Bytes output, final long gasUsed, final long timeNs) {}
default void traceEndTransaction(
final WorldView worldView,

Check notice

Code scanning / CodeQL

Useless parameter

The parameter 'worldView' is never used.
default void traceEndTransaction(final Bytes output, final long gasUsed, final long timeNs) {}
default void traceEndTransaction(
final WorldView worldView,
final Transaction tx,

Check notice

Code scanning / CodeQL

Useless parameter

The parameter 'tx' is never used.
default void traceEndTransaction(
final WorldView worldView,
final Transaction tx,
final boolean status,

Check notice

Code scanning / CodeQL

Useless parameter

The parameter 'status' is never used.
final Transaction tx,
final boolean status,
final Bytes output,
final List<Log> logs,

Check notice

Code scanning / CodeQL

Useless parameter

The parameter 'logs' is never used.
delehef and others added 6 commits September 13, 2023 15:58
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
@macfarla macfarla enabled auto-merge (squash) September 14, 2023 02:27
@macfarla macfarla merged commit 3538561 into hyperledger:main Sep 14, 2023
siladu pushed a commit to siladu/besu that referenced this pull request Sep 20, 2023
---

Drop Kotti Network support (ETC) (hyperledger#5816)

Signed-off-by: Diego López León <dieguitoll@gmail.com>

fix ForkId if there are no Forks and the starting timestamp is not 0 (hyperledger#5819)

Signed-off-by: Stefan <stefan.pingel@consensys.net>

enforce that BlobTransactions have at least one blob (hyperledger#5826)

* enforce that BlobTransactions have at least one blob

Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>

Do not create ignorable segments on `revert storage-variables` (hyperledger#5830)

* fix the bug that creates the ignorable chain pruner segment, add rocks exception parsing to RocksDBColumnarKeyValueStorage subclasses
* parse rocksdb error for unprintable column family id's

Signed-off-by: garyschulte <garyschulte@gmail.com>

add versioned hashes and number of blobs to toString() (hyperledger#5831)

Signed-off-by: Stefan <stefan.pingel@consensys.net>

add parent beacon block root to payload id calculation (hyperledger#5843)

Signed-off-by: Stefan <stefan.pingel@consensys.net>

bump version to 23.7.3-SNAPSHOT (hyperledger#5854)

Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>

set the beacon root address to the correct value (hyperledger#5853)

Signed-off-by: Stefan <stefan.pingel@consensys.net>

docs(readme): fix broken link to installation of binaries page (hyperledger#5859)

Fixes hyperledger#5858

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>

Update RocksDB version from 8.0.0 to 8.3.2 (hyperledger#5832)

Signed-off-by: Ameziane H <ameziane.hamlat@consensys.net>

Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

use non-deprecated authenticate methods (hyperledger#5852)

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

move to Hyperledger shared runners for current github actions (hyperledger#5860)

Signed-off-by: garyschulte <garyschulte@gmail.com>

Add range tracing with worldstate (hyperledger#5844)

Implement a method to trace a range of blocks and have access to the worldstate before and after the tracing

Signed-off-by: Karim TAAM <karim.t2am@gmail.com>

Layered txpool by default and txpool options hoverhaul (hyperledger#5772)

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>

Fix issue 5824 - Duplicate key errors in EthScheduler-Transactions (hyperledger#5857)

Fix issue 5824 - Duplicate key errors in EthScheduler-Transactions

Signed-off-by: Ameziane H <ameziane.hamlat@consensys.net>

updated gradle verification metadata (hyperledger#5870)

* removed old artefacts [skip ci]

* works with compileTestJava

* restored metadata needed for codeQL and trusted-artifacts block for javadoc/sources

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

[4844] Add encodingContext to TransactionEncoder and TransactionDecoder (hyperledger#5820)

* Add decode type to TransactionDecoder

* Refactoring TransactionDecoder

* Invert methods order

* Use Transaction encoder instead of writeTo

* Move enter and leave list to inner method as pr suggestion

* Size calculation should use opaque bytes instead of rlp

---------

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

Signed-off-by: Stefan <stefan.pingel@consensys.net>

payload attributes: fix wrong warning and fail if beacon root is available before cancun (hyperledger#5872)

Signed-off-by: Stefan <stefan.pingel@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

Merge MutableAccount and EVMAccount (hyperledger#5863)

Merge MutableAccount and EVMAccount functionalities by removing
EVMAccount, all calls to getMutable, and the WrappedEVMAccount that was
wrapping non-EVMAccounts in a mutable fashion.  Instead, use a
MutableAccount in all cases an EVMAccount would have been used.  This
also tends to reduce a level of layering in many places.

Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>

Add world context to transaction tracing API (hyperledger#5836)

* Add world context to transaction tracing API

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Update changelog with PR ID

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add the Transaction to traceEndTransaction

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Rebase on main

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add receipt-linked information to the transaction tracer

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* added test

Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>

---------

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

Bonsai based reference test worldstate (hyperledger#5686)

* create a bonsai based reference test worldstate
  -> getOrCreate in BonsaiWorldStateUpdateAccumulator - do not throw if we discover an empty account in a non-null BonsaiValue<Account>
  -> add curentStateRoot to t8n
  -> storageEntriesFrom and streamAccounts implemented in BonsaiWorldStateKeyValueStorage
  -> add endKey version of streamFromKey
* bonsai fix for self-destruct and create2 at the same address and same block

Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
Co-authored-by: Karim TAAM <karim.t2am@gmail.com>

Don't start BFT mining coordinators until initial sync has completed (hyperledger#5861)

* Don't start BFT mining coordinators until initial sync has completed

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Fix unit tests

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Fix 'enable' logic

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

---------

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

display only peers ready for requets on ethstats (hyperledger#5880)

* display only ready for requets peers in ethstats

Signed-off-by: Karim TAAM <karim.t2am@gmail.com>

* cast to int

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>

[MINOR] test RLP used for encode/decode blob tx should contain to field (hyperledger#5883)

* validate to field on encode/decode for blob tx

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

* revert decode/encode checks - tis done later in tx validation

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

Fix: correctly convert percentage options in TOML configuration file (hyperledger#5886)

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>

EIP7516 - Add BlobBaseFee opcode to Cancun EVM (hyperledger#5884)

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

Fix snapsync heal (hyperledger#5838)

Signed-off-by: Karim TAAM <karim.t2am@gmail.com>

Upgrade besu-native (hyperledger#5893)

Upgrade besu-native to 0.8.2

Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>

Tune G1GC to reduce Besu memory footprint (hyperledger#5879)

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>

Add updated storage to evmtool json trace (hyperledger#5892)

Add the EIP-3155 "storage" option to the standard tracer, with the
caveat only updated storage is logged.

Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>

Update holesky with fixed extraData, genesis time, shanghaiTime (hyperledger#5890)

Signed-off-by: Simon Dudley <simon.dudley@consensys.net>

[CHANGELOG] removed duplicated line (hyperledger#5904)

* removed duplicated line [skip ci]

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

* fixed spelling on Holesky

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
garyschulte pushed a commit to garyschulte/besu that referenced this pull request Sep 20, 2023
* Add world context to transaction tracing API

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Update changelog with PR ID

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add the Transaction to traceEndTransaction

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Rebase on main

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add receipt-linked information to the transaction tracer

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* added test

Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>

---------

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
garyschulte pushed a commit to garyschulte/besu that referenced this pull request Sep 20, 2023
* Add world context to transaction tracing API

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Update changelog with PR ID

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add the Transaction to traceEndTransaction

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Rebase on main

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add receipt-linked information to the transaction tracer

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* added test

Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>

---------

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
siladu pushed a commit to siladu/besu that referenced this pull request Sep 20, 2023
* Add world context to transaction tracing API

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Update changelog with PR ID

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add the Transaction to traceEndTransaction

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Rebase on main

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add receipt-linked information to the transaction tracer

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* added test

Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>

---------

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
siladu pushed a commit to siladu/besu that referenced this pull request Sep 20, 2023
* Add world context to transaction tracing API

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Update changelog with PR ID

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add the Transaction to traceEndTransaction

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Rebase on main

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add receipt-linked information to the transaction tracer

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* added test

Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>

---------

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
siladu added a commit that referenced this pull request Sep 20, 2023
burn-in candidate for 23.7.3 from main sha 6dc10a9..eef40bd

https://github.com/hyperledger/besu/compare/6dc10a9..eef40bd

---

* Drop Kotti Network support (ETC) (#5816)

Signed-off-by: Diego López León <dieguitoll@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* fix ForkId if there are no Forks and the starting timestamp is not 0 (#5819)

Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* enforce that BlobTransactions have at least one blob (#5826)

* enforce that BlobTransactions have at least one blob

Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* Do not create ignorable segments on `revert storage-variables` (#5830)

* fix the bug that creates the ignorable chain pruner segment, add rocks exception parsing to RocksDBColumnarKeyValueStorage subclasses
* parse rocksdb error for unprintable column family id's

Signed-off-by: garyschulte <garyschulte@gmail.com>

* add versioned hashes and number of blobs to toString() (#5831)

Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* add parent beacon block root to payload id calculation (#5843)

Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* bump version to 23.7.3-SNAPSHOT (#5854)

Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* set the beacon root address to the correct value (#5853)

Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* docs(readme): fix broken link to installation of binaries page (#5859)

Fixes #5858

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* Update RocksDB version from 8.0.0 to 8.3.2 (#5832)

Signed-off-by: Ameziane H <ameziane.hamlat@consensys.net>

Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* use non-deprecated authenticate methods (#5852)

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* move to Hyperledger shared runners for current github actions (#5860)

Signed-off-by: garyschulte <garyschulte@gmail.com>

* Add range tracing with worldstate (#5844)

Implement a method to trace a range of blocks and have access to the worldstate before and after the tracing

Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* Layered txpool by default and txpool options hoverhaul (#5772)

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* Fix issue 5824 - Duplicate key errors in EthScheduler-Transactions (#5857)

Fix issue 5824 - Duplicate key errors in EthScheduler-Transactions

Signed-off-by: Ameziane H <ameziane.hamlat@consensys.net>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* updated gradle verification metadata (#5870)

* removed old artefacts [skip ci]

* works with compileTestJava

* restored metadata needed for codeQL and trusted-artifacts block for javadoc/sources

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* [4844] Add encodingContext to TransactionEncoder and TransactionDecoder (#5820)

* Add decode type to TransactionDecoder

* Refactoring TransactionDecoder

* Invert methods order

* Use Transaction encoder instead of writeTo

* Move enter and leave list to inner method as pr suggestion

* Size calculation should use opaque bytes instead of rlp

---------

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* #5868: fix beacon root address and modulus for devnet 9 (#5871)

Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* payload attributes: fix wrong warning and fail if beacon root is available before cancun (#5872)

Signed-off-by: Stefan <stefan.pingel@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* Merge MutableAccount and EVMAccount (#5863)

Merge MutableAccount and EVMAccount functionalities by removing
EVMAccount, all calls to getMutable, and the WrappedEVMAccount that was
wrapping non-EVMAccounts in a mutable fashion.  Instead, use a
MutableAccount in all cases an EVMAccount would have been used.  This
also tends to reduce a level of layering in many places.

Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* Add world context to transaction tracing API (#5836)

* Add world context to transaction tracing API

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Update changelog with PR ID

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add the Transaction to traceEndTransaction

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Rebase on main

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add receipt-linked information to the transaction tracer

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* added test

Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>

---------

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* Bonsai based reference test worldstate (#5686)

* create a bonsai based reference test worldstate
  -> getOrCreate in BonsaiWorldStateUpdateAccumulator - do not throw if we discover an empty account in a non-null BonsaiValue<Account>
  -> add curentStateRoot to t8n
  -> storageEntriesFrom and streamAccounts implemented in BonsaiWorldStateKeyValueStorage
  -> add endKey version of streamFromKey
* bonsai fix for self-destruct and create2 at the same address and same block

Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
Co-authored-by: Karim TAAM <karim.t2am@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* Don't start BFT mining coordinators until initial sync has completed (#5861)

* Don't start BFT mining coordinators until initial sync has completed

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Fix unit tests

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

* Fix 'enable' logic

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>

---------

Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* display only peers ready for requets on ethstats (#5880)

* display only ready for requets peers in ethstats

Signed-off-by: Karim TAAM <karim.t2am@gmail.com>

* cast to int

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* [MINOR] test RLP used for encode/decode blob tx should contain to field (#5883)

* validate to field on encode/decode for blob tx

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

* revert decode/encode checks - tis done later in tx validation

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* Fix: correctly convert percentage options in TOML configuration file (#5886)

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* EIP7516 - Add BlobBaseFee opcode to Cancun EVM (#5884)

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* Fix snapsync heal (#5838)

Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* Upgrade besu-native (#5893)

Upgrade besu-native to 0.8.2

Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* Tune G1GC to reduce Besu memory footprint (#5879)

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* Add updated storage to evmtool json trace (#5892)

Add the EIP-3155 "storage" option to the standard tracer, with the
caveat only updated storage is logged.

Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* Update holesky with fixed extraData, genesis time, shanghaiTime (#5890)

Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* [CHANGELOG] removed duplicated line (#5904)

* removed duplicated line [skip ci]

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

* fixed spelling on Holesky

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>

* add 23.7.2 release SHAs and bump to 23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-23.7.3-RC version

Signed-off-by: garyschulte <garyschulte@gmail.com>

---------

Signed-off-by: Diego López León <dieguitoll@gmail.com>
Signed-off-by: garyschulte <garyschulte@gmail.com>
Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Ameziane H <ameziane.hamlat@consensys.net>
Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Co-authored-by: Diego López León <dieguitoll@gmail.com>
Co-authored-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
Co-authored-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Peter Somogyvari <petermetz@users.noreply.github.com>
Co-authored-by: ahamlat <ameziane.hamlat@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: matkt <karim.t2am@gmail.com>
Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Co-authored-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Co-authored-by: delehef <franklin.delehelle@odena.eu>
Co-authored-by: Matt Whitehead <matthew1001@gmail.com>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>
@delehef delehef deleted the feat/issue-5835/tracing-tx-context branch September 26, 2023 14:38
eum602 pushed a commit to lacchain/besu that referenced this pull request Nov 3, 2023
* Add world context to transaction tracing API

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Update changelog with PR ID

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add the Transaction to traceEndTransaction

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Rebase on main

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add receipt-linked information to the transaction tracer

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* added test

Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>

---------

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
NickSneo pushed a commit to NickSneo/besu that referenced this pull request Nov 12, 2023
* Add world context to transaction tracing API

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Update changelog with PR ID

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add the Transaction to traceEndTransaction

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Rebase on main

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* Add receipt-linked information to the transaction tracer

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>

* added test

Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>

---------

Signed-off-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
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.

Provide a world view to the start/end transaction hooks in tracing API
6 participants