tersec
e70fa6d6de
rename ElectraIndexedAttestation/ElectraAttesterSlashing for consistency ( #6252 )
2024-04-29 04:19:10 +02:00
tersec
87452374e4
add Electra SSZ object test fixture ( #6225 )
2024-04-22 09:00:38 +00:00
tersec
d139c92df9
explicitly scope AttesterSlashing and IndexedAttestation types to phase0 ( #6224 )
2024-04-21 05:49:11 +00:00
tersec
645e627b03
add new Electra beacon chain containers and presets ( #6216 )
...
* add new Electra beacon chain containers and presets
* re-enable attestations in electra state transition
2024-04-18 07:30:01 +00:00
tersec
603c83522e
explicitly refer to phase0.{Attestation,TrustedAttestation} rather than sans module name ( #6214 )
2024-04-17 20:44:29 +00:00
Eugene Kabanov
c5f04dd237
produceBlockV3 call should send `execution_payload_blinded` value as boolean. ( #6204 )
...
* Fix `execution_payload_blinded` in produceBlockV3 response should be boolean not string.
* Address review comments.
2024-04-15 23:08:41 +00:00
tersec
1bf4058e22
add Electra support to beacon API produceBlindedBlock and produceBlockV3 endpoints; add further VC publish(Blinded)Block Electra support ( #6190 )
2024-04-10 10:54:00 +02:00
tersec
8a30cffbcc
initial VC Electra publishBlock support ( #6189 )
2024-04-09 16:54:05 +02:00
tersec
6ce5d5814c
support electra block proposals for internal BN validators ( #6187 )
2024-04-09 12:04:33 +02:00
tersec
ba45a1821c
implement Electra beacon API publishBlindedBlock ( #6185 )
2024-04-08 18:03:20 +02:00
tersec
97bfca4b88
implement Electra beacon API getBlindedBlock ( #6183 )
2024-04-08 14:49:03 +02:00
tersec
361be082ae
add Electra toSignedBlindedBlock tests ( #6182 )
2024-04-08 10:34:15 +02:00
tersec
937cc62b85
block_sim runs electra ( #6181 )
2024-04-07 09:58:11 +02:00
tersec
27921406e9
remove some debugRaiseAsserts and fill in Electra functionality ( #6179 )
2024-04-06 15:11:47 +02:00
tersec
0d534224b3
remove some debugRaiseAsserts and fill in Electra functionality ( #6178 )
2024-04-06 07:46:02 +00:00
tersec
0b6f75b88b
remove some debugRaiseAsserts and fill in actual Electra functionality ( #6172 )
2024-04-04 05:17:31 +02:00
tersec
7fa32b7f02
add Electra to ConsensusFork enum ( #6169 )
...
* add Electra to ConsensusFork enum
* fix gnosis check
2024-04-03 16:43:43 +02:00
Etan Kissling
5f4fa9ae69
avoid code repetition across forks for signed block contents ( #6150 )
...
Use forks sugar to make `RestPublishedSignedBlockContents` more concise.
2024-04-03 02:05:29 +02:00
Etan Kissling
5d42859176
make `Gwei` `distinct` ( #6090 )
...
#6087 introduced a subtle change to `nim-web3` resulting in `Gwei` to be
serialized differently than before. Using a `distinct` type for `Gwei`
improves type safety and avoids such problems in the future.
2024-03-19 14:22:07 +01:00
Etan Kissling
1dd2c939ac
bump `nim-web3` to `80c7aa6de2a26c57fa1f06ad47f3ac6058e6545b` ( #6088 )
...
- Add writeValue for BlockNumber
- make `BlockNumber` `distinct`
2024-03-19 14:21:47 +01:00
Eugene Kabanov
72c844534f
Add Keymanager API graffiti endpoints. ( #6054 )
...
* Initial commit.
* Add more tests.
* Fix API mistypes.
* Fix mistypes in tests.
* Fix one more mistype.
* Fix affected tests because of error code 401.
* Add GetGraffitiResponse object.
* Add more tests.
* Fix compilation errors.
* Recover old behavior.
* Recover old behavior.
* Fix mistype.
* Test could not know default graffiti value.
* Make VC use adopted graffiti settings.
* Make BN use adopted graffiti settings.
* Update Alltests.
* Fix test.
* Revert "Fix test."
This reverts commit c735f855d3cb9c4a1c8e8af29d3f4438d068e31f.
* Workaround {.push raises.} requirement.
* Fix comment.
* Update Alltests.
2024-03-14 03:44:00 +00:00
Jacek Sieka
2d519ac715
remove some unused rest serialization code ( #6056 )
2024-03-09 11:38:24 +01:00
Etan Kissling
a0bc3fff86
fix `/eth/v1/beacon/deposit_snapshot` for EIP-4881 ( #6038 )
...
Fix the `/eth/v1/beacon/deposit_snapshot` API to produce proper EIP-4881
compatible `DepositTreeSnapshot` responses. The endpoint used to expose
a Nimbus-specific database internal format.
Also fix trusted node sync to consume properly formatted EIP-4881 data
with `--with-deposit-snapshot`, and `--finalized-deposit-tree-snapshot`
beacon node launch option to use the EIP-4881 data. Further ensure that
`ncli_testnet` produces EIP-4881 formatted data for interoperability.
2024-03-08 14:22:03 +01:00
Etan Kissling
542854e743
use `ConsensusFork.init` for parsing lowercase version ( #6015 )
...
Instead of maintaining string to `ConsensusFork` version inline,
use shared helper that also comes with static assertion checks
for completion.
2024-03-02 23:45:20 +01:00
tersec
f076502e25
rm Capella builder API bid types and blinded block construction ( #6002 )
2024-03-01 00:02:13 +00:00
tersec
5da2bcd243
rm Capella builder API REST calls ( #5997 )
2024-02-29 12:37:08 +00:00
tersec
84b752c7a1
rm REST blinded forked Capella block support ( #5994 )
2024-02-28 18:27:26 +00:00
Etan Kissling
00510a9d2f
fix `Eth-Consensus-Block-Value` reading ( #5964 )
...
Fix regression from #5842 where `Eth-Execution-Payload-Value` is parsed
into `consensusValue` instead of `Eth-consensus-Block-Value`. We don't
use those values for now, but fixing avoids hard-to-debug bugs later.
2024-02-26 09:41:41 +01:00
tersec
a4f4a35845
Revert "initial Electra support skeleton" ( #5955 )
...
* Revert "initial Electra support skeleton (#5946 )"
This reverts commit d09bf3b587
.
* Update test_signing_node.nim
2024-02-25 19:42:44 +00:00
tersec
d09bf3b587
initial Electra support skeleton ( #5946 )
2024-02-24 13:44:15 +00:00
Jacek Sieka
1ef7d237cc
Shared validator pubkey ( #5883 )
...
This PR allows sharing the pubkey data between validators by using a
thread-local cache for pubkey data, netting about a 400mb mem usage
reduction on holesky due to us keeping 3 permanent + several ephemeral
state copies in memory at all times and each state copy holding a full
validator.
The PR also introduces a hash cache for the key which gives ~14% speedup
for a full state `hash_tree_root` - the key makes up for a large part of
the `Validator` htr time.
Finally, the time it takes to copy a state goes down as well from ~80m
ms to ~60, for reasons similar to htr.
We use a `ptr` even if a `ref` could in theory have been used - there is
not much practical benefit to a `ref` (given it's mutable) while a `ptr`
is cheaper and easier to copy (when copying temporary states).
We could go further and cache a cooked pubkey but it turns out this is
quite intrusive - in all the relevant places, we're already using a
cooked key from the immutable validator data so there are no immediate
performance gains of doing so while managing the compressed -> cooked
key mapping would become more difficult - something for a future PR
perhaps.
Co-authored-by: Etan Kissling <etan@status.im>
2024-02-21 20:06:19 +01:00
Jacek Sieka
9aabca6a64
Clean up debug/heads v2 types ( #5859 )
2024-02-07 17:51:12 +01:00
Eugene Kabanov
21efe7e060
VC: Use produceBlockV3 when its available. ( #5842 )
...
* Initial commit.
* Add helper functions and publishBlock() implementations.
* Address review comments.
2024-02-02 15:24:40 +00:00
tersec
87052eba4e
implement getBlindedBlock REST API ( #5829 )
2024-01-31 03:18:55 +00:00
tersec
cf1bec7670
update some deprecated stew/results to results imports ( #5743 )
2024-01-16 22:37:14 +00:00
tersec
69af8f943e
implement blob_sidecar Beacon API streaming ( #5728 )
2024-01-13 11:52:13 +02:00
Jacek Sieka
62cbdeefc5
verify `genesis_time` more strictly ( fixes #1667 ) ( #5694 )
...
Bogus values lead to crashes down the line when timers overflow
2024-01-06 15:26:56 +01:00
Etan Kissling
583782a061
emit `proposer_slashing`/`attester_slashing` SSE on beacon-API ( #5678 )
...
Add support for slashings on the beacon-API event stream for compat with
beacon-API specs.
- https://github.com/ethereum/beacon-APIs/pull/376
2023-12-22 18:54:55 +01:00
Etan Kissling
a2081521f6
emit `bls_to_execution_change` SSE on beacon-API ( #5677 )
...
With Capella, `bls_to_execution_change` SSE should be emitted on the
event stream whenever a new `SignedBLSToExecutionChange` is received.
Add this missing functionality for compatibility with beacon-API specs.
- https://github.com/ethereum/beacon-APIs/pull/248
2023-12-22 14:52:43 +01:00
zah
29b29e1945
Use the new strict Json flavors mechanism for RestJson ( #5674 )
...
This requires all object types to be explicitly white-listed for
default serialization. The PR makes the minimal changes, although
a number of similar mechanisms in eth2_rest_serialization can now
be removed.
2023-12-19 17:44:27 +02:00
andri lim
15147cccb1
Bump nim-web3 to dcabb8f29ee55afedefdf93cd3e102bb1daee354 ( #5664 )
...
* bump nim-web3 to dcabb8f29ee55afedefdf93cd3e102bb1daee354
also bump json-rpc to a8731e91bc336d930ac66f985d3b88ed7cf2a7d7
2023-12-12 22:15:00 +07:00
Eugene Kabanov
26bcb7057c
REST: Add implementation of postStateValidators and postStateValidatorBalances. ( #5632 )
...
* Add implementation POST versions of /eth/v1/beacon/states/{state_id}/validators and /eth/v1/beacon/states/{state_id}/validator_balances.
Add tests.
* Address review comments.
Fix toList() issue.
* Fix tests.
* Address review comments 2.
* Address review comments 3.
Fix unique check for validator identifiers.
* Address review comments.
* Fix constant value.
2023-11-29 12:05:03 +00:00
Eugene Kabanov
e2e4912645
REST API produceBlockV3 implementation ( #5474 )
...
Co-authored-by: Etan Kissling <etan@status.im>
Co-authored-by: Jacek Sieka <jacek@status.im>
2023-11-29 00:30:14 +01:00
Etan Kissling
98e969084d
update Deneb for latest builder-specs flow ( #5598 )
...
The `BlobSidecar` construction has been moved to the relay and is no
longer done by the BN / VC in blinded flow. Builder bid contents have
been shrinked from full `BlindedBlobBundle` to `blob_kzg_commitments`.
- https://github.com/ethereum/builder-specs/pull/90
- https://github.com/ethereum/beacon-APIs/pull/369
2023-11-15 16:20:13 -08:00
Eugene Kabanov
6bc038e8d5
VC: Obol middleware support ( #5375 )
2023-11-08 14:03:51 +02:00
Eugene Kabanov
49c851109e
VC: Add pruning slashing database. ( #5551 )
...
* Add slashing database pruning to VC.
Fix GetBlockHeaderResponse object declaration (spec has been changed).
* Switch to getFinalizedBlockHeader instead.
* Fix proper sign.
Add statements.
Show pruning log statement only when pruning happens.
* Optimize and remove debugging helpers.
2023-11-06 16:40:44 +02:00
Etan Kissling
d8a7f0df81
update Deneb for blob sidecar inclusion proofs ( #5565 )
...
`BlobSidecar` is no longer signed, instead use Merkle proof to link
blobs with block.
- https://github.com/ethereum/consensus-specs/pull/3531
Associated beacon-API / builder-specs still TBD; minimal changes done
to compile in similar style to previous spec, but not standardized yet.
- https://github.com/ethereum/beacon-APIs/pull/369
- https://github.com/ethereum/builder-specs/pull/90
2023-11-06 07:48:43 +01:00
Eugene Kabanov
e1f47bb27a
Address #5539 . ( #5548 )
2023-11-01 08:32:41 +01:00
Eugene Kabanov
1a5bcb479e
Fix `broadcast_validation` handling in `publishBlockV2` ( fixes #5531 ) ( #5547 )
...
* Address issue #5531 .
* Add more tests.
* Add to resttest ability to check values.
Fix tests.
2023-11-01 08:31:18 +01:00
tersec
41dfc9ed91
add `KZGProof` and `Blob` REST JSON serializations ( #5526 )
...
* add KZGProof and Blob REST JSON serializations
* error summary updates
* copyright notice
* consistent integer types for Nim 2.0
2023-10-25 23:50:59 +02:00