Commit Graph

735 Commits

Author SHA1 Message Date
realbigsean
46a9b3a7ed fix lints 2023-04-26 12:15:02 -04:00
realbigsean
83c3ee173f fix lints 2023-04-26 12:05:07 -04:00
realbigsean
ff58698375 fix compile in lookup tests 2023-04-26 11:49:54 -04:00
realbigsean
14e5bfae29 fix lints 2023-04-25 18:12:16 -04:00
realbigsean
b5440f740d fix lints 2023-04-25 09:30:16 -04:00
realbigsean
9c2aceed10 fix some todos 2023-04-25 09:25:24 -04:00
realbigsean
53c0356f8d smol bugfix 2023-04-24 21:10:52 -04:00
realbigsean
b8708e38de processing peer refactor 2023-04-24 20:47:02 -04:00
realbigsean
91594adc77 refactor single block processed method 2023-04-24 20:15:45 -04:00
realbigsean
76c09dea21 drop parent lookup if either req has a peer disconnect during download 2023-04-24 19:00:21 -04:00
realbigsean
1d18756303 improve retry code 2023-04-24 18:56:19 -04:00
realbigsean
0560b7d1a5 improve peer scoring during certain failures in parent lookups 2023-04-24 16:58:13 -04:00
realbigsean
274aba95c7 consolidate retry error handling 2023-04-24 15:05:49 -04:00
realbigsean
b6531aa1b1 should remove lookup refactor 2023-04-24 13:04:44 -04:00
realbigsean
381044abe7 add peer usefulness enum 2023-04-24 12:27:49 -04:00
realbigsean
93df0f50e6 fix up sync manager delay message logic 2023-04-24 11:09:14 -04:00
realbigsean
b2a4c4e73e Merge branch 'deneb-free-blobs' of https://github.com/sigp/lighthouse into some-blob-reprocessing-work 2023-04-22 09:23:01 -04:00
Pawan Dhananjay
7a36d004e4 Subscribe blob topics (#4224) 2023-04-22 09:21:09 -04:00
Pawan Dhananjay
b6c0e91c05 Merge branch 'eip4844' into deneb-free-blobs 2023-04-21 14:34:50 -07:00
Pawan Dhananjay
689c0f76d3 Merge branch 'unstable' into eip4844 2023-04-21 14:13:25 -07:00
realbigsean
3e854ae2d1 fix compile 2023-04-21 16:57:53 -04:00
realbigsean
bacec52017 parent blob lookups 2023-04-20 19:42:33 -04:00
realbigsean
0cc1704edf Merge branch 'deneb-free-blobs' of https://github.com/sigp/lighthouse into some-blob-reprocessing-work 2023-04-20 18:56:25 -04:00
Pawan Dhananjay
895bbd6c03 Gossip conditions deneb (#4164)
* Add all gossip conditions

* Handle some gossip errors

* Update beacon_node/beacon_chain/src/blob_verification.rs

Co-authored-by: Divma <26765164+divagant-martian@users.noreply.github.com>

* Add an ObservedBlobSidecars cache

---------

Co-authored-by: Divma <26765164+divagant-martian@users.noreply.github.com>
2023-04-20 18:26:20 -04:00
realbigsean
c7142495fd get things compiling 2023-04-20 13:38:05 -04:00
realbigsean
374ec4800a much work 2023-04-19 16:44:19 -04:00
realbigsean
0ad9fdfbbf fix compilation in main block lookup mod 2023-04-19 14:02:41 -04:00
Paul Hauner
48843ba198 Check lateness of block before requeuing it (#4208)
## Issue Addressed

NA

## Proposed Changes

Avoids reprocessing loops introduced in #4179. (Also somewhat related to #4192).

Breaks the re-queue loop by only re-queuing when an RPC block is received before the attestation creation deadline.

I've put `proposal_is_known` behind a closure to avoid interacting with the `observed_proposers` lock unnecessarily. 

## Additional Info

NA
2023-04-19 04:23:20 +00:00
realbigsean
195d802931 start fixing some compile errors 2023-04-17 16:58:18 -04:00
realbigsean
8618c301b5 add delayed processing logic and combine some requests 2023-04-14 16:50:41 -04:00
Paul Hauner
dd124b2d68 Address observed proposers behaviour (#4192)
## Issue Addressed

NA

## Proposed Changes

Apply two changes to code introduced in #4179:

1. Remove the `ERRO` log for when we error on `proposer_has_been_observed()`. We were seeing a lot of this in our logs for finalized blocks and it's a bit noisy.
1. Use `false` rather than `true` for `proposal_already_known` when there is an error. If a block raises an error in `proposer_has_been_observed()` then the block must be invalid, so we should process (and reject) it now rather than queuing it.

For reference, here is one of the offending `ERRO` logs:

```
ERRO Failed to check observed proposers block_root: 0x5845…878e, source: rpc, error: FinalizedBlock { slot: Slot(5410983), finalized_slot: Slot(5411232) }
```

## Additional Info

NA
2023-04-14 06:37:16 +00:00
Michael Sproul
a3669abac5 Avoid processing redundant RPC blocks (#4179)
## Proposed Changes

We already make some attempts to avoid processing RPC blocks when a block from the same proposer is already being processed through gossip. This PR strengthens that guarantee by using the existing cache for `observed_block_producers` to inform whether an RPC block's processing should be delayed.
2023-04-13 07:05:02 +00:00
realbigsean
2f8c8852ba Merge branch 'deneb-free-blobs' of https://github.com/sigp/lighthouse into some-blob-reprocessing-work 2023-04-12 16:29:38 -04:00
Pawan Dhananjay
3b117f4bf6 Add a flag to disable peer scoring (#4135)
## Issue Addressed

N/A

## Proposed Changes

Adds a flag for disabling peer scoring. This is useful for local testing and testing small networks for new features.
2023-04-12 01:48:19 +00:00
realbigsean
25ff6e8a5f more work 2023-04-11 13:13:13 -04:00
realbigsean
66e09f49d7 Merge branch 'deneb-free-blobs' of https://github.com/sigp/lighthouse into some-blob-reprocessing-work 2023-04-06 12:14:23 -04:00
Diva M
911a63559b Merge branch 'eip4844' into deneb-free-blobs 2023-04-05 13:33:33 -05:00
Pawan Dhananjay
1b8225c76d Revert upgrade to tokio utils to reprocessing queue (#4167) 2023-04-05 11:43:39 -05:00
Diva M
32f9ba04d7 fix merge conflict 2023-04-04 12:10:51 -05:00
Diva M
3c1a22ceaf Merge commit '1e029ce5384e911390a513e2d1885532f34a8b2b' into eip4844 2023-04-04 11:56:54 -05:00
realbigsean
38e0994dc4 make single block lookup generic 2023-04-04 12:38:01 -04:00
realbigsean
6f12df37cf deal with rpc blobs in groups per block in the da checker. don't cache missing blob ids in the da checker. 2023-04-04 10:29:07 -04:00
Jimmy Chen
2de3451011 Rate limiting backfill sync (#3936)
## Issue Addressed

#3212 

## Proposed Changes

- Introduce a new `rate_limiting_backfill_queue` - any new inbound backfill work events gets immediately sent to this FIFO queue **without any processing**
- Spawn a `backfill_scheduler` routine that pops a backfill event from the FIFO queue at specified intervals (currently halfway through a slot, or at 6s after slot start for 12s slots) and sends the event to `BeaconProcessor` via a `scheduled_backfill_work_tx` channel
- This channel gets polled last in the `InboundEvents`, and work event received is  wrapped in a `InboundEvent::ScheduledBackfillWork` enum variant, which gets processed immediately or queued by the `BeaconProcessor` (existing logic applies from here)

Diagram comparing backfill processing with / without rate-limiting: 
https://github.com/sigp/lighthouse/issues/3212#issuecomment-1386249922

See this comment for @paulhauner's  explanation and solution: https://github.com/sigp/lighthouse/issues/3212#issuecomment-1384674956

## Additional Info

I've compared this branch (with backfill processing rate limited to to 1 and 3 batches per slot) against the latest stable version. The CPU usage during backfill sync is reduced by ~5% - 20%, more details on this page:

https://hackmd.io/@jimmygchen/SJuVpJL3j

The above testing is done on Goerli (as I don't currently have hardware for Mainnet), I'm guessing the differences are likely to be bigger on mainnet due to block size.

### TODOs

- [x] Experiment with processing multiple batches per slot. (need to think about how to do this for different slot durations)
- [x] Add option to disable rate-limiting, enabed by default.
- [x] (No longer required now we're reusing the reprocessing queue) Complete the `backfill_scheduler` task when backfill sync is completed or not required
2023-04-03 03:02:55 +00:00
realbigsean
a17405ae20 impl logic for triggerng blob lookups along with block lookups 2023-03-31 10:45:52 -04:00
realbigsean
8403402620 a lot more reprocessing work 2023-03-31 09:09:56 -04:00
realbigsean
b78a6e8d1f reorder enum match arms in sync manager 2023-03-29 10:03:58 -04:00
realbigsean
9642ec02fa remove ForceBlockLookup 2023-03-29 09:53:37 -04:00
realbigsean
8d80200bc4 some blob reprocessing work 2023-03-28 18:29:56 -04:00
realbigsean
deec9c51ba clean up blob by root response (#4136) 2023-03-28 12:49:32 -04:00
realbigsean
d24e5cc22a clean up blobs by range response (#4137) 2023-03-28 12:49:19 -04:00