Commit Graph

20763 Commits

Author SHA1 Message Date
Shane Bammel
9350c863dd Update PulseChain bootnodes 2024-02-19 13:22:38 -06:00
Shane Bammel
f36952f9b7 Add build automation
Produces linux binaries for both amd64 & arm64.
Publishes multi-arch docker images supporting both amd64 & arm64.
Automates gitlab releases.
2024-02-14 13:10:46 -06:00
Shane Bammel
1e2e4c27e5 Update mainnet config 2024-02-14 13:10:46 -06:00
Shane Bammel
e8ba24e831 Switch sacrifice credits based on chainID 2024-02-14 13:10:46 -06:00
Shane Bammel
93c50d59a5 Allow for increased Shanghai time with PulseChain 2024-02-14 13:10:46 -06:00
Shane Bammel
21c25e46eb Add Shanghai time to Testnet-V4 2024-02-14 13:10:46 -06:00
bretep
be7aea17ed Add 20% pad to estimated gas to eth_call 2024-02-14 13:10:46 -06:00
Shane Bammel
43ef4304ee Add network config for Testnet-V4 2024-02-14 13:10:46 -06:00
Shane Bammel
c03cba2adc Add padding to gas estimations
Adds a 20% buffer to gas estimations to reduce out-of-gas errors.
2024-02-14 13:10:46 -06:00
Shane Bammel
4ea8213c42 Add v3 suffix to pulsechain-testnet 2024-02-14 13:10:46 -06:00
bretep
ed87d4b665 Switch testnet snapshots to PulseChain from Mainnet 2024-02-14 13:10:46 -06:00
Shane Bammel
431b447f64 Add bootnodes and dns config for testnet-v3 2024-02-14 13:10:46 -06:00
Shane Bammel
5143a97a2e Update credits file
Includes updated sacrifice data & eth2 deposit refunds
2024-02-14 13:10:45 -06:00
Shane Bammel
985276026c Update treasury address & testnet fork block 2024-02-14 13:10:45 -06:00
Shane Bammel
bbe15afcde Add pulsechain-devnet poc config 2024-02-14 13:10:45 -06:00
Shane Bammel
000c914d82 Fix deposit contract initialization
Erigon requires setting the contract incarnation
2024-02-14 13:10:45 -06:00
Shane Bammel
75db06fa1d Add support for PulseChain
Thanks @bretep for the original integration.
2024-02-14 13:10:45 -06:00
Alex Sharov
aa3a804757 fix nil-ptr in txpool fee calc (#9410)
```
[INFO] [02-08|22:58:28.974] new subscription to logs established
[INFO] [02-08|22:58:28.975] rpc filters: subscribing to Erigon events
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x240 pc=0x122572f]

goroutine 2343 [running]:
github.com/ledgerwatch/erigon/consensus/misc.eip1559Calculator.CurrentFees({}, 0xc046591900, {0x7f1202466db8, 0xc0341b7d40})
        github.com/ledgerwatch/erigon/consensus/misc/eip1559.go:80 +0xcf
github.com/ledgerwatch/erigon-lib/txpool.(*TxPool).fromDB(0xc000936c80, {0x3277f60, 0xc000cd8eb0}, {0x3299818?, 0xc0341b7ce0}, {0x3299818?, 0xc0341b7d40?})  
        github.com/ledgerwatch/erigon-lib@v1.0.0/txpool/pool.go:2095 +0x8b3
github.com/ledgerwatch/erigon-lib/txpool.(*TxPool).Start.func1({0x3299818, 0xc0341b7ce0})
        github.com/ledgerwatch/erigon-lib@v1.0.0/txpool/pool.go:329 +0xfe
github.com/ledgerwatch/erigon-lib/kv/mdbx.(*MdbxKV).View(0x29e8d60800?, {0x3277f60?, 0xc000cd8eb0?}, 0xc03412f7a0)
        github.com/ledgerwatch/erigon-lib@v1.0.0/kv/mdbx/kv_mdbx.go:749 +0xa6
github.com/ledgerwatch/erigon-lib/txpool.(*TxPool).Start(0xc000936c80, {0x3277f60?, 0xc000cd8eb0}, {0x328d2d0, 0xc0161ad0a0})
        github.com/ledgerwatch/erigon-lib@v1.0.0/txpool/pool.go:319 +0xc9
github.com/ledgerwatch/erigon-lib/txpool.MainLoop({0x3277f60?, 0xc000cd8eb0}, {0x328d2d0, 0xc0161ad0a0}, 0xc000936c80, 0xc0340750e0, 0xc017e1e0a0, 0xc034088c60, 0xc03459f190)
        github.com/ledgerwatch/erigon-lib@v1.0.0/txpool/pool.go:1729 +0x205
created by github.com/ledgerwatch/erigon/eth.New
        github.com/ledgerwatch/erigon/eth/backend.go:718 +0x3fbd
```
2024-02-14 13:07:22 -06:00
Shane Bammel
31c2dd6036 Add missing implementations in headers stage
This is required for processing uncles in historical POW blocks.
2024-02-10 17:49:50 -06:00
Shane Bammel
3ec01ab133 Fix missing uncles in new block downloader 2024-02-07 10:39:14 -06:00
Shane Bammel
8c10b47d0c Add grpc conversion tests 2024-02-07 10:36:46 -06:00
Andrew Ashikhmin
705814b1ab
Mumbai: add Napoli block (#9346)
Cherry pick PR #9345

---------

Co-authored-by: Arpit Temani <temaniarpit27@gmail.com>
2024-01-30 10:45:47 +01:00
Andrew Ashikhmin
ffb6b83c09
(release) RpcDaemon doesn't see recently retired blocks (#9336)
Cherry pick PR #9318

---------

Co-authored-by: Alex Sharov <AskAlexSharov@gmail.com>
2024-01-29 13:49:47 +01:00
Andrew Ashikhmin
9f1cd651f0
(release) txpool: fix initial blockGasLimit and setBlobFee() (#9303)
Cherry pick PR #9301
2024-01-24 13:33:28 +01:00
Andrew Ashikhmin
20999401b2
release: downloader: prohibit_new_downloads.lock check missed download (#9300)
Cherry pick PR #9295

---------

Co-authored-by: Alex Sharov <AskAlexSharov@gmail.com>
2024-01-24 12:41:31 +01:00
Andrew Ashikhmin
4f6eda7694
release params: remove dev (#9265) 2024-01-18 17:04:17 +01:00
Andrew Ashikhmin
3040e2576c
logs: remove "height=unknown" (#9261)
"[EngineBlockDownloader] Downloading PoS headers... height=unknown"
might be
[confusing](https://discord.com/channels/687972960811745322/1001501454076477450/1197365760125841550)
for users.
2024-01-18 14:27:36 +01:00
Andrew Ashikhmin
4abc6cd119
Schedule Dencun for Sepolia & Holešky (#9255)
See https://github.com/ethereum/EIPs/pull/8051 &
https://github.com/ethereum/execution-specs/pull/860
2024-01-18 09:27:03 +01:00
battlmonstr
1914b52de0
mdbx: race conditions in MdbxKV.Close (#8409) (#9244)
In the previous code WaitGroup db.wg.Add(), Wait() and db.closed were
not treated in sync. In particular, it was theoretically possible to
first check closed, then set closed and Wait, and then call wg.Add()
while waiting (leading to WaitGroup panic).
In theory it was also possible that db.env.BeginTxn() is called on a
closed or nil db.env, because db.wg.Add() was called only after BeginTxn
(db.wg.Wait() could already return).

WaitGroup is replaced with a Cond variable.
Now it is not possible to increase the active transactions count on a
closed database. It is also not possible to call BeginTxn on a closed
database.
2024-01-17 15:28:37 +01:00
Somnath
5e5d8490b1
Move blob cache check in txpool (#9250)
This should help with less frequent lock/unlock. Following from an
earlier "TODO"
2024-01-17 17:46:02 +04: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
Andrew Ashikhmin
8f6fe88b29
Update TestGoerliForkDigest after Dencun (#9251)
Current fork digest for Görli has changed after the [Dencun
upgrade](https://blog.ethereum.org/2024/01/10/goerli-dencun-announcement)
on 17 Jan.
2024-01-17 11:50:13 +01:00
Giulio rebuffo
e1a1c0c049
Caplin: Fixed goroutine hell (#9246) 2024-01-17 10:06:18 +01:00
Arun Sathiya
e1195bad2a
ci: Use GITHUB_OUTPUT envvar instead of set-output command (#9215)
`save-state` and `set-output` commands used in GitHub Actions are
deprecated and [GitHub recommends using environment
files](https://github.blog/changelog/2023-07-24-github-actions-update-on-save-state-and-set-output-commands/).

This PR updates the usage of `set-output` to `$GITHUB_OUTPUT`

Instructions for envvar usage from GitHub docs:


https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-output-parameter
2024-01-17 14:23:20 +07:00
Michelangelo Riccobene
dd010bbb31
qa tests: add clean exit test on block downloading (#9238)
This test uses a pre-built database to test Erigon's behaviour on ctrl-c
during the block download phase (Caplin sync).
2024-01-17 14:23:07 +07:00
Alex Sharov
26ce6aa88b
return 1 lost mainnet file (#9242) 2024-01-17 14:21:51 +07:00
ddl
a1eee5eb8b
fix udpOrHttpTrackers amount (#9245)
seems we just choose the first 8 trackers in
https://github.com/ledgerwatch/trackerslist/blob/master/trackers_best.txt.
2024-01-17 14:21:39 +07:00
battlmonstr
e979d79c08
p2p: panic in enode DB Close on shutdown (#9237) (#9240)
If any DB method is called while Close() is waiting for db.kv.Close()
(it waits for ongoing method calls/transactions to finish)
a panic: "WaitGroup is reused before previous Wait has returned" might
happen.

Use context cancellation to ensure that new method calls immediately
return during db.kv.Close().
2024-01-16 15:34:31 +07:00
battlmonstr
2793ef6ec1
polygon: flatten redundant packages (#9241)
* move mocks to the owner packages
* squash single file packages
* move types to more appropriate files
* remove unused mocks
2024-01-16 09:23:02 +01:00
ddl
79499b5cac
refactor(p2p/dnsdisc): replace strings.IndexByte with strings.Cut (#9236)
similar to https://github.com/ledgerwatch/erigon/pull/9202
2024-01-15 18:46:26 +00:00
battlmonstr
cda48aeaf7
polygon/heimdall: drop GRPC support (#9230) 2024-01-15 16:49:46 +01:00
Giulio rebuffo
f03d2665ff
Added merkle proof and fixed bad handling of new validators (#9233) 2024-01-15 15:01:33 +01:00
milen
a7d5b55250
rpcdaemon: fix remote bor engine for trace transaction (#9214)
This PR fixes the below error when running a remote rpcdaemon for
Polygon debug_traceTransaction.

Request:
```
curl http://localhost:9545/ \
-X POST \
-H "Content-Type: application/json" \
--data '{
  "jsonrpc": "2.0",
  "id": 0,
  "method": "debug_traceTransaction",
  "params": [
    "0xf265c04fc31c91eec9971e118f059322a910776ce40584114c351732ab01aec7",
    {
      "tracer": "callTracer",
      "borTraceEnabled": true,
      "borTx": true
    }
  ]
}'
```

Response:
```
{"jsonrpc":"2.0","id":0,"result":null,"error":{"code":-32000,"message":"method handler crashed"}}
```

Logs:
```
EROR[01-11|18:45:14.087] RPC method debug_traceTransaction crashed: interface conversion: *cli.remoteConsensusEngine is not consensus.Engine: missing method APIs
```
2024-01-15 13:26:39 +00:00
battlmonstr
fb0226d293
polygon/sync: move PeersWithBlockNumInfo and mocks, refactor bor.GetRootHash (#9232) 2024-01-15 12:37:37 +01:00
battlmonstr
c5b75d00ca
polygon/sync: span updates (#9229)
It is possible that a span update happens during a milestone.
A headers slice might cross to the new span.
Also if 2 forks evolve simulaneously, a shorter fork can still be in the
previous span.
In these cases we need access to the previous span to calculate
difficulty and validate header times.

SpansCache will keep recent spans.
The cache will be updated on new span events from the heimdall.
The cache is pruned on new milestone events and in practice no more than
2 spans are kept.

The header difficulty calculation and time validation depends on having
a span for that header in the cache.
2024-01-15 12:36:25 +01:00
a
8d4d4d802c
refac some (#9185) 2024-01-14 23:22:34 -06:00
battlmonstr
ac9f9e0a25
polygon/sync: fork choice logic (#9228) 2024-01-14 13:40:47 +00:00
Mark Holt
d8b91c4d02
Fix startup sync for txpool processing for bor block production (#9219)
When the sync loop first runs it suppresses block sync events both in
the initial loop and when the blocks being processed are greater than
1000.

This fix removed the first check, because otherwise the first block
received by the process ends up not getting sent to the tx pool. Which
means it won't produce new block for polygon.

As well as this fix - I have also moved the gas initialization to the
txpool start method rather than prompting it with a 'synthetic block
event'

As the txpool start has access to the core & tx DB's it can find the
current block and chain config internally so that it doesn't need to be
externally activated it can just do this itself on start up. This has
the advantage of making the txpool more self contained.
2024-01-13 10:33:34 +00:00
Pan chao
2b0fd6d447
chore: some proofreading in the docs (#9223)
Hi, caught a few mistakes while reading the docs. Hope I can be of any
help.
Have a nice day.
2024-01-13 12:04:55 +07:00
Giulio rebuffo
7b58dab998
Added LightClient Containers (#9222) 2024-01-13 01:12:02 +01:00