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

Delete leftPad when capturing the stack before and after a frame execution #6102

Merged
merged 8 commits into from
Nov 9, 2023

Conversation

ahamlat
Copy link
Contributor

@ahamlat ahamlat commented Oct 27, 2023

When load testing trace_block RPC method and profiling Besu, we found that leftPad method (that expands to 32 bytes) called during stack capturing before and after a frame execution takes a significant amount of time.

image

As padding is not necessary, deleting this call is an easy fix to improve trace namespace performance. We noticed after deleting leftPad call improvement of at least 3X, in the screenshot below we can see a performance improvement of 9X.

image

We can see below the profiling after deleting leftPad call in caputreStack

image

@github-actions
Copy link

  • 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

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.

LGTM, local performance testing on my end validates the findings as well.

Signed-off-by: Ameziane H <[email protected]>
@ahamlat
Copy link
Contributor Author

ahamlat commented Oct 31, 2023

The tests on debug tracing RPC methods like debug_traceTransaction are not passing, because the stack content is part of the json output, which is not the case with tracing calls in the trace namespace. Here's an example on debug_traceTransaction :
Expected

{
      "pc" : 2,
      "op" : "CALLDATALOAD",
      "gas" : 292884,
      "gasCost" : 3,
      "depth" : 1,
      "stack" : [ "0000000000000000000000000000000000000000000000000000000000000000" ],
      "memory" : [ ],
      "storage" : null,
      "reason" : null
    }

Generated with this PR

{
      "pc" : 2,
      "op" : "CALLDATALOAD",
      "gas" : 292884,
      "gasCost" : 3,
      "depth" : 1,
      "stack" : [ "00" ],
      "memory" : [ ],
      "storage" : null,
      "reason" : null
    }

I added a fix for these use cases in the commit below.

Signed-off-by: Ameziane H <[email protected]>
@shemnon
Copy link
Contributor

shemnon commented Oct 31, 2023

How is the performance of a41d5b4?

Have you considered changing org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.StructLog#stack to build into a StringBuilder while being attentive to packing zeros at the last possible moment instead? I think that would be more performant.

Signed-off-by: Ameziane H <[email protected]>
@ahamlat ahamlat marked this pull request as ready for review November 1, 2023 09:36
@ahamlat
Copy link
Contributor Author

ahamlat commented Nov 1, 2023

How is the performance of a41d5b4?

The performances of trace_block are the same as bebore as it is not impacted by the modication

image

I'm trying to get usable results on debug_traceTransaction response time (my gatling project is crashing because of the huge outputs) but at least what I can see is that org/apache/tuweni/bytes/Bytes.toFastHex seems to be the bottelneck. Also, I think there is still an optimization as we do leftPadding only once whit this PR where we do it twice before.

image image

Have you considered changing org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.StructLog#stack to build into a StringBuilder while being attentive to packing zeros at the last possible moment instead? I think that would be more performant.

Thank you for your suggestion. However, I'm currently unable to visualize how the implementation using StringBuilder in the org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.StructLog#stack would work. Could you please provide more details or perhaps a sample code snippet to help clarify your idea?

@shemnon
Copy link
Contributor

shemnon commented Nov 1, 2023

What is the wall clock time for those two traces? They are both visualized in percentage of execution time but if the top level speed is better that's a win.

Something like this

  static final String bytes32ZeroString = Bytes32.ZERO.toUnprefixedHexString();
  @JsonGetter("stack")
  public String[] stack() {
    String[] result = new String[stack.length];
    for (int i = 0; i < stack.length; i++) {
      StringBuilder sb = new StringBuilder();
      sb.append(bytes32ZeroString, 0, 62 - stack[i].length());
      sb.append(stack[i]);
      result[i] = sb.toString();
    }
    return result;
  }

However having a Byte[] in TraceFrame would likely have more speedup.

@ahamlat
Copy link
Contributor Author

ahamlat commented Nov 6, 2023

@shemnon I implemented your suggestion in this commit a5636a5, I used 64 instead of 62 in your snippet.
To have usable results in the load testing tool, I had to add debug_traceBlockByNumber to the testing tool and modify the the code to not stream the results, just process the json output and not send it back, I added some code to avoid deleting the processing code by the JIT compiler.
I compared the results between 3 versions on debug_traceBlockByNumber with a load of 1 TPS.

  • Main before this PR (commit f58f6cf)
  • Last commit (a5636a5) of this PR (implementation with StringBuffer)
  • Commit a41d5b4 (left padding bytes)

Here're the results :

1. Main before this PR

image image

2. Implementation with LeftPad on Bytes

image image

**3. Implementation with StringBuffer **
image

image

From these results we can see that the last commit with StringBuilder implementation is the best implementation in terms of performance.

@macfarla
Copy link
Contributor

macfarla commented Nov 7, 2023

@ahamlat is this ready to merge?

@ahamlat
Copy link
Contributor Author

ahamlat commented Nov 7, 2023

@macfarla I'm awaiting any potential feedback from Danno before proceeding with the merge. Let's wait another one or two days.

@ahamlat ahamlat merged commit 9710a9a into hyperledger:main Nov 9, 2023
19 checks passed
@shemnon
Copy link
Contributor

shemnon commented Nov 9, 2023

Sorry, missed this one. No feedback. I should have been more attentive so you could have merged it days ago.

jflo pushed a commit to jflo/besu that referenced this pull request Nov 10, 2023
…ution (hyperledger#6102)

* Delete leftPad when capturing the stack before and after the execution
* Still use leftPad when displaying the stack in the output (ex. for debug_traceTransaction)
* Fix integration test
* Use StringBuilder to left pad the hex representation of a 32 bytes

Signed-off-by: Ameziane H <[email protected]>
(cherry picked from commit 9710a9a)
jflo added a commit that referenced this pull request Nov 10, 2023
* Unsigned timestamps and blob gas used (#6046)

* lots of places an unsigned timestamp is a problem
* adds unchecked annotations to OptionalUnsignedLong rpc parameter type

---------

Signed-off-by: Justin Florentine <[email protected]>
(cherry picked from commit a90ea05)

* [MINOR] ux improvements (#6049)

* log command line option that is affected

* made plugins summary log part of config overview

* check for null plugin context

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>
(cherry picked from commit e8bca61)

* Update changelog release (#6062)

Signed-off-by: Gabriel-Trintinalia <[email protected]>
(cherry picked from commit f810887)

* Dencun corner cases (#6060)

* cherry pick changes from https://github.com/hyperledger/besu/pull/6054/files\#diff-22b78733e37a697fa8d1d8a02d2a87fe5ccea9cf67c34ce5e6311f024c14abd6L643-R738

Signed-off-by: Sally MacFarlane <[email protected]>

* cherry pick changes from https://github.com/hyperledger/besu/pull/6054/files\#diff-61db834b59eae5ce5c438462505de1add8fa244deda830742060d15f668a9806R39-R44

Signed-off-by: Sally MacFarlane <[email protected]>

* formatting

Signed-off-by: Sally MacFarlane <[email protected]>

* update the EIP-6110 acceptance tests

Signed-off-by: Danno Ferrin <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Danno Ferrin <[email protected]>
Co-authored-by: Danno Ferrin <[email protected]>
(cherry picked from commit 9d9fe8c)

* add retry logic on sync pipeline for rocksdb issue (#6004)

* add retry logic for sync pipeline with rocksdb issue

Signed-off-by: Karim TAAM <[email protected]>
(cherry picked from commit c839a3b)

* Mining options refactor (#6027)

Signed-off-by: Fabio Di Fabio <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
(cherry picked from commit 20a82d4)

* Update reference tests to Cancun (#6054)

* Update reference tests to Cancun

Update reference tests to cancun tests.

Signed-off-by: Danno Ferrin <[email protected]>

* update the subrepo

Signed-off-by: Danno Ferrin <[email protected]>

* update the EIP-6110 acceptance tests

Signed-off-by: Danno Ferrin <[email protected]>

* update to develop

Signed-off-by: Danno Ferrin <[email protected]>

---------

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
(cherry picked from commit 909649f)

* Optimize GetPooledTransactionsFromPeerTask with HashSet (#6071)

Switch from using a List to a HashSet for transaction hashes in GetPooledTransactionsFromPeerTask to improve performance.

Signed-off-by: Suyash Nayan <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
(cherry picked from commit a2dbb82)

* Decouple TrieLogManager and CachedWorldStorageManager (#6072)

Separate out the concepts of world state caching and trie log management.
Remove AbstractTrieLogManager and make TrieLogManager the concrete implementation.

Signed-off-by: Simon Dudley <[email protected]>
(cherry picked from commit 20f518e)

* Implement miner_setMinPriorityFee and miner_getMinPriorityFee (#6080)

* Refactor mining options

Signed-off-by: Fabio Di Fabio <[email protected]>

* Fix null pointer exception

Signed-off-by: Fabio Di Fabio <[email protected]>

* fix another null pointer exception

Signed-off-by: Fabio Di Fabio <[email protected]>

* uncomment code

Signed-off-by: Fabio Di Fabio <[email protected]>

* Move miner options tests

Signed-off-by: Fabio Di Fabio <[email protected]>

* Unit test fixes

Signed-off-by: Fabio Di Fabio <[email protected]>

* Removed the commented code

Signed-off-by: Fabio Di Fabio <[email protected]>

* WIP

Signed-off-by: Fabio Di Fabio <[email protected]>

* WIP

Signed-off-by: Fabio Di Fabio <[email protected]>

* New miner option: min-priority-fee

Signed-off-by: Fabio Di Fabio <[email protected]>

* Remove not relevant for this feature

Signed-off-by: Fabio Di Fabio <[email protected]>

* Remove not relevant for this feature

Signed-off-by: Fabio Di Fabio <[email protected]>

* Fix javadoc

Signed-off-by: Fabio Di Fabio <[email protected]>

* Remove code not belonging to this PR

Signed-off-by: Fabio Di Fabio <[email protected]>

* coinbase is an updatable parameter

Signed-off-by: Fabio Di Fabio <[email protected]>

* Move MiningOptions to upper package

Signed-off-by: Fabio Di Fabio <[email protected]>

* Fix coinbase for *bft

Signed-off-by: Fabio Di Fabio <[email protected]>

* Implement methods to get and set min priority fee

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Fix spotless

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Apply suggestions from code review

Signed-off-by: Fabio Di Fabio <[email protected]>

* Update besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java

[skip-ci]

Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Fabio Di Fabio <[email protected]>

* Add new config option to everything config

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Fix unit test

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Accept PR suggestions

Signed-off-by: Gabriel-Trintinalia <[email protected]>

---------

Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Stefan Pingel <[email protected]>
Co-authored-by: Fabio Di Fabio <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Co-authored-by: Stefan Pingel <[email protected]>
(cherry picked from commit 3310c41)

* Use Bytes Trie to track warm addresses (#6069)

* Use Bytes Trie to track warm addresses

Move from a java HashSet to a custom Trie based on bytes to store the
warm addresses, creates, and self-destructs.

This avoids needing to calculate java hashes or engage in using custom
Comparators.

Signed-off-by: Danno Ferrin <[email protected]>

* codeql scan

Signed-off-by: Danno Ferrin <[email protected]>

---------

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
(cherry picked from commit af011d2)

* Migrate Operand Stack to Growing Stack (#6068)

To improve the performance of CALL operations move the OperandStack and
ReturnStack to growing stacks instead of a fully allocated stack.

Signed-off-by: Danno Ferrin <[email protected]>
(cherry picked from commit 949c724)

* Remove a BonsaiWorldStateProvider constructor (#6090)

Was only used for supporting test code and can instead reuse static factory from InMemoryKeyValueStorageProvider

Signed-off-by: Simon Dudley <[email protected]>
(cherry picked from commit 9a22703)

* add RpcEndpointService to thread runner (#6091)

Signed-off-by: Sally MacFarlane <[email protected]>
(cherry picked from commit 7ac8af0)

* ETC 'Spiral' network upgrade (#6078)

* Add 23.10.2 section to changelog

Signed-off-by: Diego López León <[email protected]>

* Set ENR tree for DNS discovery for Mordor network

Signed-off-by: Diego López León <[email protected]>

* Add ECIP-1109: 'Spiral' network upgrade support

Signed-off-by: Diego López León <[email protected]>

---------

Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
(cherry picked from commit f58f6cf)

* Trigger contextEnter/Exit for all frames, including root (#6074)

* Trigger contextEnter/Exit for all frames, including root
* Differentiate between context entry and re-entry in `OperationTracer`
* Update evm/src/test/java/org/hyperledger/besu/evm/processor/AbstractMessageProcessorTest.java

Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: delehef <[email protected]>

---------

Signed-off-by: Franklin Delehelle <[email protected]>
Signed-off-by: delehef <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
(cherry picked from commit 0345b24)

* feat: add a way to read memory without altering the word capacity (#6073)

* feat: add a way to read memory without altering the word capacity
* add tests
Signed-off-by: Daniel Lehrner <[email protected]>
Signed-off-by: Franklin Delehelle <[email protected]>

* Fix read-past-end
* Do not abuse method overload
* Update CHANGELOG.md

Signed-off-by: delehef <[email protected]>
Signed-off-by: Franklin Delehelle <[email protected]>

* add tests for MessageFrame.shadowReadMemory

Signed-off-by: Daniel Lehrner <[email protected]>
Signed-off-by: Franklin Delehelle <[email protected]>

* Straddled reads tests

Signed-off-by: Franklin Delehelle <[email protected]>

---------

Signed-off-by: Franklin Delehelle <[email protected]>
Signed-off-by: Daniel Lehrner <[email protected]>
Signed-off-by: delehef <[email protected]>
Signed-off-by: delehef <[email protected]>
Co-authored-by: Daniel Lehrner <[email protected]>
(cherry picked from commit edf23cb)

* renamed env field (#6096)

Signed-off-by: Justin Florentine <[email protected]>
(cherry picked from commit 67ef9e0)

* [MINOR] Upgrade netty and grpc (#6100)

* Upgrade netty and grpc
* fix verification file
Signed-off-by: Simon Dudley <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
(cherry picked from commit accac1c)

* TraceService: return results for transactions in block (#6087)

* TraceService: return results for transactions in block

Signed-off-by: Daniel Lehrner <[email protected]>
(cherry picked from commit a60b31b)

* RPC Parameters to accept input and data field (#6094)

* Accept input or data as payload for RPC calls

Signed-off-by: Gabriel Fukushima <[email protected]>

* Add json new rpc valid and invalid request to test the changes

Signed-off-by: Gabriel Fukushima <[email protected]>

* Change JsonCallParameter signature to avoid duplicating constructor

Signed-off-by: Gabriel Fukushima <[email protected]>

* Add changelog

Signed-off-by: Gabriel Fukushima <[email protected]>

---------

Signed-off-by: Gabriel Fukushima <[email protected]>
(cherry picked from commit 6dd558b)

* Fix some typos (#6093)

* Fix some typos
* Update plugin version

Signed-off-by: GoodDaisy <[email protected]>

---------

Signed-off-by: GoodDaisy <[email protected]>
(cherry picked from commit e814886)

* Correct reference test blobgas calculation (#6107)

* Correct reference test blobgas calculation

Fix tpyo that resulted in an NPE in t8n blob gas calculations.

Signed-off-by: Danno Ferrin <[email protected]>

* changelog

Signed-off-by: Danno Ferrin <[email protected]>

* spotless

Signed-off-by: Danno Ferrin <[email protected]>

---------

Signed-off-by: Danno Ferrin <[email protected]>
(cherry picked from commit d0a6a70)

* Restore javadoc and sources jar as trusted artifacts (#6109)

Makes Idea happy again as documented here https://docs.gradle.org/6.8.3/userguide/dependency_verification.html#sec:skipping-javadocs
Signed-off-by: Fabio Di Fabio <[email protected]>
(cherry picked from commit 311570f)

* Add API to set and get the minGasPrice at runtime (#6097)

Signed-off-by: Fabio Di Fabio <[email protected]>
(cherry picked from commit de8ca10)

* Don't put NONCE_TOO_LOW transactions into the invalid nonce cache (#6067)

* Don't put NONCE_TOO_LOW transactions into the invalid nonce cache

Signed-off-by: Matthew Whitehead <[email protected]>

* Update unit tests

Signed-off-by: Matthew Whitehead <[email protected]>

* Use list of errors to ignore

Signed-off-by: Matthew Whitehead <[email protected]>

---------

Signed-off-by: Matthew Whitehead <[email protected]>
Signed-off-by: Matt Whitehead <[email protected]>
Signed-off-by: Fabio Di Fabio <[email protected]>
Co-authored-by: Fabio Di Fabio <[email protected]>
(cherry picked from commit 84dee29)

* Journaled world state (#6023)

Introduce a new Journaled World State Updater. Within a transaction it
keeps one copy of account and storage state, restoring previous
revisions on reverts and exceptional halts. This updater only supports
post-merge semantics with regard to empty accounts, namely that they do
not exist in world state.

Adds an EvmConfiguration option for stacked vs journaled updater, and
wire it in where needed. The staked updater is default mode, which is
the current behavior prior to this patch.

Signed-off-by: Danno Ferrin <[email protected]>
(cherry picked from commit 094c841)

* setMinPriorityFee  - Return Invalid Param when invalid and use hexadecimal instead of Long (#6099)

Signed-off-by: Gabriel-Trintinalia <[email protected]>
(cherry picked from commit 7acdd87)

* [MINOR] - Add 23.10.1 correct changelog (#6110)

Signed-off-by: Gabriel-Trintinalia <[email protected]>
(cherry picked from commit 236779d)

* Add transaction selector based on min priority fee parameter (#6083)

Signed-off-by: Gabriel-Trintinalia <[email protected]>
(cherry picked from commit 41b9575)

* Add config option to clique to allow not creating empty blocks (#6082)

Signed-off-by: Jason Frame <[email protected]>
(cherry picked from commit 6a2d41f)

* load all accounts into cache (#6101)

There was a slight problem on the bonsai side because all account reads did not go through a single method. One of the two add the account to the cache but the other did not. This had two consequences:

Less good performance because certain accounts had to be read several times and also all account reads were not marked in the trielog. This will fix both problems.

Signed-off-by: Karim TAAM <[email protected]>
(cherry picked from commit d049cb3)

* Reference Tests v13 (#6114)

v13 of the official Ethereum Reference Tests.

Signed-off-by: Danno Ferrin <[email protected]>
(cherry picked from commit cea3d8a)

* clean up the ProcessableBlockHeader (#6117)

* clean up

Signed-off-by: [email protected] <[email protected]>
(cherry picked from commit 646c5a3)

* Log missing chain head as warning, not trace (#6127)

Signed-off-by: Matthew Whitehead <[email protected]>
(cherry picked from commit 83ae69a)

* Update RPCs for yParity (#6119)

Update the GraphQL and JSON-RPC endpoints to provide `yParity` instead
of `v` for non-legacy transactions.
Update the JSON-RPC tests to use the Hive data. Add tests for Shanghai
and Cancun Blocks.

Signed-off-by: Danno Ferrin <[email protected]>
(cherry picked from commit 2284242)

* Make tracer in block building block aware (#6135)

Signed-off-by: [email protected] <[email protected]>
(cherry picked from commit f42f8c1)

* Revert "Discard invalid transaction" warning logs (#6137)

* Revert "Log missing chain head as warning, not trace (#6127)"
* leave chain head at warning, just revert the discard warning

Signed-off-by: garyschulte <[email protected]>
(cherry picked from commit 914ab79)

* Reverse sort order (#6106)

* Reverse added order and sequence number

Signed-off-by: Matthew Whitehead <[email protected]>

* Remove extraneous 'addedAt' check

Signed-off-by: Matthew Whitehead <[email protected]>

---------

Signed-off-by: Matthew Whitehead <[email protected]>
(cherry picked from commit 0203092)

* Force tx replacement price bump to zero when zero base fee market is configured (#6079)

Signed-off-by: Fabio Di Fabio <[email protected]>
(cherry picked from commit 636ad8a)

* Time limited block creation (#6044)

Signed-off-by: Fabio Di Fabio <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
(cherry picked from commit 8319fae)

* Limit memory used in handling invalid blocks (#6138)

Signed-off-by: Jason Frame <[email protected]>
(cherry picked from commit 701cbb0)

* Delete leftPad when capturing the stack before and after a frame execution (#6102)

* Delete leftPad when capturing the stack before and after the execution
* Still use leftPad when displaying the stack in the output (ex. for debug_traceTransaction)
* Fix integration test
* Use StringBuilder to left pad the hex representation of a 32 bytes

Signed-off-by: Ameziane H <[email protected]>
(cherry picked from commit 9710a9a)

* fix yParity flakey test (#6151)

Fix the flakeiness in EthGetTransactionByHashTest as well as some other
sonar identified cleanup.

Signed-off-by: Danno Ferrin <[email protected]>
(cherry picked from commit 4b58d07)

* Apply the same reverse sort order as https://github.com/hyperledger/b… (#6146)

* Apply the same reverse sort order as #6106 but to the base fee sorter

Signed-off-by: Matthew Whitehead <[email protected]>

* Fix unit tests

Signed-off-by: Matthew Whitehead <[email protected]>

* Update eviction unit tests to expect highest-sequence TXs be evicted first

Signed-off-by: Matthew Whitehead <[email protected]>

* Update change log

Signed-off-by: Matthew Whitehead <[email protected]>

* Spotless fixes

Signed-off-by: Matthew Whitehead <[email protected]>

---------

Signed-off-by: Matthew Whitehead <[email protected]>
(cherry picked from commit 8afad41)

---------

Co-authored-by: Sally MacFarlane <[email protected]>
Co-authored-by: Gabriel-Trintinalia <[email protected]>
Co-authored-by: matkt <[email protected]>
Co-authored-by: Fabio Di Fabio <[email protected]>
Co-authored-by: Danno Ferrin <[email protected]>
Co-authored-by: Suyash Nayan <[email protected]>
Co-authored-by: Simon Dudley <[email protected]>
Co-authored-by: Diego López León <[email protected]>
Co-authored-by: delehef <[email protected]>
Co-authored-by: daniellehrner <[email protected]>
Co-authored-by: Gabriel Fukushima <[email protected]>
Co-authored-by: GoodDaisy <[email protected]>
Co-authored-by: Matt Whitehead <[email protected]>
Co-authored-by: Jason Frame <[email protected]>
Co-authored-by: Stefan Pingel <[email protected]>
Co-authored-by: garyschulte <[email protected]>
Co-authored-by: ahamlat <[email protected]>
NickSneo pushed a commit to NickSneo/besu that referenced this pull request Nov 12, 2023
…ution (hyperledger#6102)

* Delete leftPad when capturing the stack before and after the execution
* Still use leftPad when displaying the stack in the output (ex. for debug_traceTransaction)
* Fix integration test
* Use StringBuilder to left pad the hex representation of a 32 bytes

Signed-off-by: Ameziane H <[email protected]>
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.

3 participants