Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EPIC] Oracle V5 (Pectra Duck) #574

Merged
merged 300 commits into from
Feb 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
300 commits
Select commit Hold shift + click to select a range
0e3a85f
feat: modified sweep computation
madlabman Dec 17, 2024
8e089b3
chore: drop WithdrawalRequests extension
madlabman Dec 18, 2024
76f12f0
chore: shrink BeaconStateView
madlabman Dec 18, 2024
41e6a6f
chore: drop get_state_view method
madlabman Dec 18, 2024
1b3acee
Fix exists calls in test
hweawer Dec 18, 2024
2782a6c
Add comment about voluntary exits
hweawer Dec 18, 2024
b0db544
Merge branch 'feat/oracle-v5' into key-lowercase
hweawer Dec 18, 2024
ba92c90
fix: linter
vgorkavenko Dec 18, 2024
9ce45b1
fix: tests
vgorkavenko Dec 18, 2024
4b40325
fix: `_get_module_id` in CSM module should be on `latest`
vgorkavenko Dec 18, 2024
bb19dec
fix: `_get_slots_elapsed_from_last_report` in accounting Oracle
vgorkavenko Dec 18, 2024
bf35343
Refactor
hweawer Dec 18, 2024
a8dd5f0
Linter
hweawer Dec 18, 2024
1f1afbb
fix: add csm module address
vgorkavenko Dec 18, 2024
90b0211
fix: epochs_per_frame and initial_epoch
vgorkavenko Dec 18, 2024
cf38f4f
Fix linter
hweawer Dec 19, 2024
992183c
fix: subprocess logs
vgorkavenko Dec 19, 2024
327816d
fix: linter
vgorkavenko Dec 19, 2024
2a13586
refactor: rename is_electra_attestation
madlabman Dec 20, 2024
1437532
fix: do not add 32 ether validators to withdrawable
madlabman Dec 20, 2024
e0cb446
fix: log in `_get_non_missed_slot_header`
vgorkavenko Dec 20, 2024
e432ee6
Merge pull request #537 from lidofinance/feat/increase-balance-call
hweawer Dec 20, 2024
d876c73
chore: remove unused imports
madlabman Dec 20, 2024
9db71b5
feat: electra churn
madlabman Dec 18, 2024
34f29a5
refactor: get fork versions dynamically
madlabman Dec 20, 2024
a5d698d
test: more ejector-related tests
madlabman Dec 20, 2024
7afb0f6
test: small fixes
madlabman Dec 20, 2024
5ee8f87
test: post electra withdrawable epoch prediction
madlabman Dec 20, 2024
b9de2ea
refactor: no need in type "forward" declaration
madlabman Dec 21, 2024
e884a2a
refactor: rework types for block attestations
madlabman Dec 23, 2024
0449af9
Merge pull request #568 from lidofinance/log-kapi-req-res
F4ever Dec 24, 2024
e6e3a8d
Merge pull request #576 from lidofinance/some-oracle-variables-should…
F4ever Dec 24, 2024
93b0073
Remove too many branches
hweawer Jan 2, 2025
84710b1
Remove too many branches
hweawer Jan 2, 2025
f67c176
Remove too many branches
hweawer Jan 2, 2025
98ec563
Lido keys typing
hweawer Jan 2, 2025
ff6e232
Fix lint errors
hweawer Jan 2, 2025
7c70500
Disable member check
hweawer Jan 2, 2025
4cbc110
Disable member check
hweawer Jan 2, 2025
a902798
refactor: split sweep calc method in two
madlabman Jan 7, 2025
429a62d
chore: upd comment
madlabman Jan 7, 2025
4b16e60
feat: account pending deposits for AO state report
vgorkavenko Dec 4, 2024
18fc7e8
feat: account pending deposits for abnormal rebase calc
vgorkavenko Dec 5, 2024
6a97881
fix: type for constants
vgorkavenko Dec 20, 2024
175e800
fix: note for `calculate_pending_deposits_sum`
vgorkavenko Dec 20, 2024
d5656a4
fix: weak pubkey random in generated object for tests
vgorkavenko Dec 20, 2024
2743933
fix: review
vgorkavenko Jan 7, 2025
32ee2a1
fix: after rebase
vgorkavenko Jan 7, 2025
e31a4ff
fix: Prysm specific error text
vgorkavenko Jan 7, 2025
df56980
test: add test for missing Fork value exception
madlabman Jan 7, 2025
9f060a5
refactor: rename functions for churn limits
madlabman Jan 7, 2025
a04072a
refactor: use fork epoch instead of querying a fork version
madlabman Jan 8, 2025
820eb43
fix: after rebase
vgorkavenko Jan 9, 2025
349c624
tests: build validators using `LidoValidatorFactory`
vgorkavenko Jan 9, 2025
442ec86
fix: add `clean_global_cache_after_test` fixture
vgorkavenko Jan 9, 2025
9c4e9d1
chore: remove unused endpoint
madlabman Jan 9, 2025
e28108d
Merge pull request #578 from lidofinance/voluntary-exits
hweawer Jan 9, 2025
b559bdc
Merge pull request #571 from lidofinance/feat/account-cl-pending-depo…
F4ever Jan 10, 2025
323c0e3
Merge pull request #582 from lidofinance/fix/prysm-specific-error
F4ever Jan 10, 2025
f8e99c4
refactor: get_consensus_version
madlabman Jan 10, 2025
91e5eba
chore: add doc for get_set_indices
madlabman Jan 10, 2025
2a1221c
Merge pull request #556 from lidofinance/feature/cs-269-eip-7549-comp…
F4ever Jan 10, 2025
40faa60
Fields
hweawer Jan 10, 2025
984f8be
Merge branch 'feat/oracle-v5' into electra-sweep
F4ever Jan 10, 2025
9edc9a7
Merge pull request #522 from lidofinance/key-lowercase
F4ever Jan 10, 2025
7d5c403
chore: fix linter
madlabman Jan 10, 2025
cca0661
Merge pull request #577 from lidofinance/electra-sweep
F4ever Jan 10, 2025
f80b86c
Merge remote-tracking branch 'origin/feat/oracle-v5' into electra-churn
madlabman Jan 10, 2025
7891e6e
Merge pull request #579 from lidofinance/electra-churn
F4ever Jan 10, 2025
0b2090f
Revert exception handling
hweawer Jan 10, 2025
97b7f8e
feat: changes in `get_validator_midterm_penalty` due to Pectra
vgorkavenko Dec 9, 2024
21b23b7
fix: tests
vgorkavenko Dec 9, 2024
4c87e38
feat: `MAX_EFFECTIVE_BALANCE` -> `MIN_ACTIVATION_BALANCE`
vgorkavenko Dec 12, 2024
8d26a93
fix: update link
vgorkavenko Dec 20, 2024
3a59dbe
fix: after rebase
vgorkavenko Jan 9, 2025
2230957
feat: calculate midterm by projected frame ref epoch for fork
vgorkavenko Jan 9, 2025
fc8a2b2
tests: adjust
vgorkavenko Jan 9, 2025
3706be2
fix: linter
vgorkavenko Jan 9, 2025
c25df44
tests: add mock
vgorkavenko Jan 9, 2025
47b02bb
fix: `cl_spec` is arg now
vgorkavenko Jan 10, 2025
36eb7d7
Merge pull request #523 from lidofinance/timeout-out-of-loop
F4ever Jan 10, 2025
ca2279e
fix: different consensus versions
vgorkavenko Jan 10, 2025
ead42fe
tests: add tests for different consensus versions
vgorkavenko Jan 10, 2025
25f41aa
fix: black
vgorkavenko Jan 10, 2025
2378f02
revert: arg name
vgorkavenko Jan 10, 2025
568b69d
Fix str convert in variable logs
hweawer Jan 13, 2025
057634c
str
hweawer Jan 13, 2025
a516d7e
revert
hweawer Jan 13, 2025
1ea9503
refactor: use `Web3Converter`
vgorkavenko Jan 13, 2025
d19dffb
refactor: use `if-else`
vgorkavenko Jan 13, 2025
b13b0ab
Merge pull request #584 from lidofinance/fix-str-convert
F4ever Jan 13, 2025
6d73642
Merge pull request #572 from lidofinance/feat/new-correlation-penalty
F4ever Jan 13, 2025
e1e8414
Increase consensus
hweawer Jan 13, 2025
81410e7
Initial commit
hweawer Jan 13, 2025
1307325
Allow 3 version of consensus
hweawer Jan 13, 2025
1253544
else
hweawer Jan 13, 2025
47eecf4
import
hweawer Jan 13, 2025
cd10f49
Merge pull request #585 from lidofinance/increase-consensus
hweawer Jan 13, 2025
3a87e19
Unit tests coverage for tx_utils
hweawer Jan 13, 2025
b941c08
Reformat
hweawer Jan 13, 2025
22a3f1d
fix: zero division errors
madlabman Jan 13, 2025
4444d82
Revert "Some oracle variables should be fetched on a latest slot"
hweawer Jan 14, 2025
2b33b5d
Merge pull request #587 from lidofinance/revert-576-some-oracle-varia…
F4ever Jan 14, 2025
2c763da
feat: add devnet docker-compose
eddort Jan 14, 2025
9b710d3
Revert "feat: add devnet docker-compose"
F4ever Jan 14, 2025
39b2189
feat: convert to int numberish types in Nested
madlabman Jan 21, 2025
f4fe210
feat: fetch state with validators
madlabman Jan 21, 2025
b4cb4eb
feat: fetch state with validators
madlabman Jan 21, 2025
20a4db7
Update sweep calculation
hweawer Jan 21, 2025
144a390
Save compatibilityt
hweawer Jan 21, 2025
ccc5179
fix imports
hweawer Jan 21, 2025
a01f67d
ValidatorStatus import fix
hweawer Jan 21, 2025
2751b0c
Fix checkpoint
hweawer Jan 21, 2025
a6323bc
Fix
hweawer Jan 21, 2025
cc87834
Tests
hweawer Jan 21, 2025
67fe829
Merge branch 'refactor-get-state' into sweep-calculation-according-to…
hweawer Jan 21, 2025
abd7847
reformat
hweawer Jan 21, 2025
ec2d2f6
Imports
hweawer Jan 21, 2025
22f396c
Optimise
hweawer Jan 21, 2025
28ad9ad
Fix typing
hweawer Jan 21, 2025
b53661b
chore: retouch BeaconStateView
madlabman Jan 22, 2025
e2fdfeb
Merge pull request #589 from lidofinance/refactor-get-state
F4ever Jan 22, 2025
c4e7dd2
Update src/modules/accounting/accounting.py
F4ever Jan 22, 2025
0ede043
Move to a separate file
hweawer Jan 22, 2025
e80acf2
Revert reformatting
hweawer Jan 22, 2025
2ceea05
Update
hweawer Jan 22, 2025
9b39291
Fix
hweawer Jan 22, 2025
83a0b7e
Pytest
hweawer Jan 22, 2025
a9ebf98
mark
hweawer Jan 22, 2025
da28365
Group
hweawer Jan 22, 2025
5de80f8
linter
hweawer Jan 22, 2025
b524aa2
Merge pull request #586 from lidofinance/increase-tx-utils-coverage
F4ever Jan 22, 2025
0555946
Fix sum
hweawer Jan 22, 2025
a3f0bb8
Test
hweawer Jan 22, 2025
084d685
factory
hweawer Jan 22, 2025
1d7c7aa
Fix test
hweawer Jan 22, 2025
8d23509
Update typing
hweawer Jan 22, 2025
f9a80ce
typing
hweawer Jan 22, 2025
eb1184a
or
hweawer Jan 22, 2025
007dbb1
int
hweawer Jan 22, 2025
40d0786
move
hweawer Jan 22, 2025
1ce5a84
line
hweawer Jan 22, 2025
b621e2b
Update src/utils/web3converter.py
F4ever Jan 22, 2025
1ea6a20
Merge branch 'sweep-calculation-according-to-lip' of github.com:lidof…
hweawer Jan 22, 2025
7f5ae60
Link
hweawer Jan 22, 2025
7cba7c6
Merge pull request #590 from lidofinance/sweep-calculation-according-…
F4ever Jan 22, 2025
fe64f08
feat: pending deposits (wo tests)
vgorkavenko Jan 22, 2025
00c2357
tests
vgorkavenko Jan 22, 2025
d7d6db1
fix: call new method in simulate rebase
vgorkavenko Jan 22, 2025
bdd6e0c
fix: assert -> ValueError
vgorkavenko Jan 22, 2025
476b40f
fix: account fork epoch after consensus version
vgorkavenko Jan 22, 2025
66d59ae
fix: rewrite `calculate_pending_deposits_sum` and tests
vgorkavenko Jan 22, 2025
0696c8e
fix: rename
vgorkavenko Jan 22, 2025
2a96e6c
fix: condition
vgorkavenko Jan 22, 2025
6881dec
fix: tests
vgorkavenko Jan 22, 2025
3ee4853
refactor: hide consensus and fork checks in functions
vgorkavenko Jan 22, 2025
0e7b0cd
fix: tests
vgorkavenko Jan 22, 2025
644743c
feat: bump attestations endpoint version
madlabman Jan 22, 2025
a2a0647
Merge pull request #591 from lidofinance/feat/pending-deposits
F4ever Jan 23, 2025
9afe6fb
chore: rename workflow
vgorkavenko Jan 23, 2025
194c438
feat: get attestations from block details
madlabman Jan 23, 2025
19437a0
fix: run with "fork" mark
vgorkavenko Jan 23, 2025
f74b891
chore: parallel run in CI
vgorkavenko Jan 23, 2025
dbd3d25
fix: test
vgorkavenko Jan 23, 2025
b495084
revert: package-mode
vgorkavenko Jan 23, 2025
a0c74c2
fix: black
vgorkavenko Jan 23, 2025
48f6421
chore: use standard json
madlabman Jan 23, 2025
b45e3a0
Merge pull request #592 from lidofinance/bump-atts-endpoint
F4ever Jan 23, 2025
3a56723
fix: `SUBMIT_DATA_DELAY_IN_SLOTS` and `CYCLE_SLEEP_IN_SECONDS` should…
vgorkavenko Jan 23, 2025
e676ca2
revert: edited
vgorkavenko Jan 23, 2025
687cbe7
fix: create uniq path per test
vgorkavenko Jan 23, 2025
eaf3a9a
fix: linter
vgorkavenko Jan 23, 2025
039ab2b
fix: user worker_id
vgorkavenko Jan 23, 2025
49f6ce0
README
hweawer Jan 23, 2025
8aff07d
Update src/constants.py
hweawer Jan 23, 2025
3f80f49
Remove V1
hweawer Jan 23, 2025
27824b9
Fix
hweawer Jan 23, 2025
48634ac
update
hweawer Jan 23, 2025
8978fc1
update
hweawer Jan 23, 2025
d8ba882
fix: wording
vgorkavenko Jan 23, 2025
7261ea4
Merge pull request #595 from lidofinance/fix/pending-deposits-wording
F4ever Jan 23, 2025
18770c0
Fix tests
hweawer Jan 23, 2025
000479b
Merge pull request #593 from lidofinance/revert-readme
F4ever Jan 23, 2025
41afeaa
revert csm
hweawer Jan 23, 2025
9bef51f
import
hweawer Jan 23, 2025
7f5dea6
fix: fix get_state_view call
madlabman Jan 23, 2025
ad6d516
fix: gwei to wei lost conversion
madlabman Jan 23, 2025
3711651
Merge pull request #594 from lidofinance/remove-v1
F4ever Jan 23, 2025
d984b2a
Merge pull request #561 from lidofinance/feat/csm/tests-on-mainnet-fork
F4ever Jan 23, 2025
00dc0c3
Merge pull request #596 from lidofinance/bug-fixes
F4ever Jan 23, 2025
bea86ef
Replace consensus version calls
hweawer Jan 23, 2025
bf0c28c
Fix test
hweawer Jan 23, 2025
0dda1b4
refactor: renaming
vgorkavenko Jan 24, 2025
3376919
Merge pull request #597 from lidofinance/replace-consensus-version-calls
F4ever Jan 24, 2025
eb0d376
reformat contants.py
F4ever Jan 24, 2025
f539d58
Add additional CSM var check
F4ever Jan 24, 2025
1cf4f98
Upgrade check version compatibility
F4ever Jan 24, 2025
5a700c2
refactor get submit member
F4ever Jan 24, 2025
e6a5536
more refactoring
F4ever Jan 24, 2025
8556dd7
Move check balance to more appropriate method
F4ever Jan 24, 2025
4a328c2
Add mocks for balance
hweawer Jan 24, 2025
f3a4d36
Remove support sr v1
F4ever Jan 24, 2025
b0693c9
Merge pull request #598 from lidofinance/chore/pectra-electra-naming
F4ever Jan 24, 2025
43c596a
Fix linters
F4ever Jan 24, 2025
3ec3e9d
Fix test
hweawer Jan 24, 2025
fb2e32e
remove extra data v1
F4ever Jan 24, 2025
73a6c00
feat: use is_electra_activated
madlabman Jan 24, 2025
06338c1
fix: testdata for `test_is_high_midterm_slashing_penalty_*`
vgorkavenko Jan 24, 2025
e668bf9
fix: BeaconSpecResponse from Nested to convert ints
madlabman Jan 24, 2025
b4a90fc
tests: delay to give time for processing on fork
vgorkavenko Jan 24, 2025
cdaebbf
Merge pull request #603 from lidofinance/fix/fork-tests-delay
vgorkavenko Jan 24, 2025
f499239
reformat to be more like spec
F4ever Jan 24, 2025
2febb9a
chore: use get_consensus_version
madlabman Jan 24, 2025
d148a1c
refactor: invert is_electra_activated check
madlabman Jan 24, 2025
9504847
fix linter
F4ever Jan 24, 2025
0a26cc9
Add test
hweawer Jan 24, 2025
c8d56d0
reformat
hweawer Jan 24, 2025
5eee269
fix mypy
F4ever Jan 24, 2025
dd67e0d
Merge pull request #605 from lidofinance/test-predict-withdrawals-sweep
F4ever Jan 24, 2025
01ec02a
Merge pull request #602 from lidofinance/feat/remove-extra-data-v1
F4ever Jan 24, 2025
dd0c8a5
Merge pull request #600 from lidofinance/feat/refactoring
F4ever Jan 24, 2025
bcccebf
Merge pull request #599 from lidofinance/is-electra-activated
F4ever Jan 24, 2025
9666ab1
Merge pull request #604 from lidofinance/feat/refactor-compute-exit-e…
F4ever Jan 27, 2025
6705365
Merge pull request #601 from lidofinance/feat/remove-sr-v1-support
F4ever Jan 27, 2025
733683b
refactor: use numerical types for uints in beacon chain structures
madlabman Jan 24, 2025
b8b599a
chore: fix some linter warnings
madlabman Jan 27, 2025
10b7d2f
chore: remove some useless casts
madlabman Jan 27, 2025
0f0dd23
chore: small type missed
madlabman Jan 27, 2025
d5b0064
Update src/services/safe_border.py
madlabman Jan 28, 2025
850924f
Merge pull request #606 from lidofinance/int-types-for-cl-types
F4ever Jan 28, 2025
ab2b8c4
tests: two tests for ejector
vgorkavenko Jan 29, 2025
f1fba0d
fix typo
F4ever Jan 30, 2025
a506dc0
remove old exit order
F4ever Jan 30, 2025
0a85bf1
refactor old version
F4ever Jan 30, 2025
23f2b3d
cache electra function
F4ever Jan 30, 2025
b4d31f4
refactor ejector
F4ever Jan 30, 2025
bd03c5c
fix: missed CommitteeIndex conversion
madlabman Jan 30, 2025
003a619
Merge pull request #609 from lidofinance/fix-lost-conversion
F4ever Jan 30, 2025
14a6c73
ejector add consensus check
F4ever Jan 30, 2025
8911592
chore: check consensus version to enable EIP7549 support
madlabman Jan 30, 2025
1b24302
Merge pull request #608 from lidofinance/feat/two-tests-for-ejector
F4ever Jan 30, 2025
fc27a24
fix: check consensus version on state migration
madlabman Jan 30, 2025
44f169a
fix tests
F4ever Jan 30, 2025
70dea46
set consensus to fixtures
F4ever Jan 31, 2025
edb0855
tests: add test for no eip7549 support
madlabman Jan 31, 2025
810ee8b
refactor black
F4ever Jan 31, 2025
cf0fc75
Merge pull request #612 from lidofinance/check-consensus-for-state
F4ever Jan 31, 2025
b76ce13
Merge pull request #611 from lidofinance/check-consensus-for-atts
F4ever Jan 31, 2025
79c4b7a
Merge pull request #610 from lidofinance/feat/final-refactoring
F4ever Jan 31, 2025
0dbc1d8
tests: fix missing arg
madlabman Jan 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions .github/workflows/mainnet_fork_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Mainnet Fork Tests

on:
pull_request:
types:
- opened
- synchronize
- reopened
- edited
- closed
branches:
- main
- develop
paths:
- "src/**"

permissions:
contents: read
security-events: write

jobs:
tests:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: "3.12"

- name: Setup poetry
run: >
curl -sSL https://install.python-poetry.org | python - &&
echo "$POETRY_HOME/bin" >> "$GITHUB_PATH"
env:
POETRY_HOME: "/opt/poetry"
POETRY_VERSION: 1.3.2

- name: Install Python dependencies
run: |
poetry install --no-interaction --with=dev
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1

- name: Mainnet Fork Tests
run: poetry run pytest -m 'fork' -n auto tests
env:
EXECUTION_CLIENT_URI: ${{ secrets.EXECUTION_CLIENT_URI }}
CONSENSUS_CLIENT_URI: ${{ secrets.CONSENSUS_CLIENT_URI }}
KEYS_API_URI: ${{ secrets.KEYS_API_URI }}
LIDO_LOCATOR_ADDRESS: "0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb"
CSM_MODULE_ADDRESS: "0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F"

24 changes: 14 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ Only Oracle:
- Memory - 8 GB

Oracle + KAPI:

- vCPU - 4
- Memory - 16 GB

Expand All @@ -79,13 +80,13 @@ Oracle needs two weeks of archived data.

Also, to calculate some metrics for bunker mode Oracle needs [archive](https://ethereum.org/en/developers/docs/nodes-and-clients/#archive-node) consensus node.

| Client | Tested | Notes |
|---------------------------------------------------|:------:|-------------------------------------------------------------------------------------------------------------------------------------------------|
| [Lighthouse](https://lighthouse.sigmaprime.io/) | 🟢 | Use `--reconstruct-historic-states` param |
| [Lodestar](https://lodestar.chainsafe.io) | 🔴 | Not tested yet |
| [Nimbus](https://nimbus.team) | 🔴 | Not tested yet |
| [Prysm](https://github.com/prysmaticlabs/prysm) | 🟢 | Use <br> `--grpc-max-msg-size=104857600` <br> `--enable-historical-state-representation=true` <br> `--slots-per-archive-point=1024` <br> params |
| [Teku](https://docs.teku.consensys.net) | 🟢 | Use <br> `--data-storage-mode=archive` <br>`--data-storage-archive-frequency=1024`<br> `--reconstruct-historic-states=true`<br> params |
| Client | Tested | Notes |
|-------------------------------------------------|:------:|-------------------------------------------------------------------------------------------------------------------------------------------------|
| [Lighthouse](https://lighthouse.sigmaprime.io/) | 🟢 | Use `--reconstruct-historic-states` param |
| [Lodestar](https://lodestar.chainsafe.io) | 🔴 | Not tested yet |
| [Nimbus](https://nimbus.team) | 🔴 | Not tested yet |
| [Prysm](https://github.com/prysmaticlabs/prysm) | 🟢 | Use <br> `--grpc-max-msg-size=104857600` <br> `--enable-historical-state-representation=true` <br> `--slots-per-archive-point=1024` <br> params |
| [Teku](https://docs.teku.consensys.net) | 🟢 | Use <br> `--data-storage-mode=archive` <br>`--data-storage-archive-frequency=1024`<br> `--reconstruct-historic-states=true`<br> params |

### Keys API Service

Expand Down Expand Up @@ -281,9 +282,12 @@ Special metrics for ejector oracle:
Special metrics for CSM oracle:
| Metric name | Description | Labels |
|-----------------------------------|---------------------------------------------|--------|
| TBD | TBD | |
| Metric name | Description | Labels |
|---------------------------------|----------------------------------------|--------|
| csm_current_frame_range_l_epoch | Left epoch of the current frame range | |
| csm_current_frame_range_r_epoch | Right epoch of the current frame range | |
| csm_unprocessed_epochs_count | Unprocessed epochs count | |
| csm_min_unprocessed_epoch | Minimum unprocessed epoch | |
# Development
Expand Down
2 changes: 1 addition & 1 deletion assets/HashConsensus.json

Large diffs are not rendered by default.

File renamed without changes.
1 change: 0 additions & 1 deletion assets/StakingRouterV1.json

This file was deleted.

1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ markers = [
"integration: tests with using providers",
"possible_integration: tests with using providers, but can be run using mocks",
"e2e: complex tests with using providers and real Ethereum network",
"fork: tests with using forked Ethereum network",
]
addopts = "-s -vv --pdbcls pudb.debugger:Debugger"

Expand Down
41 changes: 28 additions & 13 deletions src/constants.py
Original file line number Diff line number Diff line change
@@ -1,31 +1,46 @@
from src.types import Gwei, SlotNumber

# https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#misc
FAR_FUTURE_EPOCH = 2 ** 64 - 1
GENESIS_SLOT = SlotNumber(0)
avsetsin marked this conversation as resolved.
Show resolved Hide resolved
FAR_FUTURE_EPOCH = 2**64 - 1
# https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#time-parameters-1
MIN_VALIDATOR_WITHDRAWABILITY_DELAY = 2**8
SHARD_COMMITTEE_PERIOD = 256
SHARD_COMMITTEE_PERIOD = 2**8
MAX_SEED_LOOKAHEAD = 4
# https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#state-list-lengths
EPOCHS_PER_SLASHINGS_VECTOR = 2**13
# https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#rewards-and-penalties
PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX = 3
# https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#gwei-values
EFFECTIVE_BALANCE_INCREMENT = 2 ** 0 * 10 ** 9
MAX_EFFECTIVE_BALANCE = 32 * 10 ** 9
EFFECTIVE_BALANCE_INCREMENT = Gwei(2**0 * 10**9)
MAX_EFFECTIVE_BALANCE = Gwei(32 * 10**9)
# https://github.com/ethereum/consensus-specs/blob/dev/specs/electra/beacon-chain.md#gwei-values
MAX_EFFECTIVE_BALANCE_ELECTRA = Gwei(2**11 * 10**9)
MIN_ACTIVATION_BALANCE = Gwei(2**5 * 10**9)
# https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/beacon-chain.md#execution
MAX_WITHDRAWALS_PER_PAYLOAD = 2 ** 4
MAX_WITHDRAWALS_PER_PAYLOAD = 2**4
# https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#withdrawal-prefixes
ETH1_ADDRESS_WITHDRAWAL_PREFIX = '0x01'
# https://github.com/ethereum/consensus-specs/blob/dev/specs/electra/beacon-chain.md#withdrawal-prefixes
COMPOUNDING_WITHDRAWAL_PREFIX = '0x02'
# https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#validator-cycle
MIN_PER_EPOCH_CHURN_LIMIT = 2 ** 2
CHURN_LIMIT_QUOTIENT = 2 ** 16
MIN_PER_EPOCH_CHURN_LIMIT = 2**2
CHURN_LIMIT_QUOTIENT = 2**16
# https://github.com/ethereum/consensus-specs/blob/dev/specs/electra/beacon-chain.md#validator-cycle
MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA = Gwei(2**7 * 10**9)
MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT = Gwei(2**8 * 10**9)
# https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#time-parameters
SLOTS_PER_HISTORICAL_ROOT = 8192
SLOTS_PER_HISTORICAL_ROOT = 2**13 # 8192

# Local constants
GWEI_TO_WEI = 10 ** 9
SHARE_RATE_PRECISION_E27 = 10 ** 27
# https://github.com/ethereum/consensus-specs/blob/dev/specs/electra/beacon-chain.md#withdrawals-processing
MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP = 2**3

# Lido contracts constants
LIDO_DEPOSIT_AMOUNT = MIN_ACTIVATION_BALANCE
F4ever marked this conversation as resolved.
Show resolved Hide resolved
SHARE_RATE_PRECISION_E27 = 10**27
TOTAL_BASIS_POINTS = 10000

# Local constants
GWEI_TO_WEI = 10**9
MAX_BLOCK_GAS_LIMIT = 30_000_000

UINT64_MAX = 2 ** 64 - 1
UINT64_MAX = 2**64 - 1
25 changes: 6 additions & 19 deletions src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,13 @@
KeysAPIClientModule,
LidoValidatorsProvider,
FallbackProviderModule,
LazyCSM
LazyCSM,
)
from src.web3py.middleware import metrics_collector
from src.web3py.types import Web3

from src.web3py.contract_tweak import tweak_w3_contracts


logger = logging.getLogger(__name__)


Expand All @@ -42,22 +41,10 @@ def main(module_name: OracleModule):
'variables': {
**build_info,
'module': module_name,
'ACCOUNT': variables.ACCOUNT.address if variables.ACCOUNT else 'Dry',
'LIDO_LOCATOR_ADDRESS': variables.LIDO_LOCATOR_ADDRESS,
'CSM_MODULE_ADDRESS': variables.CSM_MODULE_ADDRESS,
'FINALIZATION_BATCH_MAX_REQUEST_COUNT': variables.FINALIZATION_BATCH_MAX_REQUEST_COUNT,
'EL_REQUESTS_BATCH_SIZE': variables.EL_REQUESTS_BATCH_SIZE,
'MAX_CYCLE_LIFETIME_IN_SECONDS': variables.MAX_CYCLE_LIFETIME_IN_SECONDS,
**variables.PUBLIC_ENV_VARS,
},
})
ENV_VARIABLES_INFO.info({
"ACCOUNT": str(variables.ACCOUNT.address) if variables.ACCOUNT else 'Dry',
"LIDO_LOCATOR_ADDRESS": str(variables.LIDO_LOCATOR_ADDRESS),
"CSM_MODULE_ADDRESS": str(variables.CSM_MODULE_ADDRESS),
"FINALIZATION_BATCH_MAX_REQUEST_COUNT": str(variables.FINALIZATION_BATCH_MAX_REQUEST_COUNT),
"EL_REQUESTS_BATCH_SIZE": str(variables.EL_REQUESTS_BATCH_SIZE),
"MAX_CYCLE_LIFETIME_IN_SECONDS": str(variables.MAX_CYCLE_LIFETIME_IN_SECONDS),
})
ENV_VARIABLES_INFO.info(variables.PUBLIC_ENV_VARS)
BUILD_INFO.info(build_info)

logger.info({'msg': f'Start healthcheck server for Docker container on port {variables.HEALTHCHECK_SERVER_PORT}'})
Expand Down Expand Up @@ -171,18 +158,18 @@ def ipfs_providers() -> Iterator[IPFSProvider]:

if __name__ == '__main__':
module_name_arg = sys.argv[-1]
if module_name_arg not in iter(OracleModule):
if module_name_arg not in OracleModule:
msg = f'Last arg should be one of {[str(item) for item in OracleModule]}, received {module_name_arg}.'
logger.error({'msg': msg})
raise ValueError(msg)

module = OracleModule(module_name_arg)
if module == OracleModule.CHECK:
if module is OracleModule.CHECK:
errors = variables.check_uri_required_variables()
variables.raise_from_errors(errors)

sys.exit(check())

errors = variables.check_all_required_variables()
errors = variables.check_all_required_variables(module)
variables.raise_from_errors(errors)
main(module)
Loading