Commit Graph

4482 Commits

Author SHA1 Message Date
Agnish Ghosh 6127bd6ed2 make all csc uint64 2024-08-22 18:34:26 +05:30
Agnish Ghosh fd1ae50830 revert to initially subscribing to all subnets 2024-08-22 16:04:15 +05:30
Agnish Ghosh 46c72d8cbe fix: initial subscription condition 2024-08-22 15:23:37 +05:30
Agnish Ghosh 2805ffe242 update constants 2024-08-22 14:56:44 +05:30
Agnish Ghosh 3f56281351 fixed lookup csc from peer 2024-08-22 13:52:41 +05:30
Agnish Ghosh e163aa08c0 enable filtering of peers during data column root request 2024-08-21 18:23:05 +05:30
Agnish Ghosh 5b8abc5f1b slight fix 2024-08-20 12:53:23 +05:30
Agnish Ghosh d9e019e2e2 sidecar verification disable at block processing 2024-08-20 12:52:29 +05:30
Agnish Ghosh fcdd7ee492 enable data column verification in block processor, other general fixes 2024-08-20 12:19:54 +05:30
Agnish Ghosh 70029545ea added support for customisable custody subnet count on boot, from bn startup flags 2024-08-20 03:58:27 +05:30
Agnish Ghosh f142dcd36f make reconstruct and broadcast right after performing validator duties 2024-08-19 21:33:40 +05:30
Agnish Ghosh 0034fea1d6 reduce outgoing root requests 2024-08-19 20:42:58 +05:30
Agnish Ghosh 2444b3190e init flag for csc, reduce debug messages 2024-08-19 20:08:01 +05:30
Agnish Ghosh e5da0681b3 get data column sidecar cell and proof variant 2024-08-19 19:24:59 +05:30
Agnish Ghosh 61033ed99b
fix: recover cells and proofs 2024-08-19 18:50:20 +05:30
Agnish Ghosh f71354b307 experimentally disable verifying data column sidecar before storing block 2024-08-19 13:52:47 +05:30
Agnish Ghosh 635eebbed1 fix response time 2024-08-19 13:17:33 +05:30
Agnish Ghosh 287bf72fbb simplify data column reconstruct and broadcast logic 2024-08-19 12:04:05 +05:30
Agnish Ghosh 9ed7a193cd disable rman for blobs 2024-08-19 02:58:50 +05:30
Agnish Ghosh 80b3e70673 slight fix 2024-08-19 01:30:34 +05:30
Agnish Ghosh 15a302cea2 fixes related to reconstruction 2024-08-19 01:23:37 +05:30
Agnish Ghosh 831089825c activate data column verification before storing backfill block 2024-08-18 23:07:33 +05:30
Agnish Ghosh 7e7c14989e bump up data column gossip wait time 2024-08-18 22:23:33 +05:30
Agnish Ghosh 8bb1145b43 populate dataColumnSidecarByRange with remote custody columns 2024-08-18 21:42:10 +05:30
Agnish Ghosh 032f544d65
revert constants until all cl agree 2024-08-18 14:17:33 +05:30
Agnish Ghosh 8eaa903c43
bump devnet constants 2024-08-18 13:41:32 +05:30
Agnish Ghosh 75e1bb616b
handling reconstruction condition internally 2024-08-18 13:35:16 +05:30
Agnish Ghosh e7610ece97
ignore peers with low csc 2024-08-18 13:10:21 +05:30
Agnish Ghosh f5354eb46d
bump parallel requests for data columns upto 64 for supernode 2024-08-18 12:17:25 +05:30
Agnish Ghosh 04fd58efbf
disable valid csc set experimentally 2024-08-18 04:11:39 +05:30
Agnish Ghosh 121a3687b8
disable blob quarantine checks 2024-08-18 02:10:51 +05:30
Agnish Ghosh 7c39d79e7e
remove metadata v3 call from handleStatus 2024-08-18 01:06:05 +05:30
Agnish Ghosh 7c33d3f0f4
prevent blob proposal in pd devnet 2024-08-17 23:42:31 +05:30
Agnish Ghosh cd5532c078 add filtering to peer pool and protocol, remove filtering from SyncManager level 2024-08-17 20:51:36 +05:30
Agnish Ghosh f3f61cbbff conditionally reconstruct and broadcast only when supernode 2024-08-16 01:03:53 +05:30
Agnish Ghosh cc21a2a630 fix: enr bitfield logic for custody subnet count 2024-08-14 16:29:28 +05:30
Agnish Ghosh 1ebba1fac4
add: metadata-v3 for custody subnet count (#6486)
* init: add metadatav3, save progress

* fix import issues

* fix spec version

* fix: metadata_v2 to return altair.MetaData

* update metata function backward compatible now
2024-08-12 21:27:37 +05:30
Agnish Ghosh 9be615dff9
add: data column reconstruction and broadcast (#6481)
* save commit, decouples reconstruction and broadcasting

* save progress

* add: reconstruction event loop, previous reconstruction related cleanups
2024-08-08 17:44:55 +05:30
Agnish Ghosh b32205de7c
upstream peerdas alpha3 related spec changes + fix upstream related issues (#6468)
* reworked some of the das core specs, pr'd to check whether whether the conflicting type issue is centric to my machine or not

* bumped nim-blscurve to 9c6e80c6109133c0af3025654f5a8820282cff05, same as unstable

* bumped nim-eth2-scenarios, nim-nat-traversal at par with unstable, added more pathches, made peerdas devnet branch backward compatible, peerdas passing new ssz tests as per alpha3, disabled electra fixture tests, as branch hasn't been rebased for a while

* refactor test fixture files

* rm: serializeDataColumn

* refactor: took data columns extracted from blobs during block proposal to the heap

* disable blob broadcast in pd devnet

* fix addBlock in message router

* fix: data column iterator

* added debug checkpoints to check CI

* refactor if else conditions

* add: updated das core specs to alpha 3, and unit tests pass
2024-08-05 19:27:39 +05:30
Agnish Ghosh 20e6b189e8
resovle merge conflicts 2024-07-29 19:02:52 +05:30
Agnish Ghosh 329fc21eab
add: condition for being able to selfReconstruct 2024-07-29 19:00:43 +05:30
Agnish Ghosh e80bd36f76 add: verify data column kzg proof during storeBlock, added serializeDataColumn for better logs 2024-07-26 14:19:44 +05:30
Agnish Ghosh 2e9750ba76 add: get_extended_sample_count for lossy sampler and it's unit test 2024-07-25 18:56:10 +05:30
Agnish Ghosh 874488843a add: hypergeom cdf 2024-07-25 17:58:29 +05:30
Agnish Ghosh 7faec9b7a3 nits 2024-07-23 16:42:36 +05:30
Agnish Ghosh c6513122b9 fix reviewed code 2024-07-23 12:38:16 +05:30
Agnish Ghosh b001499281 add: valid custody peer set to RequestManager 2024-07-23 12:36:42 +05:30
Agnish Ghosh d2c7208492 Eth2Node not needed in sync man 2024-07-22 19:07:51 +05:30
Agnish Ghosh 5265eeb6ea refactor: sync manager to range request only valid peers if not supernode 2024-07-22 19:04:04 +05:30
Agnish Ghosh fa5b15436c
add: logic constructing valid set of peers 2024-07-19 13:58:26 +05:30
Agnish Ghosh e034f30b5e
add: subscribeAllSubnets feature 2024-07-15 13:50:41 +05:30
Agnish Ghosh b33900bd35
added enr struct 2024-07-15 13:11:09 +05:30
Agnish Ghosh cf40d7faae
cleanup for debugs, complete 2024-07-08 11:39:50 +05:30
Agnish Ghosh 5eb854bfcd
checkpoint 2 cleanup 2024-07-07 19:48:56 +05:30
Agnish Ghosh aaba448bc9
convert to List add 2024-07-07 15:59:27 +05:30
Agnish Ghosh 0bffdd0dca
change checkpoints 2024-07-07 05:02:58 +05:30
Agnish Ghosh 7a891f13d6
rework on cell and proof 2024-07-07 04:35:06 +05:30
Agnish Ghosh c14b59264c
add: checkpoints for debug support 2024-07-07 03:01:32 +05:30
Agnish Ghosh e5237d19a3
cell and proof extraction 2024-07-07 02:06:13 +05:30
Agnish Ghosh abf58928cf
handle empty blobs 2024-07-07 00:43:24 +05:30
Agnish Ghosh 755c24d6aa
fix: blob len 0 case 2024-07-06 21:54:29 +05:30
Agnish Ghosh 7b9c68b19d
oops 2024-07-06 13:55:33 +05:30
Agnish Ghosh 74ee8bb74d
refactor cells and proofs logic + fix edge cases 2024-07-06 13:24:51 +05:30
Agnish Ghosh 85db9ca99c
regressive fix 2024-07-06 00:33:15 +05:30
Agnish Ghosh 1729bdcf57
reduce parallel requests 2024-07-06 00:30:18 +05:30
Agnish Ghosh adc717c3d0
change return type for get dc 2024-07-06 00:28:55 +05:30
Agnish Ghosh 7101f93ff4
gindex issue fix 2024-07-05 23:03:37 +05:30
Agnish Ghosh a92eda56d0
prevent pulling const values from deneb preset 2024-07-05 17:16:20 +05:30
Agnish Ghosh 778ea9f094
fix build proof in get dc 2024-07-05 16:15:38 +05:30
Agnish Ghosh 086d3f1fdc
fix: get dc sidecar 2024-07-05 15:56:03 +05:30
Agnish Ghosh fab427d65f
enable dc in gossip and message router 2024-07-05 14:34:51 +05:30
Agnish Ghosh 318d656942
fix: gindex 2024-07-05 14:26:42 +05:30
Agnish Ghosh 14afc82a1d
gindex fix 2024-07-05 00:05:37 +05:30
Agnish Ghosh eb46f4c486
fix kzg inclusion proof logic 2024-07-04 23:51:38 +05:30
Agnish Ghosh 6cdc6bfa32
debug: verify data column kzg proofs via kurtosis 2024-07-04 20:24:11 +05:30
Agnish Ghosh 93c3525955
increase ops cost 2024-07-04 19:23:24 +05:30
Agnish Ghosh 24b30a9cec
test kurtosis 2024-07-04 19:20:53 +05:30
Agnish Ghosh fe183e7465
change timings 2024-07-04 19:14:16 +05:30
Agnish Ghosh 41b35b9799
fix: get data column fixes 2024-07-04 16:49:55 +05:30
Agnish Ghosh 13029d952e
fix: get data column 2024-07-04 14:45:23 +05:30
Agnish Ghosh b927ddd65a
fix: get_data_column_sidecars 2024-07-04 13:55:51 +05:30
Agnish Ghosh 3bea5742f2
reduce data column response cost 2024-07-04 13:03:48 +05:30
Agnish Ghosh a755dbaaa9
inclusion proof depth 2024-07-04 11:51:54 +05:30
Agnish Ghosh c6662bd914
reenable blobs in block proposal 2024-07-04 11:46:40 +05:30
Agnish Ghosh 1a857603b2
fix: cell and proof aggregator 2024-07-04 00:08:11 +05:30
Agnish Ghosh d49b1a1d47
fix: ckzg function change 2024-07-03 23:51:41 +05:30
Agnish Ghosh 706373909f
fix: get_data_column_sidecars 2024-07-03 23:45:20 +05:30
Agnish Ghosh 887a44a82f
revert gossip val 2024-07-03 21:59:54 +05:30
Agnish Ghosh 53f7175cd8
minor fix 2024-07-03 21:54:40 +05:30
Agnish Ghosh 9f42196c75
exp disable of some gossip conditions 2024-07-03 21:51:59 +05:30
Agnish Ghosh 152d276d78
added reconstruction logic 2024-07-03 21:50:52 +05:30
Agnish Ghosh d292e94560
sync queue 2024-07-02 22:37:09 +05:30
Agnish Ghosh ad64b22485
shortLog for dc 2024-07-02 22:26:31 +05:30
Agnish Ghosh 8f9f6544d9
intentionally increase custody requirement 2024-07-02 21:41:46 +05:30
Agnish Ghosh 0e710da37b
update timings 2024-07-02 21:27:50 +05:30
Agnish Ghosh d0722cd465
update constants 2024-07-02 20:33:09 +05:30
Agnish Ghosh d8e1beff45
debug 4 2024-07-02 19:56:41 +05:30
Agnish Ghosh 8d2c4893d8
debug3 2024-07-02 19:28:23 +05:30
Agnish Ghosh 77cc2ef358
debug2 2024-07-02 18:35:58 +05:30
Agnish Ghosh 75c3e0b6d3
debug 2024-07-02 18:05:39 +05:30
Agnish Ghosh 2f7a3d0ff2
reenable checkpoints to debug exception 2024-07-02 17:15:08 +05:30
Agnish Ghosh 67fe8aca0b
disable blob activity (exp), improve gossip validation 2024-07-02 14:36:44 +05:30
Agnish Ghosh 9e6cad4105
bit more disabling for kurtosis 2024-07-02 04:51:58 +05:30
Agnish Ghosh a8e2c3e9a2
exp: disable some gossip conditions 2024-07-02 04:45:23 +05:30
Agnish Ghosh 0e02eb4ce7
fix test_sync_manager 2024-07-02 04:01:37 +05:30
Agnish Ghosh 9325423a6b
strangely disable this line makes it go away :) 2024-07-02 03:15:25 +05:30
Agnish Ghosh 3b1f5b48dd
weird fix 2024-07-02 03:09:49 +05:30
Agnish Ghosh 8e28654a24
exp: build failing, checking if failing on other machines with these changes 2024-07-02 00:14:58 +05:30
Agnish Ghosh 8ac4cc9152
add: data column grouping conditions for range request 2024-07-01 17:42:29 +05:30
Agnish Ghosh 26ac58716b
request man for data columns 2024-07-01 15:00:18 +05:30
Agnish Ghosh 510d988933
disable subnet gossip condition, fixed inclusion proof 2024-06-30 12:16:17 +05:30
Agnish Ghosh c8d957a495
add: experimental checkpoints on gossip validation to localize failing conditions 2024-06-29 14:26:52 +05:30
Agnish Ghosh 742669052a
dc quarantine activation, keeping blobs compatible 2024-06-29 14:07:09 +05:30
Agnish Ghosh ca3bd3eeee
experimental: disable scoring for data columns 2024-06-28 18:04:46 +05:30
Agnish Ghosh 0e01d2fb15
experimental disable for inclusion proofs 2024-06-28 18:01:14 +05:30
Agnish Ghosh 27b0705e0d
verify kzg disable 2024-06-28 15:29:57 +05:30
Agnish Ghosh 5bf1e021a7
initiate data column quarantine 2024-06-28 14:53:08 +05:30
Agnish Ghosh 3db92f8b26
add: data column reconstruction logic 2024-06-27 19:31:04 +05:30
Agnish Ghosh 34a2478113
add: blob recovery logic 2024-06-26 16:05:58 +05:30
Agnish Ghosh 0b4cf1017b
rm: unused code in data column getter 2024-06-26 12:48:02 +05:30
Agnish Ghosh 18e3ba2a39
fix: get_data_column_sidecar 2024-06-26 12:26:37 +05:30
Agnish Ghosh 87bc91febe
fix: message router 2024-06-26 02:38:04 +05:30
Agnish Ghosh 81b55faee2
add: fetch subnetCount for super node when subscribeAllSubnets flag passed 2024-06-26 02:22:03 +05:30
Agnish Ghosh aa390e9ada
rm: message router logic for data column, need to move it 2024-06-26 02:04:06 +05:30
Agnish Ghosh 325bdfd4a2
support for enqueueing whichever is activated blob/data_column 2024-06-25 18:08:00 +05:30
Agnish Ghosh 07d33b3abd
add dataColumns to db during forward syncing 2024-06-24 21:28:23 +05:30
Agnish Ghosh 791d2fb0d1
add: forward and backward syncing for data columns, broadcasting data columns created from blobs, added dc support to sync_queue 2024-06-24 17:32:06 +05:30
Agnish Ghosh e2afc583cb
fix: reviews, pass1 2024-06-21 14:51:54 +05:30
Agnish Ghosh f0cae305d6
add: pruneDataColumns at the end of slot 2024-06-19 20:42:31 +05:30
Agnish Ghosh 51f189ef53
add: getMissingDataColumns, requestManagerDataColumnLoop 2024-06-19 03:46:03 +05:30
Agnish Ghosh 46d07b140d
add: data column support in sync_protocol, sync_manager, request_manager, fix: gossipValidation rules 2024-06-18 19:01:56 +05:30
Agnish Ghosh 8e49f88067
update URLs 2024-06-17 23:58:52 +05:30
Agnish Ghosh ebe9b3b4f8
rm: TODO comment, revisiting later 2024-06-15 10:29:43 +05:30
Agnish Ghosh 5934400106
add: req/res rpc handlers 2024-06-15 01:12:32 +05:30
Agnish Ghosh 986a2bdcdc
save work push, build failing 2024-06-15 00:23:47 +05:30
Agnish Ghosh 02e5430468
init: add req/res domain for peerdas 2024-06-14 18:30:16 +05:30
Agnish Ghosh 7d13a808dc
added another unit test, disabling test in CI for now, because changes in spec 2024-06-13 20:15:00 +05:30
Agnish Ghosh 96b3e95f8e
fix: suggested fixes 2024-06-13 16:48:28 +05:30
Agnish Ghosh 2615514909
add: testing init for peerdas eip 2024-06-13 16:19:15 +05:30
Agnish Ghosh d8acc16918
rename: KzgCell --> Cell 2024-06-11 15:12:09 +05:30
Agnish Ghosh 282b716ed2
add: test for ssz consensus objects 2024-06-09 11:04:42 +05:30
Agnish Ghosh c0ade0c005
added test_fixture_networking for peerdas 2024-06-07 13:10:28 +05:30
Agnish Ghosh 9be2e4da9a
experimental disabling of upstream 2024-06-03 12:06:07 +05:30
Agnish Ghosh b4810fabeb
fix 2024-06-02 14:49:38 +05:30
Agnish Ghosh c35b5f1b4b
disable more 2024-06-02 10:52:13 +05:30
Agnish Ghosh caf5557d8b
oops 2024-06-02 10:47:28 +05:30
Agnish Ghosh 578a10693f
conditional disabling 2024-06-02 10:46:10 +05:30
Agnish Ghosh ca19e12136
experimental chenges 2024-06-02 10:39:45 +05:30
Agnish Ghosh 538ce0a805
fix: added global ctx verification in computeCellsAndProofs and recoverAllCells 2024-05-31 13:15:03 +05:30
Agnish Ghosh a268ad2c72
fix:reduced blank lines 2024-05-30 03:53:24 +05:30
Agnish Ghosh 80387f1306
fix: code styles 2024-05-30 03:51:32 +05:30
Agnish Ghosh 983522fe84
fix copyright year, and push raises 2024-05-29 14:12:01 +05:30
Agnish Ghosh 26519f68a0
feat: added kzg specs to gossip validation rules, fixed peerdas from C API 2024-05-29 14:02:56 +05:30
Agnish Ghosh 4c390323d3
rebase/add: rebased kzgpeerdas to wip-peerdas, no conflicts with unstable 2024-05-28 13:59:31 +05:30
Agnish Ghosh eb0e40a5f0
added dataColumnSidecar on deneb fork 2024-05-27 18:15:41 +05:30
Agnish Ghosh aa2ce79770
fixed upto electra 2024-05-27 18:10:00 +05:30
Agnish Ghosh 905f3b8170
rebased on top of unstable 2024-05-27 18:06:58 +05:30
Etan Kissling 0efc81d96d
use correct minimum size when reading block / state headers (#6263)
`sizeof` also includes padding between fields, while SSZ defines
`fixedPortionSize` (on type) or `sszSize` (on value) to denote
required bytes to encode. Switch forked block/state readers to SSZ size.
As blocks/states are much larger than the padding, this doesn't affect
practical use cases but is slightly more correct this way.
2024-05-25 07:30:05 +02:00
tersec c7bf6fb542
rm debugRaiseAssert; clean up several debugComments (#6308)
* rm debugRaiseAssert; clean up several debugComments

* exception linting
2024-05-23 23:51:09 +02:00
tersec a7b5741163
Merge remote-tracking branch 'origin/stable' into unstable 2024-05-23 13:29:21 +00:00
tersec a98c119b98
version v24.5.1 2024-05-23 10:52:55 +00:00
tersec 73f56b5026
version v24.5.0 2024-05-23 03:44:54 +00:00
tersec b56a671122
fix most ConvFromXtoItselfNotNeeded hints and unhide remaining ones (#6307) 2024-05-22 13:56:37 +02:00
tersec 708b23f084
rm unused produceBlockV2Plain() RPC signature (#6304) 2024-05-22 07:47:03 +02:00
tersec 3e6990ccc4
rm unused ProduceBlockResponseV2 type (#6302) 2024-05-22 04:52:35 +02:00
tersec dd452f71d3
rm outdated/semi-duplicate execution layer withdrawal request processing (#6301) 2024-05-22 01:59:11 +02:00
Eugene Kabanov 34853ca155
VC: Deprecate fallback path to produceBlockV2, use produceBlockV3 always. (#6300)
* Remove fallback path to publishBlockV2(), use publishBlockV3().

* Update AllTests.md.
2024-05-22 00:03:38 +02:00
Eugene Kabanov d7c5bc0397
[VC] Add builderBoostFactor support. (#6294)
* Initial commit.

* Replace localBlockValueBoost with builderBoostFactor.

* Add test.

* Update AllTests.

* Update options.md

* Recover `localBlockValueBoost` for BN-only mode.

* Address review comments.
2024-05-19 04:49:43 +03:00
Jacek Sieka d191b35e2e
electra: attestatoin sending (#6296) 2024-05-17 17:34:46 +02:00
Jacek Sieka 045c4cf185
electra attestation updates (#6295)
* electra attestation updates

In Electra, we have two attestation formats: on-chain and on-network -
the former combines all committees of a slot in a single committee bit
list.

This PR makes a number of cleanups to move towards fixing this -
attestation packing however still needs to be fixed as it currently
creates attestations with a single committee only which is very
inefficient.

* more attestations in the blocks

* signing and aggregation fixes

* tool fix

* test, import
2024-05-17 15:37:41 +03:00
tersec 826bf4c3ee
be more optimistic about electra 2024-05-17 07:13:30 +00:00
Eugene Kabanov 41db536d63
Fix el-manager warnings and issues. (#6293) 2024-05-16 13:54:51 +02:00
tersec 4355f81731
temporarily disable optimistic block hashing on electra 2024-05-16 11:17:31 +00:00
tersec c7b916fe7b
rename depositReceipts/exits to depositRequests/withdrawalRequests 2024-05-16 00:23:00 +00:00
tersec b9151d43ce
produce blobs in electra 2024-05-15 14:49:57 +00:00
tersec 111e5d8006
add push raises to nimbus_light_client 2024-05-15 14:01:52 +00:00
tersec 69f13eaa51
add electra gossip transition 2024-05-15 13:30:49 +00:00
Eugene Kabanov 0b8cb4efc4
Add metrics to all RPC {state_id} endpoints. (#6282) 2024-05-15 09:52:57 +03:00
tersec d0400e408b
rename ExitV1 to WithdrawalRequestV1 (#6290) 2024-05-15 06:44:52 +02:00
tersec c0601608f9
rm future_combinators (#6289) 2024-05-14 22:14:26 +02:00
tersec 0ca5211f6a
enable nbn electra block processing (#6288) 2024-05-14 20:29:03 +02:00
Eugene Kabanov e6b9bfc9e4
el_manager initial refactor. (#6228)
* Initial commit.

* Address review comments and fix missing primitive.

* Fix developer build.

* More asyncraises updates.

* Refactor and optimize forkchoiceUpdated() and sendNewPayload().

* Fix runtime assertion.

* Refactor getPayload().
2024-05-14 21:03:30 +03:00
tersec c1b9e82502
electra attestation gossip plumbing (#6287) 2024-05-14 19:01:26 +03:00
tersec 1c3aaa7be2
add (Signed)AggregateAndProof SSZ tests (#6285) 2024-05-14 13:51:06 +02:00
tersec 9c669cf57a
some debugRaiseAssert to debugComment; unblock some spec tests (#6284) 2024-05-14 12:19:24 +03:00
tersec 3f972a2ca5
add some support for electra aggregated attestations (#6283) 2024-05-14 06:12:35 +02:00
Etan Kissling 87605d08a7
bump `nim-eth` to `c482b4c5b658a77cc96b49d4a397aa6d98472ac7` (#6281)
- Introduce wrapper type for EIP-4844 transactions
2024-05-13 17:58:47 +02:00
tersec 6b8061b5d6
automated consensus spec URL updating to v1.5.0-alpha.2 (#6279) 2024-05-09 05:03:10 +00:00
tersec 963e0bb92b
use EF consensus spec v1.5.0-alpha.2 test vectors (#6272) 2024-05-08 04:43:05 +02:00
tersec 1b30dcc165
initial electra attestation pool changes; electra block_sim (#6255) 2024-05-07 15:01:51 +00:00
tersec c41fe698cf
small datatypes cleanups (#6266) 2024-05-06 10:21:37 +02: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
Eugene Kabanov 484f48953b
Fix POST to eth/v1/builder/blinded_blocks missing header Eth-Consensus-Version. (#6256)
* Fix submitBlindededBlock() do not send consensus-version HTTP header.

* Address review comments.
2024-05-03 01:08:16 +00:00
Eugene Kabanov c9b54bf1aa
Enable IPv6 for discovery5 using dualstack support. (#6242)
* Make listen-address default to use dualstack.

* Use correct newProtocol().

* Bump nim-eth.

* Bump nim-eth one more time.

* Use `*` instead of IPv6 address for dualstack sockets.

* Bump chronos and nim-eth.

* Use new constructor.

* Fix listenAddress should be Opt[T] not Option[T].

* Fix options.md.
2024-05-01 19:29:39 +00:00
Eugene Kabanov f3da063510
Fix VC not properly handled getAggregatedAttestation's 404 error. (#6254)
* Fix VC not properly handled getAggregatedAttestation's 404 error.

* Update AllTests.
2024-05-01 15:32:28 +00:00
tersec 1ab6f1654f
Merge remote-tracking branch 'origin/stable' into unstable 2024-04-29 06:08:43 +00:00
tersec e70fa6d6de
rename ElectraIndexedAttestation/ElectraAttesterSlashing for consistency (#6252) 2024-04-29 04:19:10 +02:00
tersec f20a21c015
v24.4.0 2024-04-29 01:00:13 +00:00
tersec abc8bbbf23
add EF consensus spec test Electra fork and transition fixtures (#6251) 2024-04-28 16:13:17 +02:00
tersec a66876c8e5
add EF consensus spec test Electra block sanity fixtures (#6250)
* add EF consensus spec test Electra block sanity fixtures

* move process_consolidation/process_deposit_receipt before usage
2024-04-28 09:15:03 +00:00
tersec 302f645a01
use EF consensus spec v1.5.0-alpha.1 test vectors (#6249) 2024-04-28 03:33:44 +00:00
tersec 6119389c3a
add EF consensus spec test Electra attestation operations fixture (#6248) 2024-04-28 00:52:14 +00:00
tersec 8f0a61b964
add EF consensus spec test Electra execution payload operations fixture (#6246) 2024-04-26 16:02:15 +00:00
tersec 63d00931a3
add EF consensus spec test Electra deposit receipt operations fixture (#6245) 2024-04-26 12:39:09 +00:00
tersec 34ba05f4d3
add EF consensus spec test Electra deposits operations fixture (#6243) 2024-04-26 07:18:44 +00:00
tersec b0f58a58b6
add EF consensus spec test Electra consolidation operations fixture (#6235) 2024-04-25 18:50:54 +00:00
tersec 8c4ddd64c0
add EF consensus spec test attester slashing, proposer slashing, voluntary exit, and execution layer withdrawal request tests (#6234) 2024-04-25 08:41:17 +00:00
tersec f53271eaaa
add rest of EF consensus spec test Electra epoch transition fixture(s) (#6232) 2024-04-24 12:28:47 +00:00
tersec e6e95cbab7
add Electra slot sanity tests (#6230) 2024-04-23 07:58:32 +00:00
tersec eb997f4e1f
add 10 sub-test-fixtures for electra epoch transitions; use v2.0.4 for Nim 2.x (#6229) 2024-04-23 01:15:55 +00: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 caa3b73dbb
move AttesterSlashing and IndexedAttestation from base to phase0 (#6223) 2024-04-21 01:17:02 +00:00
tersec 41f8400f97
fix Electra light client objects; use version-2-0 for Nim again (#6222) 2024-04-19 19:20:45 +00:00
careworry 2ec82fe3ce
chore: remove repetitive words (#6219)
Signed-off-by: careworry <worrycare@outlook.com>
2024-04-19 11:31:15 +00:00
tersec 73738c702c
use consensus spec v1.5.0-alpha.0 test vectors; use Nim v2.0.4 specifically for 2.0.x (#6221) 2024-04-19 02:55:58 +00:00
tersec e4b0e24614
add compounding withdrawal helpers (#6217) 2024-04-18 10:12:37 +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 0132f5d689
some consensus spec v1.4.0 spec URL updates (#6215) 2024-04-18 03:00:04 +02:00
tersec 603c83522e
explicitly refer to phase0.{Attestation,TrustedAttestation} rather than sans module name (#6214) 2024-04-17 20:44:29 +00:00
tersec 867995acd1
some consensus spec v1.4.0 spec URL updates (#6208) 2024-04-17 05:51:16 +02:00
tersec bb2ca747bc
move Attestation-related types/logging from base to phase0 types (#6207) 2024-04-16 19:01:30 +00:00
tersec bd3c9af0f8
implement EIP-7002 (#6206)
* implement EIP-7002

* fix linting
2024-04-16 18:09:39 +00:00
Etan Kissling c7d5ad78e1
avoid `--gc:arc` issue in validator key caching (#6203)
The current implementation of the validator key cache as introduced in
#5883 leads to issues when compiling with `--gc:arc`. Namely, the assert
in `injectdestructors.nim` > `destructiveMoveVar` is triggered:

```nim
assert n.kind != nkSym or not hasDestructor(c, n.sym.typ)
```

`cached == nkSym`, and `n.sym.typ == ref HashedValidatorPubKeyItem` with
`hasDestructor(c, n.sym.typ) == true`.

Inlining the `addr ...[]` avoids the problem and allows `--gc:arc`
compilation as part of LC wasm demo project.

Compilation command:

```sh
nim c \
    -d:disable_libbacktrace \
    -d:disableMarchNative \
    -d:disableLTO \
    -d:emscripten \
    -d:release \
    -d:useGcAssert \
    -d:useSysAssert \
    --debuginfo:off \
    --nimcache:nimcache \
    --os:linux \
    --cpu:wasm32 \
    --cc:clang \
    --clang.exe:emcc \
    --clang.linkerexe:emcc \
    --gc:arc \
    --exceptions:goto \
    --define:noSignalHandler \
    --define:danger \
    --panics:on \
    --passC:-fpic \
    --passL:-Os \
    --passL:-fpic \
    --passC:'-pthread' \
    --passL:'-pthread' \
    --passC:'-sASSERTIONS' \
    --passL:'-sASSERTIONS' \
    --passC:'-sINITIAL_MEMORY=256MB' \
    --passL:'-sINITIAL_MEMORY=256MB' \
    --passC:'-sSTACK_SIZE=128MB' \
    --passL:'-sSTACK_SIZE=128MB' \
    --passC:'-sUSE_PTHREADS=1' \
    --passL:'-sUSE_PTHREADS=1' \
    --passC:'-sPTHREAD_POOL_SIZE_STRICT=0' \
    --passL:'-sPTHREAD_POOL_SIZE_STRICT=0' \
    --passL:'-sEXPORTED_FUNCTIONS="[_free, _malloc, _NimMain, _ETHRandomNumberCreate, _ETHConsensusConfigCreateFromYaml, _ETHConsensusConfigGetConsensusVersionAtEpoch, _ETHBeaconStateCreateFromSsz, _ETHBeaconStateDestroy, _ETHBeaconStateCopyGenesisValidatorsRoot, _ETHRootDestroy, _ETHForkDigestsCreateFromState, _ETHBeaconClockCreateFromState, _ETHBeaconClockGetSlot, _ETHLightClientStoreCreateFromBootstrap, _ETHLightClientStoreDestroy, _kETHLcSyncKind_UpdatesByRange, _kETHLcSyncKind_FinalityUpdate, _kETHLcSyncKind_OptimisticUpdate, _ETHLightClientStoreGetNextSyncTask, _ETHLightClientStoreGetMillisecondsToNextSyncTask, _ETHLightClientStoreProcessUpdatesByRange, _ETHLightClientStoreProcessFinalityUpdate, _ETHLightClientStoreProcessOptimisticUpdate, _ETHLightClientStoreGetFinalizedHeader, _ETHLightClientStoreIsNextSyncCommitteeKnown, _ETHLightClientStoreGetOptimisticHeader, _ETHLightClientStoreGetSafetyThreshold, _ETHLightClientHeaderCreateCopy, _ETHLightClientHeaderDestroy, _ETHLightClientHeaderCopyBeaconRoot, _ETHLightClientHeaderGetBeacon, _ETHBeaconBlockHeaderGetSlot, _ETHBeaconBlockHeaderGetProposerIndex, _ETHBeaconBlockHeaderGetParentRoot, _ETHBeaconBlockHeaderGetStateRoot, _ETHBeaconBlockHeaderGetBodyRoot, _ETHLightClientHeaderCopyExecutionHash, _ETHLightClientHeaderGetExecution, _ETHExecutionPayloadHeaderGetParentHash, _ETHExecutionPayloadHeaderGetFeeRecipient, _ETHExecutionPayloadHeaderGetStateRoot, _ETHExecutionPayloadHeaderGetReceiptsRoot, _ETHExecutionPayloadHeaderGetLogsBloom, _ETHExecutionPayloadHeaderGetPrevRandao, _ETHExecutionPayloadHeaderGetBlockNumber, _ETHExecutionPayloadHeaderGetGasLimit, _ETHExecutionPayloadHeaderGetGasUsed, _ETHExecutionPayloadHeaderGetTimestamp, _ETHExecutionPayloadHeaderGetExtraDataBytes, _ETHExecutionPayloadHeaderGetBaseFeePerGas, _ETHExecutionPayloadHeaderGetBlobGasUsed, _ETHExecutionPayloadHeaderGetExcessBlobGas, _ETHExecutionBlockHeaderCreateFromJson, _ETHExecutionBlockHeaderDestroy, _ETHExecutionBlockHeaderGetTransactionsRoot, _ETHExecutionBlockHeaderGetWithdrawalsRoot, _ETHTransactionsCreateFromJson, _ETHTransactionsDestroy, _ETHTransactionsGetCount, _ETHTransactionsGet, _ETHTransactionGetHash, _ETHTransactionGetFrom, _ETHTransactionGetNonce, _ETHTransactionGetMaxPriorityFeePerGas, _ETHTransactionGetMaxFeePerGas, _ETHTransactionGetGas, _ETHTransactionIsCreatingContract, _ETHTransactionGetTo, _ETHTransactionGetValue, _ETHTransactionGetInputBytes, _ETHTransactionGetBytes, _ETHTransactionGetEip6493Root, _ETHTransactionGetEip6493Bytes, _ETHTransactionGetNumEip6493SnappyBytes, _ETHReceiptsCreateFromJson, _ETHReceiptsDestroy, _ETHReceiptsGet, _ETHReceiptHasStatus, _ETHReceiptGetBytes, _ETHReceiptGetEip6493Bytes, _ETHReceiptGetNumEip6493SnappyBytes]"' \
    --passL:'-sEXPORTED_RUNTIME_METHODS="[lengthBytesUTF8, stringToNewUTF8]"' \
    --passL:'-Wl,--no-entry' \
    --noMain:on \
    --passL:'-o libnimbus_lc.js' \
    nimbus-eth2/beacon_chain/libnimbus_lc/libnimbus_lc.nim
```
2024-04-16 11:47:18 +02: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
Etan Kissling c57fcb426a
bump `nim-libp2p` to `89cad5a3ba9088cc721682469a10917903da25a0` (#6199)
- add support for setting protocol handlers with `{.raises.}` annotation
- fix: valueOr and withValue utilities
- fix: remove explicit param from GossipSubParams constructor
2024-04-12 11:12:44 +02:00
tersec e51c5ec783
add Electra blob support to block/blob quarantines, block processor, and request manager (#6201) 2024-04-11 09:31:39 +00:00
tersec 205d63a897
fill in executionpayload for/from GetPayloadV4 (#6200) 2024-04-10 23:34:34 +00:00
Etan Kissling 9bffc51cf6
allow frontfilling finalized CP block from era file (#6164)
Add support for using era file for the initial checkpoint block.
This should also avoid an error when the beacon node is restarted
before the backfill process has made any progress (#6059).
2024-04-10 14:11:07 +02:00
Etan Kissling a561024d88
rank peers by their score instead of their memory address (#6149)
The `<` function to compare peers was not exported, leading to the same
peer be acquired over and over again until kick. `mixin` doesn't pull it
into `peerCmp` without `*` export, and with the export no mixin needed.
2024-04-10 14:09:37 +02:00
tersec e7dede344a
bump nim-web3 to get updated Pectra GetPayloadV4 types (#6191) 2024-04-10 11:38:38 +02: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 749a45695f
support engine_newPayloadV4 (#6188) 2024-04-09 12:44:03 +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
Etan Kissling 41a3b62fe2
update `wss_sim` for Bellatrix, Capella and Deneb (#6170)
The `wss_sim` was not properly maintained since Bellatrix. The missing
functionality is now added, including:

- Bellatrix: Connect to an EL for execution payload production
- Capella: Correct withdrawals processing, is mandatory to do
- Deneb: Dump blob sidecars into the output directory

See https://ethresear.ch/t/insecura-my-consensus-for-the-pyrmont-network/11833
2024-04-08 15:28:46 +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 06894dd2f6
remove some debugRaiseAsserts and fill in Electra functionality (#6177) 2024-04-05 21:30:06 +02:00
Etan Kissling 86a265308a
filter out `nil` values when iterating peers (#6151)
Iterating peers should only yield peers present in registry, otherwise
`nil` pointers are returned and depending on comparison function it will
break, see #6149.
2024-04-05 16:38:04 +02:00
tersec 08d6dc347e
rm payload transaction value calculation for Bellatrix engine API (#6173) 2024-04-04 06:33:08 +02:00
tersec 0b6f75b88b
remove some debugRaiseAsserts and fill in actual Electra functionality (#6172) 2024-04-04 05:17:31 +02:00
tersec 13a70e9d69
rm built-in Goerli beacon chain support (#6057) 2024-04-03 23:25:36 +00:00
Etan Kissling df0ff5f0fb
fix initialization of sync committee cache after loading non-epoch state (#6160)
When initializing from a state that's not aligned to an epoch boundary,
an earlier state is loaded that's epoch aligned, and subsequently topped
up with the missing blocks. `dag.headSyncCommittee` is initialized prior
to topping up the missing blocks, though. If the sync committee changes
while applying the blocks (e.g., a sync committee period boundary hits),
the cached information becomes unlinked from `dag.head`, leading to
valid blocks based on that chain being rejected. To fix this, move cache
initialization after the top up with blocks. This has been observed on
Goerli by initializing from 7919502 and attempting to top up 7920111.
The block gets rejected with an invalid state root on nodes that have
restarted after setting 7920111 as head, while it gets accepted by all
other nodes. Error message is `block: state root verification failed`.
The incorrect initialization behaviour was introduced in #4592, before
which the sync committee cache was initialized after applying blocks.
2024-04-03 23:03:06 +02:00
Etan Kissling 96e27d9d35
avoid modifying blobless collection during iteration in edge case (#6168)
The fallback when blobless quarantine contains a block with all blobs
modifies collection while iterating, potentially asserting if reachable.
Using a second loop to process this situation resolves that.
2024-04-03 23:02:24 +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