Andrew Ashikhmin
04e3a18463
Block difficulty can be really big on Gnosis Chain ( #6028 )
...
For example, see https://gnosisscan.io/block/24938312 .
This fixes the following errors:
```
t=2022-11-11T12:39:01+0000 lvl=dbug msg="Handling incoming message" stream=RecvMessage err="newBlock66: too large block difficulty: bitlen 128"
t=2022-11-11T12:39:01+0000 lvl=dbug msg="Handling incoming message" stream=RecvMessage err="newBlock66: too large block difficulty: bitlen 128"
t=2022-11-11T12:39:01+0000 lvl=dbug msg="Handling incoming message" stream=RecvMessage err="newBlock66: too large block difficulty: bitlen 128"
```
2022-11-11 15:24:46 +01:00
Andrew Ashikhmin
e469afdff5
Rewrite bytecode of the token contract on Gnosis Chain ( #5997 )
...
See https://github.com/NethermindEth/nethermind/pull/3930
2022-11-08 13:03:06 +01:00
Andrew Ashikhmin
3280531644
Simplify Header.EncodeRLP ( #5995 )
...
Also cherry-pick https://github.com/ethereum/go-ethereum/pull/24666 .
Co-authored-by: Felix Lange <fjl@twurst.com>
2022-11-08 11:07:27 +01:00
hexoscott
636586c1b5
cache state check ( #5844 )
...
draft for now to get some early feedback on approach
2022-11-07 13:04:31 +00:00
Andrew Ashikhmin
82bb408e99
Only zero-gas transactions may be service ones ( #5989 )
...
Correction to PR #5873 .
See [Nethermind's
code](https://github.com/NethermindEth/nethermind/blob/1.14.5/src/Nethermind/Nethermind.Consensus.AuRa/Transactions/TxCertifierFilter.cs#L57 ).
2022-11-07 13:10:07 +01:00
Alex Sharov
d4fc7c7ef0
e3: reduce write-lock of rws ( #5959 )
2022-11-04 15:09:29 +07:00
a
ad7be30679
jsonrpc HTTP Get handler & logs topic filter with map ( #5922 )
...
this pr has two things in it
1. changed filter logs to use a map for the topics. this will speed up
queries with many topics in them. I still don't have a use case for this
though. i put is as a method of Logs, since that made sense to me, happy
to move it back out though.
2. allows json-rpc over http get request. since firefox is a great json
viewer (can search through, collapse large results) i often use it to
debug. it is also useful for sharing data with those who are less
familiar with command line / programming.
example get request:
http://rpcdaemon/?method=eth_getLogs¶ms= [{"fromBlock":"0xf2316b","toBlock":"0xf2316b"}]
it is based on the old jsonrpc http specification
https://www.jsonrpc.org/historical/json-rpc-over-http.html#encoded-parameters
except we also accept not base64 encoded params. since every eth rpc
request has a [], it will immediately fail validation for base64 and
attempt to use the parameters as a they are. otherwise it will attempt
to parse the rest of the payload as base64 and use that.
Co-authored-by: a <a@a.a>
Co-authored-by: gfx <86091021+gfxlabs@users.noreply.github.com>
2022-11-03 09:09:04 +07:00
Andrew Ashikhmin
7134d72738
Unify EVM Call flavours ( #5939 )
2022-11-02 15:04:37 +01:00
Alex Sharov
96deee29bb
e3: build files sequentially, flush indices in-advance before commit ( #5935 )
2022-11-02 10:04:12 +07:00
Andrew Ashikhmin
d4c2acc152
AuRa system calls to Certifier should be const ( #5929 )
...
This fixes gas used in
https://gnosisscan.io/tx/0x8f3b839a3d179102084a58dc4c3ec91fe13bb00cc1450cd69d22add7f25444e3
2022-11-01 14:37:45 +01:00
Andrew Ashikhmin
9ffc457cbb
EIP-3860: Limit and meter initcode ( #5892 )
...
[EIP-3860](https://eips.ethereum.org/EIPS/eip-3860 ) is
[included](https://github.com/ethereum/execution-specs/pull/633 ) into
[Shanghai](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md ).
TODO: similar changes to `txpool`.
Co-authored-by: Andrei Maiboroda <andrei@ethereum.org>
2022-10-31 13:40:41 +01:00
Andrew Ashikhmin
dd43d486f3
Enable London in AllEthashProtocolChanges ( #5891 )
...
`AllEthashProtocolChanges` should contain all the EIPs accepted by the
core developers into the Ethash consensus, including the
[London](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/london.md )
protocol upgrade.
2022-10-28 17:19:18 +02:00
Alex Sharov
0074ad0e48
e3: parallel exec, rotate and partial-flush of indices wal - while main thread is idle ( #5889 )
...
While main thread is idle (apply is on RoTx now):
- periodically still hisotry/index etl collectors and load them to db
- prune old history/index in db
Also:
- fixed RAM estimation calculation of State22
2022-10-28 21:13:53 +07:00
Andrew Ashikhmin
f46300e37e
core/vm: Rename SHA3 instruction to KECCAK256 ( #5890 )
...
Cherry-pick https://github.com/ethereum/go-ethereum/pull/23976
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
2022-10-28 13:38:34 +02:00
Alex Sharov
8d1ed547b0
E3: parallel exec, apply on roTx ( #5879 )
2022-10-28 08:47:45 +07:00
Giulio rebuffo
5a321d6240
Dispersed fixes for incremental verkle trees ( #5880 )
2022-10-27 10:22:53 +02:00
Andrew Ashikhmin
6a5968e7f0
AuRa service transactions are free ( #5873 )
...
and the don't pay baseFee after EIP-1559.
See https://openethereum.github.io/Permissioning.html#gas-price
2022-10-26 13:03:47 +02:00
Alex Sharov
2d7cd0fae2
e3: better prune logs, apply thread can work without rwTx ( #5860 )
2022-10-25 16:08:01 +07:00
Alex Sharov
26fdf9169d
move all packages from "internal" folder - to simplify users live ( #5857 )
2022-10-25 09:58:25 +07:00
Alex Sharov
592ad57921
add DECOMPRESS_CONDENSITY env variable ( #5853 )
2022-10-24 10:00:55 +07:00
Alex Sharov
8d75d0dc4b
e3: return old reader version ( #5849 )
2022-10-23 19:22:33 +07:00
Alex Sharov
993fde4d92
E3: par logs ( #5839 )
2022-10-23 18:51:14 +07:00
Alex Sharov
96233cfa7f
e3: metrics ( #5846 )
2022-10-23 17:05:26 +07:00
Alex Sharov
d6de913a34
e3: fix races ( #5822 )
2022-10-21 21:02:18 +07:00
Andrew Ashikhmin
da354bc01a
Unify Bor burntContract with Gnosis eip1559FeeCollector ( #5798 )
2022-10-21 13:03:38 +02:00
Andrew Ashikhmin
64a3156112
Support BaseFee in AuRa headers ( #5820 )
...
BaseFee is required in AuRa headers when
[EIP-1559](https://eips.ethereum.org/EIPS/eip-1559 ) is activated.
Also:
- Basic AuRa header verification
- Extract some common RLP methods
- Tiny log clean-up
2022-10-21 12:43:44 +02:00
Alex Sharov
86551e82f4
e3: parallel build missed indices ( #5817 )
2022-10-21 13:45:20 +07:00
Levi Aul
e85d4b76aa
Return bor receipts correctly in getTransactionReceipt and getBlockReceipts ( #5787 )
...
Fixes a nil-pointer dereference in Decode when attempting to call
`getTransactionReceipt` / `getBlockReceipts` on blocks containing
stateSync events.
2022-10-20 19:25:46 +01:00
Alex Sharov
0db6b9b44b
e3: move skip analysis out of the loop ( #5803 )
2022-10-20 10:39:40 +07:00
Andrew Ashikhmin
0fb74172a8
FinalizeTx after engine.Initialize ( #5783 )
...
AuRa storage changes made by `onEpochBegin` should be finalized.
Otherwise, `SSTORE` cost might be incorrect in block transactions when
[EIP-2200](https://eips.ethereum.org/EIPS/eip-2200 ) is active.
https://gnosisscan.io/tx/0xa6d45d903c977ad237165737ebc4e34fb7756675719d112a199af858bb1275e0
is an example of a transaction on Gnosis Chain whose gas used was
previously calculated incorrectly.
2022-10-18 10:44:56 +02:00
Andrew Ashikhmin
241348c5d4
core: implement EIP-3651, warm coinbase ( #5745 )
...
[EIP-3651](https://eips.ethereum.org/EIPS/eip-3651 ) is part of
[Shanghai](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md ).
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2022-10-14 14:00:00 +02:00
Alex Sharov
1f8bd5de1b
e3: less allocations reconstitution ( #5735 )
2022-10-13 21:25:57 +07:00
Alex Sharov
63a6fb29ba
e3: cleanup ( #5729 )
2022-10-13 12:09:14 +07:00
Alex Sharov
86a03987d8
e3: header no copy ( #5727 )
2022-10-13 11:07:42 +07:00
Alex Sharov
b12b0d4627
e3: history bsc and mainnet snapshots ( #5725 )
2022-10-13 09:46:32 +07:00
Alex Sharov
d2436ab344
e3: optimize stateWriter.Put ( #5724 )
2022-10-13 09:37:14 +07:00
ledgerwatch
df5c16fe06
Not use IsMaxStorageTxNum function ( #5715 )
...
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-10-12 13:38:51 +01:00
Alex Sharov
a9853d2ef8
Recon parallel: split ReconState to 2 objects to avoid lock contention between .Done() and .Get(), less ram in beginning ( #5713 )
2022-10-12 17:23:10 +07:00
ledgerwatch
750d23427d
Covalenthq move status execution flag into vm config ( #5710 )
...
Co-authored-by: Sudeep <sudeepdino008@gmail.com>
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2022-10-12 09:27:48 +01:00
Alex Sharov
4795217e4e
e3: prevent files ranges overlap ( #5684 )
2022-10-12 10:18:55 +07:00
Giulio rebuffo
7e6896b72e
downgraded go-verkle to safe ( #5707 )
...
Co-authored-by: giuliorebuffo <giuliorebuffo@system76-pc.localdomain>
2022-10-12 00:38:02 +02:00
Andrew Ashikhmin
7286a0fef7
Create in-memory MDBX inside dirs.Tmp ( #5702 )
...
Previously "in-memory" MDBX instances for fork validation and mining
were created inside `os.TempDir()`. We should create them inside
Erigon's datadir so that the file permissions and the disk are the same
as for the main database.
Prerequisite: https://github.com/ledgerwatch/erigon-lib/pull/676 .
2022-10-11 16:49:38 +01:00
Tim Mustafin
70851c35ee
[BSC] support for Moran fork ( #5696 )
...
This PR brings support for BSC Moran fork
Co-authored-by: Timur Mustafin <timur@mustafin.dev>
2022-10-11 13:33:32 +01:00
Andrew Ashikhmin
b8059d7f96
No MaxCodeSize limit for AuRa ( #5685 )
...
[Nethermind/Chains/xdai.json](https://github.com/NethermindEth/nethermind/blob/master/src/Nethermind/Chains/xdai.json )
does not contain `maxCodeSize`, so it defaults to 2^63-1 (virtually
unlimited).
https://gnosisscan.io/tx/0x3bfa6631d0a3a845c16674f56771de30bc840e828ea8ead21dbea04541a30173
is a transaction example on Gnosis Chain where the code size exceed the
mainnet `maxCodeSize` of 24576.
2022-10-10 12:11:12 +02:00
Levi Aul
7144b2664c
Support BSC Nano hardfork ( #5654 )
2022-10-07 07:20:48 +01:00
Andrew Ashikhmin
ca60b197a1
Fix Gnosis Chain transition to safeContract validator ( #5645 )
2022-10-06 18:06:18 +02:00
Alex Sharov
ca9aa4723c
Compress params change ( #5631 )
...
as of https://github.com/ledgerwatch/erigon-lib/pull/651
2022-10-05 17:54:54 +07:00
Andrew Ashikhmin
2217b2785e
SysCallContract shouldn't increase nonce of SystemAddress ( #5617 )
...
* Test GnosisGenesisStateRoot
* Delete obsolete allocations
* SysCallContract shouldn't increase nonce of SystemAddress
* Max gas limit in SysCallContract
* Restore error swallowing for Bor
2022-10-04 18:02:17 +02:00
ledgerwatch
fd52a788b7
Fix creation of block snapshots ( #5579 )
...
* Print snapshot prune
* More print
* Print
* Print
* Print
* Move snapshots stage forward
* Cleanup
* Fix tests
* Print
* Too much logging
* Remove print
* Log, check
* Revert
* No panic, print
* Fix tx numbering
* Harder condition to start retiring blocks
* Disable Pow verification after TTD is reached
* Fix POW verifying
* Print
* Prints
* Fix?
* cleanup
* Add migrations and hack
* More diagnostics
* More print
* Reset sequence only once
* Fix migration
* Remove print reset
* Fix lint
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
2022-10-04 11:14:18 +01:00
Alex Sharov
39383d936d
erigon3: move tx.AsMessage() out of critical path ( #5611 )
...
* save
* save
2022-10-04 10:56:41 +01:00