Checking my eth validator's sync committee duties
Avoid missing extra ETH income and get rewarded for 24hours of sync committee duties.
⏩ Quick steps guide
The following steps align with our mainnet guide. You may need to adjust file names and directory locations where appropriate. The core concepts remain the same.
🗡️ Why do I want to check my sync committee duties ?
Since the Altair Hard Fork, checking sync committee membership is a must before performing any maintenance. This will give you up to ~27 hours of advanced notice in case your validators have been selected for sync committee duties.
Understanding the schedule of your validator's duties better, you can find the best time to plan consensus/execution client updates, system reboots or outages.
🤖 Pre-requisites
Linux bash shell or command line
Assumes you will be running this script on the beacon node. If running remotely, you might need to change your beacon node's http API to bind from localhost to 0.0.0.0
Your ETH validator index number(s) -- Enter your validator's public key on https://beaconcha.in/ or https://beaconscan.com/ Example of Validator index # 12345 is shown below.
✨ Kudos to 2038 on Reddit for authoring this process.
🚧 How to Check Sync Committee Duties script
1. Create a check_sync_committee.sh
script with a text editor, nano.
2. Paste the following script content and then save your file. CTRL+O, enter, then CTRL+X.
3. Add execute permissions to the script.
4. Enter your validator index numbers as parameters to the script.
Sample Output of the script:
This output indicates the following:
it is currently epoch 75115
and validator #123511 is in current sync committee from epoch 75008 to epoch 75263
and validator #124216 is in next sync committee from epoch 75264 to epoch 75520
If there is no output, then no validators are scheduled for current or next sync committee.
❓Troubleshooting:
The python script calls the
http API
Ensure the
http API
is enabled for your consensus layer client.teku:
--rest-api-enabled=true
Teku by default uses port 5051, rather than 5052. Replace the port number before using.
example: BEACON_NODE="http://localhost:5051"
🔥 Script Usage Caveats:
Sync committee duties are only known for the current AND next sync committee period.
Last updated