mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-22 10:57:42 +08:00
37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
package libp2p
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/ipfs/go-datastore"
|
|
nilrouting "github.com/ipfs/go-ipfs-routing/none"
|
|
host "github.com/libp2p/go-libp2p-core/host"
|
|
routing "github.com/libp2p/go-libp2p-core/routing"
|
|
dht "github.com/libp2p/go-libp2p-kad-dht"
|
|
dhtopts "github.com/libp2p/go-libp2p-kad-dht/opts"
|
|
record "github.com/libp2p/go-libp2p-record"
|
|
)
|
|
|
|
type RoutingOption func(context.Context, host.Host, datastore.Batching, record.Validator) (routing.Routing, error)
|
|
|
|
func constructDHTRouting(ctx context.Context, host host.Host, dstore datastore.Batching, validator record.Validator) (routing.Routing, error) {
|
|
return dht.New(
|
|
ctx, host,
|
|
dhtopts.Datastore(dstore),
|
|
dhtopts.Validator(validator),
|
|
)
|
|
}
|
|
|
|
func constructClientDHTRouting(ctx context.Context, host host.Host, dstore datastore.Batching, validator record.Validator) (routing.Routing, error) {
|
|
return dht.New(
|
|
ctx, host,
|
|
dhtopts.Client(true),
|
|
dhtopts.Datastore(dstore),
|
|
dhtopts.Validator(validator),
|
|
)
|
|
}
|
|
|
|
var DHTOption RoutingOption = constructDHTRouting
|
|
var DHTClientOption RoutingOption = constructClientDHTRouting
|
|
var NilRouterOption RoutingOption = nilrouting.ConstructNilRouting
|