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
Alex Sharov
031292cc83
evm: prealloc zeroes for Resize() ( #6624 )
2023-03-01 02:43:32 +00:00
Alex Sharov
431fba815f
e3: simplify tracer ( #6953 )
2023-02-25 12:44:45 +07:00
Andrew Ashikhmin
0a8d4799e2
[AuRa] Enable EIP-170 when EIP-3860 is enabled ( #6873 )
2023-02-14 11:20:23 +00:00
ledgerwatch
ee83447fa1
CL lightclient to create memdb in the tmpdir which gets cleaned up on… ( #6829 )
...
… startup
---------
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro-2.local>
2023-02-11 20:44:51 +00:00
Andrew Ashikhmin
de5a061fdf
Remove StarknetTransaction and friends ( #6745 )
2023-01-30 16:56:58 +01:00
Alex Sharov
b99e4abb3e
move math big constants to erigon-lib ( #6719 )
2023-01-27 11:39:34 +07:00
Max Revitt
6559c15ebb
feat(trace): use specific error string ( #6696 )
...
In v2.36.0 we correctly trace this transaction, however due to a code
ordering issue in previous releases, there was an 'out of gas' response,
because we fell through to the code here where
ErrContractAddressCollision will be returned as such. This change isn't
the fix, but ensures the actual error is returned.
2023-01-26 15:10:51 +01:00
Andrew Ashikhmin
d12fda5cbd
Switch AccessList, IntrinsicGas, SafeAdd/Mul to erigon-lib ( #6709 )
...
Reduce code duplication.
2023-01-26 12:26:12 +01:00
Devon Bear
b8fcb775e3
impr(evm): Move callstack depth to the interpreter ( #6632 )
...
This is a more logical / semantically correct place to keep track of the
call stack depth.
2023-01-19 23:52:08 +00:00
Devon Bear
00c73f0c20
clean: VMInterpreter and Fix Linter ( #6611 )
2023-01-18 06:44:21 +00:00