When receiving transactions from a file parse them as an RLP list.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Co-authored-by: Antoine Toulme <antoine@toulme.name>
Reduce the number of places that expose Log4J classes as a part of the
interfaces for methods and classes. While Log4j remains the default we
still need to be able to function when the Log4J jars are removed from
the classpath.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Pull up and simplify data passed to CheckpointSource, which then allows checkpointBlockHeader to be used by protocolSchedule.getByBlockHeader.
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
* Fix empty body concept after shanghai
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Check protocolSchedule to create empty block and add withdrawals to empty block check
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Add unit tests
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Extract block creation into a private method
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Nit changes
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Refactor test names
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
---------
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Co-authored-by: garyschulte <garyschulte@gmail.com>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>
Add an acceptance test to ensure eth_getBlockByNumber and eth_getBlockByHash return withdrawals correctly for shanghai
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Added Ethereum execution spec test to be generated and executed by reference tests gradle task. Add `https://github.com/ethereum/execution-spec-tests/releases` as custom ivy repository to easily download and cache the test specs. Updated the reference test gradle file to generate the test Java classes.
Signed-off-by: Usman Saleem <usman@usmans.info>
Support two in-the-wild models of blockhash for testing. For state-tests
always use the keccak hash of the decimal text of the block number.
For t8n always use the blockHashes table in the env. No change to production
handling of blockhash. Refactored BlockHashLookup to split caching
implementation from API.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
In one case reading config files used parseLong instead of decode.
decode accepts `0x` and decimal, only a single radix for parseLong.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
This is misleading when debugging because we return VALID in the API and there's not actually an INVALID issue to debug despite what the logs were saying.
Also rename and flip the isValid boolean to be shouldNotProceedToPayloadBuildProcess for clarity.
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
* Add flag to distinguish when bad block is a proposed block
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Add flag to distinguish when bad block is a proposed block
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* javadoc
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Add shouldRecordBadBlock flag to stop adding proposed bad blocks to the bad block manager
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Add overload to validateAndProcessBlock with shouldRecordBadBlock flag
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Add unit test to ensure flag is being used to add blocks to bad block manager
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Add unit test to ensure we don't add our own proposed bad block to the bad block manager
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Add debug log when badBlock is not added
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Undo change done in the first approach
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Improve log
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Improve test names
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Improve javadoc of validateProposedBlock method
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Remove method from interface
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Change validateProposedBlock access modifier to private
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
---------
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Fix a formatting error in standard trace that produced non-parsable
JSON. Add unit tests to cover those cases.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Adding the t8n and b11r tool allows Hyperledger besu to produce reference
tests from the https://github.com/ethereum/execution-spec-tests repository.
* Add t8n tool, or transition tool. Calculates the state changes from a set
of transactions against a given parent context
* Add b11r tool, or block-builder tool. Given block parts it can generate a
RLP block.
* Change some tracing CLI flags to work better with retesteth
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
* Add gasUsed calculation
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Fix unit test
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Fix typo
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
---------
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* If a PoS block creation repetition takes less than a configurable duration, then waits before next repetition
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Update CHANGELOG
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Add unit test
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Update besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Update besu/src/main/java/org/hyperledger/besu/cli/options/unstable/MiningOptions.java
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
---------
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Update and fix forkId tests
Move timestamp forks from getForkBlockNumbers to getForkBlockTimestamps in JsonGenesisConfigOptions - this ultimately gets used to popoulate the ForkIdManager which handles lists of blocks and timestamps the same way so this hasn't changed any actual behaviour, but rather supports the test fixes.
Implement TransitionProtocolSchedule.streamMilestoneBlocks as a concatenation of blockNumbers++blockTimestamps. This may have been a latent bug since it's used to update the node record when a fork transition occurs.
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
* Use the copy during prepareTrieLog instead of saveTrieLog
* add final flag on BonsaiWorldStateUpdater
* Use a copy of BonsaiInMemoryWorldState inside prepareTrieLog
* add link to persisted worldstate storage
* fix tests
* Make a copy of the worldstate after committing changes to the trielog
* spotless + remove maybeUnSubscribe in setNextWorldView
* subscribe storage on layered worldstate
* fix null issue
* not close layered worldstate during getAccount
* clean code
* Add changelog entry
---------
Signed-off-by: Ameziane H <ameziane.hamlat@consensys.net>
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
Co-authored-by: Karim TAAM <karim.t2am@gmail.com>
* change validation to lessThan
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Change exception message to PoS instead of Near head
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Add unit test and fix message of existing unit test
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
---------
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>