Eugene Kabanov
c59bb71916
Add implementation of publishBlindedBlockV2() REST API endpoint. ( #6413 )
2024-07-04 19:48:12 +00:00
Eugene Kabanov
190dbfd481
Fix empty status string handling, address #6175 . ( #6391 )
2024-06-28 05:54:51 +02:00
Eugene Kabanov
27664291c4
VC/NIMBUS-BN validators protection. ( #6329 )
...
* Beacon node side implementation.
* Validator client side implementation.
* Address review comments and fix the test.
* Only 400 errors could be IndexedErrorMessage, 500 errors are always ErrorMessage.
* Remove VC shutdown functionality.
* Remove magic constants.
* Make arguments more visible and disable default values.
* Address review comments.
2024-06-11 19:38:16 +00:00
tersec
77d926525f
stop using deprecated stew/results ( #6343 )
...
* stop using deprecated stew/results
* exception tracking linting
2024-06-11 02:34:56 +00:00
Eugene Kabanov
0b8cb4efc4
Add metrics to all RPC {state_id} endpoints. ( #6282 )
2024-05-15 09:52:57 +03:00
Eugene Kabanov
a6f68d3edc
Fix POST to /eth/v2/beacon/blocks unable to verify correct block signature. ( #6261 )
2024-05-06 04:15:17 +00:00
tersec
d139c92df9
explicitly scope AttesterSlashing and IndexedAttestation types to phase0 ( #6224 )
2024-04-21 05:49:11 +00:00
tersec
603c83522e
explicitly refer to phase0.{Attestation,TrustedAttestation} rather than sans module name ( #6214 )
2024-04-17 20:44:29 +00: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
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
tersec
df9112d663
detect invalid REST blocks ( #6152 )
2024-03-28 03:32:33 +00: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
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
50a43f397f
rename `DepositTreeSnapshot` -> `DepositContractSnapshot` ( #6036 )
...
EIP-4881 was never correctly implemented, the `DepositTreeSnapshot`
structure has nothing to do with its actual definition. Reflect that
by renaming the type to a Nimbus-specific `DepositContractSnapshot`,
so that an actual EIP-4881 implementation can use the correct names.
- https://eips.ethereum.org/EIPS/eip-4881#specification
Notably, `DepositTreeSnapshot` contains a compressed sequence in
`finalized`, only containing the minimally required intermediate roots.
That also explains the incorrect REST response reported in #5508 .
The non-canonical representation was introduced in #4303 and is also
persisted in the database. We'll have to maintain it for a while.
2024-03-07 18:42:52 +01:00
tersec
84034c0379
rm Capella builder API-related remote signer support ( #6003 )
2024-03-01 05:30:09 +00:00
tersec
2b91b66679
rm REST Capella builder API support ( #5981 )
2024-02-28 01:10:19 +00: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
tersec
e865817d44
add some push raises, ElectraBeaconStateNoImmutableValidators, and ELECTRA_FORK_VERSION/EPOCH ( #5949 )
2024-02-24 05:08:22 +00:00
tersec
87052eba4e
implement getBlindedBlock REST API ( #5829 )
2024-01-31 03:18:55 +00:00
Eugene Kabanov
525b994e7d
Adopt asyncraises guarantees to most of the REST API handlers. ( #5803 )
...
* Adopt asyncraises guarantees to most of the REST API handlers.
Bump presto.
* Fix copyright year.
---------
Co-authored-by: Etan Kissling <etan@status.im>
2024-01-20 17:06:28 +01:00
Eugene Kabanov
10dbd773c7
Address issue #5758 . ( #5762 )
2024-01-19 23:34:11 +00: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
030226148d
rename `exit_pool` > `validator_change_pool` ( #5679 )
...
The `ExitPool` was renamed to `ValidatorChangePool` with Capella, but
the files were still using the previous name. Rename for consistency.
2023-12-23 06:55:47 +01:00
tersec
13c9f3b1e1
avoid pointlessly full blocks while handle blobsidecar REST requests ( #5668 )
2023-12-14 18:02:36 +01:00
Jacek Sieka
9d155ebb35
avoid json-rpc server import ( #5649 )
2023-12-05 22:08:18 +01:00
tersec
c36d2aa103
fix XDeclaredButNotUsed warnings ( #5648 )
2023-12-05 11:45:47 +00: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
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
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
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
b0d5001571
implement getBlobSidecars Beacon API endpoint ( #5530 )
2023-10-29 00:06:13 +00:00
tersec
c5028b56bf
change blinded block proposal failures to REST internal errors ( #5501 )
2023-10-12 23:54:24 +02:00
tersec
edc5c03230
consistently use SignedBlindedBeaconBlockContents; remove more Bellatrix Builder API remnants ( #5493 )
2023-10-11 11:48:35 +00:00
Eugene Kabanov
4fb95d000d
REST server fixes and improvements. ( #5422 )
...
* Move from Option[T] to Opt[T] usage.
* Add `finalized` flag.
* Fix compilation issue.
* Http415 error code for some REST API calls.
Introduce more comprehensive error reporting for block calls.
Deprecate decodeEthConsensusVersion() function.
* Bump http-utils.
* Fix copyright year.
* Fix serialization issue.
* Address review comments.
* Post rebase fixes.
2023-09-27 16:45:33 +02:00
Etan Kissling
e7bc41e005
`blck` --> `forkyBlck` when using `withBlck` / `withStateAndBlck` ( #5451 )
...
For symmetry with `forkyState` when using `withState`, and to avoid
problems with shadowing of `blck` when using `withBlck` in `template`,
also rename the injected `blck` to `forkyBlck`.
- https://github.com/nim-lang/Nim/issues/22698
2023-09-21 12:49:14 +02:00
henridf
9efd26c2e9
Add support for POST /eth/v2/beacon/blocks ( #5214 )
...
* Add support for POST /eth/v2/beacon/blocks
* More descriptive errors
* Address review feedback
* Return 500 (not 400) for a missing implementation case
2023-08-12 03:08:54 +00:00
Etan Kissling
f8ba2e3882
generalize `ShufflingRef` acceleration logic ( #5197 ) ( #5204 )
...
Split up the `ShufflingRef` acceleration logic into generically usable
parts and attester shuffling specific parts. The generic parts could be
used to accelerate other purposes, e.g., REST `/states/xxx/randao` API.
2023-07-31 18:12:15 +00:00
tersec
81c989660a
remove Bellatrix builder API support ( #5162 )
...
Co-authored-by: Etan Kissling <etan@status.im>
2023-07-20 04:37:54 +00:00
henridf
1234900065
Add blob handling to message router ( #5106 )
...
* Add blob handling to message router
* address review feedback
* Fix typos
2023-06-28 17:55:31 +00:00
henridf
0f8866d672
Add Deneb beacon API types ( #5060 )
...
* Add Deneb beacon API types
- Introduce the `ProduceBlockResponseV2` type for handling responses to `GET /eth/v2/validator/blocks/{slot}` (https://ethereum.github.io/beacon-APIs/?urls.primaryName=dev#/Validator/produceBlockV2 )
- Introduce the `RestPublishedSignedBlockContents` type for handling the request body to `POST /eth/v1/beacon/blocks` (https://ethereum.github.io/beacon-APIs/?urls.primaryName=dev#/ValidatorRequiredApi/publishBlock )
And a few other small changes towards Deneb block production support.
* Address review feedback
* Post-rebase fixes
2023-06-19 08:56:52 +00:00
tersec
e8e67ec771
allow payload builder client to be function of validator/proposer ( #5015 )
...
* allow payload builder client to be function of validator/proposer
* fileExists has side effects on Windows and only Windows
* another not-always-func
2023-06-02 11:06:33 +00:00
tersec
7a7573d7d0
fix chronos done -> completed deprecation warnings ( #5016 )
2023-06-01 10:04:30 +02:00
tersec
d1941b670a
refactor payload builder REST client usage ( #4973 )
...
* refactor payload builder REST client usage
* change HTTP response code
2023-05-25 18:38:56 +03:00
tersec
d3929cbb45
update some beacon API spec URLs; fix some Name and DuplicateModuleImport hints ( #4929 )
2023-05-10 10:20:55 +00:00
tersec
eed34e740a
implement the getStateRandao Beacon API ( #4799 )
2023-04-11 18:27:48 +03:00
Etan Kissling
969c6f73ae
misc local `EIP4844` > `Deneb` bumps ( #4717 )
...
* misc local `EIP4844` > `Deneb` bumps
* fix
2023-03-11 00:28:19 +00:00
tersec
a47f0b054e
finish eip4844 to deneb module rename ( #4705 )
2023-03-09 01:34:17 +01:00