Shane Bammel
75db06fa1d
Add support for PulseChain
...
Thanks @bretep for the original integration.
2024-02-14 13:10:45 -06:00
Andrew Ashikhmin
b38e17e393
Implement PIP-33: Napoli Hardfork ( #8975 )
...
Initial support of the upcoming Napoli hard fork on Polygon – see
[PIP-33](https://forum.polygon.technology/t/pip-33-napoli-upgrade ). Per
[PIP-31](https://github.com/maticnetwork/Polygon-Improvement-Proposals/blob/main/PIPs/PIP-31.md ),
it parallels the
[Cancun](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/cancun.md )
upgrade of Ethereum, but does not include
[EIP-4788](https://eips.ethereum.org/EIPS/eip-4788 ),
[EIP-4844](https://eips.ethereum.org/EIPS/eip-4844 ),
[EIP-7516](https://eips.ethereum.org/EIPS/eip-7516 ). In other words,
Napoli includes [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153 ),
[EIP-5656](https://eips.ethereum.org/EIPS/eip-5656 ),
[EIP-6780](https://eips.ethereum.org/EIPS/eip-6780 ) from Cancun.
This PR implements
[PIP-31](https://github.com/maticnetwork/Polygon-Improvement-Proposals/blob/main/PIPs/PIP-31.md ),
[PIP-16: Transaction Dependency
Data](https://github.com/maticnetwork/Polygon-Improvement-Proposals/blob/main/PIPs/PIP-16.md )
(by merging `ParallelUniverseBlock` into `NapoliBlock`; the bulk of
PIP-16 was implemented in PR #8037 ), and [PIP-27: Precompiled for
secp256r1 Curve
Support](https://github.com/maticnetwork/Polygon-Improvement-Proposals/blob/main/PIPs/PIP-27.md )
([EIP-7212](https://eips.ethereum.org/EIPS/eip-7212 ); see also
https://github.com/maticnetwork/bor/pull/1069 &
https://github.com/ethereum/go-ethereum/pull/27540 ).
---------
Co-authored-by: Anshal Shukla <shukla.anshal85@gmail.com>
2024-01-17 14:13:16 +01:00
Stéphane Loeuillet
b5640bb64b
Bump GraphQL version + implement blocks (block range) ( #8872 )
2023-12-01 10:21:16 +01:00
Guido Vranken
015f6eb4c5
Call Tracer.CaptureState before memory expansion ( #8860 )
...
This aligns the tracing behavior with Geth, Besu and Nimbus.
2023-11-30 11:33:11 +07:00
Alex Sharov
3e8a028cbb
evm: remove interpreter interface - step3 ( #8842 )
2023-11-29 09:29:16 +07:00
Håvard Anda Estensen
fdab99d0e8
core: run tests in parallel ( #8743 )
2023-11-17 10:52:40 +07:00
Andrew Ashikhmin
a226b6ca29
Fix wiring of AgraBlock into tx pool ( #8555 )
...
Fixes and simplifications to PR #8504
2023-10-23 11:03:46 +02:00
a
436493350e
Sentinel refactor ( #8296 )
...
1. changes sentinel to use an http-like interface
2. moves hexutil, crypto/blake2b, metrics packages to erigon-lib
2023-10-22 01:17:18 +02:00
Anshal Shukla
7dce1268ab
Agra HF ( #8504 )
...
Adds agra HF to the bor consensus
2023-10-21 01:16:19 +05:30
Andrew Ashikhmin
f492d88178
Switch to official KZG ceremony trusted setup (EIP-4844) ( #8531 )
...
See https://github.com/ethereum/consensus-specs/pull/3521 &
https://github.com/crate-crypto/go-kzg-4844/pull/61 . This is required
for
[dencun-devnet-10](https://notes.ethereum.org/@ethpandaops/dencun-devnet-10 ).
2023-10-19 18:33:05 +02:00
Andrew Ashikhmin
b60642fa5a
Configure EIP-4844 parameters for Gnosis ( #8464 )
...
See https://github.com/gnosischain/specs/pull/20 &
https://github.com/gnosischain/specs/pull/24
2023-10-13 11:43:16 +02:00
Alex Sharov
c4399da0f1
evm: no interface on contract creation ( #8378 )
2023-10-05 13:42:20 +07:00
Alex Sharov
c293883ec0
evm: no interface ( #8376 )
...
after removal of tevm experiment - we left interfaces everywhere
removing it for performance and for geth compatibility
2023-10-05 12:23:08 +07:00
Alex Sharov
5641b52be0
evm: less defers in interpreter ( #8179 )
2023-09-25 08:53:04 +07:00
Alex Sharov
a22ab813af
evm: simplify addToAccessList methods ( #8280 )
2023-09-25 08:52:51 +07:00
Andrew Ashikhmin
94ec54e7a5
Implement EIP-7516: BLOBBASEFEE opcode ( #8231 )
...
[EIP-7516](https://eips.ethereum.org/EIPS/eip-7516 ) is part of
[devnet-9](https://notes.ethereum.org/@ethpandaops/dencun-devnet-9 )
2023-09-19 10:45:19 +02:00
Alex Sharov
abff510ea7
evm: stack.dup() optimize ( #8178 )
2023-09-12 13:18:23 +07:00
Andrew Ashikhmin
a6d9d26fe9
Fix opSelfdestruct6780 ( #8066 )
...
also upgrade execution-spec-tests to
[v1.0.2](https://github.com/ethereum/execution-spec-tests/releases/tag/v1.0.2 )
2023-08-25 08:06:59 +02:00
Andrew Ashikhmin
1fd9d20e14
EIP-4788 v2 (no precompile) ( #8038 )
...
See https://github.com/ethereum/EIPs/pull/7456 &
https://github.com/ethereum/go-ethereum/pull/27849 . Also set the gas
limit for system calls to 30M (previously 2^64-1), which is in line with
the [Gnosis
spec](https://github.com/gnosischain/specs/blob/master/execution/withdrawals.md#specification ),
but should be doubled checked for Gnosis Chain.
2023-08-24 17:10:50 +02:00
Andrew Ashikhmin
a25f22a06c
Implement EIP-6780: SELFDESTRUCT only in same transaction ( #7976 )
...
Cherry pick https://github.com/ethereum/go-ethereum/pull/27189
---------
Co-authored-by: jwasinger <j-wasinger@hotmail.com>
2023-08-06 17:48:11 +02:00
racytech
2c2ccb6e27
dencun-devnet: --trusted-setup-file flag support ( #7963 )
2023-08-03 14:36:47 +02:00
Somnath Banerjee
d91f4263dc
EIP-4788: Beacon block root and stateful precompile ( #7888 )
2023-08-01 16:01:26 +05:30
Andrew Ashikhmin
03ac80ad2d
EIP-4844: rename "data hash" to "blob hash" ( #7947 )
...
See https://github.com/ethereum/EIPs/pull/7001
2023-07-31 10:12:53 +02:00
Andrew Ashikhmin
27125b3911
Update EIP-2537 and EIP-4844 precompile addresses ( #7940 )
...
See https://github.com/ethereum/EIPs/pull/7172 &
https://github.com/ethereum/EIPs/pull/7214
2023-07-28 17:43:01 +02:00
Andrew Ashikhmin
7d35c6b737
EIP-4844: Rename "data gas" to "blob gas" ( #7937 )
...
See https://github.com/ethereum/EIPs/pull/7354 &
https://github.com/ethereum/consensus-specs/pull/3461 . Prerequisite:
https://github.com/ledgerwatch/erigon-lib/pull/1058
2023-07-28 12:12:05 +02:00
Andrew Ashikhmin
ec5ac3a536
core/vm: implement EIP-5656, mcopy instruction ( #7887 )
...
Cherry pick https://github.com/ethereum/go-ethereum/pull/26181
Co-authored-by: Charles Cooper <cooper.charles.m@gmail.com>
2023-07-13 19:36:06 +02:00
Andrew Ashikhmin
9702f7f36c
core/vm: move TSTORE,TLOAD to correct opcode nums ( #7885 )
...
See https://github.com/ethereum/EIPs/pull/7074 . Also enable
[EIP-1153](https://eips.ethereum.org/EIPS/eip-1153 ) in
[Cancun](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/cancun.md ).
---------
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2023-07-13 16:40:17 +02:00
Alex Sharov
e5023775aa
Enforce blockReader interface ( #7737 )
...
- breaks dependency from staged_sync to package with block_reader
implementation
- breaks dependency from snap_sync to package with block_reader
implementation
- breaks dependency from mining to txpool implementation
2023-06-15 13:11:51 +07:00
Andrew Ashikhmin
a5886732b9
Use BitLenToByteLen from erigon-lib ( #7735 )
2023-06-14 14:48:16 +02:00
Alex Sharov
5ff8246e2a
e4: release some tests ( #7729 )
2023-06-14 10:01:00 +07:00
Andrew Ashikhmin
4a74ee2589
EIP-4844: switch precompile input's z and y to big endian ( #7680 )
...
according to https://github.com/ethereum/EIPs/pull/7020 . Prerequisite:
https://github.com/ledgerwatch/erigon-lib/pull/1015 .
2023-06-07 17:33:15 +02:00
Andrew Ashikhmin
190bc9dfd8
EIP-4844: add data_gas_used ( #7639 )
...
Implement https://github.com/ethereum/EIPs/pull/7062 and
https://github.com/ethereum/EIPs/pull/7095 . Pick up
https://github.com/ledgerwatch/erigon-lib/pull/1006 .
2023-06-02 21:26:19 +01:00
racytech
65efc92af3
eip-4844: vm and engine_api extensions, minor fixes/changes ( #7514 )
2023-05-19 18:43:04 +01:00
Andrew Ashikhmin
1533674dad
Implement EIP-1153 transient storage ( #7405 )
...
Port https://github.com/ethereum/go-ethereum/pull/26003
---------
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
2023-05-01 18:26:24 +02:00
alex.sharov
9ea90b08c3
fix import cycle in tests
2023-04-19 15:35:02 +07:00
Alex Sharov
21d66d6c01
e3: state reader constructor in tests ( #7338 )
2023-04-19 03:10:33 +00:00
ledgerwatch
57f051f04c
Update btcd library version ( #7316 )
...
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2023-04-16 09:50:54 +00:00
Andrew Ashikhmin
96bb5d544b
Remove Parlia ( #7306 )
...
Pre-requisite: https://github.com/ledgerwatch/erigon-lib/pull/969
2023-04-14 06:24:10 +00:00
Andrew Ashikhmin
02182ee11a
[erigon-lib] Remove ShardingForkTime in favour of CancunTime ( #7230 )
...
Pick up https://github.com/ledgerwatch/erigon-lib/pull/963
2023-03-31 09:11:09 +00:00
Alex Sharov
a8e8bf4528
remove simd lib, because it doesn't work with ghcr.io/goreleaser/goreleaser-cross (which producing release binaries) ( #7229 )
...
@shyba hi, seems this lib doesn't work with
ghcr.io/goreleaser/goreleaser-cross (which producing release binaries)
removing it for now, feel free to add it in future - if can make it work
with goreleaser-cross
see: https://github.com/ledgerwatch/erigon/issues/7210
2023-03-31 05:07:43 +00:00
Alex Sharov
2161c5ed8c
stop using olddb in simulated backend ( #7219 )
2023-03-30 03:31:15 +00:00
racytech
70bc7f7a25
eip-4844: small additions and modified gaspool ( #7190 )
...
This PR contains very small EIP-4844 additions. GasPool is modified and
now it is a struct with 2 fields "gas" and "dataGas" (blobs are priced
in dataGas). ExcessDataGas block header field added. ExcessDataGas
needed to compute the data gas price. EIP-4844 helper functions are
added as well.
2023-03-27 21:39:15 +00:00
Alex Sharov
201572c6f5
enable more linters #954 ( #7179 )
2023-03-25 05:13:27 +00:00
alex.sharov
e0dd48cc67
DomainRange
2023-03-25 11:46:29 +07:00
Alex Sharov
157a380be7
e3: history no auto-increment ( #7097 )
2023-03-15 08:03:57 +00:00
Victor Shyba
158fb2b606
Optimize memory buffer, simplify set32, use sha256-simd ( #7060 )
...
Hi,
I'm syncing Gnosis on a Celeron N5100 to get familiar with the codebase.
In the process I managed to optimize some things from profiling.
Since I'm not yet on the project Discord, I decided to open this PR as a
suggestion. This pass all tests here and gave me a nice boost for that
platform, although I didn't have time to benchmark it yet.
* reuse VM Memory objects with sync.Pool. It starts with 4k as `evmone`
[code
suggested](0897edb001/lib/evmone/execution_state.hpp (L49)
)
as a good value.
* set32 simplification: mostly cosmetic
* sha256-simd: Celeron has SHA instructions. We should probably do the
same for torrent later, but this already helped as it is very CPU bound
on such a low end processor. Maybe that helps ARM as well.
2023-03-14 07:17:04 +00:00
Andrew Ashikhmin
3270720cb7
Remove ETC-specific DAOForkSupport=false functionality ( #7075 )
2023-03-10 12:10:11 +00:00
Andrew Ashikhmin
2212e21192
Remove archaic eip150Hash functionality ( #7074 )
2023-03-10 10:55:59 +00:00
Alex Sharov
78aa8652d2
e3: native map instead of btree where can (because e2 experience shows - it's faster) ( #7010 )
2023-03-07 02:34:30 +00:00
Andrew Ashikhmin
1dab298db7
Add Prague fork support ( #7005 )
...
Prague is the next EL fork after
[Cancun](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/cancun.md ).
This change picks up https://github.com/ledgerwatch/erigon-lib/pull/913 ,
adds support of the fork, and moves Verkle trees to it.
2023-03-02 17:51:36 +00:00