You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(l1): run daily snapsync checks with trie validations (debug-assertions) (#5768)
**Motivation**
We want to make sure that the snapsyncs running in loop, not just finish
but their state is validated
**Description**
This PR acomplish 2 things:
- It makes `debug-assertions` easily available for docker
- It change how the daily snapsyncs work, building locally instead of
using the main image and running with debug-assertions
- timeouts are now longer
---------
Co-authored-by: Edgar <[email protected]>
Inside [GitHub actions tab](https://github.com/lambdaclass/ethrex/actions) there is a pinned workflow called [Daily Snapsync Check](https://github.com/lambdaclass/ethrex/actions/workflows/daily_snapsync.yaml). As the name suggests, it runs an Ethrex node and attemps to complete a snap sync and catch the head of the chain. If it is not able to finish snapsync before the timeout, the job fails and an [alert](https://github.com/lambdaclass/ethrex/blob/9feefd2e3fd2e8bb2097e5e39e0d20f7315c5880/.github/workflows/common_failure_alerts.yaml#L8) is sent to Slack. The way it works is through an [Assertoor playbook](https://github.com/lambdaclass/ethrex/blob/9feefd2e3fd2e8bb2097e5e39e0d20f7315c5880/.github/config/assertoor/syncing-check.yaml#L1-L17) that checks that the node `eth_syncing` returns `false`.
3
+
Inside [GitHub actions tab](https://github.com/lambdaclass/ethrex/actions) there is a pinned workflow called [Daily Snapsync Check](https://github.com/lambdaclass/ethrex/actions/workflows/daily_snapsync.yaml). As the name suggests, it runs an Ethrex node and attempts to complete a snap sync and catch the head of the chain. If it is not able to finish snapsync before the timeout, the job fails and an [alert](https://github.com/lambdaclass/ethrex/blob/9feefd2e3fd2e8bb2097e5e39e0d20f7315c5880/.github/workflows/common_failure_alerts.yaml#L8) is sent to Slack. The way it works is through an [Assertoor playbook](https://github.com/lambdaclass/ethrex/blob/9feefd2e3fd2e8bb2097e5e39e0d20f7315c5880/.github/config/assertoor/syncing-check.yaml#L1-L17) that checks that the node `eth_syncing` returns `false`.
4
4
5
-
Currently it runs this check on Sepolia and Hoodi.
5
+
Currently it runs this check on Sepolia and Hoodi with both Lighthouse and Prysm consensus clients.
6
6
7
-
Apart from being a useful job to catch regressions, it is a good log to see if there were any speedups of slowdowns in terms of time to complete a snap sync.
7
+
## Debug Assertions
8
8
9
-
Nice to haves:
10
-
- Currently the job runs on the `main` docker image of ethrex. It would be nice to be able to trigger this from a branch so that the workflow is executed by trying to sync the branch ethrex code.
9
+
By default, the workflow builds ethrex with debug assertions enabled (`release-with-debug-assertions` profile). This helps catch potential bugs and invariant violations during the sync process.
10
+
11
+
The `release-with-debug-assertions` profile:
12
+
- Inherits all release optimizations
13
+
- Enables `debug_assert!()` macros to run
14
+
15
+
## Triggering the Workflow
16
+
17
+
The workflow can be triggered in three ways:
18
+
19
+
1.**Scheduled**: Runs every 6 hours automatically on both Hoodi and Sepolia networks
20
+
2.**Pull Request**: Runs on PRs that modify the workflow file (Hoodi only)
21
+
3.**Manual Dispatch**: Can be triggered manually via GitHub Actions UI with options:
22
+
-`network`: Choose between `hoodi` or `sepolia`
23
+
-`build_profile`: Choose between `release` or `release-with-debug-assertions` (default: `release-with-debug-assertions`)
24
+
25
+
## Use Cases
26
+
27
+
Apart from being a useful job to catch regressions, it is a good log to see if there were any speedups or slowdowns in terms of time to complete a snap sync. With debug assertions enabled, it also serves as an additional validation layer to catch bugs that might not manifest as crashes in release builds.
0 commit comments