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" )