4686 Commits

Author SHA1 Message Date
Etan Kissling
9999362b11
detect mismatch of config and binary (#4132)
* detect mismatch of config and binary

When loading configuration that sets keys that Nimbus bakes into the
binary at compile-time, raise an error if the config is incompatible
instead of ignoring the conflicting value.
2022-09-19 12:07:46 +03:00
Etan Kissling
4b3768c3a1
fix TTD before bellatrix (#4137)
When TTD hits before Bellatrix, avoid waiting for new blocks and detect
the TTD block as the terminal block hash even before Bellatrix hits.
Also allow detecting EL genesis block as merge transition block.
This fixes the local testnet simulation with Geth to actually merge.
2022-09-18 08:45:51 +03:00
Etan Kissling
3f17ceb0e2
run local finalization testnets with Geth (#4138) 2022-09-18 08:44:20 +03:00
tersec
ab3ac64b19
Remove optimistic sync candidate check (#4129) 2022-09-17 20:45:35 +00:00
Etan Kissling
6ad9b3214d
fix random IndexError in CI (#4136)
Bump `nim-chronos` to improve reliability of tests with `waitFor` logic.
The bump also adds more `FutureBase` helpers.
2022-09-17 19:45:09 +00:00
Miran
5a4c2d0a2b
move i386 testing to nightlies + remove testing of Nim 1.4 (#4103)
* remove i386 target from ci.yml

* add i386 build to nightlies.yml

* don't continue on error for Nim 1.6

* do not test Nim 1.4
2022-09-17 08:38:18 +03:00
Jacek Sieka
ef8bab58eb
load suggested fee recipient file also when keymanager is disabled (#4078)
Since these files may have been created in a previous run or manually,
we want to keep loading them even on nodes that don't enable the
keystore API (for example static setups)

Other changes:

* log keystore loading progressively (#3699)
* print initial fee recipient when loading validators
* log dynamic fee recipient updates
2022-09-17 08:30:07 +03:00
Shiti Saxena
dc21897e48
docs: add note about data-dir (#4124) 2022-09-17 08:03:38 +03:00
Etan Kissling
24534090b4
send SNI info when using https/wss web3 API (#4133)
When connecting to hosts on shared IP/Port using TLS, SNI must be sent
to allow the remote server to provide the correct TLS certificate.
Bump the `nim-json-rpc` and `nim-websock` dependencies to send SNI ext.
2022-09-17 03:01:59 +00:00
Etan Kissling
0244671cb8
rm optimistic candidate block check from LC (#4131)
The optimistic candidate block check that only imports a new block into
the EL client if its parent block also had execution enabled is not
needed anymore, as mainnet has merged and the attack period is over.
2022-09-17 00:42:19 +00:00
Etan Kissling
31a777af74
port nextExchangeTransitionCfg to LC (#4130)
Port changes to `nextExchangeTransitionConfiguration` from BN to LC:
- 60 seconds delay before initial exchange
- 45 seconds interval between followup exchanges
- Only exchange post Bellatrix
2022-09-16 22:48:53 +00:00
tersec
5677816df3
remove obsolete merge test vector test bash script (#4135)
* remove obsolete merge test vector test bash script

* remove reference to removed merge test vector script
2022-09-16 22:49:39 +02:00
Etan Kissling
3ba016d75f
consistent peer scoring for missing non-finalized parent (#3381)
When the sync queue processes results for a blocks by range request,
and the requested range contained some slots that are already finalized,
`BlockError.MissingParent` currently leads to `PeerScoreBadBlocks` even
when the error occurs on a non-finalized slot in the requested range.
This patch changes the scoring in that case to `PeerScoreMissingBlocks`
for consistency with range requests solely covering non-finalized slots,
and, likewise, rewinds the sync queue to the next `rewindSlot`.
2022-09-16 21:45:53 +02:00
tersec
0410aec9d8
remove rest of withState.state usage (#4120)
* remove rest of `withState.state` usage

* remove scaffolding
2022-09-16 15:35:00 +02:00
Jacek Sieka
43188a0990
clean up exchange configuration handling (#4126)
Per spec, we should not be sending our detected terminal block to EL -
the EL configuration exchange should only look at values from
configuration and report mismatches.
2022-09-16 15:33:22 +02:00
Jacek Sieka
9df08576a1
bump json-rpc, for potential nil http crash (fixes 4118) (#4125)
* bump json-rpc, for potential `nil` http crash (fixes #4118)

* bump
2022-09-16 08:08:25 +00:00
tersec
0b93eeeaaf
delay first exchangeTransitionConfiguration (#4114) 2022-09-15 15:00:23 +02:00
Jacek Sieka
23fb596779
add link to eth-clients checkpoint sync sources 2022-09-15 13:02:05 +02:00
Etan Kissling
8f325f54b5
rm merge devnets from network list (post-merge) (#4101)
After the merge, remove obsolete support for devnets.
2022-09-15 08:43:44 +02:00
tersec
80f44f4491
update consensus layer spec ref URLs to v1.2.0-rc.3 (#4117) 2022-09-13 17:30:11 +00:00
tersec
02a99543c6
more withState state -> forkyState (#4112) 2022-09-13 14:53:12 +03:00
tersec
5b0b48f6e9
implement /eth/v1/validator/register_validator (#4115) 2022-09-13 14:52:26 +03:00
tersec
8be964a152
update consensus layer spec ref URLs to v1.2.0-rc.3 (#4109) 2022-09-10 17:16:38 +00:00
Miguel Tenorio
f935f3527b
Fix typo in docs/docker.md (#4110) 2022-09-10 18:50:57 +02:00
Etan Kissling
ae655e7b0f
add lodestar to known lib p2p agents (#4108)
Lodestar is switching from `js-libp2p/0.36.2` to `lodestar/version`.
Collect metrics on Lodestar peers following that scheme.
https://github.com/status-im/nimbus-eth2/issues/4106
2022-09-10 17:57:34 +02:00
tersec
19bf460a3b
more withState state -> forkyState (#4104) 2022-09-10 08:12:07 +02:00
tersec
1d620f0123
consensus spec URL updates to v1.2.0-rc.3 (#4105) 2022-09-09 21:56:06 +00:00
Mamy Ratsimbazafy
f21495b9d4
Use engine API port in systemd.service fix #4098 (#4099) 2022-09-09 12:18:02 +00:00
Etan Kissling
5ab57369f7
testnet optimizations for low participation (#4100)
Update finality check to improve performance in testnets.
2022-09-09 02:31:33 +02:00
Michael Bradley
0a5b06317d
revise github actions badge (#4079)
revise urls so that badge reflects status of the CI workflow for the stable
branch and links specifically to run results for the same
2022-09-08 15:25:14 +02:00
Etan Kissling
317e91bfc1
support jwtsecret in launch_local_testnet (#4097)
To allow testing more thoroughly with connected EL, pass `jwtsecret`
as part of running local testnets.
2022-09-08 15:22:31 +02:00
Jacek Sieka
667c3c97eb
v22.9.0 v22.9.0 2022-09-08 15:04:27 +02:00
Jacek Sieka
ff823f4aae
avoid building main binaries twice (#4092)
we can just build everything with trace logging
2022-09-08 11:13:54 +02:00
Jacek Sieka
ee1465e320
Don't consider stubbed terminal block hash terminal (fixes #4094) (#4096) 2022-09-08 10:57:26 +02:00
Etan Kissling
e6b8bc6527
harden exchangeTransitionConfiguration retries (#4095)
`p.dataProvider` may become `nil` between individual attempts to
exchange transition configuration with the EL. Harden by capturing
the data provider on function start.

Note that other functions are already hardened, or are unaffected.
Only `close` transitions `p.dataProvider` to `nil`, and `close` is
only called by the main deposits import sequence. During the deposits
import, `close` is not called, so extra checks are not needed.
2022-09-08 09:36:53 +02:00
tersec
eb791cfac8
avoid rewinds during syncing (#4093) 2022-09-08 00:31:24 +00:00
tersec
cd46af17e9
handle INVALIDATED forkchoiceUpdated better (#4081) 2022-09-07 22:54:37 +02:00
Etan Kissling
0191225896
improve deposit processing performance (#4082)
When there are a lot of deposits, we decompress the public key into a
crypto cache. To avoid having those caches grow unreasonably big,
make sure to operate on the decompressed pubkey instead.
2022-09-07 20:49:32 +02:00
tersec
bf3a014287
more efficient forkchoiceUpdated usage (#4055)
* more efficient forkchoiceUpdated usage

* await rather than asyncSpawn; ensure head update before dag.updateHead

* use action tracker rather than attached validators to check for next slot proposal; use wall slot + 1 rather than state slot + 1 to correctly check when missing blocks

* re-add two-fcU case for when newPayload not VALID

* check dynamicFeeRecipientsStore for potential proposal

* remove duplicate checks for whether next proposer
2022-09-07 20:34:52 +02:00
tersec
324e021966
increase blinded block submission timeout from 1s to 4s (#4088) 2022-09-07 18:52:16 +02:00
Jacek Sieka
dee60e6e77
avoid rechecking bellatrix+ block signatures in state transition (#4085)
Like the other forks, these are already batch-verified - this also
avoids polluting the last-resort global key cache
2022-09-07 16:45:46 +00:00
tersec
e367f612e8
increase Jenkins timeouts by 10m (#4086) 2022-09-07 09:51:08 +00:00
tersec
a770fadd01
exchangeTransitionConfiguration fix (#4077) 2022-09-07 10:02:07 +02:00
Tanguy
ca20c49b5c
Fix messageId generation for forks after altair (#4076) 2022-09-07 09:56:20 +02:00
tersec
b90ae838c7
checking for merge terminal block should be debug-level (#4075) 2022-09-06 23:41:55 +00:00
Etan Kissling
634408ff2c
use nim-websock instead of news (#4061)
`news` has a few open issues that are not present in `nim-websock`:
1. There is a 1 second delay between each MB of sent data.
2. Cancelling an ongoing `send` makes the entire WebSocket unusable.
3. Control packets do not have priority over ongoing message frames.

Using `news`, there are quite a few of these messages in Geth:
```
Previously seen beacon client is offline. Please ensure it is
operational to follow the chain!
```
It may take quite some time to reconnect when this happens.

Using `nim-websock`, this message still occurs because `eth1_monitor`
reconnects the EL connection when no new blocks occurred for 5 minutes,
but reconnecting is quick and the message is rarer.
2022-09-06 23:41:33 +02:00
tersec
8fbb3d975b
display invalid status in extra fork choice info (#4074)
* fork choice: support marking roots/nodes invalid

* check for invalid first

* display invalid status in extra fork choice info
2022-09-06 18:05:57 +00:00
tersec
11ebf60ab8
fork choice: support marking roots/nodes invalid (#4071)
* fork choice: support marking roots/nodes invalid

* check for invalid first
2022-09-06 16:58:54 +00:00
Jacek Sieka
1538dea45e
bumps (#4069)
* bearssl: use master branch again
* chronos: less Option, better contenttype handling
* eth, presto: less imports
* stew: typo
* web3: tighter `Quantity` parsing rules (see
https://github.com/status-im/nimbus-eth2/pull/3850 and subsequently
https://github.com/status-im/nim-web3/pull/55)
2022-09-06 13:54:30 +00:00
tersec
776f09215c
only mark post-finalized blocks invalid (#4072) 2022-09-06 11:43:19 +00:00