erigon-pulse/erigon-lib
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
..
.github/workflows Update mingw cmake version for windows (#8856) 2023-11-29 19:10:49 +07:00
bptree Add 'erigon-lib/' from commit '93d9c9d9fe4bd8a49f7a98a6bce0f0da7094c7d3' 2023-09-20 14:50:25 +02:00
chain Implement PIP-33: Napoli Hardfork (#8975) 2024-01-17 14:13:16 +01:00
commitment Add 'erigon-lib/' from commit '93d9c9d9fe4bd8a49f7a98a6bce0f0da7094c7d3' 2023-09-20 14:50:25 +02:00
common polygon/sync: canonical chain builder (#9117) 2024-01-04 10:44:57 +01:00
compress E2 snapshot uploading (#9056) 2023-12-27 22:05:09 +00:00
crypto Sentinel refactor (#8296) 2023-10-22 01:17:18 +02:00
diagnostics dvovk/updsync (#9134) 2024-01-08 10:43:04 +01:00
direct glob filter (#9148) 2024-01-07 12:03:17 -06:00
downloader fix udpOrHttpTrackers amount (#9245) 2024-01-17 14:21:39 +07:00
etl etl: more tests (#8534) 2023-10-20 13:54:46 +07:00
gointerfaces glob filter (#9148) 2024-01-07 12:03:17 -06:00
kv mdbx: reduce 2 times hard dplimit (#9216) 2024-01-12 11:27:18 +01:00
metrics refactor(erigon-lib/metrics): replace strings.IndexByte with strings.Cut (#9202) 2024-01-12 13:07:49 +00:00
mmap Fixes for Bor Block Production Synchronization (#9162) 2024-01-10 17:12:15 +00:00
patricia Upgrade libp2p (enables go 1.21 support) (#8288) 2023-09-29 22:11:13 +02:00
pedersen_hash Sentinel refactor (#8296) 2023-10-22 01:17:18 +02:00
recsplit recsplit: reduce ram pressure (#9218) 2024-01-12 11:26:20 +01:00
rlp Fix rlp.EncodeString for length 56 (#8528) 2023-10-19 11:45:19 +02:00
rlp2 rlp2 (#8643) 2023-11-04 09:22:11 +07:00
sais Add 'erigon-lib/' from commit '93d9c9d9fe4bd8a49f7a98a6bce0f0da7094c7d3' 2023-09-20 14:50:25 +02:00
state recsplit: reduce ram pressure (#9218) 2024-01-12 11:26:20 +01:00
tools sys deps up (#8695) 2023-11-11 15:04:18 +03:00
txpool Implement PIP-33: Napoli Hardfork (#8975) 2024-01-17 14:13:16 +01:00
types sys deps up (#8695) 2023-11-11 15:04:18 +03:00
wrap [E3] Some fixes for the in-memory database when working with Caplin (… (#9164) 2024-01-09 08:26:26 +07:00
.gitignore Add 'erigon-lib/' from commit '93d9c9d9fe4bd8a49f7a98a6bce0f0da7094c7d3' 2023-09-20 14:50:25 +02:00
.golangci.yml sys deps up (#8695) 2023-11-11 15:04:18 +03:00
go.mod return 1 lost mainnet file (#9242) 2024-01-17 14:21:51 +07:00
go.sum return 1 lost mainnet file (#9242) 2024-01-17 14:21:51 +07:00
LICENSE Add 'erigon-lib/' from commit '93d9c9d9fe4bd8a49f7a98a6bce0f0da7094c7d3' 2023-09-20 14:50:25 +02:00
Makefile ci: go mod tidy check (#8263) 2023-09-22 14:04:25 +07:00
README.md make: refactor erigon-lib make tasks (#8249) 2023-09-21 13:50:59 +02:00
rules.go fix-rules-typo (#8681) 2023-11-09 07:40:24 +03:00
tools.go erigon-lib: cleanup unnnecessary import in tools.go added in prev PR (#9190) 2024-01-10 19:16:25 +07:00

erigon-lib

Parts of Erigon codebase, written from scratch and licensed under Apache 2.0.

License requirements

erigon-lib dependencies use various open source licenses compatible with Apache 2.0. This is checked on CI using make lint-licenses.

In order to keep license purity it is not allowed to refer to the code in the erigon root module from erigon-lib. This is ensured by the go.mod separation.

It is not allowed to copy or move code from erigon to erigon-lib unless all original authors agree to relief the code license from GPL to Apache 2.0.

Code migration policy

It is encouraged to write new erigon code inside erigon-lib.

It is encouraged to move and relicense parts of the code from erigon to erigon-lib that are safe and easy to move. For example, code written from scratch by erigon core contributors that has no significant external contributions could be refactored and moved.