Skip to content

Commit 5611768

Browse files
committed
Merge branch 'main' into marko/sync_subscribe
2 parents e953e20 + 140b24a commit 5611768

93 files changed

Lines changed: 5142 additions & 843 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/docs_deploy.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@ on:
1313
# Allows you to run this workflow manually from the Actions tab
1414
workflow_dispatch:
1515

16-
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
17-
permissions: write-all
18-
1916
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
2017
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
2118
concurrency:
@@ -49,6 +46,6 @@ jobs:
4946
- name: Deploy to GitHub Pages
5047
uses: peaceiris/actions-gh-pages@v4
5148
with:
52-
github_token: ${{ secrets.GITHUB_TOKEN }}
49+
github_token: ${{ secrets.PAT_DOCS }}
5350
publish_dir: ./docs/.vitepress/dist
5451
cname: ev.xyz

.mockery.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ packages:
3030
dir: ./test/mocks
3131
pkgname: mocks
3232
filename: store.go
33+
Batch:
34+
config:
35+
dir: ./test/mocks
36+
pkgname: mocks
37+
filename: batch.go
3338
github.com/celestiaorg/go-header:
3439
interfaces:
3540
Store:

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1717
- Added `post-tx` command and force inclusion server to submit transaction directly to the DA layer. ([#2888](https://github.com/evstack/ev-node/pull/2888))
1818
Additionally, modified the core package to support marking transactions as forced included transactions.
1919
The execution client ought to perform basic validation on those transactions as they have skipped the execution client's mempool.
20+
- Add batching stategies (default stay time-based, unchanged with previous betas). Currently available strategies are `time`, `size`, `immediate` and `adaptive`.
2021

2122
### Changed
2223

apps/evm/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM golang:1.24-alpine AS build-env
1+
FROM golang:1.25-alpine AS build-env
22

33
WORKDIR /src
44

apps/evm/cmd/rollback.go

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
package cmd
22

33
import (
4+
"bytes"
45
"context"
56
"errors"
67
"fmt"
8+
"os"
79

10+
"github.com/ethereum/go-ethereum/common"
11+
ds "github.com/ipfs/go-datastore"
812
"github.com/spf13/cobra"
913

1014
goheaderstore "github.com/celestiaorg/go-header/store"
15+
"github.com/evstack/ev-node/execution/evm"
1116
rollcmd "github.com/evstack/ev-node/pkg/cmd"
1217
"github.com/evstack/ev-node/pkg/store"
1318
"github.com/evstack/ev-node/types"
@@ -42,7 +47,7 @@ func NewRollbackCmd() *cobra.Command {
4247

4348
defer func() {
4449
if closeErr := rawEvolveDB.Close(); closeErr != nil {
45-
fmt.Printf("Warning: failed to close evolve database: %v\n", closeErr)
50+
cmd.Printf("Warning: failed to close evolve database: %v\n", closeErr)
4651
}
4752
}()
4853

@@ -63,6 +68,17 @@ func NewRollbackCmd() *cobra.Command {
6368
return fmt.Errorf("failed to rollback ev-node state: %w", err)
6469
}
6570

71+
// rollback execution layer via EngineClient
72+
engineClient, err := createRollbackEngineClient(cmd, rawEvolveDB)
73+
if err != nil {
74+
cmd.Printf("Warning: failed to create engine client, skipping EL rollback: %v\n", err)
75+
} else {
76+
if err := engineClient.Rollback(goCtx, height); err != nil {
77+
return fmt.Errorf("failed to rollback execution layer: %w", err)
78+
}
79+
cmd.Printf("Rolled back execution layer to height %d\n", height)
80+
}
81+
6682
// rollback ev-node goheader state
6783
headerStore, err := goheaderstore.NewStore[*types.SignedHeader](
6884
evolveDB,
@@ -101,7 +117,7 @@ func NewRollbackCmd() *cobra.Command {
101117
errs = errors.Join(errs, fmt.Errorf("failed to rollback data sync service state: %w", err))
102118
}
103119

104-
fmt.Printf("Rolled back ev-node state to height %d\n", height)
120+
cmd.Printf("Rolled back ev-node state to height %d\n", height)
105121
if syncNode {
106122
fmt.Println("Restart the node with the `--evnode.clear_cache` flag")
107123
}
@@ -113,5 +129,42 @@ func NewRollbackCmd() *cobra.Command {
113129
cmd.Flags().Uint64Var(&height, "height", 0, "rollback to a specific height")
114130
cmd.Flags().BoolVar(&syncNode, "sync-node", false, "sync node (no aggregator)")
115131

132+
// EVM flags for execution layer rollback
133+
cmd.Flags().String(evm.FlagEvmEthURL, "http://localhost:8545", "URL of the Ethereum JSON-RPC endpoint")
134+
cmd.Flags().String(evm.FlagEvmEngineURL, "http://localhost:8551", "URL of the Engine API endpoint")
135+
cmd.Flags().String(evm.FlagEvmJWTSecretFile, "", "Path to file containing the JWT secret for authentication")
136+
116137
return cmd
117138
}
139+
140+
func createRollbackEngineClient(cmd *cobra.Command, db ds.Batching) (*evm.EngineClient, error) {
141+
ethURL, err := cmd.Flags().GetString(evm.FlagEvmEthURL)
142+
if err != nil {
143+
return nil, fmt.Errorf("failed to get '%s' flag: %w", evm.FlagEvmEthURL, err)
144+
}
145+
engineURL, err := cmd.Flags().GetString(evm.FlagEvmEngineURL)
146+
if err != nil {
147+
return nil, fmt.Errorf("failed to get '%s' flag: %w", evm.FlagEvmEngineURL, err)
148+
}
149+
150+
jwtSecretFile, err := cmd.Flags().GetString(evm.FlagEvmJWTSecretFile)
151+
if err != nil {
152+
return nil, fmt.Errorf("failed to get '%s' flag: %w", evm.FlagEvmJWTSecretFile, err)
153+
}
154+
155+
if jwtSecretFile == "" {
156+
return nil, fmt.Errorf("JWT secret file must be provided via --evm.jwt-secret-file for EL rollback")
157+
}
158+
159+
secretBytes, err := os.ReadFile(jwtSecretFile)
160+
if err != nil {
161+
return nil, fmt.Errorf("failed to read JWT secret from file '%s': %w", jwtSecretFile, err)
162+
}
163+
jwtSecret := string(bytes.TrimSpace(secretBytes))
164+
165+
if jwtSecret == "" {
166+
return nil, fmt.Errorf("JWT secret file '%s' is empty", jwtSecretFile)
167+
}
168+
169+
return evm.NewEngineExecutionClient(ethURL, engineURL, jwtSecret, common.Hash{}, common.Address{}, db, false)
170+
}

apps/evm/go.mod

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
module github.com/evstack/ev-node/apps/evm
22

3-
go 1.24.6
4-
5-
replace github.com/celestiaorg/go-header => github.com/julienrbrt/go-header v0.0.0-20251008134330-747c8c192fa8 // TODO: to remove after https://github.com/celestiaorg/go-header/pull/347
3+
go 1.25.0
64

75
replace (
86
github.com/evstack/ev-node => ../../
@@ -11,7 +9,7 @@ replace (
119
)
1210

1311
require (
14-
github.com/celestiaorg/go-header v0.7.4
12+
github.com/celestiaorg/go-header v0.8.0
1513
github.com/ethereum/go-ethereum v1.16.8
1614
github.com/evstack/ev-node v1.0.0-beta.10
1715
github.com/evstack/ev-node/core v1.0.0-beta.5
@@ -92,7 +90,7 @@ require (
9290
github.com/libp2p/go-flow-metrics v0.3.0 // indirect
9391
github.com/libp2p/go-libp2p v0.46.0 // indirect
9492
github.com/libp2p/go-libp2p-asn-util v0.4.1 // indirect
95-
github.com/libp2p/go-libp2p-kad-dht v0.36.0 // indirect
93+
github.com/libp2p/go-libp2p-kad-dht v0.37.0 // indirect
9694
github.com/libp2p/go-libp2p-kbucket v0.8.0 // indirect
9795
github.com/libp2p/go-libp2p-pubsub v0.15.0 // indirect
9896
github.com/libp2p/go-libp2p-record v0.3.1 // indirect
@@ -184,11 +182,11 @@ require (
184182
go.uber.org/fx v1.24.0 // indirect
185183
go.uber.org/mock v0.5.2 // indirect
186184
go.uber.org/multierr v1.11.0 // indirect
187-
go.uber.org/zap v1.27.0 // indirect
185+
go.uber.org/zap v1.27.1 // indirect
188186
go.yaml.in/yaml/v2 v2.4.3 // indirect
189187
go.yaml.in/yaml/v3 v3.0.4 // indirect
190188
golang.org/x/crypto v0.47.0 // indirect
191-
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 // indirect
189+
golang.org/x/exp v0.0.0-20251209150349-8475f28825e9 // indirect
192190
golang.org/x/mod v0.31.0 // indirect
193191
golang.org/x/net v0.49.0 // indirect
194192
golang.org/x/sync v0.19.0 // indirect

apps/evm/go.sum

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,8 @@ github.com/bits-and-blooms/bitset v1.20.0 h1:2F+rfL86jE2d/bmw7OhqUg2Sj/1rURkBn3M
269269
github.com/bits-and-blooms/bitset v1.20.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
270270
github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
271271
github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
272+
github.com/celestiaorg/go-header v0.8.0 h1:j9/t/uhxif26WQ3fULDAh3I55Fh3lJk6qMXPFFuOy28=
273+
github.com/celestiaorg/go-header v0.8.0/go.mod h1:X00prITrMa2kxgEX15WQnbLf0uV6tlvTesDKC5KsDVQ=
272274
github.com/celestiaorg/go-libp2p-messenger v0.2.2 h1:osoUfqjss7vWTIZrrDSy953RjQz+ps/vBFE7bychLEc=
273275
github.com/celestiaorg/go-libp2p-messenger v0.2.2/go.mod h1:oTCRV5TfdO7V/k6nkx7QjQzGrWuJbupv+0o1cgnY2i4=
274276
github.com/celestiaorg/go-square/merkle v0.0.0-20240627094109-7d01436067a3 h1:wP84mtwOCVNOTfS3zErICjxKLnh74Z1uf+tdrlSFjVM=
@@ -646,8 +648,6 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1
646648
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
647649
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
648650
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
649-
github.com/julienrbrt/go-header v0.0.0-20251008134330-747c8c192fa8 h1:F+gOiipBxG43s+Ho+ri9T8IwumjWjp1XUon4DLWjxfQ=
650-
github.com/julienrbrt/go-header v0.0.0-20251008134330-747c8c192fa8/go.mod h1:eX9iTSPthVEAlEDLux40ZT/olXPGhpxHd+mEzJeDhd0=
651651
github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
652652
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
653653
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
@@ -688,8 +688,8 @@ github.com/libp2p/go-libp2p v0.46.0 h1:0T2yvIKpZ3DVYCuPOFxPD1layhRU486pj9rSlGWYn
688688
github.com/libp2p/go-libp2p v0.46.0/go.mod h1:TbIDnpDjBLa7isdgYpbxozIVPBTmM/7qKOJP4SFySrQ=
689689
github.com/libp2p/go-libp2p-asn-util v0.4.1 h1:xqL7++IKD9TBFMgnLPZR6/6iYhawHKHl950SO9L6n94=
690690
github.com/libp2p/go-libp2p-asn-util v0.4.1/go.mod h1:d/NI6XZ9qxw67b4e+NgpQexCIiFYJjErASrYW4PFDN8=
691-
github.com/libp2p/go-libp2p-kad-dht v0.36.0 h1:7QuXhV36+Vyj+L6A7mrYkn2sYLrbRcbjvsYDu/gXhn8=
692-
github.com/libp2p/go-libp2p-kad-dht v0.36.0/go.mod h1:O24LxTH9Rt3I5XU8nmiA9VynS4TrTwAyj+zBJKB05vQ=
691+
github.com/libp2p/go-libp2p-kad-dht v0.37.0 h1:V1IkFzK9taNS1UNAx260foulcBPH+watAUFjNo2qMUY=
692+
github.com/libp2p/go-libp2p-kad-dht v0.37.0/go.mod h1:o4FPa1ea++UVAMJ1c+kyjUmj3CKm9+ZCyzQb4uutCFM=
693693
github.com/libp2p/go-libp2p-kbucket v0.8.0 h1:QAK7RzKJpYe+EuSEATAaaHYMYLkPDGC18m9jxPLnU8s=
694694
github.com/libp2p/go-libp2p-kbucket v0.8.0/go.mod h1:JMlxqcEyKwO6ox716eyC0hmiduSWZZl6JY93mGaaqc4=
695695
github.com/libp2p/go-libp2p-pubsub v0.15.0 h1:cG7Cng2BT82WttmPFMi50gDNV+58K626m/wR00vGL1o=
@@ -1025,8 +1025,8 @@ go.uber.org/mock v0.5.2 h1:LbtPTcP8A5k9WPXj54PPPbjcI4Y6lhyOZXn+VS7wNko=
10251025
go.uber.org/mock v0.5.2/go.mod h1:wLlUxC2vVTPTaE3UD51E0BGOAElKrILxhVSDYQLld5o=
10261026
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
10271027
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
1028-
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
1029-
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
1028+
go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc=
1029+
go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
10301030
go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0=
10311031
go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8=
10321032
go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
@@ -1075,8 +1075,8 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH
10751075
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
10761076
golang.org/x/exp v0.0.0-20230206171751-46f607a40771/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
10771077
golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo=
1078-
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 h1:mgKeJMpvi0yx/sU5GsxQ7p6s2wtOnGAHZWCHUM4KGzY=
1079-
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546/go.mod h1:j/pmGrbnkbPtQfxEe5D0VQhZC6qKbfKifgD0oM7sR70=
1078+
golang.org/x/exp v0.0.0-20251209150349-8475f28825e9 h1:MDfG8Cvcqlt9XXrmEiD4epKn7VJHZO84hejP9Jmp0MM=
1079+
golang.org/x/exp v0.0.0-20251209150349-8475f28825e9/go.mod h1:EPRbTFwzwjXj9NpYyyrvenVh9Y+GFeEvMNh7Xuz7xgU=
10801080
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
10811081
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
10821082
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=

apps/grpc/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Build stage
2-
FROM golang:1.24-alpine AS builder
2+
FROM golang:1.25-alpine AS builder
33

44
#hadolint ignore=DL3018
55
RUN apk add --no-cache git make gcc musl-dev linux-headers

apps/grpc/go.mod

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
module github.com/evstack/ev-node/apps/grpc
22

3-
go 1.24.6
4-
5-
replace github.com/celestiaorg/go-header => github.com/julienrbrt/go-header v0.0.0-20251008134330-747c8c192fa8 // TODO: to remove after https://github.com/celestiaorg/go-header/pull/347
3+
go 1.25.0
64

75
replace (
86
github.com/evstack/ev-node => ../../
@@ -24,7 +22,7 @@ require (
2422
connectrpc.com/grpcreflect v1.3.0 // indirect
2523
github.com/benbjohnson/clock v1.3.5 // indirect
2624
github.com/beorn7/perks v1.0.1 // indirect
27-
github.com/celestiaorg/go-header v0.7.4 // indirect
25+
github.com/celestiaorg/go-header v0.8.0 // indirect
2826
github.com/celestiaorg/go-libp2p-messenger v0.2.2 // indirect
2927
github.com/celestiaorg/go-square/merkle v0.0.0-20240627094109-7d01436067a3 // indirect
3028
github.com/celestiaorg/go-square/v3 v3.0.2 // indirect
@@ -72,7 +70,7 @@ require (
7270
github.com/libp2p/go-flow-metrics v0.3.0 // indirect
7371
github.com/libp2p/go-libp2p v0.46.0 // indirect
7472
github.com/libp2p/go-libp2p-asn-util v0.4.1 // indirect
75-
github.com/libp2p/go-libp2p-kad-dht v0.36.0 // indirect
73+
github.com/libp2p/go-libp2p-kad-dht v0.37.0 // indirect
7674
github.com/libp2p/go-libp2p-kbucket v0.8.0 // indirect
7775
github.com/libp2p/go-libp2p-pubsub v0.15.0 // indirect
7876
github.com/libp2p/go-libp2p-record v0.3.1 // indirect
@@ -157,11 +155,11 @@ require (
157155
go.uber.org/fx v1.24.0 // indirect
158156
go.uber.org/mock v0.5.2 // indirect
159157
go.uber.org/multierr v1.11.0 // indirect
160-
go.uber.org/zap v1.27.0 // indirect
158+
go.uber.org/zap v1.27.1 // indirect
161159
go.yaml.in/yaml/v2 v2.4.3 // indirect
162160
go.yaml.in/yaml/v3 v3.0.4 // indirect
163161
golang.org/x/crypto v0.47.0 // indirect
164-
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 // indirect
162+
golang.org/x/exp v0.0.0-20251209150349-8475f28825e9 // indirect
165163
golang.org/x/mod v0.31.0 // indirect
166164
golang.org/x/net v0.49.0 // indirect
167165
golang.org/x/sync v0.19.0 // indirect

apps/grpc/go.sum

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
257257
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
258258
github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
259259
github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
260+
github.com/celestiaorg/go-header v0.8.0 h1:j9/t/uhxif26WQ3fULDAh3I55Fh3lJk6qMXPFFuOy28=
261+
github.com/celestiaorg/go-header v0.8.0/go.mod h1:X00prITrMa2kxgEX15WQnbLf0uV6tlvTesDKC5KsDVQ=
260262
github.com/celestiaorg/go-libp2p-messenger v0.2.2 h1:osoUfqjss7vWTIZrrDSy953RjQz+ps/vBFE7bychLEc=
261263
github.com/celestiaorg/go-libp2p-messenger v0.2.2/go.mod h1:oTCRV5TfdO7V/k6nkx7QjQzGrWuJbupv+0o1cgnY2i4=
262264
github.com/celestiaorg/go-square/merkle v0.0.0-20240627094109-7d01436067a3 h1:wP84mtwOCVNOTfS3zErICjxKLnh74Z1uf+tdrlSFjVM=
@@ -578,8 +580,6 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1
578580
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
579581
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
580582
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
581-
github.com/julienrbrt/go-header v0.0.0-20251008134330-747c8c192fa8 h1:F+gOiipBxG43s+Ho+ri9T8IwumjWjp1XUon4DLWjxfQ=
582-
github.com/julienrbrt/go-header v0.0.0-20251008134330-747c8c192fa8/go.mod h1:eX9iTSPthVEAlEDLux40ZT/olXPGhpxHd+mEzJeDhd0=
583583
github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
584584
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
585585
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
@@ -618,8 +618,8 @@ github.com/libp2p/go-libp2p v0.46.0 h1:0T2yvIKpZ3DVYCuPOFxPD1layhRU486pj9rSlGWYn
618618
github.com/libp2p/go-libp2p v0.46.0/go.mod h1:TbIDnpDjBLa7isdgYpbxozIVPBTmM/7qKOJP4SFySrQ=
619619
github.com/libp2p/go-libp2p-asn-util v0.4.1 h1:xqL7++IKD9TBFMgnLPZR6/6iYhawHKHl950SO9L6n94=
620620
github.com/libp2p/go-libp2p-asn-util v0.4.1/go.mod h1:d/NI6XZ9qxw67b4e+NgpQexCIiFYJjErASrYW4PFDN8=
621-
github.com/libp2p/go-libp2p-kad-dht v0.36.0 h1:7QuXhV36+Vyj+L6A7mrYkn2sYLrbRcbjvsYDu/gXhn8=
622-
github.com/libp2p/go-libp2p-kad-dht v0.36.0/go.mod h1:O24LxTH9Rt3I5XU8nmiA9VynS4TrTwAyj+zBJKB05vQ=
621+
github.com/libp2p/go-libp2p-kad-dht v0.37.0 h1:V1IkFzK9taNS1UNAx260foulcBPH+watAUFjNo2qMUY=
622+
github.com/libp2p/go-libp2p-kad-dht v0.37.0/go.mod h1:o4FPa1ea++UVAMJ1c+kyjUmj3CKm9+ZCyzQb4uutCFM=
623623
github.com/libp2p/go-libp2p-kbucket v0.8.0 h1:QAK7RzKJpYe+EuSEATAaaHYMYLkPDGC18m9jxPLnU8s=
624624
github.com/libp2p/go-libp2p-kbucket v0.8.0/go.mod h1:JMlxqcEyKwO6ox716eyC0hmiduSWZZl6JY93mGaaqc4=
625625
github.com/libp2p/go-libp2p-pubsub v0.15.0 h1:cG7Cng2BT82WttmPFMi50gDNV+58K626m/wR00vGL1o=
@@ -924,8 +924,8 @@ go.uber.org/mock v0.5.2 h1:LbtPTcP8A5k9WPXj54PPPbjcI4Y6lhyOZXn+VS7wNko=
924924
go.uber.org/mock v0.5.2/go.mod h1:wLlUxC2vVTPTaE3UD51E0BGOAElKrILxhVSDYQLld5o=
925925
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
926926
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
927-
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
928-
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
927+
go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc=
928+
go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
929929
go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0=
930930
go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8=
931931
go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
@@ -974,8 +974,8 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH
974974
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
975975
golang.org/x/exp v0.0.0-20230206171751-46f607a40771/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
976976
golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo=
977-
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 h1:mgKeJMpvi0yx/sU5GsxQ7p6s2wtOnGAHZWCHUM4KGzY=
978-
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546/go.mod h1:j/pmGrbnkbPtQfxEe5D0VQhZC6qKbfKifgD0oM7sR70=
977+
golang.org/x/exp v0.0.0-20251209150349-8475f28825e9 h1:MDfG8Cvcqlt9XXrmEiD4epKn7VJHZO84hejP9Jmp0MM=
978+
golang.org/x/exp v0.0.0-20251209150349-8475f28825e9/go.mod h1:EPRbTFwzwjXj9NpYyyrvenVh9Y+GFeEvMNh7Xuz7xgU=
979979
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
980980
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
981981
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=

0 commit comments

Comments
 (0)