Repository navigation
Merge upstream migalabs/goteth 3.9.0 into Obol fork #11
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
Merged
Merged
Changes from all commits
Commits
Show all changes
67 commits
Select commit
Hold shift + click to select a range
79d4067
feat(validator-status): persist f_activation_eligibility_epoch
Zyra-V21 771eb30
docs: clarify deposit-lifecycle vocabulary is proposed, not current B…
Zyra-V21 ab60df0
docs: rename pending_balance -> pending_minBalance in tables.md
Zyra-V21 58f0a6d
Merge pull request #274 from migalabs/feat/deposit-lifecycle-statuses
Zyra-V21 3a2d502
fix(db): remove semicolon inside migration 000037 comment
Zyra-V21 dadcd7b
feat(relay): add ETHGas relay to mainnet and hoodi relay lists
Zyra-V21 6f61952
Merge pull request #276 from migalabs/feat/add-ethgas-relay
Zyra-V21 b064dfd
Update maintainer information in README.md
Zyra-V21 b96a86b
fix(db): make pool summary aggregation consistent and refreshable
Zyra-V21 d176ba6
feat(val-window): refresh recent pool summaries when pool tags change
Zyra-V21 d069048
Merge pull request #278 from migalabs/fix/pool-summary-consistency
Zyra-V21 a39dba2
fix(val-window): skip pool reroll while the pubkeys table is mid-sync
Zyra-V21 f3b7487
Merge pull request #279 from migalabs/fix/reroll-truncate-guard
Zyra-V21 55accce
fix(blobs): record p2p arrival timings again via data_column_sidecar …
Zyra-V21 2a8aef3
fix(db): make migration 000038 retry-safe with IF NOT EXISTS
Zyra-V21 9072b7d
fix(events): log and skip instead of crashing on data_column_sidecar …
Zyra-V21 761372c
perf(analyzer): batch data_column_sidecar persistence off the head loop
Zyra-V21 e7b924b
fix(analyzer): make the stop flag an atomic.Bool
Zyra-V21 6d8209a
feat(metrics): expose data_column_sidecar subscription state as a gauge
Zyra-V21 6078c79
Merge pull request #281 from migalabs/fix/data-column-sidecar-events-280
Zyra-V21 3f4d042
Merge pull request #283 from migalabs/perf/batch-data-column-events-282
Zyra-V21 ba375ed
Merge pull request #284 from migalabs/fix/data-column-sidecar-events-280
Zyra-V21 bfb2cc8
fix(electra): recompute deposit counters when the state object was re…
ander-deran-arteaga 7f17394
Attribute blob sidecars by position instead of by hash
ander-deran-arteaga b7889c6
fix(reorg): stop AdvanceFinalized orphaning rows it never rewrites
ander-deran-arteaga 8d40fd2
fix(electra): make the deposit recompute idempotent instead of guarded
ander-deran-arteaga df5bc90
fix(blobs): attribute from the block body instead of the receipt-pars…
ander-deran-arteaga e36ae45
fix(blobs): name both hashes when a sidecar does not match its position
ander-deran-arteaga ef0525a
fix(reorg): rewrite reorged epoch metrics after the walk, lowest first
ander-deran-arteaga 4de43bd
fix(reorg): guard the genesis epoch row, and carry an epoch whose own…
ander-deran-arteaga 8bbfc20
revert(reorg): the carry cannot cover an epoch whose own check failed
ander-deran-arteaga df48665
fix(reorg): make sure the states are still cached before rewriting
ander-deran-arteaga 017b5ab
chore: keep unrelated files out of this branch
ander-deran-arteaga b22e83b
fix: apply the deposit-counter pattern to consolidation counters
ander-deran-arteaga d4bf8cd
Merge pull request #290 from migalabs/fix/blob-sidecar-tx-attribution
ander-deran-arteaga bdb8b61
Merge pull request #288 from migalabs/fix/advance-finalized-orphans-rows
ander-deran-arteaga 48abc88
fix(reorg): AdvanceFinalized can retry an epoch it failed to rewrite
ander-deran-arteaga 04a601a
fix(reorg): drop an unreachable branch and never wait on a lost state
ander-deran-arteaga 0e3293a
fix(analyzer): stop a duplicate epoch leaking a processerBook slot
ander-deran-arteaga f176583
fix(utils): stop the barrier leaking a timer and waiting for nothing
ander-deran-arteaga 6f29fb1
ci: build, vet and test this repository
ander-deran-arteaga 68a754e
Merge pull request #296 from migalabs/ci/build-and-test
ander-deran-arteaga 191894d
Merge pull request #294 from migalabs/fix/processer-book-slot-leak
ander-deran-arteaga 75485b5
Merge pull request #289 from migalabs/fix/deposit-counters-lost-on-st…
ander-deran-arteaga c44b48a
Merge pull request #293 from migalabs/fix/advance-finalized-can-retry
ander-deran-arteaga 330b9e5
fix(clientapi,analyzer): stop leaking a timer per retry
ander-deran-arteaga 641091f
fix: stop the long-lived tickers too, so the rule can be checked
ander-deran-arteaga a504bc8
test(utils): every ticker is stopped, checked across the repository
ander-deran-arteaga 09d608f
fix(clientapi): decide "block not found" from the status code, not th…
ander-deran-arteaga 43b3cd5
Merge pull request #299 from migalabs/fix/typed-not-found-check
ander-deran-arteaga 078de2a
Merge pull request #297 from migalabs/fix/unstopped-tickers
ander-deran-arteaga c10847e
fix(relay): retry a failed delivered bids request before giving up th…
Zyra-V21 466e514
fix(relay): remove the bloXroute max-profit mainnet relay
Zyra-V21 6ee2e50
Merge pull request #301 from migalabs/fix/relay-request-retries
Zyra-V21 e61829d
fix(relay): retry a failed delivered bids request before giving up th…
Zyra-V21 04281a2
fix(relay): remove the bloXroute max-profit mainnet relay
Zyra-V21 3f4b45f
Merge pull request #302 from migalabs/hotfix/relay-retries
Zyra-V21 0e8bab9
add citation.cff file
cortze faf00dd
Update authors in CITATION.cff
Zyra-V21 b23c3ed
Update cff-version to 3.9.0
Zyra-V21 49b8185
chore: bump version to v3.9.0
Zyra-V21 f21cf49
Update cff-version from 3.9.0 to 1.2.0
Zyra-V21 c4fba76
Update version and release date in CITATION.cff
Zyra-V21 76a9305
Merge pull request #303 from migalabs/dev
Zyra-V21 6a2816d
Merge pull request #304 from cortze/add-doi-reference
Zyra-V21 9a31a54
Merge migalabs/goteth 3.9.0 into Obol fork
anadi2311 e9d99a6
ci: read-only token for the CI workflow (CodeQL)
anadi2311 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| name: CI | ||
|
|
||
| on: | ||
| push: | ||
| branches: [main, master, dev] | ||
| pull_request: | ||
|
|
||
| # The job only reads the code: give its token read access, like build_push.yml. | ||
| permissions: | ||
| contents: read | ||
|
|
||
| # This repository had no CI at all. Every change to the indexer serving | ||
| # mainnet merged without being compiled, vetted or tested by anything but | ||
| # whoever wrote it. | ||
| jobs: | ||
| build-and-test: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| with: | ||
| # go.mod replaces go-relay-client with a local path. | ||
| submodules: recursive | ||
|
|
||
| - uses: actions/setup-go@v5 | ||
| with: | ||
| go-version-file: go.mod | ||
| cache: true | ||
|
|
||
| - name: Build | ||
| run: go build ./... | ||
|
|
||
| - name: Vet | ||
| run: go vet ./... | ||
|
|
||
| - name: Test | ||
| # The metrics tests need a live beacon node and skip themselves when | ||
| # none answers; set GOTETH_TEST_BN_ENDPOINT (and GOTETH_TEST_EL_ENDPOINT) | ||
| # to run them against one. | ||
| run: go test -race ./... | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| cff-version: 1.2.0 | ||
| message: "If you use this software, please cite it using the metadata from this file." | ||
| type: software | ||
| title: GotEth | ||
| abstract: >- | ||
| GotEth is a go-written client that indexes all validator-related duties, | ||
| parameters and transactions from Ethereum's consensus and execution layers. | ||
| authors: | ||
| - given-names: Tarun | ||
| family-names: Mohandas | ||
| affiliation: MigaLabs | ||
| - alias: Zyra-V21 | ||
| given-names: Ruben | ||
| family-names: Planes Llinares | ||
| affiliation: MigaLabs | ||
| - given-names: Leo | ||
| family-names: Bautista-Gomez | ||
| affiliation: MigaLabs | ||
| - given-names: Mikel | ||
| family-names: Cortes | ||
| affiliation: MigaLabs | ||
| repository-code: "https://github.com/migalabs/goteth" | ||
| license: MIT | ||
| keywords: | ||
| - ethereum | ||
| - consensus layer | ||
| - beacon chain | ||
| - validators | ||
| - clickhouse | ||
| version: v3.9.0 | ||
| date-released: "2026-10-22" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,71 @@ | ||
| package cmd | ||
|
|
||
| import ( | ||
| "fmt" | ||
|
|
||
| "github.com/attestantio/go-eth2-client/spec/phase0" | ||
| "github.com/migalabs/goteth/pkg/db" | ||
| "github.com/migalabs/goteth/pkg/utils" | ||
| "github.com/sirupsen/logrus" | ||
| cli "github.com/urfave/cli/v2" | ||
| ) | ||
|
|
||
| var PoolSummaryRefillCommand = &cli.Command{ | ||
| Name: "pool-summary-refill", | ||
| Usage: "Recomputes t_pool_summary for an epoch range from the current rewards and pool tags. Deletes the range first so pool renames do not leave ghost rows. Use after pool re-tagging or rewards backfills.", | ||
| Action: LaunchPoolSummaryRefill, | ||
| Flags: []cli.Flag{ | ||
| &cli.StringFlag{ | ||
| Name: "log-level", | ||
| Usage: "Log level: debug, warn, info, error", | ||
| EnvVars: []string{"ANALYZER_LOG_LEVEL"}, | ||
| DefaultText: "info", | ||
| }, | ||
| &cli.StringFlag{ | ||
| Name: "db-url", | ||
| Usage: "Database where the pool summaries are persisted", | ||
| EnvVars: []string{"ANALYZER_DB_URL"}, | ||
| DefaultText: "clickhouse://username:password@localhost:9000/goteth?x-multi-statement=true&max_memory_usage=10000000000", | ||
| }, | ||
| &cli.Uint64Flag{ | ||
| Name: "from-epoch", | ||
| Usage: "First epoch of the range to recompute (inclusive)", | ||
| Required: true, | ||
| }, | ||
| &cli.Uint64Flag{ | ||
| Name: "to-epoch", | ||
| Usage: "Last epoch of the range to recompute (inclusive)", | ||
| Required: true, | ||
| }, | ||
| }, | ||
| } | ||
|
|
||
| func LaunchPoolSummaryRefill(c *cli.Context) error { | ||
|
|
||
| if c.IsSet("log-level") { | ||
| logrus.SetLevel(utils.ParseLogLevel(c.String("log-level"))) | ||
| } | ||
|
|
||
| dbUrl := c.String("db-url") | ||
| if dbUrl == "" { | ||
| return fmt.Errorf("db-url is required") | ||
| } | ||
|
|
||
| fromEpoch := phase0.Epoch(c.Uint64("from-epoch")) | ||
| toEpoch := phase0.Epoch(c.Uint64("to-epoch")) | ||
| if toEpoch < fromEpoch { | ||
| return fmt.Errorf("to-epoch (%d) must be greater or equal than from-epoch (%d)", toEpoch, fromEpoch) | ||
| } | ||
|
|
||
| dbClient, err := db.New(c.Context, dbUrl) | ||
| if err != nil { | ||
| return err | ||
| } | ||
| err = dbClient.Connect() | ||
| if err != nil { | ||
| return err | ||
| } | ||
| defer dbClient.Finish() | ||
|
|
||
| return dbClient.RefreshPoolSummaryRange(fromEpoch, toEpoch) | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.