diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 58dfe98f93a..83b4c2e33fc 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -119,6 +119,3 @@ jobs:
- name: Test erigon-db
run: cd erigon-db && make test-short
-
- - name: Test p2p
- run: cd p2p && make test-short
diff --git a/Dockerfile b/Dockerfile
index e9a8178c020..a1dc06af944 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -10,8 +10,6 @@ ADD erigon-lib/go.mod erigon-lib/go.mod
ADD erigon-lib/go.sum erigon-lib/go.sum
ADD erigon-db/go.mod erigon-db/go.mod
ADD erigon-db/go.sum erigon-db/go.sum
-ADD p2p/go.mod p2p/go.mod
-ADD p2p/go.sum p2p/go.sum
RUN go mod download
ADD . .
diff --git a/Dockerfile.all b/Dockerfile.all
index fd312a45d09..08cb17ee23e 100644
--- a/Dockerfile.all
+++ b/Dockerfile.all
@@ -10,8 +10,6 @@ ADD erigon-lib/go.mod erigon-lib/go.mod
ADD erigon-lib/go.sum erigon-lib/go.sum
ADD erigon-db/go.mod erigon-db/go.mod
ADD erigon-db/go.sum erigon-db/go.sum
-ADD p2p/go.mod p2p/go.mod
-ADD p2p/go.sum p2p/go.sum
RUN go mod download
ADD . .
@@ -34,8 +32,6 @@ ADD erigon-lib/go.mod erigon-lib/go.mod
ADD erigon-lib/go.sum erigon-lib/go.sum
ADD erigon-db/go.mod erigon-db/go.mod
ADD erigon-db/go.sum erigon-db/go.sum
-ADD p2p/go.mod p2p/go.mod
-ADD p2p/go.sum p2p/go.sum
RUN mkdir -p /app/build/bin
diff --git a/Makefile b/Makefile
index 0ff5c615159..eae44ec1f4f 100644
--- a/Makefile
+++ b/Makefile
@@ -193,20 +193,11 @@ test-erigon-db-all:
test-erigon-db-all-race:
@cd erigon-db && $(MAKE) test-all-race
-test-p2-short:
- @cd p2p && $(MAKE) test-short
-
-test-p2p-all:
- @cd p2p && $(MAKE) test-all
-
-test-p2p-all-race:
- @cd p2p && $(MAKE) test-all-race
-
test-erigon-ext:
@cd tests/erigon-ext-test && ./test.sh $(GIT_COMMIT)
## test-short: run short tests with a 10m timeout
-test-short: test-erigon-lib-short test-erigon-db-short test-p2-short
+test-short: test-erigon-lib-short test-erigon-db-short
@{ \
$(GOTEST) -short --timeout 10m -coverprofile=coverage-test.out > run.log 2>&1; \
STATUS=$$?; \
@@ -215,7 +206,7 @@ test-short: test-erigon-lib-short test-erigon-db-short test-p2-short
}
## test-all: run all tests with a 1h timeout
-test-all: test-erigon-lib-all test-erigon-db-all test-p2p-all
+test-all: test-erigon-lib-all test-erigon-db-all
@{ \
$(GOTEST) --timeout 60m -coverprofile=coverage-test-all.out > run.log 2>&1; \
STATUS=$$?; \
@@ -224,7 +215,7 @@ test-all: test-erigon-lib-all test-erigon-db-all test-p2p-all
}
## test-all-race: run all tests with the race flag
-test-all-race: test-erigon-lib-all-race test-erigon-db-all-race test-p2p-all-race
+test-all-race: test-erigon-lib-all-race test-erigon-db-all-race
@{ \
$(GOTEST) --timeout 60m -coverprofile=coverage-test-all.out -race > run.log 2>&1; \
STATUS=$$?; \
@@ -350,13 +341,11 @@ lint:
@./erigon-lib/tools/golangci_lint.sh
@./erigon-lib/tools/mod_tidy_check.sh
@cd erigon-db && ./../erigon-lib/tools/mod_tidy_check.sh
- @cd p2p && ./../erigon-lib/tools/mod_tidy_check.sh
## tidy: `go mod tidy`
tidy:
cd erigon-lib && go mod tidy
cd erigon-db && go mod tidy
- cd p2p && go mod tidy
go mod tidy
## clean: cleans the go cache, build dir, libmdbx db dir
diff --git a/cl/beacon/beaconevents/operation_feed.go b/cl/beacon/beaconevents/operation_feed.go
index d096064b664..ef1c39a9212 100644
--- a/cl/beacon/beaconevents/operation_feed.go
+++ b/cl/beacon/beaconevents/operation_feed.go
@@ -1,6 +1,6 @@
package beaconevents
-import ethevent "github.com/erigontech/erigon-p2p/event"
+import ethevent "github.com/erigontech/erigon/p2p/event"
type operationFeed struct {
feed *ethevent.Feed
diff --git a/cl/beacon/beaconevents/state_feed.go b/cl/beacon/beaconevents/state_feed.go
index db09df1a298..cf17ae4f10c 100644
--- a/cl/beacon/beaconevents/state_feed.go
+++ b/cl/beacon/beaconevents/state_feed.go
@@ -1,7 +1,7 @@
package beaconevents
import (
- ethevent "github.com/erigontech/erigon-p2p/event"
+ ethevent "github.com/erigontech/erigon/p2p/event"
)
type stateFeed struct {
diff --git a/cl/sentinel/discovery.go b/cl/sentinel/discovery.go
index 1865509c401..28816121135 100644
--- a/cl/sentinel/discovery.go
+++ b/cl/sentinel/discovery.go
@@ -25,12 +25,12 @@ import (
"github.com/libp2p/go-libp2p/core/peer"
"github.com/multiformats/go-multiaddr"
"github.com/prysmaticlabs/go-bitfield"
+ "golang.org/x/sync/semaphore"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
"github.com/erigontech/erigon/cl/clparams"
- "golang.org/x/sync/semaphore"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
const (
diff --git a/cl/sentinel/handlers/handlers.go b/cl/sentinel/handlers/handlers.go
index 7f169d05348..503fde169cd 100644
--- a/cl/sentinel/handlers/handlers.go
+++ b/cl/sentinel/handlers/handlers.go
@@ -23,8 +23,13 @@ import (
"sync"
"time"
+ "github.com/libp2p/go-libp2p/core/host"
+ "github.com/libp2p/go-libp2p/core/network"
+ "github.com/libp2p/go-libp2p/core/protocol"
+
"github.com/erigontech/erigon-lib/kv"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon-lib/log/v3"
+ "github.com/erigontech/erigon/cl/clparams"
"github.com/erigontech/erigon/cl/persistence/blob_storage"
"github.com/erigontech/erigon/cl/phase1/forkchoice"
"github.com/erigontech/erigon/cl/sentinel/communication"
@@ -32,14 +37,8 @@ import (
"github.com/erigontech/erigon/cl/sentinel/peers"
"github.com/erigontech/erigon/cl/utils"
"github.com/erigontech/erigon/cl/utils/eth_clock"
+ "github.com/erigontech/erigon/p2p/enode"
"github.com/erigontech/erigon/turbo/snapshotsync/freezeblocks"
-
- "github.com/libp2p/go-libp2p/core/host"
- "github.com/libp2p/go-libp2p/core/network"
- "github.com/libp2p/go-libp2p/core/protocol"
-
- "github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon/cl/clparams"
)
type RateLimits struct {
diff --git a/cl/sentinel/handlers/heartbeats.go b/cl/sentinel/handlers/heartbeats.go
index e163aedab99..0a18be77e4c 100644
--- a/cl/sentinel/handlers/heartbeats.go
+++ b/cl/sentinel/handlers/heartbeats.go
@@ -20,10 +20,10 @@ import (
"github.com/libp2p/go-libp2p/core/network"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enr"
"github.com/erigontech/erigon/cl/clparams"
"github.com/erigontech/erigon/cl/cltypes"
"github.com/erigontech/erigon/cl/sentinel/communication/ssz_snappy"
+ "github.com/erigontech/erigon/p2p/enr"
)
// Type safe handlers which all have access to the original stream & decompressed data.
diff --git a/cl/sentinel/handlers/heartbeats_test.go b/cl/sentinel/handlers/heartbeats_test.go
index 1bdfba78086..85ea5f3c7ff 100644
--- a/cl/sentinel/handlers/heartbeats_test.go
+++ b/cl/sentinel/handlers/heartbeats_test.go
@@ -31,8 +31,6 @@ import (
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
"github.com/erigontech/erigon/cl/clparams"
"github.com/erigontech/erigon/cl/cltypes"
"github.com/erigontech/erigon/cl/phase1/forkchoice/mock_services"
@@ -40,6 +38,8 @@ import (
"github.com/erigontech/erigon/cl/sentinel/communication/ssz_snappy"
"github.com/erigontech/erigon/cl/sentinel/handshake"
"github.com/erigontech/erigon/cl/sentinel/peers"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
var (
diff --git a/cl/sentinel/sentinel.go b/cl/sentinel/sentinel.go
index ea726d4a5d0..48cd9400186 100644
--- a/cl/sentinel/sentinel.go
+++ b/cl/sentinel/sentinel.go
@@ -43,9 +43,6 @@ import (
sentinelrpc "github.com/erigontech/erigon-lib/gointerfaces/sentinelproto"
"github.com/erigontech/erigon-lib/kv"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/discover"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
"github.com/erigontech/erigon/cl/cltypes"
"github.com/erigontech/erigon/cl/monitor"
"github.com/erigontech/erigon/cl/persistence/blob_storage"
@@ -55,6 +52,9 @@ import (
"github.com/erigontech/erigon/cl/sentinel/httpreqresp"
"github.com/erigontech/erigon/cl/sentinel/peers"
"github.com/erigontech/erigon/cl/utils/eth_clock"
+ "github.com/erigontech/erigon/p2p/discover"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
"github.com/erigontech/erigon/turbo/snapshotsync/freezeblocks"
)
diff --git a/cl/sentinel/utils.go b/cl/sentinel/utils.go
index b6c0a48d067..7c04e988542 100644
--- a/cl/sentinel/utils.go
+++ b/cl/sentinel/utils.go
@@ -33,9 +33,9 @@ import (
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
"github.com/erigontech/erigon/cl/gossip"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
func convertToInterfacePubkey(pubkey *ecdsa.PublicKey) (crypto.PubKey, error) {
diff --git a/cmd/bootnode/main.go b/cmd/bootnode/main.go
index b8c62fc4b55..2bc08c2b34b 100644
--- a/cmd/bootnode/main.go
+++ b/cmd/bootnode/main.go
@@ -29,11 +29,11 @@ import (
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/crypto"
- "github.com/erigontech/erigon-p2p/discover"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/nat"
- "github.com/erigontech/erigon-p2p/netutil"
"github.com/erigontech/erigon/cmd/utils"
+ "github.com/erigontech/erigon/p2p/discover"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/nat"
+ "github.com/erigontech/erigon/p2p/netutil"
"github.com/erigontech/erigon/turbo/logging"
)
diff --git a/cmd/devnet/args/node_args.go b/cmd/devnet/args/node_args.go
index cedc3e2b6dd..05ba01ad0f8 100644
--- a/cmd/devnet/args/node_args.go
+++ b/cmd/devnet/args/node_args.go
@@ -27,9 +27,9 @@ import (
"github.com/erigontech/erigon-lib/chain/networkname"
"github.com/erigontech/erigon-lib/crypto"
- "github.com/erigontech/erigon-p2p/enode"
"github.com/erigontech/erigon/cmd/devnet/accounts"
"github.com/erigontech/erigon/core"
+ "github.com/erigontech/erigon/p2p/enode"
"github.com/erigontech/erigon/params"
"github.com/erigontech/erigon/rpc/requests"
)
diff --git a/cmd/devnet/contracts/gen_childreceiver.go b/cmd/devnet/contracts/gen_childreceiver.go
index 1340766ab1c..19f3385f6ab 100644
--- a/cmd/devnet/contracts/gen_childreceiver.go
+++ b/cmd/devnet/contracts/gen_childreceiver.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/cmd/devnet/contracts/gen_childsender.go b/cmd/devnet/contracts/gen_childsender.go
index c111b957f16..4e6c339b512 100644
--- a/cmd/devnet/contracts/gen_childsender.go
+++ b/cmd/devnet/contracts/gen_childsender.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/cmd/devnet/contracts/gen_faucet.go b/cmd/devnet/contracts/gen_faucet.go
index 5b191591915..86fde0fa87f 100644
--- a/cmd/devnet/contracts/gen_faucet.go
+++ b/cmd/devnet/contracts/gen_faucet.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/cmd/devnet/contracts/gen_rootreceiver.go b/cmd/devnet/contracts/gen_rootreceiver.go
index f91f08e6a97..94ea7d97205 100644
--- a/cmd/devnet/contracts/gen_rootreceiver.go
+++ b/cmd/devnet/contracts/gen_rootreceiver.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/cmd/devnet/contracts/gen_rootsender.go b/cmd/devnet/contracts/gen_rootsender.go
index 2bfdf016500..79e3be676c2 100644
--- a/cmd/devnet/contracts/gen_rootsender.go
+++ b/cmd/devnet/contracts/gen_rootsender.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/cmd/devnet/contracts/gen_subscription.go b/cmd/devnet/contracts/gen_subscription.go
index a434bcb2508..528b58b0e5c 100644
--- a/cmd/devnet/contracts/gen_subscription.go
+++ b/cmd/devnet/contracts/gen_subscription.go
@@ -11,7 +11,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/cmd/devnet/contracts/gen_testrootchain.go b/cmd/devnet/contracts/gen_testrootchain.go
index e14930b400c..15c30d715b8 100644
--- a/cmd/devnet/contracts/gen_testrootchain.go
+++ b/cmd/devnet/contracts/gen_testrootchain.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/cmd/devnet/contracts/gen_teststatesender.go b/cmd/devnet/contracts/gen_teststatesender.go
index 4a779069e7d..5325fcaeea8 100644
--- a/cmd/devnet/contracts/gen_teststatesender.go
+++ b/cmd/devnet/contracts/gen_teststatesender.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/cmd/downloader/downloadernat/nat.go b/cmd/downloader/downloadernat/nat.go
index 0ab6ecd1bcb..7a6c715168d 100644
--- a/cmd/downloader/downloadernat/nat.go
+++ b/cmd/downloader/downloadernat/nat.go
@@ -20,7 +20,7 @@ import (
"github.com/anacrolix/torrent"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/nat"
+ "github.com/erigontech/erigon/p2p/nat"
)
// DoNat can mutate `cfg` parameter
diff --git a/cmd/downloader/main.go b/cmd/downloader/main.go
index 3c1c40271a7..921d012c09b 100644
--- a/cmd/downloader/main.go
+++ b/cmd/downloader/main.go
@@ -57,16 +57,16 @@ import (
"github.com/erigontech/erigon-lib/kv"
"github.com/erigontech/erigon-lib/kv/mdbx"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/nat"
"github.com/erigontech/erigon/cmd/downloader/downloadernat"
"github.com/erigontech/erigon/cmd/hack/tool"
"github.com/erigontech/erigon/cmd/utils"
+ "github.com/erigontech/erigon/p2p/nat"
"github.com/erigontech/erigon/params"
- _ "github.com/erigontech/erigon/polygon/heimdall" //hack
"github.com/erigontech/erigon/turbo/debug"
"github.com/erigontech/erigon/turbo/logging"
- _ "github.com/erigontech/erigon-db/snaptype" //hack
+ _ "github.com/erigontech/erigon-db/snaptype" //hack
+ _ "github.com/erigontech/erigon/polygon/heimdall" //hack
)
func main() {
diff --git a/cmd/integration/commands/stages.go b/cmd/integration/commands/stages.go
index e40b6da237e..658bb377131 100644
--- a/cmd/integration/commands/stages.go
+++ b/cmd/integration/commands/stages.go
@@ -53,8 +53,6 @@ import (
"github.com/erigontech/erigon-lib/state/stats"
"github.com/erigontech/erigon-lib/types"
"github.com/erigontech/erigon-lib/wrap"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/sentry"
"github.com/erigontech/erigon/cl/clparams"
"github.com/erigontech/erigon/cmd/hack/tool/fromdb"
"github.com/erigontech/erigon/core"
@@ -70,9 +68,11 @@ import (
"github.com/erigontech/erigon/eth/stagedsync/stages"
"github.com/erigontech/erigon/execution/builder"
"github.com/erigontech/erigon/execution/consensus"
- "github.com/erigontech/erigon/execution/sentry_multi_client"
"github.com/erigontech/erigon/node/migrations"
"github.com/erigontech/erigon/node/nodecfg"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/sentry"
+ "github.com/erigontech/erigon/p2p/sentry/sentry_multi_client"
"github.com/erigontech/erigon/params"
"github.com/erigontech/erigon/polygon/bor"
"github.com/erigontech/erigon/polygon/bridge"
diff --git a/cmd/observer/observer/crawler.go b/cmd/observer/observer/crawler.go
index e251266d3ab..001eb9602fb 100644
--- a/cmd/observer/observer/crawler.go
+++ b/cmd/observer/observer/crawler.go
@@ -28,12 +28,12 @@ import (
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/forkid"
"github.com/erigontech/erigon/cmd/observer/database"
"github.com/erigontech/erigon/cmd/observer/observer/node_utils"
"github.com/erigontech/erigon/cmd/observer/observer/sentry_candidates"
"github.com/erigontech/erigon/cmd/observer/utils"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/forkid"
"github.com/erigontech/erigon/params"
)
diff --git a/cmd/observer/observer/diplomat.go b/cmd/observer/observer/diplomat.go
index 341d9731b45..fd1cbff4358 100644
--- a/cmd/observer/observer/diplomat.go
+++ b/cmd/observer/observer/diplomat.go
@@ -23,9 +23,9 @@ import (
"time"
"github.com/erigontech/erigon-lib/log/v3"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/enode"
"github.com/erigontech/erigon/cmd/observer/database"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/enode"
)
type Diplomat struct {
diff --git a/cmd/observer/observer/handshake.go b/cmd/observer/observer/handshake.go
index fc73f06ac5f..65a3630a76e 100644
--- a/cmd/observer/observer/handshake.go
+++ b/cmd/observer/observer/handshake.go
@@ -29,10 +29,10 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/direct"
"github.com/erigontech/erigon-lib/rlp"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/forkid"
- "github.com/erigontech/erigon-p2p/protocols/eth"
- "github.com/erigontech/erigon-p2p/rlpx"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/forkid"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/rlpx"
"github.com/erigontech/erigon/params"
)
diff --git a/cmd/observer/observer/handshake_test.go b/cmd/observer/observer/handshake_test.go
index fbaa8d7951f..1cb79ca422f 100644
--- a/cmd/observer/observer/handshake_test.go
+++ b/cmd/observer/observer/handshake_test.go
@@ -25,7 +25,7 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/direct"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/enode"
"github.com/erigontech/erigon/params"
)
diff --git a/cmd/observer/observer/interrogator.go b/cmd/observer/observer/interrogator.go
index 5de8d801bc7..da32867ad23 100644
--- a/cmd/observer/observer/interrogator.go
+++ b/cmd/observer/observer/interrogator.go
@@ -28,10 +28,10 @@ import (
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/forkid"
- "github.com/erigontech/erigon-p2p/protocols/eth"
"github.com/erigontech/erigon/cmd/observer/utils"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/forkid"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
type DiscV4Transport interface {
diff --git a/cmd/observer/observer/keygen.go b/cmd/observer/observer/keygen.go
index 1024b7e767b..28245aa2af6 100644
--- a/cmd/observer/observer/keygen.go
+++ b/cmd/observer/observer/keygen.go
@@ -23,7 +23,7 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/enode"
)
func keygen(
diff --git a/cmd/observer/observer/node_utils/node_addr.go b/cmd/observer/observer/node_utils/node_addr.go
index 255ac0f1dad..91685d01d8b 100644
--- a/cmd/observer/observer/node_utils/node_addr.go
+++ b/cmd/observer/observer/node_utils/node_addr.go
@@ -20,10 +20,10 @@ import (
"fmt"
"net"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
"github.com/erigontech/erigon/cmd/observer/database"
"github.com/erigontech/erigon/cmd/observer/utils"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
func MakeNodeAddr(node *enode.Node) database.NodeAddr {
diff --git a/cmd/observer/observer/node_utils/node_id.go b/cmd/observer/observer/node_utils/node_id.go
index 4c902fe47f2..410b8cad3ed 100644
--- a/cmd/observer/observer/node_utils/node_id.go
+++ b/cmd/observer/observer/node_utils/node_id.go
@@ -21,8 +21,8 @@ import (
"fmt"
"net/url"
- "github.com/erigontech/erigon-p2p/enode"
"github.com/erigontech/erigon/cmd/observer/database"
+ "github.com/erigontech/erigon/p2p/enode"
)
func NodeID(node *enode.Node) (database.NodeID, error) {
diff --git a/cmd/observer/observer/sentry_candidates/intake.go b/cmd/observer/observer/sentry_candidates/intake.go
index d5c14ac97a5..47e4027a814 100644
--- a/cmd/observer/observer/sentry_candidates/intake.go
+++ b/cmd/observer/observer/sentry_candidates/intake.go
@@ -24,10 +24,10 @@ import (
"github.com/nxadm/tail"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
"github.com/erigontech/erigon/cmd/observer/database"
"github.com/erigontech/erigon/cmd/observer/observer/node_utils"
"github.com/erigontech/erigon/cmd/observer/utils"
+ "github.com/erigontech/erigon/p2p/enode"
"github.com/erigontech/erigon/params"
)
diff --git a/cmd/observer/observer/sentry_candidates/log.go b/cmd/observer/observer/sentry_candidates/log.go
index 35e3b915d64..69bccd38426 100644
--- a/cmd/observer/observer/sentry_candidates/log.go
+++ b/cmd/observer/observer/sentry_candidates/log.go
@@ -27,7 +27,7 @@ import (
"github.com/nxadm/tail"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
type Log struct {
diff --git a/cmd/observer/observer/server.go b/cmd/observer/observer/server.go
index c3a3ebb6912..a59926894f1 100644
--- a/cmd/observer/observer/server.go
+++ b/cmd/observer/observer/server.go
@@ -26,15 +26,15 @@ import (
"github.com/erigontech/erigon-lib/common/debug"
"github.com/erigontech/erigon-lib/log/v3"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/discover"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
- "github.com/erigontech/erigon-p2p/forkid"
- "github.com/erigontech/erigon-p2p/nat"
- "github.com/erigontech/erigon-p2p/netutil"
- "github.com/erigontech/erigon-p2p/protocols/eth"
"github.com/erigontech/erigon/cmd/utils"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/discover"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
+ "github.com/erigontech/erigon/p2p/forkid"
+ "github.com/erigontech/erigon/p2p/nat"
+ "github.com/erigontech/erigon/p2p/netutil"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
"github.com/erigontech/erigon/params"
)
diff --git a/cmd/observer/utils/pubkey_hex.go b/cmd/observer/utils/pubkey_hex.go
index 049cf1f6062..8b711959b31 100644
--- a/cmd/observer/utils/pubkey_hex.go
+++ b/cmd/observer/utils/pubkey_hex.go
@@ -22,7 +22,7 @@ import (
"fmt"
"github.com/erigontech/erigon-lib/crypto"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/enode"
)
func ParseHexPublicKey(keyStr string) (*ecdsa.PublicKey, error) {
diff --git a/cmd/pics/contracts/gen_token.go b/cmd/pics/contracts/gen_token.go
index f34321e08a1..c3938a281b1 100644
--- a/cmd/pics/contracts/gen_token.go
+++ b/cmd/pics/contracts/gen_token.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/cmd/rpcdaemon/rpcservices/eth_backend.go b/cmd/rpcdaemon/rpcservices/eth_backend.go
index cfdad09a9f6..8f43e92ad96 100644
--- a/cmd/rpcdaemon/rpcservices/eth_backend.go
+++ b/cmd/rpcdaemon/rpcservices/eth_backend.go
@@ -38,8 +38,8 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/types"
- p2p "github.com/erigontech/erigon-p2p"
"github.com/erigontech/erigon/eth/ethconfig"
+ "github.com/erigontech/erigon/p2p"
"github.com/erigontech/erigon/polygon/heimdall"
"github.com/erigontech/erigon/turbo/privateapi"
"github.com/erigontech/erigon/turbo/services"
diff --git a/cmd/sentry/main.go b/cmd/sentry/main.go
index 8b16d38279e..5573b521bb1 100644
--- a/cmd/sentry/main.go
+++ b/cmd/sentry/main.go
@@ -20,13 +20,13 @@ import (
"fmt"
"os"
- "github.com/erigontech/erigon-lib/common"
- "github.com/erigontech/erigon-lib/common/datadir"
"github.com/spf13/cobra"
+ "github.com/erigontech/erigon-lib/common"
+ "github.com/erigontech/erigon-lib/common/datadir"
"github.com/erigontech/erigon-lib/common/paths"
- "github.com/erigontech/erigon-p2p/sentry"
"github.com/erigontech/erigon/cmd/utils"
+ "github.com/erigontech/erigon/p2p/sentry"
"github.com/erigontech/erigon/turbo/debug"
"github.com/erigontech/erigon/turbo/logging"
node2 "github.com/erigontech/erigon/turbo/node"
diff --git a/cmd/snapshots/sync/sync.go b/cmd/snapshots/sync/sync.go
index 025baabd646..57ea781de5d 100644
--- a/cmd/snapshots/sync/sync.go
+++ b/cmd/snapshots/sync/sync.go
@@ -29,27 +29,25 @@ import (
"strings"
"time"
- "github.com/c2h5oh/datasize"
- "github.com/urfave/cli/v2"
- "golang.org/x/sync/errgroup"
-
"github.com/anacrolix/torrent"
"github.com/anacrolix/torrent/metainfo"
"github.com/anacrolix/torrent/storage"
-
- "github.com/erigontech/erigon-lib/common/dbg"
- "github.com/erigontech/erigon-lib/log/v3"
+ "github.com/c2h5oh/datasize"
+ "github.com/urfave/cli/v2"
+ "golang.org/x/sync/errgroup"
"github.com/erigontech/erigon-lib/chain/snapcfg"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/common/datadir"
+ "github.com/erigontech/erigon-lib/common/dbg"
"github.com/erigontech/erigon-lib/downloader"
"github.com/erigontech/erigon-lib/downloader/downloadercfg"
"github.com/erigontech/erigon-lib/downloader/snaptype"
+ "github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/version"
- "github.com/erigontech/erigon-p2p/nat"
"github.com/erigontech/erigon/cmd/downloader/downloadernat"
"github.com/erigontech/erigon/cmd/utils"
+ "github.com/erigontech/erigon/p2p/nat"
"github.com/erigontech/erigon/params"
)
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index 27905eca084..98b3229c02c 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -32,6 +32,10 @@ import (
g "github.com/anacrolix/generics"
"github.com/c2h5oh/datasize"
+ "github.com/spf13/cobra"
+ "github.com/spf13/pflag"
+ "github.com/urfave/cli/v2"
+
"github.com/erigontech/erigon-lib/chain/networkid"
"github.com/erigontech/erigon-lib/chain/networkname"
"github.com/erigontech/erigon-lib/chain/params"
@@ -47,14 +51,6 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/state"
"github.com/erigontech/erigon-lib/types"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/nat"
- "github.com/erigontech/erigon-p2p/netutil"
- "github.com/spf13/cobra"
- "github.com/spf13/pflag"
- "github.com/urfave/cli/v2"
-
"github.com/erigontech/erigon/cl/clparams"
"github.com/erigontech/erigon/cmd/downloader/downloadernat"
"github.com/erigontech/erigon/cmd/utils/flags"
@@ -63,6 +59,10 @@ import (
"github.com/erigontech/erigon/eth/gasprice/gaspricecfg"
"github.com/erigontech/erigon/execution/consensus/ethash/ethashcfg"
"github.com/erigontech/erigon/node/nodecfg"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/nat"
+ "github.com/erigontech/erigon/p2p/netutil"
params2 "github.com/erigontech/erigon/params"
"github.com/erigontech/erigon/polygon/heimdall"
"github.com/erigontech/erigon/rpc/rpccfg"
diff --git a/core/accessors_metadata.go b/core/accessors_metadata.go
index 1ba13252cf7..18c65a66ed6 100644
--- a/core/accessors_metadata.go
+++ b/core/accessors_metadata.go
@@ -57,6 +57,31 @@ func ReadChainConfig(db kv.Getter, hash common.Hash) (*chain.Config, error) {
return &config, nil
}
+// WriteChainConfig writes the chain config settings to the database.
+func WriteChainConfig(db kv.Putter, hash common.Hash, cfg *chain.Config) error {
+ if cfg == nil {
+ return nil
+ }
+
+ if cfg.Bor != nil {
+ borJSON, err := json.Marshal(cfg.Bor)
+ if err != nil {
+ return fmt.Errorf("failed to JSON encode chain config 'bor': %w", err)
+ }
+ cfg.BorJSON = borJSON
+ }
+
+ data, err := json.Marshal(cfg)
+ if err != nil {
+ return fmt.Errorf("failed to JSON encode chain config: %w", err)
+ }
+
+ if err := db.Put(kv.ConfigTable, hash[:], data); err != nil {
+ return fmt.Errorf("failed to store chain config: %w", err)
+ }
+ return nil
+}
+
func WriteGenesisIfNotExist(db kv.RwTx, g *types.Genesis) error {
has, err := db.Has(kv.ConfigTable, kv.GenesisKey)
if err != nil {
diff --git a/core/genesis_write.go b/core/genesis_write.go
index 57a77360afd..7d1d2c6961d 100644
--- a/core/genesis_write.go
+++ b/core/genesis_write.go
@@ -39,14 +39,17 @@ import (
"github.com/erigontech/erigon-db/rawdb"
"github.com/erigontech/erigon-lib/chain"
"github.com/erigontech/erigon-lib/chain/networkname"
+ "github.com/erigontech/erigon-lib/chain/params"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/common/datadir"
"github.com/erigontech/erigon-lib/common/dbg"
+ "github.com/erigontech/erigon-lib/common/empty"
"github.com/erigontech/erigon-lib/common/hexutil"
"github.com/erigontech/erigon-lib/config3"
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/kv"
"github.com/erigontech/erigon-lib/kv/mdbx"
+ "github.com/erigontech/erigon-lib/kv/rawdbv3"
"github.com/erigontech/erigon-lib/kv/temporal"
"github.com/erigontech/erigon-lib/log/v3"
state2 "github.com/erigontech/erigon-lib/state"
@@ -190,7 +193,7 @@ func WriteGenesisBlock(tx kv.RwTx, genesis *types.Genesis, overrideOsakaTime *bi
}
if storedCfg == nil {
logger.Warn("Found genesis block without chain config")
- err1 := rawdb.WriteChainConfig(tx, storedHash, newCfg)
+ err1 := WriteChainConfig(tx, storedHash, newCfg)
if err1 != nil {
return newCfg, nil, err1
}
@@ -212,7 +215,7 @@ func WriteGenesisBlock(tx kv.RwTx, genesis *types.Genesis, overrideOsakaTime *bi
return newCfg, storedBlock, compatibilityErr
}
}
- if err := rawdb.WriteChainConfig(tx, storedHash, newCfg); err != nil {
+ if err := WriteChainConfig(tx, storedHash, newCfg); err != nil {
return newCfg, nil, err
}
return newCfg, storedBlock, nil
@@ -260,10 +263,42 @@ func write(tx kv.RwTx, g *types.Genesis, dirs datadir.Dirs, logger log.Logger) (
if err != nil {
return block, statedb, err
}
- err = rawdb.WriteGenesisBesideState(block, tx, g)
+ err = WriteGenesisBesideState(block, tx, g)
return block, statedb, err
}
+// Write writes the block a genesis specification to the database.
+// The block is committed as the canonical head block.
+func WriteGenesisBesideState(block *types.Block, tx kv.RwTx, g *types.Genesis) error {
+ config := g.Config
+ if config == nil {
+ config = chain.AllProtocolChanges
+ }
+ if err := config.CheckConfigForkOrder(); err != nil {
+ return err
+ }
+
+ if err := rawdb.WriteBlock(tx, block); err != nil {
+ return err
+ }
+ if err := rawdb.WriteTd(tx, block.Hash(), block.NumberU64(), g.Difficulty); err != nil {
+ return err
+ }
+ if err := rawdbv3.TxNums.Append(tx, 0, uint64(block.Transactions().Len()+1)); err != nil {
+ return err
+ }
+
+ if err := rawdb.WriteCanonicalHash(tx, block.Hash(), block.NumberU64()); err != nil {
+ return err
+ }
+
+ rawdb.WriteHeadBlockHash(tx, block.Hash())
+ if err := rawdb.WriteHeadHeaderHash(tx, block.Hash()); err != nil {
+ return err
+ }
+ return WriteChainConfig(tx, block.Hash(), config)
+}
+
// GenesisBlockForTesting creates and writes a block in which addr has the given wei balance.
func GenesisBlockForTesting(db kv.RwDB, addr common.Address, balance *big.Int, dirs datadir.Dirs, logger log.Logger) *types.Block {
g := types.Genesis{Alloc: types.GenesisAlloc{addr: {Balance: balance}}, Config: chain.TestChainConfig}
@@ -431,7 +466,7 @@ func GenesisToBlock(g *types.Genesis, dirs datadir.Dirs, logger log.Logger) (*ty
}
_ = g.Alloc //nil-check
- head, withdrawals := rawdb.GenesisWithoutStateToBlock(g)
+ head, withdrawals := GenesisWithoutStateToBlock(g)
var root common.Hash
var statedb *state.IntraBlockState // reader behind this statedb is dead at the moment of return, tx is rolled back
@@ -545,6 +580,77 @@ func GenesisToBlock(g *types.Genesis, dirs datadir.Dirs, logger log.Logger) (*ty
return types.NewBlock(head, nil, nil, nil, withdrawals), statedb, nil
}
+// GenesisWithoutStateToBlock creates the genesis block, assuming an empty state.
+func GenesisWithoutStateToBlock(g *types.Genesis) (head *types.Header, withdrawals []*types.Withdrawal) {
+ head = &types.Header{
+ Number: new(big.Int).SetUint64(g.Number),
+ Nonce: types.EncodeNonce(g.Nonce),
+ Time: g.Timestamp,
+ ParentHash: g.ParentHash,
+ Extra: g.ExtraData,
+ GasLimit: g.GasLimit,
+ GasUsed: g.GasUsed,
+ Difficulty: g.Difficulty,
+ MixDigest: g.Mixhash,
+ Coinbase: g.Coinbase,
+ BaseFee: g.BaseFee,
+ BlobGasUsed: g.BlobGasUsed,
+ ExcessBlobGas: g.ExcessBlobGas,
+ RequestsHash: g.RequestsHash,
+ Root: empty.RootHash,
+ }
+ if g.AuRaSeal != nil && len(g.AuRaSeal.AuthorityRound.Signature) > 0 {
+ head.AuRaSeal = g.AuRaSeal.AuthorityRound.Signature
+ head.AuRaStep = uint64(g.AuRaSeal.AuthorityRound.Step)
+ }
+ if g.GasLimit == 0 {
+ head.GasLimit = params.GenesisGasLimit
+ }
+ if g.Difficulty == nil {
+ head.Difficulty = params.GenesisDifficulty
+ }
+ if g.Config != nil && g.Config.IsLondon(0) {
+ if g.BaseFee != nil {
+ head.BaseFee = g.BaseFee
+ } else {
+ head.BaseFee = new(big.Int).SetUint64(params.InitialBaseFee)
+ }
+ }
+
+ withdrawals = nil
+ if g.Config != nil && g.Config.IsShanghai(g.Timestamp) {
+ withdrawals = []*types.Withdrawal{}
+ }
+
+ if g.Config != nil && g.Config.IsCancun(g.Timestamp) {
+ if g.BlobGasUsed != nil {
+ head.BlobGasUsed = g.BlobGasUsed
+ } else {
+ head.BlobGasUsed = new(uint64)
+ }
+ if g.ExcessBlobGas != nil {
+ head.ExcessBlobGas = g.ExcessBlobGas
+ } else {
+ head.ExcessBlobGas = new(uint64)
+ }
+ if g.ParentBeaconBlockRoot != nil {
+ head.ParentBeaconBlockRoot = g.ParentBeaconBlockRoot
+ } else {
+ head.ParentBeaconBlockRoot = &common.Hash{}
+ }
+ }
+
+ if g.Config != nil && g.Config.IsPrague(g.Timestamp) {
+ if g.RequestsHash != nil {
+ head.RequestsHash = g.RequestsHash
+ } else {
+ head.RequestsHash = &empty.RequestsHash
+ }
+ }
+
+ return
+}
+
func sortedAllocAddresses(m types.GenesisAlloc) []common.Address {
addrs := make([]common.Address, 0, len(m))
for addr := range m {
diff --git a/core/state/contracts/gen_changer.go b/core/state/contracts/gen_changer.go
index b9ec3a19e9f..cf6b19a1688 100644
--- a/core/state/contracts/gen_changer.go
+++ b/core/state/contracts/gen_changer.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/core/state/contracts/gen_phoenix.go b/core/state/contracts/gen_phoenix.go
index afad35bd313..f85f855a704 100644
--- a/core/state/contracts/gen_phoenix.go
+++ b/core/state/contracts/gen_phoenix.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/core/state/contracts/gen_poly.go b/core/state/contracts/gen_poly.go
index 230647b2944..8dc2a2edafd 100644
--- a/core/state/contracts/gen_poly.go
+++ b/core/state/contracts/gen_poly.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/core/state/contracts/gen_revive.go b/core/state/contracts/gen_revive.go
index 32b410ef4fb..5537907044c 100644
--- a/core/state/contracts/gen_revive.go
+++ b/core/state/contracts/gen_revive.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/core/state/contracts/gen_revive2.go b/core/state/contracts/gen_revive2.go
index 73179e46795..ecf8d8563c1 100644
--- a/core/state/contracts/gen_revive2.go
+++ b/core/state/contracts/gen_revive2.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/core/state/contracts/gen_selfdestruct.go b/core/state/contracts/gen_selfdestruct.go
index b2c78da5aff..e5242cbe706 100644
--- a/core/state/contracts/gen_selfdestruct.go
+++ b/core/state/contracts/gen_selfdestruct.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/erigon-db/interfaces/services.go b/erigon-db/interfaces/services.go
deleted file mode 100644
index 4399ae3a4ad..00000000000
--- a/erigon-db/interfaces/services.go
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright 2024 The Erigon Authors
-// This file is part of Erigon.
-//
-// Erigon is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Erigon is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with Erigon. If not, see .
-
-package interfaces
-
-import (
- "context"
-
- "github.com/erigontech/erigon-lib/common"
- "github.com/erigontech/erigon-lib/kv"
- "github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-lib/types"
-)
-
-type BlockReader interface {
- BlockByNumber(ctx context.Context, db kv.Tx, number uint64) (*types.Block, error)
- BlockByHash(ctx context.Context, db kv.Tx, hash common.Hash) (*types.Block, error)
- CurrentBlock(db kv.Tx) (*types.Block, error)
- BlockWithSenders(ctx context.Context, tx kv.Getter, hash common.Hash, blockNum uint64) (block *types.Block, senders []common.Address, err error)
- IterateFrozenBodies(f func(blockNum, baseTxNum, txCount uint64) error) error
-}
-
-type HeaderReader interface {
- Header(ctx context.Context, tx kv.Getter, hash common.Hash, blockNum uint64) (*types.Header, error)
- HeaderByNumber(ctx context.Context, tx kv.Getter, blockNum uint64) (*types.Header, error)
- HeaderNumber(ctx context.Context, tx kv.Getter, hash common.Hash) (*uint64, error)
- HeaderByHash(ctx context.Context, tx kv.Getter, hash common.Hash) (*types.Header, error)
- ReadAncestor(db kv.Getter, hash common.Hash, number, ancestor uint64, maxNonCanonical *uint64) (common.Hash, uint64)
-
- // HeadersRange - TODO: change it to `stream`
- HeadersRange(ctx context.Context, walker func(header *types.Header) error) error
- Integrity(ctx context.Context) error
-}
-
-type BodyReader interface {
- BodyWithTransactions(ctx context.Context, tx kv.Getter, hash common.Hash, blockNum uint64) (body *types.Body, err error)
- BodyRlp(ctx context.Context, tx kv.Getter, hash common.Hash, blockNum uint64) (bodyRlp rlp.RawValue, err error)
- Body(ctx context.Context, tx kv.Getter, hash common.Hash, blockNum uint64) (body *types.Body, txCount uint32, err error)
- CanonicalBodyForStorage(ctx context.Context, tx kv.Getter, blockNum uint64) (body *types.BodyForStorage, err error)
- HasSenders(ctx context.Context, tx kv.Getter, hash common.Hash, blockNum uint64) (bool, error)
- BlockForTxNum(ctx context.Context, tx kv.Tx, txNum uint64) (uint64, bool, error)
-}
-
-type HeaderAndBodyReader interface {
- BlockReader
- BodyReader
- HeaderReader
-}
diff --git a/erigon-db/rawdb/write_genesis.go b/erigon-db/rawdb/write_genesis.go
deleted file mode 100644
index f3422ac7149..00000000000
--- a/erigon-db/rawdb/write_genesis.go
+++ /dev/null
@@ -1,183 +0,0 @@
-// Copyright 2018 The go-ethereum Authors
-// (original work)
-// Copyright 2024 The Erigon Authors
-// (modifications)
-// This file is part of Erigon.
-//
-// Erigon is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Erigon is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with Erigon. If not, see .
-
-package rawdb
-
-import (
- "context"
- "encoding/json"
- "fmt"
- "math/big"
-
- "github.com/erigontech/erigon-lib/chain"
- "github.com/erigontech/erigon-lib/chain/params"
- "github.com/erigontech/erigon-lib/common"
- "github.com/erigontech/erigon-lib/common/empty"
- "github.com/erigontech/erigon-lib/kv"
- "github.com/erigontech/erigon-lib/kv/rawdbv3"
- "github.com/erigontech/erigon-lib/types"
-)
-
-// GenesisWithoutStateToBlock creates the genesis block, assuming an empty state.
-func GenesisWithoutStateToBlock(g *types.Genesis) (head *types.Header, withdrawals []*types.Withdrawal) {
- head = &types.Header{
- Number: new(big.Int).SetUint64(g.Number),
- Nonce: types.EncodeNonce(g.Nonce),
- Time: g.Timestamp,
- ParentHash: g.ParentHash,
- Extra: g.ExtraData,
- GasLimit: g.GasLimit,
- GasUsed: g.GasUsed,
- Difficulty: g.Difficulty,
- MixDigest: g.Mixhash,
- Coinbase: g.Coinbase,
- BaseFee: g.BaseFee,
- BlobGasUsed: g.BlobGasUsed,
- ExcessBlobGas: g.ExcessBlobGas,
- RequestsHash: g.RequestsHash,
- Root: empty.RootHash,
- }
- if g.AuRaSeal != nil && len(g.AuRaSeal.AuthorityRound.Signature) > 0 {
- head.AuRaSeal = g.AuRaSeal.AuthorityRound.Signature
- head.AuRaStep = uint64(g.AuRaSeal.AuthorityRound.Step)
- }
- if g.GasLimit == 0 {
- head.GasLimit = params.GenesisGasLimit
- }
- if g.Difficulty == nil {
- head.Difficulty = params.GenesisDifficulty
- }
- if g.Config != nil && g.Config.IsLondon(0) {
- if g.BaseFee != nil {
- head.BaseFee = g.BaseFee
- } else {
- head.BaseFee = new(big.Int).SetUint64(params.InitialBaseFee)
- }
- }
-
- withdrawals = nil
- if g.Config != nil && g.Config.IsShanghai(g.Timestamp) {
- withdrawals = []*types.Withdrawal{}
- }
-
- if g.Config != nil && g.Config.IsCancun(g.Timestamp) {
- if g.BlobGasUsed != nil {
- head.BlobGasUsed = g.BlobGasUsed
- } else {
- head.BlobGasUsed = new(uint64)
- }
- if g.ExcessBlobGas != nil {
- head.ExcessBlobGas = g.ExcessBlobGas
- } else {
- head.ExcessBlobGas = new(uint64)
- }
- if g.ParentBeaconBlockRoot != nil {
- head.ParentBeaconBlockRoot = g.ParentBeaconBlockRoot
- } else {
- head.ParentBeaconBlockRoot = &common.Hash{}
- }
- }
-
- if g.Config != nil && g.Config.IsPrague(g.Timestamp) {
- if g.RequestsHash != nil {
- head.RequestsHash = g.RequestsHash
- } else {
- head.RequestsHash = &empty.RequestsHash
- }
- }
-
- return
-}
-
-// WriteChainConfig writes the chain config settings to the database.
-func WriteChainConfig(db kv.Putter, hash common.Hash, cfg *chain.Config) error {
- if cfg == nil {
- return nil
- }
-
- if cfg.Bor != nil {
- borJSON, err := json.Marshal(cfg.Bor)
- if err != nil {
- return fmt.Errorf("failed to JSON encode chain config 'bor': %w", err)
- }
- cfg.BorJSON = borJSON
- }
-
- data, err := json.Marshal(cfg)
- if err != nil {
- return fmt.Errorf("failed to JSON encode chain config: %w", err)
- }
-
- if err := db.Put(kv.ConfigTable, hash[:], data); err != nil {
- return fmt.Errorf("failed to store chain config: %w", err)
- }
- return nil
-}
-
-// Write writes the block a genesis specification to the database.
-// The block is committed as the canonical head block.
-func WriteGenesisBesideState(block *types.Block, tx kv.RwTx, g *types.Genesis) error {
- config := g.Config
- if config == nil {
- config = chain.AllProtocolChanges
- }
- if err := config.CheckConfigForkOrder(); err != nil {
- return err
- }
-
- if err := WriteBlock(tx, block); err != nil {
- return err
- }
- if err := WriteTd(tx, block.Hash(), block.NumberU64(), g.Difficulty); err != nil {
- return err
- }
- if err := rawdbv3.TxNums.Append(tx, 0, uint64(block.Transactions().Len()+1)); err != nil {
- return err
- }
-
- if err := WriteCanonicalHash(tx, block.Hash(), block.NumberU64()); err != nil {
- return err
- }
-
- WriteHeadBlockHash(tx, block.Hash())
- if err := WriteHeadHeaderHash(tx, block.Hash()); err != nil {
- return err
- }
- return WriteChainConfig(tx, block.Hash(), config)
-}
-
-func MustCommitGenesisWithoutState(g *types.Genesis, db kv.RwDB) *types.Block {
- tx, err := db.BeginRw(context.Background())
- if err != nil {
- panic(err)
- }
- defer tx.Rollback()
-
- header, withdrawals := GenesisWithoutStateToBlock(g)
- block := types.NewBlock(header, nil, nil, nil, withdrawals)
- err = WriteGenesisBesideState(block, tx, g)
- if err != nil {
- panic(err)
- }
- err = tx.Commit()
- if err != nil {
- panic(err)
- }
- return block
-}
diff --git a/eth/backend.go b/eth/backend.go
index ff3619e1506..e715ab37b05 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -85,10 +85,6 @@ import (
libstate "github.com/erigontech/erigon-lib/state"
"github.com/erigontech/erigon-lib/types"
"github.com/erigontech/erigon-lib/wrap"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/protocols/eth"
- "github.com/erigontech/erigon-p2p/sentry"
"github.com/erigontech/erigon/cl/clparams"
"github.com/erigontech/erigon/cl/persistence/format/snapshot_format/getters"
executionclient "github.com/erigontech/erigon/cl/phase1/execution_client"
@@ -113,9 +109,13 @@ import (
"github.com/erigontech/erigon/execution/engineapi/engine_helpers"
"github.com/erigontech/erigon/execution/eth1"
"github.com/erigontech/erigon/execution/eth1/eth1_chain_reader"
- "github.com/erigontech/erigon/execution/sentry_multi_client"
"github.com/erigontech/erigon/node"
"github.com/erigontech/erigon/node/nodecfg"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/sentry"
+ "github.com/erigontech/erigon/p2p/sentry/sentry_multi_client"
"github.com/erigontech/erigon/params"
"github.com/erigontech/erigon/polygon/bor"
"github.com/erigontech/erigon/polygon/bor/borcfg"
diff --git a/eth/stagedsync/exec3.go b/eth/stagedsync/exec3.go
index 11cfa0aee5c..e1d6db16270 100644
--- a/eth/stagedsync/exec3.go
+++ b/eth/stagedsync/exec3.go
@@ -27,7 +27,6 @@ import (
"sync/atomic"
"time"
- "github.com/erigontech/erigon-db/interfaces"
"github.com/erigontech/erigon-db/rawdb"
"github.com/erigontech/erigon-db/rawdb/rawdbhelpers"
"github.com/erigontech/erigon-db/rawdb/rawtemporaldb"
@@ -49,6 +48,7 @@ import (
"github.com/erigontech/erigon/eth/ethconfig/estimate"
"github.com/erigontech/erigon/eth/stagedsync/stages"
"github.com/erigontech/erigon/execution/exec3"
+ "github.com/erigontech/erigon/turbo/services"
"github.com/erigontech/erigon/turbo/shards"
)
@@ -952,7 +952,7 @@ func flushAndCheckCommitmentV3(ctx context.Context, header *types.Header, applyT
}
-func blockWithSenders(ctx context.Context, db kv.RoDB, tx kv.Tx, blockReader interfaces.BlockReader, blockNum uint64) (b *types.Block, err error) {
+func blockWithSenders(ctx context.Context, db kv.RoDB, tx kv.Tx, blockReader services.BlockReader, blockNum uint64) (b *types.Block, err error) {
if tx == nil {
tx, err = db.BeginRo(ctx)
if err != nil {
diff --git a/eth/stagedsync/stagedsynctest/harness.go b/eth/stagedsync/stagedsynctest/harness.go
index b293052b215..cf15f61a3e1 100644
--- a/eth/stagedsync/stagedsynctest/harness.go
+++ b/eth/stagedsync/stagedsynctest/harness.go
@@ -31,7 +31,6 @@ import (
"github.com/stretchr/testify/require"
"go.uber.org/mock/gomock"
- "github.com/erigontech/erigon-db/interfaces"
"github.com/erigontech/erigon-db/rawdb"
"github.com/erigontech/erigon-lib/chain"
"github.com/erigontech/erigon-lib/common"
@@ -52,6 +51,7 @@ import (
"github.com/erigontech/erigon/polygon/bor/borcfg"
"github.com/erigontech/erigon/polygon/bor/valset"
"github.com/erigontech/erigon/polygon/heimdall"
+ "github.com/erigontech/erigon/turbo/services"
"github.com/erigontech/erigon/turbo/stages/mock"
)
@@ -155,7 +155,7 @@ type Harness struct {
borConsensusDB kv.RwDB
chainConfig *chain.Config
borConfig *borcfg.BorConfig
- blockReader interfaces.BlockReader
+ blockReader services.BlockReader
stateSyncStages []*stagedsync.Stage
stateSync *stagedsync.Sync
miningSyncStages []*stagedsync.Stage
diff --git a/ethstats/ethstats.go b/ethstats/ethstats.go
index 015817e7a55..909079594a3 100644
--- a/ethstats/ethstats.go
+++ b/ethstats/ethstats.go
@@ -42,10 +42,10 @@ import (
"github.com/erigontech/erigon-lib/kv"
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/sentry"
"github.com/erigontech/erigon/eth/stagedsync/stages"
"github.com/erigontech/erigon/execution/consensus"
"github.com/erigontech/erigon/node"
+ "github.com/erigontech/erigon/p2p/sentry"
"github.com/erigontech/erigon/turbo/services"
)
diff --git a/execution/abi/bind/backends/simulated.go b/execution/abi/bind/backends/simulated.go
index ba723ee2f21..d9b05a41743 100644
--- a/execution/abi/bind/backends/simulated.go
+++ b/execution/abi/bind/backends/simulated.go
@@ -42,7 +42,6 @@ import (
"github.com/erigontech/erigon-lib/kv"
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
"github.com/erigontech/erigon/core"
"github.com/erigontech/erigon/core/state"
"github.com/erigontech/erigon/core/tracing"
@@ -52,6 +51,7 @@ import (
"github.com/erigontech/erigon/execution/consensus"
"github.com/erigontech/erigon/execution/consensus/ethash"
"github.com/erigontech/erigon/execution/consensus/misc"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/turbo/services"
"github.com/erigontech/erigon/turbo/stages/mock"
)
diff --git a/execution/abi/bind/base.go b/execution/abi/bind/base.go
index 72f9426fafd..5a6064b3278 100644
--- a/execution/abi/bind/base.go
+++ b/execution/abi/bind/base.go
@@ -32,7 +32,7 @@ import (
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
)
// SignerFn is a signer function callback when a contract requires a method to
diff --git a/execution/abi/bind/template.go b/execution/abi/bind/template.go
index 7d53613bc88..ae14eaf87a7 100644
--- a/execution/abi/bind/template.go
+++ b/execution/abi/bind/template.go
@@ -101,7 +101,7 @@ import (
"github.com/erigontech/erigon/execution/abi/bind"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
)
// Reference imports to suppress errors if they are not otherwise used.
diff --git a/execution/consensus/aura/auraabi/gen_block_reward.go b/execution/consensus/aura/auraabi/gen_block_reward.go
index 9b9dfddc1ab..2af1a494590 100644
--- a/execution/consensus/aura/auraabi/gen_block_reward.go
+++ b/execution/consensus/aura/auraabi/gen_block_reward.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/execution/consensus/aura/auraabi/gen_validator_set.go b/execution/consensus/aura/auraabi/gen_validator_set.go
index 7f91575e78f..fd68330462b 100644
--- a/execution/consensus/aura/auraabi/gen_validator_set.go
+++ b/execution/consensus/aura/auraabi/gen_validator_set.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/execution/engineapi/engine_server_test.go b/execution/engineapi/engine_server_test.go
index 7706c53d4d4..234d11280eb 100644
--- a/execution/engineapi/engine_server_test.go
+++ b/execution/engineapi/engine_server_test.go
@@ -34,12 +34,12 @@ import (
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/types"
"github.com/erigontech/erigon-lib/wrap"
- "github.com/erigontech/erigon-p2p/protocols/eth"
"github.com/erigontech/erigon/cmd/rpcdaemon/cli/httpcfg"
"github.com/erigontech/erigon/cmd/rpcdaemon/rpcdaemontest"
"github.com/erigontech/erigon/cmd/rpcdaemon/rpcservices"
"github.com/erigontech/erigon/core"
"github.com/erigontech/erigon/eth/ethconfig"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
"github.com/erigontech/erigon/rpc/jsonrpc"
"github.com/erigontech/erigon/rpc/rpccfg"
"github.com/erigontech/erigon/rpc/rpchelper"
diff --git a/execution/exec3/historical_trace_worker.go b/execution/exec3/historical_trace_worker.go
index a262e5d0fb2..54f9d67860f 100644
--- a/execution/exec3/historical_trace_worker.go
+++ b/execution/exec3/historical_trace_worker.go
@@ -26,7 +26,6 @@ import (
"golang.org/x/sync/errgroup"
- "github.com/erigontech/erigon-db/interfaces"
"github.com/erigontech/erigon-lib/chain"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/common/datadir"
@@ -643,7 +642,7 @@ func CustomTraceMapReduce(fromBlock, toBlock uint64, consumer TraceConsumer, ctx
return nil
}
-func blockWithSenders(ctx context.Context, db kv.RoDB, tx kv.Tx, blockReader interfaces.BlockReader, blockNum uint64) (b *types.Block, err error) {
+func blockWithSenders(ctx context.Context, db kv.RoDB, tx kv.Tx, blockReader services.BlockReader, blockNum uint64) (b *types.Block, err error) {
select {
case <-ctx.Done():
return nil, ctx.Err()
diff --git a/execution/exec3/trace_worker.go b/execution/exec3/trace_worker.go
index b8e7e87c386..e543eccf618 100644
--- a/execution/exec3/trace_worker.go
+++ b/execution/exec3/trace_worker.go
@@ -19,7 +19,6 @@ package exec3
import (
"fmt"
- "github.com/erigontech/erigon-db/interfaces"
"github.com/erigontech/erigon-lib/chain"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/kv"
@@ -31,6 +30,7 @@ import (
"github.com/erigontech/erigon/core/vm/evmtypes"
"github.com/erigontech/erigon/execution/consensus"
"github.com/erigontech/erigon/polygon/aa"
+ "github.com/erigontech/erigon/turbo/services"
"github.com/erigontech/erigon/turbo/transactions"
)
@@ -47,7 +47,7 @@ type Resetable interface {
type TraceWorker struct {
stateReader *state.HistoryReaderV3
engine consensus.EngineReader
- headerReader interfaces.HeaderReader
+ headerReader services.HeaderReader
tx kv.Getter
chainConfig *chain.Config
tracer GenericTracer
@@ -64,7 +64,7 @@ type TraceWorker struct {
vmConfig *vm.Config
}
-func NewTraceWorker(tx kv.TemporalTx, cc *chain.Config, engine consensus.EngineReader, br interfaces.HeaderReader, tracer GenericTracer) *TraceWorker {
+func NewTraceWorker(tx kv.TemporalTx, cc *chain.Config, engine consensus.EngineReader, br services.HeaderReader, tracer GenericTracer) *TraceWorker {
stateReader := state.NewHistoryReaderV3()
stateReader.SetTx(tx)
diff --git a/go.mod b/go.mod
index 29e8ed820a7..1bbfd7f185f 100644
--- a/go.mod
+++ b/go.mod
@@ -5,13 +5,11 @@ go 1.24
replace (
github.com/erigontech/erigon-db => ./erigon-db
github.com/erigontech/erigon-lib => ./erigon-lib
- github.com/erigontech/erigon-p2p => ./p2p
)
require (
github.com/erigontech/erigon-db v0.0.0-00010101000000-000000000000
github.com/erigontech/erigon-lib v0.0.0-00010101000000-000000000000
- github.com/erigontech/erigon-p2p v0.0.0-00010101000000-000000000000
)
replace (
@@ -67,6 +65,8 @@ require (
github.com/heimdalr/dag v1.5.0
github.com/holiman/uint256 v1.3.2
github.com/huandu/xstrings v1.5.0
+ github.com/huin/goupnp v1.3.0
+ github.com/jackpal/go-nat-pmp v1.0.2
github.com/jedib0t/go-pretty/v6 v6.5.9
github.com/jinzhu/copier v0.4.0
github.com/json-iterator/go v1.1.12
@@ -80,6 +80,7 @@ require (
github.com/pelletier/go-toml v1.9.5
github.com/pelletier/go-toml/v2 v2.2.4
github.com/pion/randutil v0.1.0
+ github.com/pion/stun v0.6.1
github.com/prysmaticlabs/go-bitfield v0.0.0-20240618144021-706c95b2dd15
github.com/prysmaticlabs/gohashtree v0.0.4-beta
github.com/quasilyte/go-ruleguard/dsl v0.3.22
@@ -101,6 +102,7 @@ require (
golang.org/x/net v0.41.0
golang.org/x/sync v0.15.0
golang.org/x/sys v0.33.0
+ golang.org/x/time v0.12.0
google.golang.org/grpc v1.72.1
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1
google.golang.org/protobuf v1.36.6
@@ -113,55 +115,13 @@ require (
sigs.k8s.io/yaml v1.4.0
)
-require (
- github.com/RoaringBitmap/roaring v1.9.4 // indirect
- github.com/alecthomas/atomic v0.1.0-alpha2 // indirect
- github.com/benesch/cgosymbolizer v0.0.0-20190515212042-bec6fe6e597b // indirect
- github.com/cespare/xxhash v1.1.0 // indirect
- github.com/crate-crypto/go-eth-kzg v1.3.0 // indirect
- github.com/crate-crypto/go-ipa v0.0.0-20221111143132-9aa5d42120bc // indirect
- github.com/elastic/go-freelru v0.16.0 // indirect
- github.com/emirpasic/gods v1.18.1 // indirect
- github.com/erigontech/speedtest v0.0.2 // indirect
- github.com/go-ole/go-ole v1.2.6 // indirect
- github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
- github.com/google/uuid v1.6.0 // indirect
- github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
- github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
- github.com/huin/goupnp v1.3.0 // indirect
- github.com/jackpal/go-nat-pmp v1.0.2 // indirect
- github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
- github.com/nyaosorg/go-windows-shortcut v0.0.0-20220529122037-8b0c89bca4c4 // indirect
- github.com/pion/dtls/v3 v3.0.3 // indirect
- github.com/pion/ice/v4 v4.0.2 // indirect
- github.com/pion/mdns/v2 v2.0.7 // indirect
- github.com/pion/srtp/v3 v3.0.4 // indirect
- github.com/pion/stun v0.6.1 // indirect
- github.com/pion/stun/v3 v3.0.0 // indirect
- github.com/pion/transport/v3 v3.0.7 // indirect
- github.com/pion/turn/v4 v4.0.0 // indirect
- github.com/pion/webrtc/v4 v4.0.0 // indirect
- github.com/pkg/errors v0.9.1 // indirect
- github.com/protolambda/ctxlock v0.1.0 // indirect
- github.com/protolambda/ztyp v0.2.2 // indirect
- github.com/shoenig/go-m1cpu v0.1.6 // indirect
- github.com/tklauser/go-sysconf v0.3.14 // indirect
- github.com/tklauser/numcpus v0.8.0 // indirect
- github.com/ugorji/go/codec v1.2.13 // indirect
- github.com/wlynxg/anet v0.0.5 // indirect
- github.com/yusufpapurcu/wmi v1.2.4 // indirect
- go.opentelemetry.io/auto/sdk v1.1.0 // indirect
- go.opentelemetry.io/otel/metric v1.34.0 // indirect
- golang.org/x/time v0.12.0 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect
-)
-
require (
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver/v3 v3.2.0 // indirect
+ github.com/RoaringBitmap/roaring v1.9.4 // indirect
github.com/agnivade/levenshtein v1.2.1 // indirect
github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0 // indirect
+ github.com/alecthomas/atomic v0.1.0-alpha2 // indirect
github.com/anacrolix/chansync v0.6.0 // indirect
github.com/anacrolix/dht/v2 v2.21.1 // indirect
github.com/anacrolix/envpprof v1.3.0 // indirect
@@ -180,22 +140,29 @@ require (
github.com/bahlo/generic-list-go v0.2.0 // indirect
github.com/benbjohnson/clock v1.3.5 // indirect
github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d // indirect
+ github.com/benesch/cgosymbolizer v0.0.0-20190515212042-bec6fe6e597b // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bits-and-blooms/bitset v1.20.0 // indirect
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect
+ github.com/cespare/xxhash v1.1.0 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/cilium/ebpf v0.11.0 // indirect
github.com/containerd/cgroups v1.1.0 // indirect
github.com/containerd/cgroups/v3 v3.0.3 // indirect
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect
+ github.com/crate-crypto/go-eth-kzg v1.3.0 // indirect
+ github.com/crate-crypto/go-ipa v0.0.0-20221111143132-9aa5d42120bc // indirect
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0
github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91 // indirect
github.com/docker/go-units v0.5.0 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
+ github.com/elastic/go-freelru v0.16.0 // indirect
github.com/elastic/gosigar v0.14.3 // indirect
+ github.com/emirpasic/gods v1.18.1 // indirect
github.com/erigontech/erigon-snapshot v1.3.1-0.20250501041114-4a48ac232c83 // indirect
+ github.com/erigontech/speedtest v0.0.2 // indirect
github.com/flynn/noise v1.1.0 // indirect
github.com/francoispqt/gojay v1.2.13 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
@@ -204,12 +171,17 @@ require (
github.com/go-llsqlite/crawshaw v0.5.6-0.20250312230104-194977a03421 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
+ github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect
github.com/go-stack/stack v1.8.1
+ github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
github.com/godbus/dbus/v5 v5.1.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/google/gopacket v1.1.19 // indirect
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e // indirect
+ github.com/google/uuid v1.6.0 // indirect
+ github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
+ github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
github.com/holiman/bloomfilter/v2 v2.0.3 // indirect
github.com/ianlancetaylor/cgosymbolizer v0.0.0-20241129212102-9c50ad6b591e // indirect
github.com/imdario/mergo v0.3.11 // indirect
@@ -254,30 +226,43 @@ require (
github.com/multiformats/go-multihash v0.2.3 // indirect
github.com/multiformats/go-multistream v0.6.0 // indirect
github.com/multiformats/go-varint v0.0.7 // indirect
+ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/ncruces/go-strftime v0.1.9 // indirect
+ github.com/nyaosorg/go-windows-shortcut v0.0.0-20220529122037-8b0c89bca4c4 // indirect
github.com/onsi/ginkgo/v2 v2.20.2 // indirect
github.com/opencontainers/runtime-spec v1.2.0 // indirect
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
github.com/pion/datachannel v1.5.9 // indirect
github.com/pion/dtls/v2 v2.2.12 // indirect
+ github.com/pion/dtls/v3 v3.0.3 // indirect
github.com/pion/ice/v2 v2.3.36 // indirect
+ github.com/pion/ice/v4 v4.0.2 // indirect
github.com/pion/interceptor v0.1.40 // indirect
github.com/pion/logging v0.2.3 // indirect
github.com/pion/mdns v0.0.12 // indirect
+ github.com/pion/mdns/v2 v2.0.7 // indirect
github.com/pion/rtcp v1.2.15 // indirect
github.com/pion/rtp v1.8.18 // indirect
github.com/pion/sctp v1.8.33 // indirect
github.com/pion/sdp/v3 v3.0.9 // indirect
github.com/pion/srtp/v2 v2.0.20 // indirect
+ github.com/pion/srtp/v3 v3.0.4 // indirect
+ github.com/pion/stun/v3 v3.0.0 // indirect
github.com/pion/transport/v2 v2.2.10 // indirect
+ github.com/pion/transport/v3 v3.0.7 // indirect
github.com/pion/turn/v2 v2.1.6 // indirect
+ github.com/pion/turn/v4 v4.0.0 // indirect
github.com/pion/webrtc/v3 v3.3.4 // indirect
+ github.com/pion/webrtc/v4 v4.0.0 // indirect
+ github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect
github.com/prometheus/client_golang v1.22.0
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.62.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
+ github.com/protolambda/ctxlock v0.1.0 // indirect
+ github.com/protolambda/ztyp v0.2.2 // indirect
github.com/quic-go/qpack v0.5.1 // indirect
github.com/quic-go/quic-go v0.48.2 // indirect
github.com/quic-go/webtransport-go v0.8.1-0.20241018022711-4ac2c9250e66 // indirect
@@ -288,6 +273,7 @@ require (
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/shirou/gopsutil/v4 v4.24.8 // indirect
+ github.com/shoenig/go-m1cpu v0.1.6 // indirect
github.com/shopspring/decimal v1.2.0 // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/sosodev/duration v1.3.1 // indirect
@@ -295,9 +281,16 @@ require (
github.com/spf13/cast v1.5.0 // indirect
github.com/stoewer/go-strcase v1.2.0 // indirect
github.com/supranational/blst v0.3.14
+ github.com/tklauser/go-sysconf v0.3.14 // indirect
+ github.com/tklauser/numcpus v0.8.0 // indirect
+ github.com/ugorji/go/codec v1.2.13 // indirect
+ github.com/wlynxg/anet v0.0.5 // indirect
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect
+ github.com/yusufpapurcu/wmi v1.2.4 // indirect
go.etcd.io/bbolt v1.3.6 // indirect
+ go.opentelemetry.io/auto/sdk v1.1.0 // indirect
go.opentelemetry.io/otel v1.34.0 // indirect
+ go.opentelemetry.io/otel/metric v1.34.0 // indirect
go.opentelemetry.io/otel/trace v1.34.0 // indirect
go.uber.org/dig v1.18.0 // indirect
go.uber.org/fx v1.23.0 // indirect
@@ -305,6 +298,8 @@ require (
golang.org/x/mod v0.25.0 // indirect
golang.org/x/text v0.26.0 // indirect
golang.org/x/tools v0.34.0
+ google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
lukechampine.com/blake3 v1.3.0 // indirect
modernc.org/libc v1.65.10 // indirect
diff --git a/node/node_test.go b/node/node_test.go
index da32c21d892..0e22c431684 100644
--- a/node/node_test.go
+++ b/node/node_test.go
@@ -32,8 +32,8 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/kv"
"github.com/erigontech/erigon-lib/log/v3"
- p2p "github.com/erigontech/erigon-p2p"
"github.com/erigontech/erigon/node/nodecfg"
+ "github.com/erigontech/erigon/p2p"
)
var (
diff --git a/node/nodecfg/config.go b/node/nodecfg/config.go
index 6beefb40600..8ac0c78a8dd 100644
--- a/node/nodecfg/config.go
+++ b/node/nodecfg/config.go
@@ -34,9 +34,9 @@ import (
"github.com/erigontech/erigon-lib/common/paths"
"github.com/erigontech/erigon-lib/kv"
"github.com/erigontech/erigon-lib/log/v3"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/enode"
"github.com/erigontech/erigon/cmd/rpcdaemon/cli/httpcfg"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/enode"
"github.com/erigontech/erigon/rpc/rpccfg"
)
diff --git a/node/nodecfg/defaults.go b/node/nodecfg/defaults.go
index 3c747a18b49..2501940e060 100644
--- a/node/nodecfg/defaults.go
+++ b/node/nodecfg/defaults.go
@@ -21,8 +21,8 @@ package nodecfg
import (
"github.com/erigontech/erigon-lib/direct"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/nat"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/nat"
"github.com/erigontech/erigon/rpc/rpccfg"
)
diff --git a/p2p/Makefile b/p2p/Makefile
deleted file mode 100644
index a9f16069e71..00000000000
--- a/p2p/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-CGO_CXXFLAGS ?= $(shell go env CGO_CXXFLAGS 2>/dev/null)
-ifeq ($(CGO_CXXFLAGS),)
- CGO_CXXFLAGS += -g
- CGO_CXXFLAGS += -O2
-endif
-
-GOTEST = CGO_CXXFLAGS="$(CGO_CXXFLAGS)" go test -trimpath
-
-test-short:
- $(GOTEST) -short -coverprofile=coverage-test.out ./...
-
-test-all:
- $(GOTEST) -coverprofile=coverage-test-all.out ./...
-
-test-all-race:
- $(GOTEST) -coverprofile=coverage-test-all.out -race ./...
diff --git a/p2p/dial.go b/p2p/dial.go
index 10db849d7b9..7d5e223d35e 100644
--- a/p2p/dial.go
+++ b/p2p/dial.go
@@ -34,8 +34,8 @@ import (
"github.com/erigontech/erigon-lib/common/debug"
"github.com/erigontech/erigon-lib/common/mclock"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/netutil"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/netutil"
)
const (
diff --git a/p2p/dial_test.go b/p2p/dial_test.go
index 4b99167a93b..ff67e1985ff 100644
--- a/p2p/dial_test.go
+++ b/p2p/dial_test.go
@@ -33,8 +33,8 @@ import (
"github.com/erigontech/erigon-lib/common/mclock"
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/testlog"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/netutil"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/netutil"
)
// This test checks that dynamic dials are launched from discovery results.
diff --git a/p2p/discover/common.go b/p2p/discover/common.go
index 1c4317ca9f7..f35584c3f39 100644
--- a/p2p/discover/common.go
+++ b/p2p/discover/common.go
@@ -28,9 +28,9 @@ import (
"github.com/erigontech/erigon-lib/common/mclock"
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
- "github.com/erigontech/erigon-p2p/netutil"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
+ "github.com/erigontech/erigon/p2p/netutil"
)
// UDPConn is a network connection on which discovery can operate.
diff --git a/p2p/discover/lookup.go b/p2p/discover/lookup.go
index 81c6b60323d..fdc3d778cb9 100644
--- a/p2p/discover/lookup.go
+++ b/p2p/discover/lookup.go
@@ -23,7 +23,7 @@ import (
"context"
"time"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/enode"
)
// lookup performs a network search for nodes close to the given target. It approaches the
diff --git a/p2p/discover/lookup_util_test.go b/p2p/discover/lookup_util_test.go
index a462ac07a16..d1fee935ec1 100644
--- a/p2p/discover/lookup_util_test.go
+++ b/p2p/discover/lookup_util_test.go
@@ -28,9 +28,9 @@ import (
"testing"
"github.com/erigontech/erigon-lib/crypto"
- "github.com/erigontech/erigon-p2p/discover/v4wire"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/discover/v4wire"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
// This is the test network for the Lookup test.
diff --git a/p2p/discover/node.go b/p2p/discover/node.go
index df840c568f8..fc2ba511e41 100644
--- a/p2p/discover/node.go
+++ b/p2p/discover/node.go
@@ -23,7 +23,7 @@ import (
"net"
"time"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/enode"
)
// node represents a host on the network.
diff --git a/p2p/discover/table.go b/p2p/discover/table.go
index 72ddbc9598b..50204a6b923 100644
--- a/p2p/discover/table.go
+++ b/p2p/discover/table.go
@@ -39,8 +39,8 @@ import (
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/common/debug"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/netutil"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/netutil"
)
const (
diff --git a/p2p/discover/table_test.go b/p2p/discover/table_test.go
index 97b8e72ba6f..a1ada36ef4d 100644
--- a/p2p/discover/table_test.go
+++ b/p2p/discover/table_test.go
@@ -30,9 +30,9 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
- "github.com/erigontech/erigon-p2p/netutil"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
+ "github.com/erigontech/erigon/p2p/netutil"
)
func TestTable_pingReplace(t *testing.T) {
diff --git a/p2p/discover/table_util_test.go b/p2p/discover/table_util_test.go
index 311b782e141..002e79568dc 100644
--- a/p2p/discover/table_util_test.go
+++ b/p2p/discover/table_util_test.go
@@ -34,8 +34,8 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
var nullNode *enode.Node
diff --git a/p2p/discover/v4_lookup_test.go b/p2p/discover/v4_lookup_test.go
index ab5a474ccfe..a38539d0d58 100644
--- a/p2p/discover/v4_lookup_test.go
+++ b/p2p/discover/v4_lookup_test.go
@@ -28,8 +28,8 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/discover/v4wire"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/discover/v4wire"
+ "github.com/erigontech/erigon/p2p/enode"
)
func TestUDPv4_Lookup(t *testing.T) {
diff --git a/p2p/discover/v4_udp.go b/p2p/discover/v4_udp.go
index 23ecb304aed..803d497afff 100644
--- a/p2p/discover/v4_udp.go
+++ b/p2p/discover/v4_udp.go
@@ -36,9 +36,9 @@ import (
"github.com/erigontech/erigon-lib/common/debug"
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/discover/v4wire"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/netutil"
+ "github.com/erigontech/erigon/p2p/discover/v4wire"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/netutil"
)
// Errors
diff --git a/p2p/discover/v4_udp_test.go b/p2p/discover/v4_udp_test.go
index cc89f06779c..fb63a6dd1fc 100644
--- a/p2p/discover/v4_udp_test.go
+++ b/p2p/discover/v4_udp_test.go
@@ -36,9 +36,9 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/testlog"
- "github.com/erigontech/erigon-p2p/discover/v4wire"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/discover/v4wire"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
// shared test variables
diff --git a/p2p/discover/v4wire/v4wire.go b/p2p/discover/v4wire/v4wire.go
index 685ab83b5b6..55d6cb2b41f 100644
--- a/p2p/discover/v4wire/v4wire.go
+++ b/p2p/discover/v4wire/v4wire.go
@@ -33,7 +33,7 @@ import (
"github.com/erigontech/erigon-lib/common/math"
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enr"
)
// RPC packet types
diff --git a/p2p/discover/v5_lookup_test.go b/p2p/discover/v5_lookup_test.go
index fe06c9355fc..4db9bd97711 100644
--- a/p2p/discover/v5_lookup_test.go
+++ b/p2p/discover/v5_lookup_test.go
@@ -24,8 +24,8 @@ import (
"testing"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/discover/v5wire"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/discover/v5wire"
+ "github.com/erigontech/erigon/p2p/enode"
)
// This test checks that lookup works.
diff --git a/p2p/discover/v5_udp.go b/p2p/discover/v5_udp.go
index e7d5d65cb15..ba70d5158b1 100644
--- a/p2p/discover/v5_udp.go
+++ b/p2p/discover/v5_udp.go
@@ -33,14 +33,13 @@ import (
"sync"
"time"
- "github.com/erigontech/erigon-lib/log/v3"
-
"github.com/erigontech/erigon-lib/common/debug"
"github.com/erigontech/erigon-lib/common/mclock"
- "github.com/erigontech/erigon-p2p/discover/v5wire"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
- "github.com/erigontech/erigon-p2p/netutil"
+ "github.com/erigontech/erigon-lib/log/v3"
+ "github.com/erigontech/erigon/p2p/discover/v5wire"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
+ "github.com/erigontech/erigon/p2p/netutil"
)
const (
diff --git a/p2p/discover/v5_udp_integration_test.go b/p2p/discover/v5_udp_integration_test.go
index 20a3f502706..d08576c20fa 100644
--- a/p2p/discover/v5_udp_integration_test.go
+++ b/p2p/discover/v5_udp_integration_test.go
@@ -24,7 +24,7 @@ import (
"time"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/discover/v5wire"
+ "github.com/erigontech/erigon/p2p/discover/v5wire"
)
// This test checks that pending calls are re-sent when a handshake happens.
diff --git a/p2p/discover/v5_udp_test.go b/p2p/discover/v5_udp_test.go
index dd15a92869a..658b0c018d0 100644
--- a/p2p/discover/v5_udp_test.go
+++ b/p2p/discover/v5_udp_test.go
@@ -35,9 +35,9 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/testlog"
- "github.com/erigontech/erigon-p2p/discover/v5wire"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/discover/v5wire"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
func startLocalhostV5(t *testing.T, cfg Config, logger log.Logger) *UDPv5 {
diff --git a/p2p/discover/v5wire/crypto.go b/p2p/discover/v5wire/crypto.go
index 5e933ce0a9b..bed6c46d871 100644
--- a/p2p/discover/v5wire/crypto.go
+++ b/p2p/discover/v5wire/crypto.go
@@ -32,7 +32,7 @@ import (
"github.com/erigontech/erigon-lib/common/math"
"github.com/erigontech/erigon-lib/crypto"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/enode"
)
const (
diff --git a/p2p/discover/v5wire/crypto_test.go b/p2p/discover/v5wire/crypto_test.go
index a68aca6adef..ec459900ef2 100644
--- a/p2p/discover/v5wire/crypto_test.go
+++ b/p2p/discover/v5wire/crypto_test.go
@@ -31,7 +31,7 @@ import (
"github.com/erigontech/erigon-lib/common/hexutil"
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/enode"
)
func TestVector_ECDH(t *testing.T) {
diff --git a/p2p/discover/v5wire/encoding.go b/p2p/discover/v5wire/encoding.go
index 916e4d7503c..22adbfcb6fe 100644
--- a/p2p/discover/v5wire/encoding.go
+++ b/p2p/discover/v5wire/encoding.go
@@ -34,8 +34,8 @@ import (
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/common/mclock"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
// TODO concurrent WHOAREYOU tie-breaker
diff --git a/p2p/discover/v5wire/encoding_test.go b/p2p/discover/v5wire/encoding_test.go
index c15584fb1b3..68ba2598af2 100644
--- a/p2p/discover/v5wire/encoding_test.go
+++ b/p2p/discover/v5wire/encoding_test.go
@@ -40,7 +40,7 @@ import (
"github.com/erigontech/erigon-lib/common/mclock"
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/enode"
)
// To regenerate discv5 test vectors, run
diff --git a/p2p/discover/v5wire/msg.go b/p2p/discover/v5wire/msg.go
index 89bdee59647..c20a5343c7c 100644
--- a/p2p/discover/v5wire/msg.go
+++ b/p2p/discover/v5wire/msg.go
@@ -25,8 +25,8 @@ import (
"github.com/erigontech/erigon-lib/common/mclock"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
// Packet is implemented by all message types.
diff --git a/p2p/discover/v5wire/session.go b/p2p/discover/v5wire/session.go
index e75194c141f..b7fff118697 100644
--- a/p2p/discover/v5wire/session.go
+++ b/p2p/discover/v5wire/session.go
@@ -29,7 +29,7 @@ import (
"github.com/erigontech/erigon-lib/common/mclock"
"github.com/erigontech/erigon-lib/crypto"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/enode"
)
const handshakeTimeout = time.Second
diff --git a/p2p/dnsdisc/client.go b/p2p/dnsdisc/client.go
index b19442e7d27..0431c481764 100644
--- a/p2p/dnsdisc/client.go
+++ b/p2p/dnsdisc/client.go
@@ -37,8 +37,8 @@ import (
"github.com/erigontech/erigon-lib/common/mclock"
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
// Client discovers nodes by querying DNS servers.
diff --git a/p2p/dnsdisc/client_test.go b/p2p/dnsdisc/client_test.go
index 97edeb80311..0cbef07c407 100644
--- a/p2p/dnsdisc/client_test.go
+++ b/p2p/dnsdisc/client_test.go
@@ -34,8 +34,8 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/testlog"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
var signingKeyForTesting, _ = crypto.ToECDSA(hexutil.MustDecode("0xdc599867fc513f8f5e2c2c9c489cde5e71362d1d9ec6e693e0de063236ed1240"))
diff --git a/p2p/dnsdisc/sync.go b/p2p/dnsdisc/sync.go
index de0306bb609..a721c5527b7 100644
--- a/p2p/dnsdisc/sync.go
+++ b/p2p/dnsdisc/sync.go
@@ -25,7 +25,7 @@ import (
"time"
"github.com/erigontech/erigon-lib/common/mclock"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/enode"
)
// This is the number of consecutive leaf requests that may fail before
diff --git a/p2p/dnsdisc/tree.go b/p2p/dnsdisc/tree.go
index 5769aed27f3..9389da3965e 100644
--- a/p2p/dnsdisc/tree.go
+++ b/p2p/dnsdisc/tree.go
@@ -34,8 +34,8 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
// Tree is a merkle tree of node records.
diff --git a/p2p/dnsdisc/tree_test.go b/p2p/dnsdisc/tree_test.go
index 97774b6e34a..ea0a5d11a0b 100644
--- a/p2p/dnsdisc/tree_test.go
+++ b/p2p/dnsdisc/tree_test.go
@@ -26,7 +26,7 @@ import (
"github.com/davecgh/go-spew/spew"
"github.com/erigontech/erigon-lib/common/hexutil"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/enode"
)
func TestParseRoot(t *testing.T) {
diff --git a/p2p/enode/idscheme.go b/p2p/enode/idscheme.go
index b360e04522d..6c53341305c 100644
--- a/p2p/enode/idscheme.go
+++ b/p2p/enode/idscheme.go
@@ -28,8 +28,8 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/discover/v4wire"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/discover/v4wire"
+ "github.com/erigontech/erigon/p2p/enr"
)
// List of known secure identity schemes.
diff --git a/p2p/enode/idscheme_test.go b/p2p/enode/idscheme_test.go
index 8b1ac26d2d1..0e8ff17b57f 100644
--- a/p2p/enode/idscheme_test.go
+++ b/p2p/enode/idscheme_test.go
@@ -31,7 +31,7 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enr"
)
var (
diff --git a/p2p/enode/iter_test.go b/p2p/enode/iter_test.go
index 492c87563b9..7b02083add2 100644
--- a/p2p/enode/iter_test.go
+++ b/p2p/enode/iter_test.go
@@ -26,7 +26,7 @@ import (
"testing"
"time"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enr"
)
func TestReadNodes(t *testing.T) {
diff --git a/p2p/enode/localnode.go b/p2p/enode/localnode.go
index d313e05ec36..51bb52c13bc 100644
--- a/p2p/enode/localnode.go
+++ b/p2p/enode/localnode.go
@@ -30,8 +30,8 @@ import (
"time"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enr"
- "github.com/erigontech/erigon-p2p/netutil"
+ "github.com/erigontech/erigon/p2p/enr"
+ "github.com/erigontech/erigon/p2p/netutil"
)
const (
diff --git a/p2p/enode/localnode_test.go b/p2p/enode/localnode_test.go
index 31ea154178f..079eac85821 100644
--- a/p2p/enode/localnode_test.go
+++ b/p2p/enode/localnode_test.go
@@ -29,7 +29,7 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enr"
)
func newLocalNodeForTesting(tmpDir string, logger log.Logger) (*LocalNode, *DB) {
diff --git a/p2p/enode/node.go b/p2p/enode/node.go
index 7d2b03f57ce..4e21fd591a0 100644
--- a/p2p/enode/node.go
+++ b/p2p/enode/node.go
@@ -30,7 +30,7 @@ import (
"strings"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enr"
)
var errMissingPrefix = errors.New("missing 'enr:' prefix for base64-encoded record")
diff --git a/p2p/enode/node_test.go b/p2p/enode/node_test.go
index d1e726cb01d..9ae2f0790a8 100644
--- a/p2p/enode/node_test.go
+++ b/p2p/enode/node_test.go
@@ -30,7 +30,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enr"
)
var pyRecord, _ = hex.DecodeString("f884b8407098ad865b00a582051940cb9cf36836572411a47278783077011599ed5cd16b76f2635f4e234738f30813a89eb9137e3e3df5266e3a1f11df72ecf1145ccb9c01826964827634826970847f00000189736563703235366b31a103ca634cae0d49acb401d8a4c6b6fe8c55b70d115bf400769cc1400f3258cd31388375647082765f")
diff --git a/p2p/enode/urlv4.go b/p2p/enode/urlv4.go
index 273d7a1d161..a67a6a3c34a 100644
--- a/p2p/enode/urlv4.go
+++ b/p2p/enode/urlv4.go
@@ -30,7 +30,7 @@ import (
"strconv"
"github.com/erigontech/erigon-lib/crypto"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enr"
)
var (
diff --git a/p2p/enode/urlv4_test.go b/p2p/enode/urlv4_test.go
index 8272115dd2f..1798ae59b1a 100644
--- a/p2p/enode/urlv4_test.go
+++ b/p2p/enode/urlv4_test.go
@@ -28,7 +28,7 @@ import (
"testing"
"github.com/erigontech/erigon-lib/crypto"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enr"
)
func init() {
diff --git a/p2p/event/example_feed_test.go b/p2p/event/example_feed_test.go
index fa327192fd2..56b9f1ecfd2 100644
--- a/p2p/event/example_feed_test.go
+++ b/p2p/event/example_feed_test.go
@@ -22,7 +22,7 @@ package event_test
import (
"fmt"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
)
func ExampleFeed_acknowledgedEvents() {
diff --git a/p2p/event/example_scope_test.go b/p2p/event/example_scope_test.go
index f29bcc854a1..b795d71de7b 100644
--- a/p2p/event/example_scope_test.go
+++ b/p2p/event/example_scope_test.go
@@ -23,7 +23,7 @@ import (
"fmt"
"sync"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
)
// This example demonstrates how SubscriptionScope can be used to control the lifetime of
diff --git a/p2p/event/example_subscription_test.go b/p2p/event/example_subscription_test.go
index 6c6e87b5ba3..bebe9039fb5 100644
--- a/p2p/event/example_subscription_test.go
+++ b/p2p/event/example_subscription_test.go
@@ -22,7 +22,7 @@ package event_test
import (
"fmt"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
)
func ExampleNewSubscription() {
diff --git a/p2p/forkid/forkid_test.go b/p2p/forkid/forkid_test.go
index 122e19060bf..cc0c02b1f7e 100644
--- a/p2p/forkid/forkid_test.go
+++ b/p2p/forkid/forkid_test.go
@@ -24,11 +24,186 @@ import (
"math"
"testing"
+ "github.com/erigontech/erigon-lib/chain"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/testutil"
+ "github.com/erigontech/erigon/params"
)
+// TestCreation tests that different genesis and fork rule combinations result in
+// the correct fork ID.
+// Forks before Shanghai are triggered by the block number,
+// while Shanghai and later forks are triggered by the block time.
+func TestCreation(t *testing.T) {
+ t.Parallel()
+ type testcase struct {
+ head uint64
+ time uint64
+ want ID
+ }
+ tests := []struct {
+ config *chain.Config
+ genesis common.Hash
+ cases []testcase
+ }{
+ // Mainnet test cases
+ {
+ params.MainnetChainConfig,
+ params.MainnetGenesisHash,
+ []testcase{
+ {0, 0, ID{Hash: ChecksumToBytes(0xfc64ec04), Next: 1150000}}, // Unsynced
+ {1149999, 1457981342, ID{Hash: ChecksumToBytes(0xfc64ec04), Next: 1150000}}, // Last Frontier block
+ {1150000, 1457981393, ID{Hash: ChecksumToBytes(0x97c2c34c), Next: 1920000}}, // First Homestead block
+ {1919999, 1469020838, ID{Hash: ChecksumToBytes(0x97c2c34c), Next: 1920000}}, // Last Homestead block
+ {1920000, 1469020840, ID{Hash: ChecksumToBytes(0x91d1f948), Next: 2463000}}, // First DAO block
+ {2462999, 1476796747, ID{Hash: ChecksumToBytes(0x91d1f948), Next: 2463000}}, // Last DAO block
+ {2463000, 1476796771, ID{Hash: ChecksumToBytes(0x7a64da13), Next: 2675000}}, // First Tangerine block
+ {2674999, 1479831337, ID{Hash: ChecksumToBytes(0x7a64da13), Next: 2675000}}, // Last Tangerine block
+ {2675000, 1479831344, ID{Hash: ChecksumToBytes(0x3edd5b10), Next: 4370000}}, // First Spurious block
+ {4369999, 1508131303, ID{Hash: ChecksumToBytes(0x3edd5b10), Next: 4370000}}, // Last Spurious block
+ {4370000, 1508131331, ID{Hash: ChecksumToBytes(0xa00bc324), Next: 7280000}}, // First Byzantium block
+ {7279999, 1551383501, ID{Hash: ChecksumToBytes(0xa00bc324), Next: 7280000}}, // Last Byzantium block
+ {7280000, 1551383524, ID{Hash: ChecksumToBytes(0x668db0af), Next: 9069000}}, // First and last Constantinople, first Petersburg block
+ {9068999, 1575764708, ID{Hash: ChecksumToBytes(0x668db0af), Next: 9069000}}, // Last Petersburg block
+ {9069000, 1575764709, ID{Hash: ChecksumToBytes(0x879d6e30), Next: 9200000}}, // First Istanbul block
+ {9199999, 1577953806, ID{Hash: ChecksumToBytes(0x879d6e30), Next: 9200000}}, // Last Istanbul block
+ {9200000, 1577953849, ID{Hash: ChecksumToBytes(0xe029e991), Next: 12244000}}, // First Muir Glacier block
+ {12243999, 1618481214, ID{Hash: ChecksumToBytes(0xe029e991), Next: 12244000}}, // Last Muir Glacier block
+ {12244000, 1618481223, ID{Hash: ChecksumToBytes(0x0eb440f6), Next: 12965000}}, // First Berlin block
+ {12964999, 1628166812, ID{Hash: ChecksumToBytes(0x0eb440f6), Next: 12965000}}, // Last Berlin block
+ {12965000, 1628166822, ID{Hash: ChecksumToBytes(0xb715077d), Next: 13773000}}, // First London block
+ {13772999, 1639079715, ID{Hash: ChecksumToBytes(0xb715077d), Next: 13773000}}, // Last London block
+ {13773000, 1639079723, ID{Hash: ChecksumToBytes(0x20c327fc), Next: 15050000}}, // First Arrow Glacier block
+ {15049999, 1656586434, ID{Hash: ChecksumToBytes(0x20c327fc), Next: 15050000}}, // Last Arrow Glacier block
+ {15050000, 1656586444, ID{Hash: ChecksumToBytes(0xf0afd0e3), Next: 1681338455}}, // First Gray Glacier block
+ {17034869, 1681338443, ID{Hash: ChecksumToBytes(0xf0afd0e3), Next: 1681338455}}, // Last pre-Shanghai block
+ {17034870, 1681338479, ID{Hash: ChecksumToBytes(0xdce96c2d), Next: 1710338135}}, // First Shanghai block
+ {19426586, 1710338123, ID{Hash: ChecksumToBytes(0xdce96c2d), Next: 1710338135}}, // Last Shanghai block
+ {19426587, 1710338135, ID{Hash: ChecksumToBytes(0x9f3d2254), Next: 1746612311}}, // First Cancun block
+ {22432453, 1746612299, ID{Hash: ChecksumToBytes(0x9f3d2254), Next: 1746612311}}, // Last Cancun block (approx.)
+ {22432454, 1746612311, ID{Hash: ChecksumToBytes(0xc376cf8b), Next: 0}}, // First Prague block (approx.)
+ {30000000, 1900000000, ID{Hash: ChecksumToBytes(0xc376cf8b), Next: 0}}, // Future Prague block (mock)
+ },
+ },
+ // Sepolia test cases
+ {
+ params.SepoliaChainConfig,
+ params.SepoliaGenesisHash,
+ []testcase{
+ {0, 1633267481, ID{Hash: ChecksumToBytes(0xfe3366e7), Next: 1735371}}, // Unsynced, last Frontier, Homestead, Tangerine, Spurious, Byzantium, Constantinople, Petersburg, Istanbul, Berlin and first London block
+ {1735370, 1661130096, ID{Hash: ChecksumToBytes(0xfe3366e7), Next: 1735371}}, // Last pre-MergeNetsplit block
+ {1735371, 1661130108, ID{Hash: ChecksumToBytes(0xb96cbd13), Next: 1677557088}}, // First MergeNetsplit block
+ {2990907, 1677557076, ID{Hash: ChecksumToBytes(0xb96cbd13), Next: 1677557088}}, // Last pre-Shanghai block
+ {2990908, 1677557088, ID{Hash: ChecksumToBytes(0xf7f9bc08), Next: 1706655072}}, // First Shanghai block
+ {5187022, 1706655060, ID{Hash: ChecksumToBytes(0xf7f9bc08), Next: 1706655072}}, // Last Shanghai block
+ {5187023, 1706655072, ID{Hash: ChecksumToBytes(0x88cf81d9), Next: 1741159776}}, // First Cancun block
+ {7844466, 1741159764, ID{Hash: ChecksumToBytes(0x88cf81d9), Next: 1741159776}}, // Last Cancun block (approx)
+ {7844467, 1741159776, ID{Hash: ChecksumToBytes(0xed88b5fd), Next: 0}}, // First Prague block (approx)
+ {12000000, 1800000000, ID{Hash: ChecksumToBytes(0xed88b5fd), Next: 0}}, // Future Prague block (mock)
+ },
+ },
+
+ // Holesky test cases
+ {
+ params.HoleskyChainConfig,
+ params.HoleskyGenesisHash,
+ []testcase{
+ {0, 1696000704, ID{Hash: ChecksumToBytes(0xfd4f016b), Next: 1707305664}}, // First Shanghai block
+ {0, 1707305652, ID{Hash: ChecksumToBytes(0xfd4f016b), Next: 1707305664}}, // Last Shanghai block
+ {894733, 1707305676, ID{Hash: ChecksumToBytes(0x9b192ad0), Next: 1740434112}}, // First Cancun block
+ {3655435, 1740434100, ID{Hash: ChecksumToBytes(0x9b192ad0), Next: 1740434112}}, // Last Cancun block (approx)
+ {3655436, 1740434112, ID{Hash: ChecksumToBytes(0xdfbd9bed), Next: 0}}, // First Prague block (approx)
+ {8000000, 1800000000, ID{Hash: ChecksumToBytes(0xdfbd9bed), Next: 0}}, // Future Prague block (mock)
+ },
+ },
+
+ // Hoodi test cases
+ {
+ params.HoodiChainConfig,
+ params.HoodiGenesisHash,
+ []testcase{
+ {0, 174221200, ID{Hash: ChecksumToBytes(0xbef71d30), Next: 1742999832}}, // First Cancun block
+ {50000, 1742999820, ID{Hash: ChecksumToBytes(0xbef71d30), Next: 1742999832}}, // Last Cancun block (approx)
+ {50001, 1742999832, ID{Hash: ChecksumToBytes(0x0929e24e), Next: 0}}, // First Prague block (approx)
+ {8000000, 1800000000, ID{Hash: ChecksumToBytes(0x0929e24e), Next: 0}}, // Future Prague block (mock)
+ },
+ },
+ // Gnosis test cases
+ {
+ params.GnosisChainConfig,
+ params.GnosisGenesisHash,
+ []testcase{
+ {0, 0, ID{Hash: ChecksumToBytes(0xf64909b1), Next: 1604400}}, // Unsynced, last Frontier, Homestead, Tangerine, Spurious, Byzantium
+ {1604399, 1547205885, ID{Hash: ChecksumToBytes(0xf64909b1), Next: 1604400}}, // Last Byzantium block
+ {1604400, 1547205890, ID{Hash: ChecksumToBytes(0xfde2d083), Next: 2508800}}, // First Constantinople block
+ {2508799, 1551879340, ID{Hash: ChecksumToBytes(0xfde2d083), Next: 2508800}}, // Last Constantinople block
+ {2508800, 1551879345, ID{Hash: ChecksumToBytes(0xfc1d8f2f), Next: 7298030}}, // First Petersburg block
+ {7298029, 1576134775, ID{Hash: ChecksumToBytes(0xfc1d8f2f), Next: 7298030}}, // Last Petersburg block
+ {7298030, 1576134780, ID{Hash: ChecksumToBytes(0x54d05e6c), Next: 9186425}}, // First Istanbul block
+ {9186424, 1585729685, ID{Hash: ChecksumToBytes(0x54d05e6c), Next: 9186425}}, // Last Istanbul block
+ {9186425, 1585729690, ID{Hash: ChecksumToBytes(0xb6e6cd81), Next: 16101500}}, // First POSDAO Activation block
+ {16101499, 1621258420, ID{Hash: ChecksumToBytes(0xb6e6cd81), Next: 16101500}}, // Last POSDAO Activation block
+ {16101500, 1621258425, ID{Hash: ChecksumToBytes(0x069a83d9), Next: 19040000}}, // First Berlin block
+ {19039999, 1636753575, ID{Hash: ChecksumToBytes(0x069a83d9), Next: 19040000}}, // Last Berlin block
+ {19040000, 1636753580, ID{Hash: ChecksumToBytes(0x018479d3), Next: 1690889660}}, // First London block
+ {21735000, 1650443255, ID{Hash: ChecksumToBytes(0x018479d3), Next: 1690889660}}, // First GIP-31 block
+ {29242931, 1690889650, ID{Hash: ChecksumToBytes(0x018479d3), Next: 1690889660}}, // Last pre-Shanghai block
+ {29242932, 1690889660, ID{Hash: ChecksumToBytes(0x2efe91ba), Next: 1710181820}}, // First Shanghai block
+ {32880679, 1710181810, ID{Hash: ChecksumToBytes(0x2efe91ba), Next: 1710181820}}, // Last Shanghai block
+ {32880680, 1710181820, ID{Hash: ChecksumToBytes(0x1384dfc1), Next: 1746021820}}, // First Cancun block
+ {39834364, 1746021815, ID{Hash: ChecksumToBytes(0x1384dfc1), Next: 1746021820}}, // Last Cancun block (approx)
+ {39834365, 1746021820, ID{Hash: ChecksumToBytes(0x2f095d4a), Next: 0}}, // First Prague block (approx)
+ {50000000, 1800000000, ID{Hash: ChecksumToBytes(0x2f095d4a), Next: 0}}, // Future Prague block (mock)
+ },
+ },
+ // Chiado test cases
+ {
+ params.ChiadoChainConfig,
+ params.ChiadoGenesisHash,
+ []testcase{
+ {0, 0, ID{Hash: ChecksumToBytes(0x50d39d7b), Next: 1684934220}},
+ {4100418, 1684934215, ID{Hash: ChecksumToBytes(0x50d39d7b), Next: 1684934220}}, // Last pre-Shanghai block
+ {4100419, 1684934220, ID{Hash: ChecksumToBytes(0xa15a4252), Next: 1706724940}}, // First Shanghai block
+ {8021277, 1706724930, ID{Hash: ChecksumToBytes(0xa15a4252), Next: 1706724940}}, // Last Shanghai block
+ {8021278, 1706724940, ID{Hash: ChecksumToBytes(0x5fbc16bc), Next: 1741254220}}, // First Cancun block
+ {14655798, 1741254215, ID{Hash: ChecksumToBytes(0x5fbc16bc), Next: 1741254220}}, // Last Cancun block (approx)
+ {14655799, 1741254220, ID{Hash: ChecksumToBytes(0x8ba51786), Next: 0}}, // First Prague block (approx)
+ {20000000, 1800000000, ID{Hash: ChecksumToBytes(0x8ba51786), Next: 0}}, // Future Prague block (mock)
+ },
+ },
+ // Amoy test cases
+ {
+ params.AmoyChainConfig,
+ params.AmoyGenesisHash,
+ []testcase{
+ {0, 0, ID{Hash: ChecksumToBytes(0xbe06a477), Next: 73100}},
+ {73100, 0, ID{Hash: ChecksumToBytes(0x135d2cd5), Next: 5423600}}, // First London, Jaipur, Delhi, Indore, Agra
+ },
+ },
+ // Bor mainnet test cases
+ {
+ params.BorMainnetChainConfig,
+ params.BorMainnetGenesisHash,
+ []testcase{
+ {0, 0, ID{Hash: ChecksumToBytes(0x0e07e722), Next: 3395000}},
+ {3395000, 0, ID{Hash: ChecksumToBytes(0x27806576), Next: 14750000}}, // First Istanbul block
+ {14750000, 0, ID{Hash: ChecksumToBytes(0x66e26adb), Next: 23850000}}, // First Berlin block
+ {23850000, 0, ID{Hash: ChecksumToBytes(0x4f2f71cc), Next: 50523000}}, // First London block
+ {50523000, 0, ID{Hash: ChecksumToBytes(0xdc08865c), Next: 54876000}}, // First Agra block
+ {54876000, 0, ID{Hash: ChecksumToBytes(0xf097bc13), Next: 0}}, // First Napoli block
+ },
+ },
+ }
+ for i, tt := range tests {
+ for j, ttt := range tt.cases {
+ heightForks, timeForks := GatherForks(tt.config, 0 /* genesisTime */)
+ if have := NewIDFromForks(heightForks, timeForks, tt.genesis, ttt.head, ttt.time); have != ttt.want {
+ t.Errorf("test %d, case %d: fork ID mismatch: have %x, want %x", i, j, have, ttt.want)
+ }
+ }
+ }
+}
+
// TestValidation tests that a local peer correctly validates and accepts a remote
// fork ID.
func TestValidation(t *testing.T) {
@@ -100,9 +275,9 @@ func TestValidation(t *testing.T) {
// fork) at block 7279999, before Petersburg. Local is incompatible.
{7279999, ID{Hash: ChecksumToBytes(0xa00bc324), Next: 7279999}, ErrLocalIncompatibleOrStale},
}
- heightForks, timeForks := GatherForks(testutil.PoWMainnetChainConfig, 0 /* genesisTime */)
+ heightForks, timeForks := GatherForks(params.MainnetChainConfig, 0 /* genesisTime */)
for i, tt := range tests {
- filter := newFilter(heightForks, timeForks, testutil.MainnetGenesisHash, tt.head, 0)
+ filter := newFilter(heightForks, timeForks, params.MainnetGenesisHash, tt.head, 0)
if err := filter(tt.id); err != tt.err {
t.Errorf("test %d: validation error mismatch: have %v, want %v", i, err, tt.err)
}
diff --git a/p2p/go.mod b/p2p/go.mod
deleted file mode 100644
index 5649169f7d4..00000000000
--- a/p2p/go.mod
+++ /dev/null
@@ -1,117 +0,0 @@
-module github.com/erigontech/erigon-p2p
-
-go 1.24
-
-replace (
- github.com/erigontech/erigon-db => ../erigon-db
- github.com/erigontech/erigon-lib => ../erigon-lib
-)
-
-require (
- github.com/erigontech/erigon-db v0.0.0-00010101000000-000000000000
- github.com/erigontech/erigon-lib v0.0.0-00010101000000-000000000000
-)
-
-replace (
- github.com/crate-crypto/go-kzg-4844 => github.com/erigontech/go-kzg-4844 v0.0.0-20250130131058-ce13be60bc86
- github.com/holiman/bloomfilter/v2 => github.com/AskAlexSharov/bloomfilter/v2 v2.0.9
-)
-
-require (
- github.com/c2h5oh/datasize v0.0.0-20231215233829-aa82cc1e6500
- github.com/davecgh/go-spew v1.1.1
- github.com/deckarep/golang-set/v2 v2.8.0
- github.com/erigontech/mdbx-go v0.39.8
- github.com/erigontech/secp256k1 v1.2.0
- github.com/golang/snappy v0.0.1
- github.com/hashicorp/golang-lru/v2 v2.0.7
- github.com/holiman/uint256 v1.3.2
- github.com/huin/goupnp v1.3.0
- github.com/jackpal/go-nat-pmp v1.0.2
- github.com/pion/stun v0.3.5
- github.com/stretchr/testify v1.10.0
- go.uber.org/mock v0.5.0
- golang.org/x/crypto v0.39.0
- golang.org/x/sync v0.15.0
- golang.org/x/time v0.12.0
- google.golang.org/grpc v1.72.1
- google.golang.org/protobuf v1.36.6
-)
-
-require (
- github.com/RoaringBitmap/roaring/v2 v2.5.0 // indirect
- github.com/anacrolix/generics v0.0.3-0.20250526144502-593be7092deb // indirect
- github.com/anacrolix/missinggo v1.3.0 // indirect
- github.com/anacrolix/missinggo/v2 v2.8.1-0.20250604020133-83210197e79c // indirect
- github.com/anacrolix/torrent v1.58.2-0.20250604010703-7c29c120a504 // indirect
- github.com/benesch/cgosymbolizer v0.0.0-20190515212042-bec6fe6e597b // indirect
- github.com/beorn7/perks v1.0.1 // indirect
- github.com/bits-and-blooms/bitset v1.20.0 // indirect
- github.com/cespare/xxhash/v2 v2.3.0 // indirect
- github.com/cilium/ebpf v0.11.0 // indirect
- github.com/consensys/bavard v0.1.29 // indirect
- github.com/consensys/gnark-crypto v0.17.0 // indirect
- github.com/containerd/cgroups/v3 v3.0.3 // indirect
- github.com/coreos/go-systemd/v22 v22.5.0 // indirect
- github.com/crate-crypto/go-eth-kzg v1.3.0 // indirect
- github.com/crate-crypto/go-ipa v0.0.0-20221111143132-9aa5d42120bc // indirect
- github.com/crate-crypto/go-kzg-4844 v1.1.0 // indirect
- github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect
- github.com/docker/go-units v0.5.0 // indirect
- github.com/edsrzf/mmap-go v1.2.0 // indirect
- github.com/elastic/go-freelru v0.16.0 // indirect
- github.com/erigontech/erigon-snapshot v1.3.1-0.20250501041114-4a48ac232c83 // indirect
- github.com/erigontech/speedtest v0.0.2 // indirect
- github.com/gballet/go-verkle v0.0.0-20221121182333-31427a1f2d35 // indirect
- github.com/go-ole/go-ole v1.2.6 // indirect
- github.com/go-stack/stack v1.8.1 // indirect
- github.com/godbus/dbus/v5 v5.0.4 // indirect
- github.com/gofrs/flock v0.12.1 // indirect
- github.com/google/btree v1.1.3 // indirect
- github.com/gorilla/websocket v1.5.3 // indirect
- github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
- github.com/holiman/bloomfilter/v2 v2.0.3 // indirect
- github.com/huandu/xstrings v1.4.0 // indirect
- github.com/ianlancetaylor/cgosymbolizer v0.0.0-20241129212102-9c50ad6b591e // indirect
- github.com/klauspost/compress v1.18.0 // indirect
- github.com/klauspost/cpuid/v2 v2.2.3 // indirect
- github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect
- github.com/mattn/go-colorable v0.1.13 // indirect
- github.com/mattn/go-isatty v0.0.20 // indirect
- github.com/minio/sha256-simd v1.0.0 // indirect
- github.com/mmcloughlin/addchain v0.4.0 // indirect
- github.com/mr-tron/base58 v1.2.0 // indirect
- github.com/mschoch/smat v0.2.0 // indirect
- github.com/multiformats/go-multihash v0.2.3 // indirect
- github.com/multiformats/go-varint v0.0.6 // indirect
- github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
- github.com/nyaosorg/go-windows-shortcut v0.0.0-20220529122037-8b0c89bca4c4 // indirect
- github.com/opencontainers/runtime-spec v1.2.0 // indirect
- github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
- github.com/pelletier/go-toml/v2 v2.2.4 // indirect
- github.com/pmezard/go-difflib v1.0.0 // indirect
- github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect
- github.com/prometheus/client_golang v1.22.0 // indirect
- github.com/prometheus/client_model v0.6.1 // indirect
- github.com/prometheus/common v0.62.0 // indirect
- github.com/prometheus/procfs v0.15.1 // indirect
- github.com/protolambda/ztyp v0.2.2 // indirect
- github.com/shirou/gopsutil/v4 v4.24.8 // indirect
- github.com/shoenig/go-m1cpu v0.1.6 // indirect
- github.com/sirupsen/logrus v1.9.3 // indirect
- github.com/spaolacci/murmur3 v1.1.0 // indirect
- github.com/tidwall/btree v1.6.0 // indirect
- github.com/tklauser/go-sysconf v0.3.14 // indirect
- github.com/tklauser/numcpus v0.8.0 // indirect
- github.com/ugorji/go/codec v1.2.13 // indirect
- github.com/valyala/fastjson v1.6.4 // indirect
- github.com/yusufpapurcu/wmi v1.2.4 // indirect
- golang.org/x/exp v0.0.0-20250606033433-dcc06ee1d476 // indirect
- golang.org/x/net v0.41.0 // indirect
- golang.org/x/sys v0.33.0 // indirect
- golang.org/x/text v0.26.0 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect
- gopkg.in/yaml.v3 v3.0.1 // indirect
- lukechampine.com/blake3 v1.1.6 // indirect
- rsc.io/tmplfunc v0.0.3 // indirect
-)
diff --git a/p2p/go.sum b/p2p/go.sum
deleted file mode 100644
index 2abd347a82f..00000000000
--- a/p2p/go.sum
+++ /dev/null
@@ -1,533 +0,0 @@
-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-crawshaw.io/iox v0.0.0-20181124134642-c51c3df30797/go.mod h1:sXBiorCo8c46JlQV3oXPKINnZ8mcqnye1EkVkqsectk=
-crawshaw.io/sqlite v0.3.2/go.mod h1:igAO5JulrQ1DbdZdtVq48mnZUBAPOeFzer7VhDWNtW4=
-github.com/AskAlexSharov/bloomfilter/v2 v2.0.9 h1:BuZqNjRlYmcXJIsI7nrIkejYMz9mgFi7ZsNFCbSPpaI=
-github.com/AskAlexSharov/bloomfilter/v2 v2.0.9/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA=
-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/RoaringBitmap/roaring v0.4.7/go.mod h1:8khRDP4HmeXns4xIj9oGrKSz7XTQiJx2zgh7AcNke4w=
-github.com/RoaringBitmap/roaring v0.4.17/go.mod h1:D3qVegWTmfCaX4Bl5CrBE9hfrSrrXIr8KVNvRsDi1NI=
-github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo=
-github.com/RoaringBitmap/roaring/v2 v2.5.0 h1:TJ45qCM7D7fIEBwKd9zhoR0/S1egfnSSIzLU1e1eYLY=
-github.com/RoaringBitmap/roaring/v2 v2.5.0/go.mod h1:FiJcsfkGje/nZBZgCu0ZxCPOKD/hVXDS2dXi7/eUFE0=
-github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
-github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
-github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/anacrolix/dht/v2 v2.21.1 h1:s1rKkfLLcmBHKv4v/mtMkIeHIEptzEFiB6xVu54+5/o=
-github.com/anacrolix/dht/v2 v2.21.1/go.mod h1:SDGC+sEs1pnO2sJGYuhvIis7T8749dDHNfcjtdH4e3g=
-github.com/anacrolix/envpprof v0.0.0-20180404065416-323002cec2fa/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c=
-github.com/anacrolix/envpprof v1.0.0/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c=
-github.com/anacrolix/envpprof v1.1.0/go.mod h1:My7T5oSqVfEn4MD4Meczkw/f5lSIndGAKu/0SM/rkf4=
-github.com/anacrolix/generics v0.0.3-0.20250526144502-593be7092deb h1:0GzqbT+KzmrpXsqEp6O3t6qfydTQuqvgo3nTJEC1EGA=
-github.com/anacrolix/generics v0.0.3-0.20250526144502-593be7092deb/go.mod h1:MN3ve08Z3zSV/rTuX/ouI4lNdlfTxgdafQJiLzyNRB8=
-github.com/anacrolix/log v0.3.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU=
-github.com/anacrolix/log v0.6.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU=
-github.com/anacrolix/missinggo v1.1.0/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo=
-github.com/anacrolix/missinggo v1.1.2-0.20190815015349-b888af804467/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo=
-github.com/anacrolix/missinggo v1.2.1/go.mod h1:J5cMhif8jPmFoC3+Uvob3OXXNIhOUikzMt+uUjeM21Y=
-github.com/anacrolix/missinggo v1.3.0 h1:06HlMsudotL7BAELRZs0yDZ4yVXsHXGi323QBjAVASw=
-github.com/anacrolix/missinggo v1.3.0/go.mod h1:bqHm8cE8xr+15uVfMG3BFui/TxyB6//H5fwlq/TeqMc=
-github.com/anacrolix/missinggo/perf v1.0.0/go.mod h1:ljAFWkBuzkO12MQclXzZrosP5urunoLS0Cbvb4V0uMQ=
-github.com/anacrolix/missinggo/v2 v2.2.0/go.mod h1:o0jgJoYOyaoYQ4E2ZMISVa9c88BbUBVQQW4QeRkNCGY=
-github.com/anacrolix/missinggo/v2 v2.5.1/go.mod h1:WEjqh2rmKECd0t1VhQkLGTdIWXO6f6NLjp5GlMZ+6FA=
-github.com/anacrolix/missinggo/v2 v2.8.1-0.20250604020133-83210197e79c h1:G03Pz6KUd3iPhg0+2O/dJ4zo9KeHL52H9eS8SrFhICk=
-github.com/anacrolix/missinggo/v2 v2.8.1-0.20250604020133-83210197e79c/go.mod h1:vVO5FEziQm+NFmJesc7StpkquZk+WJFCaL0Wp//2sa0=
-github.com/anacrolix/multiless v0.4.0 h1:lqSszHkliMsZd2hsyrDvHOw4AbYWa+ijQ66LzbjqWjM=
-github.com/anacrolix/multiless v0.4.0/go.mod h1:zJv1JF9AqdZiHwxqPgjuOZDGWER6nyE48WBCi/OOrMM=
-github.com/anacrolix/stm v0.2.0/go.mod h1:zoVQRvSiGjGoTmbM0vSLIiaKjWtNPeTvXUSdJQA4hsg=
-github.com/anacrolix/tagflag v0.0.0-20180109131632-2146c8d41bf0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw=
-github.com/anacrolix/tagflag v1.0.0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw=
-github.com/anacrolix/tagflag v1.1.0/go.mod h1:Scxs9CV10NQatSmbyjqmqmeQNwGzlNe0CMUMIxqHIG8=
-github.com/anacrolix/torrent v1.58.2-0.20250604010703-7c29c120a504 h1:aR8+KgSwjGwo2RQZXfl0GkY0MXUe9vT2OMDzkOjh9zc=
-github.com/anacrolix/torrent v1.58.2-0.20250604010703-7c29c120a504/go.mod h1:/qqh4bedh4ZGvCTGE/woEtH/CGDt2XBRAh5d0myjna0=
-github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
-github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
-github.com/benbjohnson/immutable v0.2.0/go.mod h1:uc6OHo6PN2++n98KHLxW8ef4W42ylHiQSENghE1ezxI=
-github.com/benesch/cgosymbolizer v0.0.0-20190515212042-bec6fe6e597b h1:5JgaFtHFRnOPReItxvhMDXbvuBkjSWE+9glJyF466yw=
-github.com/benesch/cgosymbolizer v0.0.0-20190515212042-bec6fe6e597b/go.mod h1:eMD2XUcPsHYbakFEocKrWZp47G0MRJYoC60qFblGjpA=
-github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
-github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
-github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
-github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
-github.com/bits-and-blooms/bitset v1.12.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
-github.com/bits-and-blooms/bitset v1.20.0 h1:2F+rfL86jE2d/bmw7OhqUg2Sj/1rURkBn3MdfoPyRVU=
-github.com/bits-and-blooms/bitset v1.20.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
-github.com/bradfitz/iter v0.0.0-20140124041915-454541ec3da2/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo=
-github.com/bradfitz/iter v0.0.0-20190303215204-33e6a9893b0c/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo=
-github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 h1:GKTyiRCL6zVf5wWaqKnf+7Qs6GbEPfd4iMOitWzXJx8=
-github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8/go.mod h1:spo1JLcs67NmW1aVLEgtA8Yy1elc+X8y5SRW1sFW4Og=
-github.com/c2h5oh/datasize v0.0.0-20231215233829-aa82cc1e6500 h1:6lhrsTEnloDPXyeZBvSYvQf8u86jbKehZPVDDlkgDl4=
-github.com/c2h5oh/datasize v0.0.0-20231215233829-aa82cc1e6500/go.mod h1:S/7n9copUssQ56c7aAgHqftWO4LTf4xY6CGWt8Bc+3M=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
-github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cilium/ebpf v0.11.0 h1:V8gS/bTCCjX9uUnkUFUpPsksM8n1lXBAvHcpiFk1X2Y=
-github.com/cilium/ebpf v0.11.0/go.mod h1:WE7CZAnqOL2RouJ4f1uyNhqr2P4CCvXFIqdRDUgWsVs=
-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
-github.com/consensys/bavard v0.1.29 h1:fobxIYksIQ+ZSrTJUuQgu+HIJwclrAPcdXqd7H2hh1k=
-github.com/consensys/bavard v0.1.29/go.mod h1:k/zVjHHC4B+PQy1Pg7fgvG3ALicQw540Crag8qx+dZs=
-github.com/consensys/gnark-crypto v0.17.0 h1:vKDhZMOrySbpZDCvGMOELrHFv/A9mJ7+9I8HEfRZSkI=
-github.com/consensys/gnark-crypto v0.17.0/go.mod h1:A2URlMHUT81ifJ0UlLzSlm7TmnE3t7VxEThApdMukJw=
-github.com/containerd/cgroups/v3 v3.0.3 h1:S5ByHZ/h9PMe5IOQoN7E+nMc2UcLEM/V48DGDJ9kip0=
-github.com/containerd/cgroups/v3 v3.0.3/go.mod h1:8HBe7V3aWGLFPd/k03swSIsGjZhHI2WzJmticMgVuz0=
-github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
-github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
-github.com/crate-crypto/go-eth-kzg v1.3.0 h1:05GrhASN9kDAidaFJOda6A4BEvgvuXbazXg/0E3OOdI=
-github.com/crate-crypto/go-eth-kzg v1.3.0/go.mod h1:J9/u5sWfznSObptgfa92Jq8rTswn6ahQWEuiLHOjCUI=
-github.com/crate-crypto/go-ipa v0.0.0-20221111143132-9aa5d42120bc h1:mtR7MuscVeP/s0/ERWA2uSr5QOrRYy1pdvZqG1USfXI=
-github.com/crate-crypto/go-ipa v0.0.0-20221111143132-9aa5d42120bc/go.mod h1:gFnFS95y8HstDP6P9pPwzrxOOC5TRDkwbM+ao15ChAI=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/deckarep/golang-set/v2 v2.8.0 h1:swm0rlPCmdWn9mESxKOjWk8hXSqoxOp+ZlfuyaAdFlQ=
-github.com/deckarep/golang-set/v2 v2.8.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4=
-github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y=
-github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo=
-github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg=
-github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0=
-github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
-github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
-github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
-github.com/dustin/go-humanize v0.0.0-20180421182945-02af3965c54e/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
-github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
-github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
-github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
-github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
-github.com/edsrzf/mmap-go v1.2.0 h1:hXLYlkbaPzt1SaQk+anYwKSRNhufIDCchSPkUD6dD84=
-github.com/edsrzf/mmap-go v1.2.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q=
-github.com/elastic/go-freelru v0.16.0 h1:gG2HJ1WXN2tNl5/p40JS/l59HjvjRhjyAa+oFTRArYs=
-github.com/elastic/go-freelru v0.16.0/go.mod h1:bSdWT4M0lW79K8QbX6XY2heQYSCqD7THoYf82pT/H3I=
-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/erigontech/erigon-snapshot v1.3.1-0.20250501041114-4a48ac232c83 h1:q/bh24/m3V0FIHdLU+eYwoFtHd1x4khYyHhujDaiWek=
-github.com/erigontech/erigon-snapshot v1.3.1-0.20250501041114-4a48ac232c83/go.mod h1:ooHlCl+eEYzebiPu+FP6Q6SpPUeMADn8Jxabv3IKb9M=
-github.com/erigontech/go-kzg-4844 v0.0.0-20250130131058-ce13be60bc86 h1:UKcIbFZUGIKzK4aQbkv/dYiOVxZSUuD3zKadhmfwdwU=
-github.com/erigontech/go-kzg-4844 v0.0.0-20250130131058-ce13be60bc86/go.mod h1:JolLjpSff1tCCJKaJx4psrlEdlXuJEC996PL3tTAFks=
-github.com/erigontech/mdbx-go v0.39.8 h1:Hp2pjywZexBA3EQQSU9KM1nUpHIppMNHbX8OMGc5tlM=
-github.com/erigontech/mdbx-go v0.39.8/go.mod h1:tHUS492F5YZvccRqatNdpTDQAaN+Vv4HRARYq89KqeY=
-github.com/erigontech/secp256k1 v1.2.0 h1:Q/HCBMdYYT0sh1xPZ9ZYEnU30oNyb/vt715cJhj7n7A=
-github.com/erigontech/secp256k1 v1.2.0/go.mod h1:GokhPepsMB+EYDs7I5JZCprxHW6+yfOcJKaKtoZ+Fls=
-github.com/erigontech/speedtest v0.0.2 h1:W9Cvky/8AMUtUONwkLA/dZjeQ2XfkBdYfJzvhMZUO+U=
-github.com/erigontech/speedtest v0.0.2/go.mod h1:vulsRNiM51BmSTbVtch4FWxKxx53pS2D35lZTtao0bw=
-github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
-github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
-github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/gballet/go-verkle v0.0.0-20221121182333-31427a1f2d35 h1:I8QswD9gf3VEpr7bpepKKOm7ChxFITIG+oc1I5/S0no=
-github.com/gballet/go-verkle v0.0.0-20221121182333-31427a1f2d35/go.mod h1:DMDd04jjQgdynaAwbEgiRERIGpC8fDjx0+y06an7Psg=
-github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=
-github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=
-github.com/glycerine/go-unsnap-stream v0.0.0-20190901134440-81cf024a9e0a/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=
-github.com/glycerine/goconvey v0.0.0-20180728074245-46e3a41ad493/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
-github.com/glycerine/goconvey v0.0.0-20190315024820-982ee783a72e/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
-github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
-github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
-github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
-github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
-github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
-github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
-github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
-github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
-github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
-github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
-github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
-github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw=
-github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4=
-github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U=
-github.com/go-test/deep v1.1.1/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
-github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA=
-github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
-github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E=
-github.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0=
-github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
-github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
-github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
-github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
-github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
-github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
-github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
-github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
-github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
-github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
-github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
-github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
-github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
-github.com/gopherjs/gopherjs v0.0.0-20190309154008-847fc94819f9/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
-github.com/gopherjs/gopherjs v0.0.0-20190910122728-9d188e94fb99/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
-github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
-github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
-github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
-github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
-github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI=
-github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8=
-github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
-github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
-github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw=
-github.com/holiman/uint256 v1.3.2 h1:a9EgMPSC1AAaj1SZL5zIQD3WbwTuHrMGOerLjGmM/TA=
-github.com/holiman/uint256 v1.3.2/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E=
-github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
-github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo=
-github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4=
-github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
-github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU=
-github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
-github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc=
-github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8=
-github.com/ianlancetaylor/cgosymbolizer v0.0.0-20241129212102-9c50ad6b591e h1:8AnObPi8WmIgjwcidUxaREhXMSpyUJeeSrIkZTXdabw=
-github.com/ianlancetaylor/cgosymbolizer v0.0.0-20241129212102-9c50ad6b591e/go.mod h1:DvXTE/K/RtHehxU8/GtDs4vFtfw64jJ3PaCnFri8CRg=
-github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus=
-github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc=
-github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
-github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
-github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
-github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
-github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
-github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
-github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
-github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
-github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
-github.com/klauspost/cpuid/v2 v2.2.3 h1:sxCkb+qR91z4vsqw4vGGZlDgPz3G7gjaLyK3V8y70BU=
-github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
-github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
-github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
-github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
-github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
-github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
-github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8=
-github.com/leanovate/gopter v0.2.11 h1:vRjThO1EKPb/1NsDXuDrzldR28RLkBflWYcU9CvzWu4=
-github.com/leanovate/gopter v0.2.11/go.mod h1:aK3tzZP/C+p1m3SPRE4SYZFGP7jjkuSI4f7Xvpt0S9c=
-github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY=
-github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE=
-github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
-github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
-github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
-github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
-github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
-github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
-github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g=
-github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM=
-github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY=
-github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU=
-github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU=
-github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
-github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
-github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg=
-github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM=
-github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw=
-github.com/multiformats/go-multihash v0.2.3 h1:7Lyc8XfX/IY2jWb/gI7JP+o7JEq9hOa7BFvVU9RSh+U=
-github.com/multiformats/go-multihash v0.2.3/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsCKRVch90MdaGiKsvSM=
-github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY=
-github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=
-github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
-github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
-github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/nyaosorg/go-windows-shortcut v0.0.0-20220529122037-8b0c89bca4c4 h1:+3bXHpIl3RiBuPKlqeCZZeShGHC9RFhR/P2OJfOLRyA=
-github.com/nyaosorg/go-windows-shortcut v0.0.0-20220529122037-8b0c89bca4c4/go.mod h1:9YR30vCq/4djj0WO7AvLm48YvNs7M094LWRieEFDE4A=
-github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
-github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk=
-github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
-github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
-github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0=
-github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y=
-github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
-github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
-github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
-github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
-github.com/pion/stun v0.3.5 h1:uLUCBCkQby4S1cf6CGuR9QrVOKcvUwFeemaC865QHDg=
-github.com/pion/stun v0.3.5/go.mod h1:gDMim+47EeEtfWogA37n6qXZS88L5V6LqFcf+DZA2UA=
-github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI=
-github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
-github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
-github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
-github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
-github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q=
-github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0=
-github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
-github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
-github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
-github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io=
-github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I=
-github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
-github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
-github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
-github.com/protolambda/ztyp v0.2.2 h1:rVcL3vBu9W/aV646zF6caLS/dyn9BN8NYiuJzicLNyY=
-github.com/protolambda/ztyp v0.2.2/go.mod h1:9bYgKGqg3wJqT9ac1gI2hnVb0STQq7p/1lapqrqY1dU=
-github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
-github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
-github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
-github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8=
-github.com/shirou/gopsutil/v4 v4.24.8 h1:pVQjIenQkIhqO81mwTaXjTzOMT7d3TZkf43PlVFHENI=
-github.com/shirou/gopsutil/v4 v4.24.8/go.mod h1:wE0OrJtj4dG+hYkxqDH3QiBICdKSf04/npcvLLc/oRg=
-github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM=
-github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ=
-github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU=
-github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k=
-github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
-github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
-github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
-github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
-github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
-github.com/smartystreets/assertions v0.0.0-20190215210624-980c5ac6f3ac/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
-github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
-github.com/smartystreets/goconvey v0.0.0-20190306220146-200a235640ff/go.mod h1:KSQcGKpxUMHk3nbYzs/tIBAM2iDooCn0BmttHOJEbLs=
-github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
-github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
-github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
-github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg=
-github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY=
-github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
-github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
-github.com/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
-github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU=
-github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY=
-github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY=
-github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE=
-github.com/ugorji/go/codec v1.2.13 h1:6nvAfJXxwEVFG0UdQwvobVN44a+xQAFiQajSG1Z6bU8=
-github.com/ugorji/go/codec v1.2.13/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
-github.com/valyala/fastjson v1.6.4 h1:uAUNq9Z6ymTgGhcm0UynUAB6tlbakBrz6CQFax3BXVQ=
-github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY=
-github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
-github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
-github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
-github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
-go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
-go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
-go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
-go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
-go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
-go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=
-go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI=
-go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ=
-go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE=
-go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A=
-go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU=
-go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk=
-go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w=
-go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=
-go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
-go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
-go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
-go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
-go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
-go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU=
-go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM=
-go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
-go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
-golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM=
-golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20250606033433-dcc06ee1d476 h1:bsqhLWFR6G6xiQcb+JoGqdKdRU6WzPWmK8E0jxTjzo4=
-golang.org/x/exp v0.0.0-20250606033433-dcc06ee1d476/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8=
-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
-golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
-golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8=
-golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200413165638-669c56c373c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20211020174200-9d6173849985/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
-golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
-golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
-golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE=
-golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
-golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 h1:fc6jSaCT0vBduLYZHYrBBNY4dsWuvgyff9noRNDdBeE=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
-google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
-google.golang.org/grpc v1.72.1 h1:HR03wO6eyZ7lknl75XlxABNVLLFc2PAb6mHlYh756mA=
-google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM=
-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
-google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
-google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
-gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
-gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
-gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
-gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
-gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-lukechampine.com/blake3 v1.1.6 h1:H3cROdztr7RCfoaTpGZFQsrqvweFLrqS73j7L7cmR5c=
-lukechampine.com/blake3 v1.1.6/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA=
-rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU=
-rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA=
diff --git a/p2p/message.go b/p2p/message.go
index cb7aeb80262..04f6330abc8 100644
--- a/p2p/message.go
+++ b/p2p/message.go
@@ -30,8 +30,8 @@ import (
"github.com/erigontech/erigon-lib/common/debug"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/event"
)
// Msg defines the structure of a p2p message.
diff --git a/p2p/peer.go b/p2p/peer.go
index 7707f5aaeab..65774d8fc4c 100644
--- a/p2p/peer.go
+++ b/p2p/peer.go
@@ -35,9 +35,9 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/metrics"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
+ "github.com/erigontech/erigon/p2p/event"
)
var (
diff --git a/p2p/peer_test.go b/p2p/peer_test.go
index d83085aa988..ceaa018e9f2 100644
--- a/p2p/peer_test.go
+++ b/p2p/peer_test.go
@@ -32,9 +32,8 @@ import (
"time"
"github.com/erigontech/erigon-lib/log/v3"
-
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
var discard = Protocol{
diff --git a/p2p/protocol.go b/p2p/protocol.go
index 36cbed69fa3..9a16a69c9d4 100644
--- a/p2p/protocol.go
+++ b/p2p/protocol.go
@@ -22,8 +22,8 @@ package p2p
import (
"fmt"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
)
// Protocol represents a P2P subprotocol implementation.
diff --git a/p2p/protocols/eth/discovery.go b/p2p/protocols/eth/discovery.go
index 508f83e181a..0840cd4057c 100644
--- a/p2p/protocols/eth/discovery.go
+++ b/p2p/protocols/eth/discovery.go
@@ -24,8 +24,8 @@ import (
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/enr"
- "github.com/erigontech/erigon-p2p/forkid"
+ "github.com/erigontech/erigon/p2p/enr"
+ "github.com/erigontech/erigon/p2p/forkid"
)
// enrEntry is the ENR entry which advertises `eth` protocol on the discovery.
diff --git a/p2p/protocols/eth/handlers.go b/p2p/protocols/eth/handlers.go
index 701cde5f32d..aedf8598448 100644
--- a/p2p/protocols/eth/handlers.go
+++ b/p2p/protocols/eth/handlers.go
@@ -23,7 +23,6 @@ import (
"context"
"fmt"
- "github.com/erigontech/erigon-db/interfaces"
"github.com/erigontech/erigon-db/rawdb"
"github.com/erigontech/erigon-lib/chain"
"github.com/erigontech/erigon-lib/common"
@@ -32,9 +31,10 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/types"
+ "github.com/erigontech/erigon/turbo/services"
)
-func AnswerGetBlockHeadersQuery(db kv.Tx, query *GetBlockHeadersPacket, blockReader interfaces.HeaderReader) ([]*types.Header, error) {
+func AnswerGetBlockHeadersQuery(db kv.Tx, query *GetBlockHeadersPacket, blockReader services.HeaderReader) ([]*types.Header, error) {
hashMode := query.Origin.Hash != (common.Hash{})
first := true
maxNonCanonical := uint64(100)
@@ -143,7 +143,7 @@ func AnswerGetBlockHeadersQuery(db kv.Tx, query *GetBlockHeadersPacket, blockRea
return headers, nil
}
-func AnswerGetBlockBodiesQuery(db kv.Tx, query GetBlockBodiesPacket, blockReader interfaces.HeaderAndBodyReader) []rlp.RawValue { //nolint:unparam
+func AnswerGetBlockBodiesQuery(db kv.Tx, query GetBlockBodiesPacket, blockReader services.HeaderAndBodyReader) []rlp.RawValue { //nolint:unparam
// Gather blocks until the fetch or network limits is reached
var bytes int
bodies := make([]rlp.RawValue, 0, len(query))
@@ -214,7 +214,7 @@ func AnswerGetReceiptsQueryCacheOnly(ctx context.Context, receiptsGetter Receipt
}, needMore, nil
}
-func AnswerGetReceiptsQuery(ctx context.Context, cfg *chain.Config, receiptsGetter ReceiptsGetter, br interfaces.HeaderAndBodyReader, db kv.TemporalTx, query GetReceiptsPacket, cachedReceipts *cachedReceipts) ([]rlp.RawValue, error) { //nolint:unparam
+func AnswerGetReceiptsQuery(ctx context.Context, cfg *chain.Config, receiptsGetter ReceiptsGetter, br services.HeaderAndBodyReader, db kv.TemporalTx, query GetReceiptsPacket, cachedReceipts *cachedReceipts) ([]rlp.RawValue, error) { //nolint:unparam
// Gather state data until the fetch or network limits is reached
var (
bytes int
diff --git a/p2p/protocols/eth/protocol.go b/p2p/protocols/eth/protocol.go
index 2847d5bee5b..1625f2d6f5b 100644
--- a/p2p/protocols/eth/protocol.go
+++ b/p2p/protocols/eth/protocol.go
@@ -29,7 +29,7 @@ import (
proto_sentry "github.com/erigontech/erigon-lib/gointerfaces/sentryproto"
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/forkid"
+ "github.com/erigontech/erigon/p2p/forkid"
)
var ProtocolToString = map[uint]string{
diff --git a/p2p/rlpx/rlpx_test.go b/p2p/rlpx/rlpx_test.go
index f45eed244f9..f556c38a3fa 100644
--- a/p2p/rlpx/rlpx_test.go
+++ b/p2p/rlpx/rlpx_test.go
@@ -37,7 +37,7 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/crypto/ecies"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/pipes"
+ "github.com/erigontech/erigon/p2p/pipes"
)
type message struct {
diff --git a/p2p/sentry/eth_handshake.go b/p2p/sentry/eth_handshake.go
index b4bb0559f80..e6edbbd59f1 100644
--- a/p2p/sentry/eth_handshake.go
+++ b/p2p/sentry/eth_handshake.go
@@ -21,9 +21,9 @@ import (
"github.com/erigontech/erigon-lib/gointerfaces"
proto_sentry "github.com/erigontech/erigon-lib/gointerfaces/sentryproto"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/forkid"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/forkid"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
func readAndValidatePeerStatusMessage(
diff --git a/p2p/sentry/eth_handshake_test.go b/p2p/sentry/eth_handshake_test.go
index 688b4210cc3..dab4a660a0f 100644
--- a/p2p/sentry/eth_handshake_test.go
+++ b/p2p/sentry/eth_handshake_test.go
@@ -27,29 +27,29 @@ import (
"github.com/erigontech/erigon-lib/direct"
"github.com/erigontech/erigon-lib/gointerfaces"
proto_sentry "github.com/erigontech/erigon-lib/gointerfaces/sentryproto"
- "github.com/erigontech/erigon-p2p/forkid"
- "github.com/erigontech/erigon-p2p/protocols/eth"
- "github.com/erigontech/erigon-p2p/testutil"
+ "github.com/erigontech/erigon/p2p/forkid"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
+ "github.com/erigontech/erigon/params"
)
func TestCheckPeerStatusCompatibility(t *testing.T) {
var version uint = direct.ETH67
- networkID := testutil.PoWMainnetChainConfig.ChainID.Uint64()
- heightForks, timeForks := forkid.GatherForks(testutil.PoWMainnetChainConfig, 0 /* genesisTime */)
+ networkID := params.MainnetChainConfig.ChainID.Uint64()
+ heightForks, timeForks := forkid.GatherForks(params.MainnetChainConfig, 0 /* genesisTime */)
goodReply := eth.StatusPacket{
ProtocolVersion: uint32(version),
NetworkID: networkID,
TD: big.NewInt(0),
Head: common.Hash{},
- Genesis: testutil.MainnetGenesisHash,
- ForkID: forkid.NewIDFromForks(heightForks, timeForks, testutil.MainnetGenesisHash, 0, 0),
+ Genesis: params.MainnetGenesisHash,
+ ForkID: forkid.NewIDFromForks(heightForks, timeForks, params.MainnetGenesisHash, 0, 0),
}
status := proto_sentry.StatusData{
NetworkId: networkID,
TotalDifficulty: gointerfaces.ConvertUint256IntToH256(new(uint256.Int)),
BestHash: nil,
ForkData: &proto_sentry.Forks{
- Genesis: gointerfaces.ConvertHashToH256(testutil.MainnetGenesisHash),
+ Genesis: gointerfaces.ConvertHashToH256(params.MainnetGenesisHash),
HeightForks: heightForks,
TimeForks: timeForks,
},
diff --git a/p2p/sentry/sentry_grpc_server.go b/p2p/sentry/sentry_grpc_server.go
index a749b54f60b..91d3b8eea32 100644
--- a/p2p/sentry/sentry_grpc_server.go
+++ b/p2p/sentry/sentry_grpc_server.go
@@ -52,11 +52,11 @@ import (
proto_types "github.com/erigontech/erigon-lib/gointerfaces/typesproto"
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/rlp"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/dnsdisc"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/forkid"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/dnsdisc"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/forkid"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
const (
diff --git a/p2p/sentry/sentry_grpc_server_test.go b/p2p/sentry/sentry_grpc_server_test.go
index 0cf4217567b..62fc45c97ee 100644
--- a/p2p/sentry/sentry_grpc_server_test.go
+++ b/p2p/sentry/sentry_grpc_server_test.go
@@ -34,9 +34,11 @@ import (
proto_sentry "github.com/erigontech/erigon-lib/gointerfaces/sentryproto"
"github.com/erigontech/erigon-lib/kv"
"github.com/erigontech/erigon-lib/kv/temporal/temporaltest"
+ "github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/types"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/forkid"
+ "github.com/erigontech/erigon/core"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/forkid"
)
func testSentryServer(db kv.Getter, genesis *types.Genesis, genesisHash common.Hash) *GrpcServer {
@@ -103,8 +105,8 @@ func testForkIDSplit(t *testing.T, protocol uint) {
gspecNoFork = &types.Genesis{Config: configNoFork}
gspecProFork = &types.Genesis{Config: configProFork}
- genesisNoFork = rawdb.MustCommitGenesisWithoutState(gspecNoFork, dbNoFork)
- genesisProFork = rawdb.MustCommitGenesisWithoutState(gspecProFork, dbProFork)
+ genesisNoFork = core.MustCommitGenesis(gspecNoFork, dbNoFork, datadir.New(t.TempDir()), log.Root())
+ genesisProFork = core.MustCommitGenesis(gspecProFork, dbProFork, datadir.New(t.TempDir()), log.Root())
)
var s1, s2 *GrpcServer
@@ -201,7 +203,7 @@ func TestSentryServerImpl_SetStatusInitPanic(t *testing.T) {
configNoFork := &chain.Config{HomesteadBlock: big.NewInt(1), ChainID: big.NewInt(1)}
dbNoFork := temporaltest.NewTestDB(t, datadir.New(t.TempDir()))
gspecNoFork := &types.Genesis{Config: configNoFork}
- genesisNoFork := rawdb.MustCommitGenesisWithoutState(gspecNoFork, dbNoFork)
+ genesisNoFork := core.MustCommitGenesis(gspecNoFork, dbNoFork, datadir.New(t.TempDir()), log.Root())
ss := &GrpcServer{p2p: &p2p.Config{LookupBootnodeURLs: emptyBootnodeURL, LookupDNSNetwork: mainnetDNSNetwork}}
_, err := ss.SetStatus(context.Background(), &proto_sentry.StatusData{
diff --git a/execution/sentry_multi_client/broadcast.go b/p2p/sentry/sentry_multi_client/broadcast.go
similarity index 97%
rename from execution/sentry_multi_client/broadcast.go
rename to p2p/sentry/sentry_multi_client/broadcast.go
index f477b2923b5..537e1bf2904 100644
--- a/execution/sentry_multi_client/broadcast.go
+++ b/p2p/sentry/sentry_multi_client/broadcast.go
@@ -29,8 +29,8 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/types"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
"github.com/erigontech/erigon/turbo/stages/headerdownload"
)
diff --git a/execution/sentry_multi_client/sentry_api.go b/p2p/sentry/sentry_multi_client/sentry_api.go
similarity index 98%
rename from execution/sentry_multi_client/sentry_api.go
rename to p2p/sentry/sentry_multi_client/sentry_api.go
index 42d7bc053ee..e4f79655c87 100644
--- a/execution/sentry_multi_client/sentry_api.go
+++ b/p2p/sentry/sentry_multi_client/sentry_api.go
@@ -26,8 +26,8 @@ import (
"github.com/erigontech/erigon-lib/gointerfaces"
proto_sentry "github.com/erigontech/erigon-lib/gointerfaces/sentryproto"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/protocols/eth"
- "github.com/erigontech/erigon-p2p/sentry"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/sentry"
"github.com/erigontech/erigon/turbo/stages/bodydownload"
"github.com/erigontech/erigon/turbo/stages/headerdownload"
)
diff --git a/execution/sentry_multi_client/sentry_multi_client.go b/p2p/sentry/sentry_multi_client/sentry_multi_client.go
similarity index 99%
rename from execution/sentry_multi_client/sentry_multi_client.go
rename to p2p/sentry/sentry_multi_client/sentry_multi_client.go
index d0d0a76a9ad..79f4f9015fb 100644
--- a/execution/sentry_multi_client/sentry_multi_client.go
+++ b/p2p/sentry/sentry_multi_client/sentry_multi_client.go
@@ -44,10 +44,10 @@ import (
libsentry "github.com/erigontech/erigon-lib/p2p/sentry"
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/protocols/eth"
- "github.com/erigontech/erigon-p2p/sentry"
"github.com/erigontech/erigon/eth/ethconfig"
"github.com/erigontech/erigon/execution/consensus"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/sentry"
"github.com/erigontech/erigon/rpc/jsonrpc/receipts"
"github.com/erigontech/erigon/turbo/services"
"github.com/erigontech/erigon/turbo/stages/bodydownload"
diff --git a/p2p/sentry/sentrymultiplexer_test.go b/p2p/sentry/sentrymultiplexer_test.go
index 5408b7266cd..f790a8d7d4d 100644
--- a/p2p/sentry/sentrymultiplexer_test.go
+++ b/p2p/sentry/sentrymultiplexer_test.go
@@ -23,7 +23,7 @@ import (
"github.com/erigontech/erigon-lib/gointerfaces/sentryproto"
"github.com/erigontech/erigon-lib/gointerfaces/typesproto"
"github.com/erigontech/erigon-lib/p2p/sentry"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/enode"
)
func newClient(ctrl *gomock.Controller, i int, caps []string) *direct.MockSentryClient {
diff --git a/p2p/sentry/status_data_provider.go b/p2p/sentry/status_data_provider.go
index d615c760dd1..cbc53803b5a 100644
--- a/p2p/sentry/status_data_provider.go
+++ b/p2p/sentry/status_data_provider.go
@@ -32,7 +32,7 @@ import (
"github.com/erigontech/erigon-lib/kv"
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/forkid"
+ "github.com/erigontech/erigon/p2p/forkid"
)
var ErrNoHead = errors.New("ReadChainHead: ReadCurrentHeader error")
diff --git a/p2p/server.go b/p2p/server.go
index e72397a5c58..35d96b79271 100644
--- a/p2p/server.go
+++ b/p2p/server.go
@@ -41,12 +41,12 @@ import (
"github.com/erigontech/erigon-lib/common/mclock"
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/discover"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
- "github.com/erigontech/erigon-p2p/event"
- "github.com/erigontech/erigon-p2p/nat"
- "github.com/erigontech/erigon-p2p/netutil"
+ "github.com/erigontech/erigon/p2p/discover"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
+ "github.com/erigontech/erigon/p2p/event"
+ "github.com/erigontech/erigon/p2p/nat"
+ "github.com/erigontech/erigon/p2p/netutil"
)
const (
diff --git a/p2p/server_test.go b/p2p/server_test.go
index 7343a7d9461..49a3cf8bc2f 100644
--- a/p2p/server_test.go
+++ b/p2p/server_test.go
@@ -34,9 +34,9 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/enr"
- "github.com/erigontech/erigon-p2p/rlpx"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/enr"
+ "github.com/erigontech/erigon/p2p/rlpx"
)
type testTransport struct {
diff --git a/p2p/testutil/testutil.go b/p2p/testutil/testutil.go
deleted file mode 100644
index 745fed60cea..00000000000
--- a/p2p/testutil/testutil.go
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2025 The Erigon Authors
-// This file is part of Erigon.
-//
-// Erigon is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Erigon is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with Erigon. If not, see .
-
-package testutil
-
-import (
- "math/big"
-
- "github.com/erigontech/erigon-lib/chain"
- "github.com/erigontech/erigon-lib/common"
-)
-
-var (
- PoWMainnetChainConfig = &chain.Config{
- ChainID: big.NewInt(1),
- HomesteadBlock: big.NewInt(1150000),
- DAOForkBlock: big.NewInt(1920000),
- TangerineWhistleBlock: big.NewInt(2463000),
- SpuriousDragonBlock: big.NewInt(2675000),
- ByzantiumBlock: big.NewInt(4370000),
- ConstantinopleBlock: big.NewInt(7280000),
- PetersburgBlock: big.NewInt(7280000),
- IstanbulBlock: big.NewInt(9069000),
- MuirGlacierBlock: big.NewInt(9200000),
- BerlinBlock: big.NewInt(12244000),
- LondonBlock: big.NewInt(12965000),
- ArrowGlacierBlock: big.NewInt(13773000),
- GrayGlacierBlock: big.NewInt(15050000),
- Ethash: new(chain.EthashConfig),
- }
-
- MainnetGenesisHash = common.HexToHash("0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3")
-)
diff --git a/p2p/transport.go b/p2p/transport.go
index 1ff161c9d20..d3c4bb8f0d4 100644
--- a/p2p/transport.go
+++ b/p2p/transport.go
@@ -33,7 +33,7 @@ import (
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/common/bitutil"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/rlpx"
+ "github.com/erigontech/erigon/p2p/rlpx"
)
const (
diff --git a/p2p/transport_test.go b/p2p/transport_test.go
index f874f62b9fa..f2289515c39 100644
--- a/p2p/transport_test.go
+++ b/p2p/transport_test.go
@@ -30,7 +30,7 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/pipes"
+ "github.com/erigontech/erigon/p2p/pipes"
)
func TestProtocolHandshake(t *testing.T) {
diff --git a/params/forkid_test.go b/params/forkid_test.go
deleted file mode 100644
index b78aafea807..00000000000
--- a/params/forkid_test.go
+++ /dev/null
@@ -1,203 +0,0 @@
-// Copyright 2019 The go-ethereum Authors
-// (original work)
-// Copyright 2024 The Erigon Authors
-// (modifications)
-// This file is part of Erigon.
-//
-// Erigon is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Erigon is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with Erigon. If not, see .
-
-package params_test
-
-import (
- "testing"
-
- "github.com/erigontech/erigon-lib/chain"
- "github.com/erigontech/erigon-lib/common"
- "github.com/erigontech/erigon-p2p/forkid"
- "github.com/erigontech/erigon/params"
-)
-
-// TestCreation tests that different genesis and fork rule combinations result in
-// the correct fork ID.
-// Forks before Shanghai are triggered by the block number,
-// while Shanghai and later forks are triggered by the block time.
-func TestCreation(t *testing.T) {
- t.Parallel()
- type testcase struct {
- head uint64
- time uint64
- want forkid.ID
- }
- tests := []struct {
- config *chain.Config
- genesis common.Hash
- cases []testcase
- }{
- // Mainnet test cases
- {
- params.MainnetChainConfig,
- params.MainnetGenesisHash,
- []testcase{
- {0, 0, forkid.ID{Hash: forkid.ChecksumToBytes(0xfc64ec04), Next: 1150000}}, // Unsynced
- {1149999, 1457981342, forkid.ID{Hash: forkid.ChecksumToBytes(0xfc64ec04), Next: 1150000}}, // Last Frontier block
- {1150000, 1457981393, forkid.ID{Hash: forkid.ChecksumToBytes(0x97c2c34c), Next: 1920000}}, // First Homestead block
- {1919999, 1469020838, forkid.ID{Hash: forkid.ChecksumToBytes(0x97c2c34c), Next: 1920000}}, // Last Homestead block
- {1920000, 1469020840, forkid.ID{Hash: forkid.ChecksumToBytes(0x91d1f948), Next: 2463000}}, // First DAO block
- {2462999, 1476796747, forkid.ID{Hash: forkid.ChecksumToBytes(0x91d1f948), Next: 2463000}}, // Last DAO block
- {2463000, 1476796771, forkid.ID{Hash: forkid.ChecksumToBytes(0x7a64da13), Next: 2675000}}, // First Tangerine block
- {2674999, 1479831337, forkid.ID{Hash: forkid.ChecksumToBytes(0x7a64da13), Next: 2675000}}, // Last Tangerine block
- {2675000, 1479831344, forkid.ID{Hash: forkid.ChecksumToBytes(0x3edd5b10), Next: 4370000}}, // First Spurious block
- {4369999, 1508131303, forkid.ID{Hash: forkid.ChecksumToBytes(0x3edd5b10), Next: 4370000}}, // Last Spurious block
- {4370000, 1508131331, forkid.ID{Hash: forkid.ChecksumToBytes(0xa00bc324), Next: 7280000}}, // First Byzantium block
- {7279999, 1551383501, forkid.ID{Hash: forkid.ChecksumToBytes(0xa00bc324), Next: 7280000}}, // Last Byzantium block
- {7280000, 1551383524, forkid.ID{Hash: forkid.ChecksumToBytes(0x668db0af), Next: 9069000}}, // First and last Constantinople, first Petersburg block
- {9068999, 1575764708, forkid.ID{Hash: forkid.ChecksumToBytes(0x668db0af), Next: 9069000}}, // Last Petersburg block
- {9069000, 1575764709, forkid.ID{Hash: forkid.ChecksumToBytes(0x879d6e30), Next: 9200000}}, // First Istanbul block
- {9199999, 1577953806, forkid.ID{Hash: forkid.ChecksumToBytes(0x879d6e30), Next: 9200000}}, // Last Istanbul block
- {9200000, 1577953849, forkid.ID{Hash: forkid.ChecksumToBytes(0xe029e991), Next: 12244000}}, // First Muir Glacier block
- {12243999, 1618481214, forkid.ID{Hash: forkid.ChecksumToBytes(0xe029e991), Next: 12244000}}, // Last Muir Glacier block
- {12244000, 1618481223, forkid.ID{Hash: forkid.ChecksumToBytes(0x0eb440f6), Next: 12965000}}, // First Berlin block
- {12964999, 1628166812, forkid.ID{Hash: forkid.ChecksumToBytes(0x0eb440f6), Next: 12965000}}, // Last Berlin block
- {12965000, 1628166822, forkid.ID{Hash: forkid.ChecksumToBytes(0xb715077d), Next: 13773000}}, // First London block
- {13772999, 1639079715, forkid.ID{Hash: forkid.ChecksumToBytes(0xb715077d), Next: 13773000}}, // Last London block
- {13773000, 1639079723, forkid.ID{Hash: forkid.ChecksumToBytes(0x20c327fc), Next: 15050000}}, // First Arrow Glacier block
- {15049999, 1656586434, forkid.ID{Hash: forkid.ChecksumToBytes(0x20c327fc), Next: 15050000}}, // Last Arrow Glacier block
- {15050000, 1656586444, forkid.ID{Hash: forkid.ChecksumToBytes(0xf0afd0e3), Next: 1681338455}}, // First Gray Glacier block
- {17034869, 1681338443, forkid.ID{Hash: forkid.ChecksumToBytes(0xf0afd0e3), Next: 1681338455}}, // Last pre-Shanghai block
- {17034870, 1681338479, forkid.ID{Hash: forkid.ChecksumToBytes(0xdce96c2d), Next: 1710338135}}, // First Shanghai block
- {19426586, 1710338123, forkid.ID{Hash: forkid.ChecksumToBytes(0xdce96c2d), Next: 1710338135}}, // Last Shanghai block
- {19426587, 1710338135, forkid.ID{Hash: forkid.ChecksumToBytes(0x9f3d2254), Next: 1746612311}}, // First Cancun block
- {22432453, 1746612299, forkid.ID{Hash: forkid.ChecksumToBytes(0x9f3d2254), Next: 1746612311}}, // Last Cancun block (approx.)
- {22432454, 1746612311, forkid.ID{Hash: forkid.ChecksumToBytes(0xc376cf8b), Next: 0}}, // First Prague block (approx.)
- {30000000, 1900000000, forkid.ID{Hash: forkid.ChecksumToBytes(0xc376cf8b), Next: 0}}, // Future Prague block (mock)
- },
- },
- // Sepolia test cases
- {
- params.SepoliaChainConfig,
- params.SepoliaGenesisHash,
- []testcase{
- {0, 1633267481, forkid.ID{Hash: forkid.ChecksumToBytes(0xfe3366e7), Next: 1735371}}, // Unsynced, last Frontier, Homestead, Tangerine, Spurious, Byzantium, Constantinople, Petersburg, Istanbul, Berlin and first London block
- {1735370, 1661130096, forkid.ID{Hash: forkid.ChecksumToBytes(0xfe3366e7), Next: 1735371}}, // Last pre-MergeNetsplit block
- {1735371, 1661130108, forkid.ID{Hash: forkid.ChecksumToBytes(0xb96cbd13), Next: 1677557088}}, // First MergeNetsplit block
- {2990907, 1677557076, forkid.ID{Hash: forkid.ChecksumToBytes(0xb96cbd13), Next: 1677557088}}, // Last pre-Shanghai block
- {2990908, 1677557088, forkid.ID{Hash: forkid.ChecksumToBytes(0xf7f9bc08), Next: 1706655072}}, // First Shanghai block
- {5187022, 1706655060, forkid.ID{Hash: forkid.ChecksumToBytes(0xf7f9bc08), Next: 1706655072}}, // Last Shanghai block
- {5187023, 1706655072, forkid.ID{Hash: forkid.ChecksumToBytes(0x88cf81d9), Next: 1741159776}}, // First Cancun block
- {7844466, 1741159764, forkid.ID{Hash: forkid.ChecksumToBytes(0x88cf81d9), Next: 1741159776}}, // Last Cancun block (approx)
- {7844467, 1741159776, forkid.ID{Hash: forkid.ChecksumToBytes(0xed88b5fd), Next: 0}}, // First Prague block (approx)
- {12000000, 1800000000, forkid.ID{Hash: forkid.ChecksumToBytes(0xed88b5fd), Next: 0}}, // Future Prague block (mock)
- },
- },
-
- // Holesky test cases
- {
- params.HoleskyChainConfig,
- params.HoleskyGenesisHash,
- []testcase{
- {0, 1696000704, forkid.ID{Hash: forkid.ChecksumToBytes(0xfd4f016b), Next: 1707305664}}, // First Shanghai block
- {0, 1707305652, forkid.ID{Hash: forkid.ChecksumToBytes(0xfd4f016b), Next: 1707305664}}, // Last Shanghai block
- {894733, 1707305676, forkid.ID{Hash: forkid.ChecksumToBytes(0x9b192ad0), Next: 1740434112}}, // First Cancun block
- {3655435, 1740434100, forkid.ID{Hash: forkid.ChecksumToBytes(0x9b192ad0), Next: 1740434112}}, // Last Cancun block (approx)
- {3655436, 1740434112, forkid.ID{Hash: forkid.ChecksumToBytes(0xdfbd9bed), Next: 0}}, // First Prague block (approx)
- {8000000, 1800000000, forkid.ID{Hash: forkid.ChecksumToBytes(0xdfbd9bed), Next: 0}}, // Future Prague block (mock)
- },
- },
-
- // Hoodi test cases
- {
- params.HoodiChainConfig,
- params.HoodiGenesisHash,
- []testcase{
- {0, 174221200, forkid.ID{Hash: forkid.ChecksumToBytes(0xbef71d30), Next: 1742999832}}, // First Cancun block
- {50000, 1742999820, forkid.ID{Hash: forkid.ChecksumToBytes(0xbef71d30), Next: 1742999832}}, // Last Cancun block (approx)
- {50001, 1742999832, forkid.ID{Hash: forkid.ChecksumToBytes(0x0929e24e), Next: 0}}, // First Prague block (approx)
- {8000000, 1800000000, forkid.ID{Hash: forkid.ChecksumToBytes(0x0929e24e), Next: 0}}, // Future Prague block (mock)
- },
- },
- // Gnosis test cases
- {
- params.GnosisChainConfig,
- params.GnosisGenesisHash,
- []testcase{
- {0, 0, forkid.ID{Hash: forkid.ChecksumToBytes(0xf64909b1), Next: 1604400}}, // Unsynced, last Frontier, Homestead, Tangerine, Spurious, Byzantium
- {1604399, 1547205885, forkid.ID{Hash: forkid.ChecksumToBytes(0xf64909b1), Next: 1604400}}, // Last Byzantium block
- {1604400, 1547205890, forkid.ID{Hash: forkid.ChecksumToBytes(0xfde2d083), Next: 2508800}}, // First Constantinople block
- {2508799, 1551879340, forkid.ID{Hash: forkid.ChecksumToBytes(0xfde2d083), Next: 2508800}}, // Last Constantinople block
- {2508800, 1551879345, forkid.ID{Hash: forkid.ChecksumToBytes(0xfc1d8f2f), Next: 7298030}}, // First Petersburg block
- {7298029, 1576134775, forkid.ID{Hash: forkid.ChecksumToBytes(0xfc1d8f2f), Next: 7298030}}, // Last Petersburg block
- {7298030, 1576134780, forkid.ID{Hash: forkid.ChecksumToBytes(0x54d05e6c), Next: 9186425}}, // First Istanbul block
- {9186424, 1585729685, forkid.ID{Hash: forkid.ChecksumToBytes(0x54d05e6c), Next: 9186425}}, // Last Istanbul block
- {9186425, 1585729690, forkid.ID{Hash: forkid.ChecksumToBytes(0xb6e6cd81), Next: 16101500}}, // First POSDAO Activation block
- {16101499, 1621258420, forkid.ID{Hash: forkid.ChecksumToBytes(0xb6e6cd81), Next: 16101500}}, // Last POSDAO Activation block
- {16101500, 1621258425, forkid.ID{Hash: forkid.ChecksumToBytes(0x069a83d9), Next: 19040000}}, // First Berlin block
- {19039999, 1636753575, forkid.ID{Hash: forkid.ChecksumToBytes(0x069a83d9), Next: 19040000}}, // Last Berlin block
- {19040000, 1636753580, forkid.ID{Hash: forkid.ChecksumToBytes(0x018479d3), Next: 1690889660}}, // First London block
- {21735000, 1650443255, forkid.ID{Hash: forkid.ChecksumToBytes(0x018479d3), Next: 1690889660}}, // First GIP-31 block
- {29242931, 1690889650, forkid.ID{Hash: forkid.ChecksumToBytes(0x018479d3), Next: 1690889660}}, // Last pre-Shanghai block
- {29242932, 1690889660, forkid.ID{Hash: forkid.ChecksumToBytes(0x2efe91ba), Next: 1710181820}}, // First Shanghai block
- {32880679, 1710181810, forkid.ID{Hash: forkid.ChecksumToBytes(0x2efe91ba), Next: 1710181820}}, // Last Shanghai block
- {32880680, 1710181820, forkid.ID{Hash: forkid.ChecksumToBytes(0x1384dfc1), Next: 1746021820}}, // First Cancun block
- {39834364, 1746021815, forkid.ID{Hash: forkid.ChecksumToBytes(0x1384dfc1), Next: 1746021820}}, // Last Cancun block (approx)
- {39834365, 1746021820, forkid.ID{Hash: forkid.ChecksumToBytes(0x2f095d4a), Next: 0}}, // First Prague block (approx)
- {50000000, 1800000000, forkid.ID{Hash: forkid.ChecksumToBytes(0x2f095d4a), Next: 0}}, // Future Prague block (mock)
- },
- },
- // Chiado test cases
- {
- params.ChiadoChainConfig,
- params.ChiadoGenesisHash,
- []testcase{
- {0, 0, forkid.ID{Hash: forkid.ChecksumToBytes(0x50d39d7b), Next: 1684934220}},
- {4100418, 1684934215, forkid.ID{Hash: forkid.ChecksumToBytes(0x50d39d7b), Next: 1684934220}}, // Last pre-Shanghai block
- {4100419, 1684934220, forkid.ID{Hash: forkid.ChecksumToBytes(0xa15a4252), Next: 1706724940}}, // First Shanghai block
- {8021277, 1706724930, forkid.ID{Hash: forkid.ChecksumToBytes(0xa15a4252), Next: 1706724940}}, // Last Shanghai block
- {8021278, 1706724940, forkid.ID{Hash: forkid.ChecksumToBytes(0x5fbc16bc), Next: 1741254220}}, // First Cancun block
- {14655798, 1741254215, forkid.ID{Hash: forkid.ChecksumToBytes(0x5fbc16bc), Next: 1741254220}}, // Last Cancun block (approx)
- {14655799, 1741254220, forkid.ID{Hash: forkid.ChecksumToBytes(0x8ba51786), Next: 0}}, // First Prague block (approx)
- {20000000, 1800000000, forkid.ID{Hash: forkid.ChecksumToBytes(0x8ba51786), Next: 0}}, // Future Prague block (mock)
- },
- },
- // Amoy test cases
- {
- params.AmoyChainConfig,
- params.AmoyGenesisHash,
- []testcase{
- {0, 0, forkid.ID{Hash: forkid.ChecksumToBytes(0xbe06a477), Next: 73100}},
- {73100, 0, forkid.ID{Hash: forkid.ChecksumToBytes(0x135d2cd5), Next: 5423600}}, // First London, Jaipur, Delhi, Indore, Agra
- },
- },
- // Bor mainnet test cases
- {
- params.BorMainnetChainConfig,
- params.BorMainnetGenesisHash,
- []testcase{
- {0, 0, forkid.ID{Hash: forkid.ChecksumToBytes(0x0e07e722), Next: 3395000}},
- {3395000, 0, forkid.ID{Hash: forkid.ChecksumToBytes(0x27806576), Next: 14750000}}, // First Istanbul block
- {14750000, 0, forkid.ID{Hash: forkid.ChecksumToBytes(0x66e26adb), Next: 23850000}}, // First Berlin block
- {23850000, 0, forkid.ID{Hash: forkid.ChecksumToBytes(0x4f2f71cc), Next: 50523000}}, // First London block
- {50523000, 0, forkid.ID{Hash: forkid.ChecksumToBytes(0xdc08865c), Next: 54876000}}, // First Agra block
- {54876000, 0, forkid.ID{Hash: forkid.ChecksumToBytes(0xf097bc13), Next: 0}}, // First Napoli block
- },
- },
- }
- for i, tt := range tests {
- for j, ttt := range tt.cases {
- heightForks, timeForks := forkid.GatherForks(tt.config, 0 /* genesisTime */)
- if have := forkid.NewIDFromForks(heightForks, timeForks, tt.genesis, ttt.head, ttt.time); have != ttt.want {
- t.Errorf("test %d, case %d: fork ID mismatch: have %x, want %x", i, j, have, ttt.want)
- }
- }
- }
-}
diff --git a/polygon/bor/bor_test.go b/polygon/bor/bor_test.go
index 75b7bb460f2..8be5a8c18db 100644
--- a/polygon/bor/bor_test.go
+++ b/polygon/bor/bor_test.go
@@ -37,9 +37,9 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/protocols/eth"
"github.com/erigontech/erigon/core"
"github.com/erigontech/erigon/execution/consensus"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
"github.com/erigontech/erigon/params"
"github.com/erigontech/erigon/polygon/bor"
"github.com/erigontech/erigon/polygon/bor/borabi"
diff --git a/polygon/bor/finality/whitelist.go b/polygon/bor/finality/whitelist.go
index de88f15ce99..32239edb3dd 100644
--- a/polygon/bor/finality/whitelist.go
+++ b/polygon/bor/finality/whitelist.go
@@ -22,19 +22,19 @@ import (
"fmt"
"time"
- "github.com/erigontech/erigon-db/interfaces"
"github.com/erigontech/erigon-lib/kv"
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon/polygon/bor/finality/flags"
"github.com/erigontech/erigon/polygon/bor/finality/whitelist"
"github.com/erigontech/erigon/polygon/heimdall"
+ "github.com/erigontech/erigon/turbo/services"
)
type config struct {
heimdall heimdall.Client
borDB kv.RwDB
chainDB kv.RwDB
- blockReader interfaces.BlockReader
+ blockReader services.BlockReader
logger log.Logger
borAPI BorAPI
closeCh chan struct{}
@@ -44,7 +44,7 @@ type BorAPI interface {
GetRootHash(start uint64, end uint64) (string, error)
}
-func Whitelist(heimdall heimdall.Client, borDB kv.RwDB, chainDB kv.RwDB, blockReader interfaces.BlockReader, logger log.Logger, borAPI BorAPI, closeCh chan struct{}) {
+func Whitelist(heimdall heimdall.Client, borDB kv.RwDB, chainDB kv.RwDB, blockReader services.BlockReader, logger log.Logger, borAPI BorAPI, closeCh chan struct{}) {
if !flags.Milestone {
return
}
diff --git a/polygon/p2p/fetcher_base.go b/polygon/p2p/fetcher_base.go
index 87c25e372ed..682ca99c10d 100644
--- a/polygon/p2p/fetcher_base.go
+++ b/polygon/p2p/fetcher_base.go
@@ -30,7 +30,7 @@ import (
"github.com/erigontech/erigon-lib/common/generics"
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
func NewFetcher(logger log.Logger, ml *MessageListener, ms *MessageSender, opts ...FetcherOption) *FetcherBase {
diff --git a/polygon/p2p/fetcher_base_test.go b/polygon/p2p/fetcher_base_test.go
index 3489e2f302c..59b002a9099 100644
--- a/polygon/p2p/fetcher_base_test.go
+++ b/polygon/p2p/fetcher_base_test.go
@@ -38,7 +38,7 @@ import (
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/testlog"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
func TestFetcherFetchHeaders(t *testing.T) {
diff --git a/polygon/p2p/message_listener.go b/polygon/p2p/message_listener.go
index feef5769740..fe255399603 100644
--- a/polygon/p2p/message_listener.go
+++ b/polygon/p2p/message_listener.go
@@ -28,7 +28,7 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/p2p/sentry"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
type DecodedInboundMessage[TPacket any] struct {
diff --git a/polygon/p2p/message_listener_test.go b/polygon/p2p/message_listener_test.go
index 2e04f6050bd..a9af68b32c2 100644
--- a/polygon/p2p/message_listener_test.go
+++ b/polygon/p2p/message_listener_test.go
@@ -39,7 +39,7 @@ import (
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/testlog"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
func TestMessageListenerRegisterBlockHeadersObserver(t *testing.T) {
diff --git a/polygon/p2p/message_sender.go b/polygon/p2p/message_sender.go
index 64ec87135b8..9ae12403008 100644
--- a/polygon/p2p/message_sender.go
+++ b/polygon/p2p/message_sender.go
@@ -24,7 +24,7 @@ import (
"github.com/erigontech/erigon-lib/gointerfaces/sentryproto"
"github.com/erigontech/erigon-lib/p2p/sentry"
"github.com/erigontech/erigon-lib/rlp"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
var ErrPeerNotFound = errors.New("peer not found")
diff --git a/polygon/p2p/message_sender_test.go b/polygon/p2p/message_sender_test.go
index 4623966a598..1126682ad5c 100644
--- a/polygon/p2p/message_sender_test.go
+++ b/polygon/p2p/message_sender_test.go
@@ -31,7 +31,7 @@ import (
erigonlibtypes "github.com/erigontech/erigon-lib/gointerfaces/typesproto"
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
func TestMessageSenderSendGetBlockHeaders(t *testing.T) {
diff --git a/polygon/p2p/peer_event_registrar.go b/polygon/p2p/peer_event_registrar.go
index 4d810955f30..b644d7a1bcf 100644
--- a/polygon/p2p/peer_event_registrar.go
+++ b/polygon/p2p/peer_event_registrar.go
@@ -19,7 +19,7 @@ package p2p
import (
"github.com/erigontech/erigon-lib/event"
"github.com/erigontech/erigon-lib/gointerfaces/sentryproto"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
//go:generate mockgen -typed=true -source=./peer_event_registrar.go -destination=./peer_event_registrar_mock.go -package=p2p
diff --git a/polygon/p2p/peer_event_registrar_mock.go b/polygon/p2p/peer_event_registrar_mock.go
index dc1d709e42e..9854d86a086 100644
--- a/polygon/p2p/peer_event_registrar_mock.go
+++ b/polygon/p2p/peer_event_registrar_mock.go
@@ -14,7 +14,7 @@ import (
event "github.com/erigontech/erigon-lib/event"
sentryproto "github.com/erigontech/erigon-lib/gointerfaces/sentryproto"
- eth "github.com/erigontech/erigon-p2p/protocols/eth"
+ eth "github.com/erigontech/erigon/p2p/protocols/eth"
gomock "go.uber.org/mock/gomock"
)
diff --git a/polygon/p2p/peer_id.go b/polygon/p2p/peer_id.go
index 55e5bfe92dc..907f012359e 100644
--- a/polygon/p2p/peer_id.go
+++ b/polygon/p2p/peer_id.go
@@ -23,7 +23,7 @@ import (
"github.com/erigontech/erigon-lib/crypto"
"github.com/erigontech/erigon-lib/gointerfaces"
"github.com/erigontech/erigon-lib/gointerfaces/typesproto"
- "github.com/erigontech/erigon-p2p/enode"
+ "github.com/erigontech/erigon/p2p/enode"
)
func PeerIdFromH512(h512 *typesproto.H512) *PeerId {
diff --git a/polygon/p2p/peer_tracker.go b/polygon/p2p/peer_tracker.go
index 83662e82431..2770cceaa67 100644
--- a/polygon/p2p/peer_tracker.go
+++ b/polygon/p2p/peer_tracker.go
@@ -27,7 +27,7 @@ import (
"github.com/erigontech/erigon-lib/event"
"github.com/erigontech/erigon-lib/gointerfaces/sentryproto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
func NewPeerTracker(
diff --git a/polygon/p2p/peer_tracker_test.go b/polygon/p2p/peer_tracker_test.go
index 7cea50b7e38..fa153b826ee 100644
--- a/polygon/p2p/peer_tracker_test.go
+++ b/polygon/p2p/peer_tracker_test.go
@@ -35,7 +35,7 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/testlog"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
func TestPeerTracker(t *testing.T) {
diff --git a/polygon/p2p/publisher.go b/polygon/p2p/publisher.go
index 0c9e11c601e..c265a2d45f0 100644
--- a/polygon/p2p/publisher.go
+++ b/polygon/p2p/publisher.go
@@ -27,7 +27,7 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
func NewPublisher(logger log.Logger, messageSender *MessageSender, peerTracker *PeerTracker) *Publisher {
diff --git a/polygon/p2p/publisher_test.go b/polygon/p2p/publisher_test.go
index b93c12073e5..d0111a99b5d 100644
--- a/polygon/p2p/publisher_test.go
+++ b/polygon/p2p/publisher_test.go
@@ -37,7 +37,7 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/testlog"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
func TestPublisher(t *testing.T) {
diff --git a/polygon/p2p/service.go b/polygon/p2p/service.go
index 5d0c7e5b413..6dd6c0b5ef3 100644
--- a/polygon/p2p/service.go
+++ b/polygon/p2p/service.go
@@ -29,7 +29,7 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/p2p/sentry"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
)
func NewService(logger log.Logger, maxPeers int, sc sentryproto.SentryClient, sdf sentry.StatusDataFactory) *Service {
diff --git a/polygon/sync/service.go b/polygon/sync/service.go
index 6524b2d6a21..4a2536feb75 100644
--- a/polygon/sync/service.go
+++ b/polygon/sync/service.go
@@ -29,8 +29,8 @@ import (
"github.com/erigontech/erigon-lib/gointerfaces/executionproto"
"github.com/erigontech/erigon-lib/gointerfaces/sentryproto"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/sentry"
"github.com/erigontech/erigon/eth/ethconfig"
+ "github.com/erigontech/erigon/p2p/sentry"
"github.com/erigontech/erigon/polygon/bor/borcfg"
"github.com/erigontech/erigon/polygon/bridge"
"github.com/erigontech/erigon/polygon/heimdall"
diff --git a/polygon/sync/tip_events.go b/polygon/sync/tip_events.go
index 4d95d8826cd..dc7034dedf2 100644
--- a/polygon/sync/tip_events.go
+++ b/polygon/sync/tip_events.go
@@ -27,7 +27,7 @@ import (
"github.com/erigontech/erigon-lib/event"
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
"github.com/erigontech/erigon/polygon/heimdall"
"github.com/erigontech/erigon/polygon/p2p"
)
diff --git a/rpc/contracts/direct_backend.go b/rpc/contracts/direct_backend.go
index c9e845cdc4d..21ea00b247b 100644
--- a/rpc/contracts/direct_backend.go
+++ b/rpc/contracts/direct_backend.go
@@ -26,9 +26,9 @@ import (
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/common/hexutil"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
"github.com/erigontech/erigon/eth/filters"
"github.com/erigontech/erigon/execution/abi/bind"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/rpc"
"github.com/erigontech/erigon/rpc/ethapi"
"github.com/erigontech/erigon/rpc/jsonrpc"
diff --git a/rpc/ipc.go b/rpc/ipc.go
index cca4f7e2db6..c35d6ead73a 100644
--- a/rpc/ipc.go
+++ b/rpc/ipc.go
@@ -23,7 +23,7 @@ import (
"net"
"github.com/erigontech/erigon-lib/log/v3"
- "github.com/erigontech/erigon-p2p/netutil"
+ "github.com/erigontech/erigon/p2p/netutil"
)
// ServeListener accepts connections on l, serving JSON-RPC on them.
diff --git a/rpc/jsonrpc/admin_api.go b/rpc/jsonrpc/admin_api.go
index 31c3d5a6b87..25a98737d88 100644
--- a/rpc/jsonrpc/admin_api.go
+++ b/rpc/jsonrpc/admin_api.go
@@ -22,7 +22,7 @@ import (
"fmt"
remote "github.com/erigontech/erigon-lib/gointerfaces/remoteproto"
- p2p "github.com/erigontech/erigon-p2p"
+ "github.com/erigontech/erigon/p2p"
"github.com/erigontech/erigon/rpc/rpchelper"
)
diff --git a/rpc/jsonrpc/contracts/gen_poly.go b/rpc/jsonrpc/contracts/gen_poly.go
index c414c0f07b2..fdc920406e2 100644
--- a/rpc/jsonrpc/contracts/gen_poly.go
+++ b/rpc/jsonrpc/contracts/gen_poly.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/rpc/jsonrpc/contracts/gen_token.go b/rpc/jsonrpc/contracts/gen_token.go
index f34321e08a1..c3938a281b1 100644
--- a/rpc/jsonrpc/contracts/gen_token.go
+++ b/rpc/jsonrpc/contracts/gen_token.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/rpc/jsonrpc/erigon_api.go b/rpc/jsonrpc/erigon_api.go
index cf8c94348b1..faef0459133 100644
--- a/rpc/jsonrpc/erigon_api.go
+++ b/rpc/jsonrpc/erigon_api.go
@@ -23,8 +23,8 @@ import (
"github.com/erigontech/erigon-lib/common/hexutil"
"github.com/erigontech/erigon-lib/kv"
"github.com/erigontech/erigon-lib/types"
- p2p "github.com/erigontech/erigon-p2p"
"github.com/erigontech/erigon/eth/filters"
+ "github.com/erigontech/erigon/p2p"
"github.com/erigontech/erigon/rpc"
"github.com/erigontech/erigon/rpc/rpchelper"
)
diff --git a/rpc/jsonrpc/erigon_nodeInfo.go b/rpc/jsonrpc/erigon_nodeInfo.go
index f3ff007fb8d..35d61a32829 100644
--- a/rpc/jsonrpc/erigon_nodeInfo.go
+++ b/rpc/jsonrpc/erigon_nodeInfo.go
@@ -19,7 +19,7 @@ package jsonrpc
import (
"context"
- p2p "github.com/erigontech/erigon-p2p"
+ "github.com/erigontech/erigon/p2p"
)
const (
diff --git a/rpc/jsonrpc/erigon_system.go b/rpc/jsonrpc/erigon_system.go
index 643425b086c..44d0f3e8fcd 100644
--- a/rpc/jsonrpc/erigon_system.go
+++ b/rpc/jsonrpc/erigon_system.go
@@ -22,7 +22,7 @@ import (
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/common/hexutil"
- "github.com/erigontech/erigon-p2p/forkid"
+ "github.com/erigontech/erigon/p2p/forkid"
borfinality "github.com/erigontech/erigon/polygon/bor/finality"
"github.com/erigontech/erigon/polygon/bor/finality/whitelist"
"github.com/erigontech/erigon/rpc"
diff --git a/rpc/jsonrpc/eth_subscribe_test.go b/rpc/jsonrpc/eth_subscribe_test.go
index 083881104a5..331ca02919e 100644
--- a/rpc/jsonrpc/eth_subscribe_test.go
+++ b/rpc/jsonrpc/eth_subscribe_test.go
@@ -29,10 +29,10 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/wrap"
- "github.com/erigontech/erigon-p2p/protocols/eth"
"github.com/erigontech/erigon/cmd/rpcdaemon/rpcservices"
"github.com/erigontech/erigon/core"
"github.com/erigontech/erigon/execution/builder"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
"github.com/erigontech/erigon/rpc/rpchelper"
"github.com/erigontech/erigon/turbo/privateapi"
"github.com/erigontech/erigon/turbo/stages"
diff --git a/rpc/jsonrpc/receipts/handler_test.go b/rpc/jsonrpc/receipts/handler_test.go
index 439eaaef21e..c83a9da3d65 100644
--- a/rpc/jsonrpc/receipts/handler_test.go
+++ b/rpc/jsonrpc/receipts/handler_test.go
@@ -36,8 +36,8 @@ import (
sentry "github.com/erigontech/erigon-lib/gointerfaces/sentryproto"
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/protocols/eth"
"github.com/erigontech/erigon/core"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
"github.com/erigontech/erigon/rpc/jsonrpc/receipts"
"github.com/erigontech/erigon/turbo/stages/mock"
)
diff --git a/rpc/jsonrpc/send_transaction_test.go b/rpc/jsonrpc/send_transaction_test.go
index dd48f7f748e..f0dbbb02970 100644
--- a/rpc/jsonrpc/send_transaction_test.go
+++ b/rpc/jsonrpc/send_transaction_test.go
@@ -37,10 +37,10 @@ import (
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/types"
"github.com/erigontech/erigon-lib/wrap"
- "github.com/erigontech/erigon-p2p/protocols/eth"
"github.com/erigontech/erigon/cmd/rpcdaemon/rpcdaemontest"
"github.com/erigontech/erigon/core"
"github.com/erigontech/erigon/eth/ethconfig"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
"github.com/erigontech/erigon/rpc/jsonrpc"
"github.com/erigontech/erigon/rpc/rpccfg"
"github.com/erigontech/erigon/rpc/rpchelper"
diff --git a/rpc/requests/admin.go b/rpc/requests/admin.go
index 454437486e4..7c3b0da8444 100644
--- a/rpc/requests/admin.go
+++ b/rpc/requests/admin.go
@@ -19,7 +19,7 @@ package requests
import (
"context"
- p2p "github.com/erigontech/erigon-p2p"
+ "github.com/erigontech/erigon/p2p"
)
func (reqGen *requestGenerator) AdminNodeInfo() (p2p.NodeInfo, error) {
diff --git a/rpc/requests/nopgenerator.go b/rpc/requests/nopgenerator.go
index a0a03c222ba..98074fcff82 100644
--- a/rpc/requests/nopgenerator.go
+++ b/rpc/requests/nopgenerator.go
@@ -25,7 +25,7 @@ import (
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/common/hexutil"
"github.com/erigontech/erigon-lib/types"
- p2p "github.com/erigontech/erigon-p2p"
+ "github.com/erigontech/erigon/p2p"
"github.com/erigontech/erigon/rpc"
"github.com/erigontech/erigon/rpc/ethapi"
)
diff --git a/rpc/requests/request_generator.go b/rpc/requests/request_generator.go
index 3a7164889b1..bd70e84eb76 100644
--- a/rpc/requests/request_generator.go
+++ b/rpc/requests/request_generator.go
@@ -36,8 +36,8 @@ import (
"github.com/erigontech/erigon-lib/common/hexutil"
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/types"
- p2p "github.com/erigontech/erigon-p2p"
"github.com/erigontech/erigon/cmd/devnet/devnetutils"
+ "github.com/erigontech/erigon/p2p"
"github.com/erigontech/erigon/rpc"
"github.com/erigontech/erigon/rpc/ethapi"
)
diff --git a/rpc/rpchelper/interface.go b/rpc/rpchelper/interface.go
index e098b9b83d7..7a9ed583d71 100644
--- a/rpc/rpchelper/interface.go
+++ b/rpc/rpchelper/interface.go
@@ -24,7 +24,7 @@ import (
remote "github.com/erigontech/erigon-lib/gointerfaces/remoteproto"
"github.com/erigontech/erigon-lib/kv"
"github.com/erigontech/erigon-lib/types"
- p2p "github.com/erigontech/erigon-p2p"
+ "github.com/erigontech/erigon/p2p"
)
// ApiBackend - interface which must be used by API layer
diff --git a/sonar-project.properties b/sonar-project.properties
index ed91231a6db..bec58cc61a2 100644
--- a/sonar-project.properties
+++ b/sonar-project.properties
@@ -18,7 +18,7 @@ sonar.exclusions=\
sonar.tests=.
sonar.test.inclusions=**/*_test.go,tests/**
-sonar.go.coverage.reportPaths=coverage-test-all.out,erigon-lib/coverage-test-all.out,erigon-db/coverage-test-all.out,p2p/coverage-test-all.out
+sonar.go.coverage.reportPaths=coverage-test-all.out,erigon-lib/coverage-test-all.out,erigon-db/coverage-test-all.out
# The only way to get an accurate analysis of C/C++/Objective-C files is
# by using the SonarSource build-wrapper and setting the property "sonar.cfamily.build-wrapper-output"
diff --git a/tests/bor/helper/miner.go b/tests/bor/helper/miner.go
index 4923471c0e8..56a5b7d5ad2 100644
--- a/tests/bor/helper/miner.go
+++ b/tests/bor/helper/miner.go
@@ -17,13 +17,13 @@ import (
"github.com/erigontech/erigon-lib/downloader/downloadercfg"
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/types"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/nat"
"github.com/erigontech/erigon/cmd/utils"
"github.com/erigontech/erigon/eth"
"github.com/erigontech/erigon/eth/ethconfig"
"github.com/erigontech/erigon/node"
"github.com/erigontech/erigon/node/nodecfg"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/nat"
"github.com/erigontech/erigon/params"
"github.com/erigontech/erigon/polygon/bor/borcfg"
"github.com/erigontech/erigon/txnprovider/txpool/txpoolcfg"
diff --git a/tests/contracts/gen_selfDestructor.go b/tests/contracts/gen_selfDestructor.go
index 80ff4fe8c1f..e3a6c5f16a4 100644
--- a/tests/contracts/gen_selfDestructor.go
+++ b/tests/contracts/gen_selfDestructor.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/tests/contracts/gen_testcontract.go b/tests/contracts/gen_testcontract.go
index a71dbe06f5e..dd0fc169b08 100644
--- a/tests/contracts/gen_testcontract.go
+++ b/tests/contracts/gen_testcontract.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/tests/erigon-ext-test/go.mod.template b/tests/erigon-ext-test/go.mod.template
index d5ce3e9bd55..17cd3eb15bf 100644
--- a/tests/erigon-ext-test/go.mod.template
+++ b/tests/erigon-ext-test/go.mod.template
@@ -6,6 +6,5 @@ require github.com/erigontech/erigon $COMMIT_SHA
replace github.com/erigontech/erigon-lib => github.com/erigontech/erigon/erigon-lib $COMMIT_SHA
replace github.com/erigontech/erigon-db => github.com/erigontech/erigon/erigon-db $COMMIT_SHA
-replace github.com/erigontech/erigon-p2p => github.com/erigontech/erigon/p2p $COMMIT_SHA
require github.com/ethereum/go-ethereum v1.13.3
diff --git a/tests/txpool/helper/p2p_client.go b/tests/txpool/helper/p2p_client.go
index da932f8aeab..17eb3a441c0 100644
--- a/tests/txpool/helper/p2p_client.go
+++ b/tests/txpool/helper/p2p_client.go
@@ -16,11 +16,11 @@ import (
"github.com/erigontech/erigon-lib/gointerfaces"
"github.com/erigontech/erigon-lib/gointerfaces/sentryproto"
"github.com/erigontech/erigon-lib/log/v3"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/enode"
- "github.com/erigontech/erigon-p2p/nat"
- "github.com/erigontech/erigon-p2p/protocols/eth"
- "github.com/erigontech/erigon-p2p/sentry"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/enode"
+ "github.com/erigontech/erigon/p2p/nat"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/sentry"
"github.com/erigontech/erigon/params"
)
diff --git a/turbo/mock/txpool.go b/turbo/mock/txpool.go
index c7d377af61e..017ea051db9 100644
--- a/turbo/mock/txpool.go
+++ b/turbo/mock/txpool.go
@@ -22,8 +22,8 @@ import (
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
"github.com/erigontech/erigon/core"
+ "github.com/erigontech/erigon/p2p/event"
)
// TestTxPool is a mock transaction pool that blindly accepts all transactions.
diff --git a/turbo/services/interfaces.go b/turbo/services/interfaces.go
index 2052d641111..fd7ffd3b706 100644
--- a/turbo/services/interfaces.go
+++ b/turbo/services/interfaces.go
@@ -19,7 +19,6 @@ package services
import (
"context"
- "github.com/erigontech/erigon-db/interfaces"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/downloader/snaptype"
"github.com/erigontech/erigon-lib/kv"
@@ -36,6 +35,26 @@ type All struct {
BlockReader FullBlockReader
}
+type BlockReader interface {
+ BlockByNumber(ctx context.Context, db kv.Tx, number uint64) (*types.Block, error)
+ BlockByHash(ctx context.Context, db kv.Tx, hash common.Hash) (*types.Block, error)
+ CurrentBlock(db kv.Tx) (*types.Block, error)
+ BlockWithSenders(ctx context.Context, tx kv.Getter, hash common.Hash, blockNum uint64) (block *types.Block, senders []common.Address, err error)
+ IterateFrozenBodies(f func(blockNum, baseTxNum, txCount uint64) error) error
+}
+
+type HeaderReader interface {
+ Header(ctx context.Context, tx kv.Getter, hash common.Hash, blockNum uint64) (*types.Header, error)
+ HeaderByNumber(ctx context.Context, tx kv.Getter, blockNum uint64) (*types.Header, error)
+ HeaderNumber(ctx context.Context, tx kv.Getter, hash common.Hash) (*uint64, error)
+ HeaderByHash(ctx context.Context, tx kv.Getter, hash common.Hash) (*types.Header, error)
+ ReadAncestor(db kv.Getter, hash common.Hash, number, ancestor uint64, maxNonCanonical *uint64) (common.Hash, uint64)
+
+ // HeadersRange - TODO: change it to `stream`
+ HeadersRange(ctx context.Context, walker func(header *types.Header) error) error
+ Integrity(ctx context.Context) error
+}
+
type BorEventReader interface {
LastEventId(ctx context.Context, tx kv.Tx) (uint64, bool, error)
EventLookup(ctx context.Context, tx kv.Tx, txnHash common.Hash) (uint64, bool, error)
@@ -67,6 +86,15 @@ type CanonicalReader interface {
BadHeaderNumber(ctx context.Context, tx kv.Getter, hash common.Hash) (blockHeight *uint64, err error)
}
+type BodyReader interface {
+ BodyWithTransactions(ctx context.Context, tx kv.Getter, hash common.Hash, blockNum uint64) (body *types.Body, err error)
+ BodyRlp(ctx context.Context, tx kv.Getter, hash common.Hash, blockNum uint64) (bodyRlp rlp.RawValue, err error)
+ Body(ctx context.Context, tx kv.Getter, hash common.Hash, blockNum uint64) (body *types.Body, txCount uint32, err error)
+ CanonicalBodyForStorage(ctx context.Context, tx kv.Getter, blockNum uint64) (body *types.BodyForStorage, err error)
+ HasSenders(ctx context.Context, tx kv.Getter, hash common.Hash, blockNum uint64) (bool, error)
+ BlockForTxNum(ctx context.Context, tx kv.Tx, txNum uint64) (uint64, bool, error)
+}
+
type TxnReader interface {
TxnLookup(ctx context.Context, tx kv.Getter, txnHash common.Hash) (blockNum uint64, txNum uint64, ok bool, err error)
TxnByIdxInBlock(ctx context.Context, tx kv.Getter, blockNum uint64, i int) (txn types.Transaction, err error)
@@ -75,19 +103,25 @@ type TxnReader interface {
}
type HeaderAndCanonicalReader interface {
- interfaces.HeaderReader
+ HeaderReader
CanonicalReader
}
type BlockAndTxnReader interface {
- interfaces.BlockReader
+ BlockReader
TxnReader
}
+type HeaderAndBodyReader interface {
+ BlockReader
+ BodyReader
+ HeaderReader
+}
+
type FullBlockReader interface {
- interfaces.BlockReader
- interfaces.BodyReader
- interfaces.HeaderReader
+ BlockReader
+ BodyReader
+ HeaderReader
BorEventReader
BorSpanReader
BorMilestoneReader
diff --git a/turbo/stages/blockchain_test.go b/turbo/stages/blockchain_test.go
index c51dcbd26ef..c5b0edf7ae5 100644
--- a/turbo/stages/blockchain_test.go
+++ b/turbo/stages/blockchain_test.go
@@ -47,11 +47,11 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/protocols/eth"
"github.com/erigontech/erigon/core"
"github.com/erigontech/erigon/core/state"
"github.com/erigontech/erigon/core/vm"
"github.com/erigontech/erigon/execution/consensus/ethash"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
params2 "github.com/erigontech/erigon/params"
"github.com/erigontech/erigon/turbo/stages/mock"
)
diff --git a/turbo/stages/chain_makers_test.go b/turbo/stages/chain_makers_test.go
index 3a47d740f06..3a8f3310500 100644
--- a/turbo/stages/chain_makers_test.go
+++ b/turbo/stages/chain_makers_test.go
@@ -34,9 +34,9 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/protocols/eth"
"github.com/erigontech/erigon/core"
"github.com/erigontech/erigon/core/state"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
"github.com/erigontech/erigon/turbo/stages/mock"
)
diff --git a/turbo/stages/headerdownload/header_algos.go b/turbo/stages/headerdownload/header_algos.go
index 6b0929f3a51..c3220d46bdc 100644
--- a/turbo/stages/headerdownload/header_algos.go
+++ b/turbo/stages/headerdownload/header_algos.go
@@ -32,7 +32,6 @@ import (
"strings"
"time"
- "github.com/erigontech/erigon-db/interfaces"
"github.com/erigontech/erigon-db/rawdb"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/common/dbg"
@@ -834,7 +833,7 @@ func (hd *HeaderDownload) addHeaderAsLink(h ChainSegmentHeader, persisted bool)
return link
}
-func (hi *HeaderInserter) NewFeedHeaderFunc(db kv.StatelessRwTx, headerReader interfaces.HeaderReader) FeedHeaderFunc {
+func (hi *HeaderInserter) NewFeedHeaderFunc(db kv.StatelessRwTx, headerReader services.HeaderReader) FeedHeaderFunc {
return func(header *types.Header, headerRaw []byte, hash common.Hash, blockHeight uint64) (*big.Int, error) {
return hi.FeedHeaderPoW(db, headerReader, header, headerRaw, hash, blockHeight)
}
@@ -906,7 +905,7 @@ func (hi *HeaderInserter) ForkingPoint(db kv.StatelessRwTx, header, parent *type
return
}
-func (hi *HeaderInserter) FeedHeaderPoW(db kv.StatelessRwTx, headerReader interfaces.HeaderReader, header *types.Header, headerRaw []byte, hash common.Hash, blockHeight uint64) (td *big.Int, err error) {
+func (hi *HeaderInserter) FeedHeaderPoW(db kv.StatelessRwTx, headerReader services.HeaderReader, header *types.Header, headerRaw []byte, hash common.Hash, blockHeight uint64) (td *big.Int, err error) {
if hash == hi.prevHash {
// Skip duplicates
return nil, nil
diff --git a/turbo/stages/mock/mock_sentry.go b/turbo/stages/mock/mock_sentry.go
index 20486895fe8..533f9dccdb0 100644
--- a/turbo/stages/mock/mock_sentry.go
+++ b/turbo/stages/mock/mock_sentry.go
@@ -56,9 +56,6 @@ import (
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/types"
"github.com/erigontech/erigon-lib/wrap"
- p2p "github.com/erigontech/erigon-p2p"
- "github.com/erigontech/erigon-p2p/protocols/eth"
- "github.com/erigontech/erigon-p2p/sentry"
"github.com/erigontech/erigon/core"
"github.com/erigontech/erigon/core/state"
"github.com/erigontech/erigon/core/vm"
@@ -75,7 +72,10 @@ import (
"github.com/erigontech/erigon/execution/engineapi/engine_helpers"
"github.com/erigontech/erigon/execution/eth1"
"github.com/erigontech/erigon/execution/eth1/eth1_chain_reader"
- "github.com/erigontech/erigon/execution/sentry_multi_client"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
+ "github.com/erigontech/erigon/p2p/sentry"
+ "github.com/erigontech/erigon/p2p/sentry/sentry_multi_client"
"github.com/erigontech/erigon/polygon/bor"
"github.com/erigontech/erigon/polygon/bridge"
"github.com/erigontech/erigon/polygon/heimdall"
diff --git a/turbo/stages/mock/sentry_mock_test.go b/turbo/stages/mock/sentry_mock_test.go
index 24d67ac8fd9..753de2eeb1d 100644
--- a/turbo/stages/mock/sentry_mock_test.go
+++ b/turbo/stages/mock/sentry_mock_test.go
@@ -31,8 +31,8 @@ import (
"github.com/erigontech/erigon-lib/rlp"
"github.com/erigontech/erigon-lib/types"
"github.com/erigontech/erigon-lib/wrap"
- "github.com/erigontech/erigon-p2p/protocols/eth"
"github.com/erigontech/erigon/core"
+ "github.com/erigontech/erigon/p2p/protocols/eth"
"github.com/erigontech/erigon/turbo/stages"
"github.com/erigontech/erigon/turbo/stages/mock"
)
diff --git a/turbo/stages/stageloop.go b/turbo/stages/stageloop.go
index b2c2f90b5ea..a2231cc0a6f 100644
--- a/turbo/stages/stageloop.go
+++ b/turbo/stages/stageloop.go
@@ -41,7 +41,6 @@ import (
"github.com/erigontech/erigon-lib/state"
"github.com/erigontech/erigon-lib/types"
"github.com/erigontech/erigon-lib/wrap"
- p2p "github.com/erigontech/erigon-p2p"
"github.com/erigontech/erigon/core/tracing"
"github.com/erigontech/erigon/core/vm"
"github.com/erigontech/erigon/eth/ethconfig"
@@ -51,7 +50,8 @@ import (
"github.com/erigontech/erigon/execution/consensus"
"github.com/erigontech/erigon/execution/consensus/misc"
"github.com/erigontech/erigon/execution/engineapi/engine_helpers"
- "github.com/erigontech/erigon/execution/sentry_multi_client"
+ "github.com/erigontech/erigon/p2p"
+ "github.com/erigontech/erigon/p2p/sentry/sentry_multi_client"
"github.com/erigontech/erigon/polygon/bor"
"github.com/erigontech/erigon/polygon/bridge"
"github.com/erigontech/erigon/polygon/heimdall"
diff --git a/turbo/transactions/call.go b/turbo/transactions/call.go
index dd2486e5117..75f8e83f7be 100644
--- a/turbo/transactions/call.go
+++ b/turbo/transactions/call.go
@@ -24,7 +24,6 @@ import (
"github.com/holiman/uint256"
- "github.com/erigontech/erigon-db/interfaces"
"github.com/erigontech/erigon-lib/chain"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/kv"
@@ -37,6 +36,7 @@ import (
"github.com/erigontech/erigon/execution/consensus"
"github.com/erigontech/erigon/rpc"
ethapi2 "github.com/erigontech/erigon/rpc/ethapi"
+ "github.com/erigontech/erigon/turbo/services"
)
func DoCall(
@@ -50,7 +50,7 @@ func DoCall(
gasCap uint64,
chainConfig *chain.Config,
stateReader state.StateReader,
- headerReader interfaces.HeaderReader,
+ headerReader services.HeaderReader,
callTimeout time.Duration,
) (*evmtypes.ExecutionResult, error) {
// todo: Pending state is only known by the miner
@@ -122,12 +122,12 @@ func DoCall(
}
func NewEVMBlockContext(engine consensus.EngineReader, header *types.Header, requireCanonical bool, tx kv.Getter,
- headerReader interfaces.HeaderReader, config *chain.Config) evmtypes.BlockContext {
+ headerReader services.HeaderReader, config *chain.Config) evmtypes.BlockContext {
blockHashFunc := MakeHeaderGetter(requireCanonical, tx, headerReader)
return core.NewEVMBlockContext(header, blockHashFunc, engine, nil /* author */, config)
}
-func MakeHeaderGetter(requireCanonical bool, tx kv.Getter, headerReader interfaces.HeaderReader) func(uint64) (common.Hash, error) {
+func MakeHeaderGetter(requireCanonical bool, tx kv.Getter, headerReader services.HeaderReader) func(uint64) (common.Hash, error) {
return func(n uint64) (common.Hash, error) {
h, err := headerReader.HeaderByNumber(context.Background(), tx, n)
if err != nil {
@@ -209,7 +209,7 @@ func NewReusableCaller(
gasCap uint64,
blockNrOrHash rpc.BlockNumberOrHash,
tx kv.Tx,
- headerReader interfaces.HeaderReader,
+ headerReader services.HeaderReader,
chainConfig *chain.Config,
callTimeout time.Duration,
) (*ReusableCaller, error) {
diff --git a/turbo/transactions/tracing.go b/turbo/transactions/tracing.go
index 323e5dbae1f..af3b4c759e6 100644
--- a/turbo/transactions/tracing.go
+++ b/turbo/transactions/tracing.go
@@ -24,7 +24,6 @@ import (
"fmt"
"time"
- "github.com/erigontech/erigon-db/interfaces"
"github.com/erigontech/erigon-lib/chain"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/jsonstream"
@@ -40,6 +39,7 @@ import (
"github.com/erigontech/erigon/eth/tracers/logger"
"github.com/erigontech/erigon/execution/consensus"
"github.com/erigontech/erigon/rpc/rpchelper"
+ "github.com/erigontech/erigon/turbo/services"
)
type BlockGetter interface {
@@ -52,7 +52,7 @@ type BlockGetter interface {
// ComputeBlockContext returns the execution environment of a certain block.
func ComputeBlockContext(ctx context.Context, engine consensus.EngineReader, header *types.Header, cfg *chain.Config,
- headerReader interfaces.HeaderReader, txNumsReader rawdbv3.TxNumsReader, dbtx kv.TemporalTx,
+ headerReader services.HeaderReader, txNumsReader rawdbv3.TxNumsReader, dbtx kv.TemporalTx,
txIndex int) (*state.IntraBlockState, evmtypes.BlockContext, state.StateReader, *chain.Rules, *types.Signer, error) {
reader, err := rpchelper.CreateHistoryStateReader(dbtx, header.Number.Uint64(), txIndex, txNumsReader)
if err != nil {
diff --git a/txnprovider/shutter/block_building_integration_test.go b/txnprovider/shutter/block_building_integration_test.go
index 59d8dcb315c..d1abf5816ae 100644
--- a/txnprovider/shutter/block_building_integration_test.go
+++ b/txnprovider/shutter/block_building_integration_test.go
@@ -43,7 +43,6 @@ import (
"github.com/erigontech/erigon-lib/log/v3"
"github.com/erigontech/erigon-lib/testlog"
"github.com/erigontech/erigon-lib/types"
- p2p "github.com/erigontech/erigon-p2p"
"github.com/erigontech/erigon/cmd/rpcdaemon/cli"
"github.com/erigontech/erigon/cmd/rpcdaemon/cli/httpcfg"
"github.com/erigontech/erigon/core"
@@ -52,6 +51,7 @@ import (
"github.com/erigontech/erigon/execution/engineapi"
"github.com/erigontech/erigon/node"
"github.com/erigontech/erigon/node/nodecfg"
+ "github.com/erigontech/erigon/p2p"
"github.com/erigontech/erigon/params"
"github.com/erigontech/erigon/rpc/contracts"
"github.com/erigontech/erigon/rpc/requests"
diff --git a/txnprovider/shutter/internal/contracts/gen_key_broadcast_contract.go b/txnprovider/shutter/internal/contracts/gen_key_broadcast_contract.go
index d1a0ed0f1ce..d5ca34b08de 100644
--- a/txnprovider/shutter/internal/contracts/gen_key_broadcast_contract.go
+++ b/txnprovider/shutter/internal/contracts/gen_key_broadcast_contract.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/txnprovider/shutter/internal/contracts/gen_keyper_set.go b/txnprovider/shutter/internal/contracts/gen_keyper_set.go
index 3c85e8de0e3..4495ba3d6ab 100644
--- a/txnprovider/shutter/internal/contracts/gen_keyper_set.go
+++ b/txnprovider/shutter/internal/contracts/gen_keyper_set.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/txnprovider/shutter/internal/contracts/gen_keyper_set_manager.go b/txnprovider/shutter/internal/contracts/gen_keyper_set_manager.go
index 4318314266e..ab1cb114843 100644
--- a/txnprovider/shutter/internal/contracts/gen_keyper_set_manager.go
+++ b/txnprovider/shutter/internal/contracts/gen_keyper_set_manager.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/txnprovider/shutter/internal/contracts/gen_sequencer.go b/txnprovider/shutter/internal/contracts/gen_sequencer.go
index c589f12e7a2..76f10da4f51 100644
--- a/txnprovider/shutter/internal/contracts/gen_sequencer.go
+++ b/txnprovider/shutter/internal/contracts/gen_sequencer.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)
diff --git a/txnprovider/shutter/internal/contracts/gen_validator_registry.go b/txnprovider/shutter/internal/contracts/gen_validator_registry.go
index d26022ebd5f..fcb01738f22 100644
--- a/txnprovider/shutter/internal/contracts/gen_validator_registry.go
+++ b/txnprovider/shutter/internal/contracts/gen_validator_registry.go
@@ -13,7 +13,7 @@ import (
"github.com/erigontech/erigon-lib/abi"
"github.com/erigontech/erigon-lib/common"
"github.com/erigontech/erigon-lib/types"
- "github.com/erigontech/erigon-p2p/event"
+ "github.com/erigontech/erigon/p2p/event"
"github.com/erigontech/erigon/execution/abi/bind"
)