From d7d839522747a2fd2d08493ca166ebc62a784824 Mon Sep 17 00:00:00 2001 From: devopsbo3 <69951731+devopsbo3@users.noreply.github.com> Date: Fri, 10 Nov 2023 12:27:53 -0600 Subject: [PATCH] Revert "cmd/devp2p: use bootnodes as crawl input (#28139)" This reverts commit a7205347fb54c90dedb1126a3881c48faa8ba66c. --- cmd/devp2p/crawl.go | 12 ++---------- cmd/devp2p/discv4cmd.go | 29 +++++++++++------------------ cmd/devp2p/discv5cmd.go | 20 ++++++++------------ 3 files changed, 21 insertions(+), 40 deletions(-) diff --git a/cmd/devp2p/crawl.go b/cmd/devp2p/crawl.go index 4288a5feb8..8c0defff6d 100644 --- a/cmd/devp2p/crawl.go +++ b/cmd/devp2p/crawl.go @@ -17,7 +17,6 @@ package main import ( - "errors" "sync" "sync/atomic" "time" @@ -52,14 +51,7 @@ type resolver interface { RequestENR(*enode.Node) (*enode.Node, error) } -func newCrawler(input nodeSet, bootnodes []*enode.Node, disc resolver, iters ...enode.Iterator) (*crawler, error) { - if len(input) == 0 { - input.add(bootnodes...) - } - if len(input) == 0 { - return nil, errors.New("no input nodes to start crawling") - } - +func newCrawler(input nodeSet, disc resolver, iters ...enode.Iterator) *crawler { c := &crawler{ input: input, output: make(nodeSet, len(input)), @@ -75,7 +67,7 @@ func newCrawler(input nodeSet, bootnodes []*enode.Node, disc resolver, iters ... for id, n := range input { c.output[id] = n } - return c, nil + return c } func (c *crawler) run(timeout time.Duration, nthreads int) nodeSet { diff --git a/cmd/devp2p/discv4cmd.go b/cmd/devp2p/discv4cmd.go index 37b139dea2..0117c7eb82 100644 --- a/cmd/devp2p/discv4cmd.go +++ b/cmd/devp2p/discv4cmd.go @@ -143,7 +143,7 @@ var discoveryNodeFlags = []cli.Flag{ func discv4Ping(ctx *cli.Context) error { n := getNodeArg(ctx) - disc, _ := startV4(ctx) + disc := startV4(ctx) defer disc.Close() start := time.Now() @@ -156,7 +156,7 @@ func discv4Ping(ctx *cli.Context) error { func discv4RequestRecord(ctx *cli.Context) error { n := getNodeArg(ctx) - disc, _ := startV4(ctx) + disc := startV4(ctx) defer disc.Close() respN, err := disc.RequestENR(n) @@ -169,7 +169,7 @@ func discv4RequestRecord(ctx *cli.Context) error { func discv4Resolve(ctx *cli.Context) error { n := getNodeArg(ctx) - disc, _ := startV4(ctx) + disc := startV4(ctx) defer disc.Close() fmt.Println(disc.Resolve(n).String()) @@ -196,13 +196,10 @@ func discv4ResolveJSON(ctx *cli.Context) error { nodeargs = append(nodeargs, n) } - disc, config := startV4(ctx) + // Run the crawler. + disc := startV4(ctx) defer disc.Close() - - c, err := newCrawler(inputSet, config.Bootnodes, disc, enode.IterNodes(nodeargs)) - if err != nil { - return err - } + c := newCrawler(inputSet, disc, enode.IterNodes(nodeargs)) c.revalidateInterval = 0 output := c.run(0, 1) writeNodesJSON(nodesFile, output) @@ -214,18 +211,14 @@ func discv4Crawl(ctx *cli.Context) error { return errors.New("need nodes file as argument") } nodesFile := ctx.Args().First() - inputSet := make(nodeSet) + var inputSet nodeSet if common.FileExist(nodesFile) { inputSet = loadNodesJSON(nodesFile) } - disc, config := startV4(ctx) + disc := startV4(ctx) defer disc.Close() - - c, err := newCrawler(inputSet, config.Bootnodes, disc, disc.RandomNodes()) - if err != nil { - return err - } + c := newCrawler(inputSet, disc, disc.RandomNodes()) c.revalidateInterval = 10 * time.Minute output := c.run(ctx.Duration(crawlTimeoutFlag.Name), ctx.Int(crawlParallelismFlag.Name)) writeNodesJSON(nodesFile, output) @@ -245,14 +238,14 @@ func discv4Test(ctx *cli.Context) error { } // startV4 starts an ephemeral discovery V4 node. -func startV4(ctx *cli.Context) (*discover.UDPv4, discover.Config) { +func startV4(ctx *cli.Context) *discover.UDPv4 { ln, config := makeDiscoveryConfig(ctx) socket := listen(ctx, ln) disc, err := discover.ListenV4(socket, ln, config) if err != nil { exit(err) } - return disc, config + return disc } func makeDiscoveryConfig(ctx *cli.Context) (*enode.LocalNode, discover.Config) { diff --git a/cmd/devp2p/discv5cmd.go b/cmd/devp2p/discv5cmd.go index 0dac945269..c5e226f0d1 100644 --- a/cmd/devp2p/discv5cmd.go +++ b/cmd/devp2p/discv5cmd.go @@ -81,7 +81,7 @@ var ( func discv5Ping(ctx *cli.Context) error { n := getNodeArg(ctx) - disc, _ := startV5(ctx) + disc := startV5(ctx) defer disc.Close() fmt.Println(disc.Ping(n)) @@ -90,7 +90,7 @@ func discv5Ping(ctx *cli.Context) error { func discv5Resolve(ctx *cli.Context) error { n := getNodeArg(ctx) - disc, _ := startV5(ctx) + disc := startV5(ctx) defer disc.Close() fmt.Println(disc.Resolve(n)) @@ -102,18 +102,14 @@ func discv5Crawl(ctx *cli.Context) error { return errors.New("need nodes file as argument") } nodesFile := ctx.Args().First() - inputSet := make(nodeSet) + var inputSet nodeSet if common.FileExist(nodesFile) { inputSet = loadNodesJSON(nodesFile) } - disc, config := startV5(ctx) + disc := startV5(ctx) defer disc.Close() - - c, err := newCrawler(inputSet, config.Bootnodes, disc, disc.RandomNodes()) - if err != nil { - return err - } + c := newCrawler(inputSet, disc, disc.RandomNodes()) c.revalidateInterval = 10 * time.Minute output := c.run(ctx.Duration(crawlTimeoutFlag.Name), ctx.Int(crawlParallelismFlag.Name)) writeNodesJSON(nodesFile, output) @@ -131,7 +127,7 @@ func discv5Test(ctx *cli.Context) error { } func discv5Listen(ctx *cli.Context) error { - disc, _ := startV5(ctx) + disc := startV5(ctx) defer disc.Close() fmt.Println(disc.Self()) @@ -139,12 +135,12 @@ func discv5Listen(ctx *cli.Context) error { } // startV5 starts an ephemeral discovery v5 node. -func startV5(ctx *cli.Context) (*discover.UDPv5, discover.Config) { +func startV5(ctx *cli.Context) *discover.UDPv5 { ln, config := makeDiscoveryConfig(ctx) socket := listen(ctx, ln) disc, err := discover.ListenV5(socket, ln, config) if err != nil { exit(err) } - return disc, config + return disc }