Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 24 additions & 14 deletions cmd/nebula/cmd_crawl.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,21 @@ import (
)

var crawlConfig = &config.Crawl{
Root: rootConfig,
CrawlWorkerCount: 1000,
WriteWorkerCount: 10,
CrawlLimit: 0,
PersistNeighbors: false,
FilePathUdgerDB: "",
Network: string(config.NetworkIPFS),
BootstrapPeers: cli.NewStringSlice(),
Protocols: cli.NewStringSlice(string(kaddht.ProtocolDHT)),
AddrTrackTypeStr: "public",
AddrDialTypeStr: "public",
KeepENR: false,
CheckExposed: false,
UDPRespTimeout: 3 * time.Second,
Root: rootConfig,
CrawlWorkerCount: 1000,
WriteWorkerCount: 10,
CrawlLimit: 0,
PersistNeighbors: false,
FilePathUdgerDB: "",
Network: string(config.NetworkIPFS),
BootstrapPeers: cli.NewStringSlice(),
Protocols: cli.NewStringSlice(string(kaddht.ProtocolDHT)),
AddrTrackTypeStr: "public",
AddrDialTypeStr: "public",
KeepENR: false,
CheckExposed: false,
UDPRespTimeout: 3 * time.Second,
EnableGossipSubPX: false,
}

// CrawlCommand contains the crawl sub-command configuration.
Expand Down Expand Up @@ -172,6 +173,13 @@ var CrawlCommand = &cli.Command{
Value: crawlConfig.Network,
Destination: &crawlConfig.Network,
},
&cli.BoolFlag{
Name: "gossipsub-px",
Usage: "Whether to enable gossipsub peer exchange crawling",
EnvVars: []string{"NEBULA_CRAWL_GOSSIPSUB_PX"},
Value: crawlConfig.EnableGossipSubPX,
Destination: &crawlConfig.EnableGossipSubPX,
},
&cli.BoolFlag{
Name: "check-exposed",
Usage: "IPFS/AMINO: Whether to check if the Kubo API is exposed. Checking also includes crawling the API.",
Expand Down Expand Up @@ -458,6 +466,7 @@ func CrawlAction(c *cli.Context) error {
// configure the crawl driver
driverCfg := &libp2p.CrawlDriverConfig{
Version: cfg.Root.Version(),
WorkerCount: cfg.CrawlWorkerCount,
Network: config.Network(cfg.Network),
Protocols: cfg.Protocols.Value(),
DialTimeout: cfg.Root.DialTimeout,
Expand All @@ -467,6 +476,7 @@ func CrawlAction(c *cli.Context) error {
AddrTrackType: cfg.AddrTrackType(),
TracerProvider: cfg.Root.TracerProvider,
MeterProvider: cfg.Root.MeterProvider,
GossipSubPX: cfg.EnableGossipSubPX,
LogErrors: cfg.Root.LogErrors,
}

Expand Down
17 changes: 8 additions & 9 deletions config/bootstrap.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,14 @@ var (
// BootstrapPeersFilecoin extracted from:
// https://github.com/filecoin-project/lotus/blob/b691adc4874e5e28353f036c077c08ef00ec3b2b/build/bootstrap/mainnet.pi
BootstrapPeersFilecoin = []string{
"/dns4/lotus-bootstrap.ipfsforce.com/tcp/41778/p2p/12D3KooWGhufNmZHF3sv48aQeS13ng5XVJZ9E6qy2Ms4VzqeUsHk",
"/dns4/bootstrap-0.starpool.in/tcp/12757/p2p/12D3KooWGHpBMeZbestVEWkfdnC9u7p6uFHXL1n7m1ZBqsEmiUzz",
"/dns4/bootstrap-1.starpool.in/tcp/12757/p2p/12D3KooWQZrGH1PxSNZPum99M1zNvjNFM33d1AAu5DcvdHptuU7u",
"/dns4/node.glif.io/tcp/1235/p2p/12D3KooWBF8cpp65hp2u9LK5mh19x67ftAam84z9LsfaquTDSBpt",
"/dns4/bootstarp-0.1475.io/tcp/61256/p2p/12D3KooWRzCVDwHUkgdK7eRgnoXbjDAELhxPErjHzbRLguSV1aRt",
"/dns4/bootstrap-venus.mainnet.filincubator.com/tcp/8888/p2p/QmQu8C6deXwKvJP2D8B6QGyhngc3ZiDnFzEHBDx8yeBXST",
"/dns4/bootstrap-mainnet-0.chainsafe-fil.io/tcp/34000/p2p/12D3KooWKKkCZbcigsWTEu1cgNetNbZJqeNtysRtFpq7DTqw3eqH",
"/dns4/bootstrap-mainnet-1.chainsafe-fil.io/tcp/34000/p2p/12D3KooWGnkd9GQKo3apkShQDaq1d6cKJJmsVe6KiQkacUk1T8oZ",
"/dns4/bootstrap-mainnet-2.chainsafe-fil.io/tcp/34000/p2p/12D3KooWHQRSDFv4FvAjtU32shQ7znz7oRbLBryXzZ9NMK2feyyH",
"/dns/node.glif.io/tcp/1235/p2p/12D3KooWBF8cpp65hp2u9LK5mh19x67ftAam84z9LsfaquTDSBpt",
"/dns/bootstrap-venus.mainnet.filincubator.com/tcp/8888/p2p/QmQu8C6deXwKvJP2D8B6QGyhngc3ZiDnFzEHBDx8yeBXST",
"/dns/bootstrap-mainnet-0.chainsafe-fil.io/tcp/34000/p2p/12D3KooWKKkCZbcigsWTEu1cgNetNbZJqeNtysRtFpq7DTqw3eqH",
"/dns/bootstrap-mainnet-1.chainsafe-fil.io/tcp/34000/p2p/12D3KooWGnkd9GQKo3apkShQDaq1d6cKJJmsVe6KiQkacUk1T8oZ",
"/dns/bootstrap-mainnet-2.chainsafe-fil.io/tcp/34000/p2p/12D3KooWHQRSDFv4FvAjtU32shQ7znz7oRbLBryXzZ9NMK2feyyH",
"/dns/n1.mainnet.fil.devtty.eu/udp/443/quic-v1/p2p/12D3KooWAke3M2ji7tGNKx3BQkTHCyxVhtV1CN68z6Fkrpmfr37F",
"/dns/n1.mainnet.fil.devtty.eu/tcp/443/p2p/12D3KooWAke3M2ji7tGNKx3BQkTHCyxVhtV1CN68z6Fkrpmfr37F",
"/dns/n1.mainnet.fil.devtty.eu/udp/443/quic-v1/webtransport/certhash/uEiAWlgd8EqbNhYLv86OdRvXHMosaUWFFDbhgGZgCkcmKnQ/certhash/uEiAvtq6tvZOZf_sIuityDDTyAXDJPfXSRRDK2xy9UVPsqA/p2p/12D3KooWAke3M2ji7tGNKx3BQkTHCyxVhtV1CN68z6Fkrpmfr37F",
}

// BootstrapPeersKusama extracted from:
Expand Down
3 changes: 3 additions & 0 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -422,6 +422,9 @@ type Crawl struct {

// WakuClusterShards defines shard indices for Waku cluster operations.
WakuClusterShards *cli.IntSlice

// EnabledGossipSub defines whether to activate gossipsub PX crawling
EnableGossipSubPX bool
}

func (c *Crawl) AddrTrackType() AddrType {
Expand Down
2 changes: 1 addition & 1 deletion discv4/driver_crawler.go
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@ func (d *CrawlDriver) Close() {
select {
case <-d.tasksChan:
case <-time.After(time.Second):
log.Warnln("Timed out waiting for packetsDone channel to close")
log.Warnln("Timed out waiting for tasksChan channel to close")
}
}

Expand Down
63 changes: 34 additions & 29 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,31 +1,35 @@
module github.com/dennis-tra/nebula-crawler

go 1.23
go 1.23.0

toolchain go1.23.2

require (
github.com/ClickHouse/clickhouse-go/v2 v2.31.0
github.com/benbjohnson/clock v1.3.5
github.com/btcsuite/btcd v0.24.2
github.com/cenkalti/backoff/v4 v4.3.0
github.com/deckarep/golang-set/v2 v2.7.0
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0
github.com/ethereum/go-ethereum v1.15.1
github.com/friendsofgo/errors v0.9.2
github.com/gogo/protobuf v1.3.2
github.com/golang-migrate/migrate/v4 v4.18.2
github.com/google/uuid v1.6.0
github.com/hashicorp/golang-lru v1.0.2
github.com/lib/pq v1.10.9
github.com/libp2p/go-libp2p v0.39.1
github.com/libp2p/go-libp2p v0.41.1
github.com/libp2p/go-libp2p-kad-dht v0.29.0
github.com/libp2p/go-libp2p-kbucket v0.6.5
github.com/libp2p/go-libp2p-mplex v0.9.0
github.com/libp2p/go-libp2p-mplex v0.10.0
github.com/libp2p/go-libp2p-pubsub v0.13.1
github.com/libp2p/go-msgio v0.3.0
github.com/mattn/go-sqlite3 v1.14.24
github.com/multiformats/go-multiaddr v0.14.0
github.com/multiformats/go-multiaddr v0.15.0
github.com/multiformats/go-multiaddr-dns v0.4.1
github.com/oschwald/geoip2-golang v1.11.0
github.com/prometheus-community/ecs_exporter v0.3.0
github.com/prometheus/client_golang v1.20.5
github.com/prometheus/client_golang v1.21.0
github.com/protolambda/zrnt v0.33.1
github.com/protolambda/ztyp v0.2.2
github.com/sirupsen/logrus v1.9.3
Expand All @@ -46,8 +50,8 @@ require (
go.uber.org/atomic v1.11.0
go.uber.org/goleak v1.3.0
go.uber.org/mock v0.5.0
golang.org/x/net v0.35.0
golang.org/x/sync v0.11.0
golang.org/x/net v0.39.0
golang.org/x/sync v0.13.0
)

require (
Expand Down Expand Up @@ -98,7 +102,6 @@ require (
github.com/godbus/dbus/v5 v5.1.0 // indirect
github.com/gofrs/flock v0.12.1 // indirect
github.com/gofrs/uuid v4.4.0+incompatible // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v4 v4.5.1 // indirect
github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect
github.com/google/gopacket v1.1.19 // indirect
Expand All @@ -108,6 +111,7 @@ require (
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
github.com/holiman/bloomfilter/v2 v2.0.3 // indirect
github.com/holiman/uint256 v1.3.2 // indirect
github.com/huin/goupnp v1.3.0 // indirect
Expand All @@ -121,8 +125,8 @@ require (
github.com/jbenet/goprocess v0.1.4 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/kilic/bls12-381 v0.1.0 // indirect
github.com/klauspost/compress v1.17.11 // indirect
github.com/klauspost/cpuid/v2 v2.2.9 // indirect
github.com/klauspost/compress v1.18.0 // indirect
github.com/klauspost/cpuid/v2 v2.2.10 // indirect
github.com/koron/go-ssdp v0.0.5 // indirect
github.com/kr/pretty v0.3.1 // indirect
github.com/kr/text v0.2.0 // indirect
Expand All @@ -133,10 +137,9 @@ require (
github.com/libp2p/go-libp2p-record v0.3.1 // indirect
github.com/libp2p/go-libp2p-routing-helpers v0.7.4 // indirect
github.com/libp2p/go-mplex v0.7.0 // indirect
github.com/libp2p/go-nat v0.2.0 // indirect
github.com/libp2p/go-netroute v0.2.2 // indirect
github.com/libp2p/go-reuseport v0.4.0 // indirect
github.com/libp2p/go-yamux/v4 v4.0.2 // indirect
github.com/libp2p/go-yamux/v5 v5.0.0 // indirect
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.16 // indirect
Expand Down Expand Up @@ -167,21 +170,23 @@ require (
github.com/pierrec/lz4/v4 v4.1.22 // indirect
github.com/pion/datachannel v1.5.10 // indirect
github.com/pion/dtls/v2 v2.2.12 // indirect
github.com/pion/ice/v2 v2.3.37 // indirect
github.com/pion/dtls/v3 v3.0.4 // indirect
github.com/pion/ice/v4 v4.0.6 // indirect
github.com/pion/interceptor v0.1.37 // 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/randutil v0.1.0 // indirect
github.com/pion/rtcp v1.2.15 // indirect
github.com/pion/rtp v1.8.11 // indirect
github.com/pion/sctp v1.8.35 // indirect
github.com/pion/sctp v1.8.36 // indirect
github.com/pion/sdp/v3 v3.0.10 // indirect
github.com/pion/srtp/v2 v2.0.20 // 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/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/webrtc/v3 v3.3.5 // indirect
github.com/pion/turn/v4 v4.0.0 // indirect
github.com/pion/webrtc/v4 v4.0.10 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/polydawn/refmt v0.89.0 // indirect
Expand All @@ -190,7 +195,7 @@ require (
github.com/prometheus/procfs v0.15.1 // indirect
github.com/protolambda/bls12-381-util v0.1.0 // indirect
github.com/quic-go/qpack v0.5.1 // indirect
github.com/quic-go/quic-go v0.49.0 // indirect
github.com/quic-go/quic-go v0.50.0 // indirect
github.com/quic-go/webtransport-go v0.8.1-0.20241018022711-4ac2c9250e66 // indirect
github.com/raulk/go-watchdog v1.3.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
Expand Down Expand Up @@ -222,20 +227,20 @@ require (
go.uber.org/fx v1.23.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
golang.org/x/crypto v0.33.0 // indirect
golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac // indirect
golang.org/x/mod v0.23.0 // indirect
golang.org/x/sys v0.30.0 // indirect
golang.org/x/text v0.22.0 // indirect
golang.org/x/tools v0.30.0 // indirect
golang.org/x/crypto v0.37.0 // indirect
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect
golang.org/x/mod v0.24.0 // indirect
golang.org/x/sys v0.32.0 // indirect
golang.org/x/text v0.24.0 // indirect
golang.org/x/tools v0.32.0 // indirect
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
gonum.org/v1/gonum v0.15.1 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250212204824-5a70512c5d8b // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250212204824-5a70512c5d8b // indirect
google.golang.org/grpc v1.70.0 // indirect
google.golang.org/protobuf v1.36.5 // indirect
google.golang.org/protobuf v1.36.6 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
lukechampine.com/blake3 v1.3.0 // indirect
lukechampine.com/blake3 v1.4.0 // indirect
rsc.io/tmplfunc v0.0.3 // indirect
)

Expand All @@ -248,5 +253,5 @@ replace (
// replace go-libp2p with fork (branch nebula-v0.38.2). Changes:
// - avoid running into dial backoffs even if forceDirectDial is set to false
// - exports closeable host
github.com/libp2p/go-libp2p => github.com/probe-lab/go-libp2p v0.38.3-0.20250219152713-c85063380ac0
github.com/libp2p/go-libp2p => github.com/probe-lab/go-libp2p v0.38.2-0.20250414195430-e33a86ad9d10
)
Loading
Loading