Skip to content

Commit 649fe87

Browse files
authored
Publish ads via http and announce via http, using ipnisync publisher (#17)
* Publish ads via http and announce via http, using ipnisync publisher - Add options to configure optional http publisher - Add options to send direct http announcements - Add option to disable libp2p announcements - Update dependencies - Flags to set publish options - Update README
1 parent 4290b52 commit 649fe87

File tree

7 files changed

+468
-1542
lines changed

7 files changed

+468
-1542
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/depute

README.md

+19-8
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,31 @@ $ go install github.com/ipni/depute/cmd/depute@latest
1717
```shell
1818
$ depute -h
1919
Usage of depute:
20+
Usage of ./depute:
21+
-directAnnounceURL value
22+
Indexer URL to send direct http announcement to. Multiple OK
2023
-grpcListenAddr string
21-
The gRPC server listen address. (default "0.0.0.0:40080")
24+
The gRPC server listen address. (default "0.0.0.0:40080")
2225
-grpcTlsCertPath string
23-
The path to gRPC server TLS Certificate.
26+
Path to gRPC server TLS Certificate.
2427
-grpcTlsKeyPath string
25-
The path to gRPC server TLS Key.
28+
Path to gRPC server TLS Key.
29+
-httpListenAddr string
30+
Address to listen on for publishing advertisements over HTTP.
2631
-libp2pIdentityPath string
27-
The path to the marshalled libp2p host identity. If unspecified a random identity is generated.
32+
Path to the marshalled libp2p host identity. If unspecified a random identity is generated.
2833
-libp2pListenAddrs string
29-
The comma separated libp2p host listen addrs. If unspecified the default listen addrs are used at ephemeral port.
34+
Comma separated libp2p host listen addrs. If unspecified the default listen addrs are used at ephemeral port.
3035
-logLevel string
31-
The logging level. Only applied if GOLOG_LOG_LEVEL environment variable is unset. (default "info")
36+
Logging level. Only applied if GOLOG_LOG_LEVEL environment variable is unset. (default "info")
37+
-noPubsub
38+
Disable pubsub announcements of new advertisements.
39+
-pubAddr value
40+
Address to tell indexer where to retrieve advertisements. Multiple OK
3241
-retrievalAddrs string
33-
The comma separated retrieval multiaddrs to advertise. If unspecified, libp2p host listen addrs are used.
42+
Comma separated retrieval multiaddrs to advertise. If unspecified, libp2p host listen addrs are used.
43+
-topic string
44+
Sets the topic that pubsub messages are send on. (default "/indexer/ingest/mainnet")
3445
```
3546
3647
### Run Server Locally
@@ -47,4 +58,4 @@ To shutdown the server, interrupt the terminal by pressing `Ctrl + C`
4758
4859
## License
4960
50-
[SPDX-License-Identifier: Apache-2.0 OR MIT](LICENSE.md)
61+
[SPDX-License-Identifier: Apache-2.0 OR MIT](LICENSE.md)

cmd/depute/main.go

+36-6
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,33 @@ const (
2222
libp2pUserAgent = "ipni/depute"
2323
)
2424

25+
type arrayFlags []string
26+
27+
func (a *arrayFlags) String() string {
28+
return strings.Join(*a, ", ")
29+
}
30+
31+
func (a *arrayFlags) Set(value string) error {
32+
*a = append(*a, value)
33+
return nil
34+
}
35+
2536
func main() {
26-
libp2pIdentityPath := flag.String("libp2pIdentityPath", "", "The path to the marshalled libp2p host identity. If unspecified a random identity is generated.")
27-
libp2pListenAddrs := flag.String("libp2pListenAddrs", "", "The comma separated libp2p host listen addrs. If unspecified the default listen addrs are used at ephemeral port.")
28-
retrievalAddrs := flag.String("retrievalAddrs", "", "The comma separated retrieval multiaddrs to advertise. If unspecified, libp2p host listen addrs are used.")
37+
httpListenAddr := flag.String("httpListenAddr", "", "Address to listen on for publishing advertisements over HTTP.")
38+
var directAnnounceURLs arrayFlags
39+
flag.Var(&directAnnounceURLs, "directAnnounceURL", "Indexer URL to send direct http announcement to. Multiple OK")
40+
var pubAddrs arrayFlags
41+
flag.Var(&pubAddrs, "pubAddr", "Address to tell indexer where to retrieve advertisements. Multiple OK")
42+
43+
noPubsub := flag.Bool("noPubsub", false, "Disable pubsub announcements of new advertisements.")
44+
libp2pIdentityPath := flag.String("libp2pIdentityPath", "", "Path to the marshalled libp2p host identity. If unspecified a random identity is generated.")
45+
libp2pListenAddrs := flag.String("libp2pListenAddrs", "", "Comma separated libp2p host listen addrs. If unspecified the default listen addrs are used at ephemeral port.")
46+
retrievalAddrs := flag.String("retrievalAddrs", "", "Comma separated retrieval multiaddrs to advertise. If unspecified, libp2p host listen addrs are used.")
2947
grpcListenAddr := flag.String("grpcListenAddr", "0.0.0.0:40080", "The gRPC server listen address.")
30-
grpcTlsCertPath := flag.String("grpcTlsCertPath", "", "The path to gRPC server TLS Certificate.")
31-
grpcTlsKeyPath := flag.String("grpcTlsKeyPath", "", "The path to gRPC server TLS Key.")
32-
logLevel := flag.String("logLevel", "info", "The logging level. Only applied if GOLOG_LOG_LEVEL environment variable is unset.")
48+
grpcTlsCertPath := flag.String("grpcTlsCertPath", "", "Path to gRPC server TLS Certificate.")
49+
grpcTlsKeyPath := flag.String("grpcTlsKeyPath", "", "Path to gRPC server TLS Key.")
50+
logLevel := flag.String("logLevel", "info", "Logging level. Only applied if GOLOG_LOG_LEVEL environment variable is unset.")
51+
topic := flag.String("topic", depute.DefaultTopic, "Sets the topic that pubsub messages are send on.")
3352
flag.Parse()
3453

3554
if _, set := os.LookupEnv("GOLOG_LOG_LEVEL"); !set {
@@ -69,6 +88,17 @@ func main() {
6988
rAddrs := strings.Split(*libp2pListenAddrs, ",")
7089
deputeOpts = append(deputeOpts, depute.WithRetrievalAddrs(rAddrs...))
7190
}
91+
deputeOpts = append(deputeOpts, depute.WithHttpListenAddr(*httpListenAddr))
92+
if *noPubsub {
93+
deputeOpts = append(deputeOpts, depute.WithNoPubsubAnnounce())
94+
}
95+
deputeOpts = append(deputeOpts, depute.WithPublishTopic(*topic))
96+
if len(directAnnounceURLs) != 0 {
97+
deputeOpts = append(deputeOpts, depute.WithDirectAnnounceURLs(directAnnounceURLs))
98+
}
99+
if len(pubAddrs) != 0 {
100+
deputeOpts = append(deputeOpts, depute.WithPublishAddrs(pubAddrs))
101+
}
72102

73103
var gsOpts []grpc.ServerOption
74104
// TODO: expose more flags for gRPC server options.

depute.go

+31-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package depute
22

33
import (
44
"context"
5+
"fmt"
56
"net"
67

78
"github.com/gogo/status"
@@ -12,8 +13,11 @@ import (
1213
_ "github.com/ipld/go-ipld-prime/codec/dagcbor"
1314
cidlink "github.com/ipld/go-ipld-prime/linking/cid"
1415
depute "github.com/ipni/depute/api/v0"
16+
"github.com/ipni/go-libipni/announce"
17+
"github.com/ipni/go-libipni/announce/httpsender"
18+
"github.com/ipni/go-libipni/announce/p2psender"
19+
"github.com/ipni/go-libipni/ingest/schema"
1520
"github.com/ipni/index-provider/engine/chunker"
16-
"github.com/ipni/storetheindex/api/v0/ingest/schema"
1721
"github.com/multiformats/go-multicodec"
1822
"google.golang.org/grpc"
1923
"google.golang.org/grpc/codes"
@@ -39,6 +43,7 @@ var (
3943
type Depute struct {
4044
*options
4145
chunker *chunker.ChainChunker
46+
senders []announce.Sender
4247
server *grpc.Server
4348
}
4449

@@ -47,8 +52,31 @@ func New(o ...Option) (*Depute, error) {
4752
if err != nil {
4853
return nil, err
4954
}
55+
56+
var senders []announce.Sender
57+
if opts.h != nil && len(opts.publishAddrs) != 0 {
58+
if !opts.noPubsubAnnounce {
59+
// Create an announce sender to send over gossip pubsub.
60+
p2pSender, err := p2psender.New(opts.h, opts.pubTopicName)
61+
if err != nil {
62+
return nil, fmt.Errorf("cannot create p2p pubsub announce sender: %w", err)
63+
}
64+
senders = append(senders, p2pSender)
65+
logger.Info("Pubsub announcements enabled")
66+
}
67+
if len(opts.directAnnounceURLs) != 0 {
68+
httpSender, err := httpsender.New(opts.directAnnounceURLs, opts.h.ID())
69+
if err != nil {
70+
return nil, fmt.Errorf("cannot create http announce sender: %w", err)
71+
}
72+
senders = append(senders, httpSender)
73+
logger.Info("Http announcements enabled")
74+
}
75+
}
76+
5077
return &Depute{
5178
options: opts,
79+
senders: senders,
5280
server: grpc.NewServer(opts.grpcServerOpts...),
5381
}, nil
5482
}
@@ -112,6 +140,8 @@ func (d *Depute) Publish(ctx context.Context, req *depute.Publish_Request) (*dep
112140
logger.Errorw("Failed to set latest ad link", "link", link.String(), "err", err)
113141
return nil, status.Errorf(codes.Internal, "failed to set latest ad link: %v", err)
114142
}
143+
adCid := link.(cidlink.Link).Cid
144+
announce.Send(ctx, adCid, d.publishAddrs, d.senders...)
115145
logger.Infow("Published advertisement", "link", link.String())
116146
var l depute.Link
117147
if err := l.Marshal(link); err != nil {

go.mod

+68-102
Original file line numberDiff line numberDiff line change
@@ -1,151 +1,117 @@
11
module github.com/ipni/depute
22

3-
go 1.19
3+
go 1.21
44

55
require (
66
github.com/gogo/status v1.1.0
7-
github.com/ipfs/go-cid v0.3.2
7+
github.com/ipfs/go-cid v0.4.1
88
github.com/ipfs/go-datastore v0.6.0
99
github.com/ipfs/go-log/v2 v2.5.1
10-
github.com/ipld/go-ipld-prime v0.19.0
11-
github.com/ipld/go-ipld-prime/storage/dsadapter v0.0.0-20230102063945-1a409dc236dd
12-
github.com/ipni/index-provider v0.10.1
13-
github.com/ipni/storetheindex v0.5.7
14-
github.com/libp2p/go-libp2p v0.23.4
15-
github.com/multiformats/go-multiaddr v0.7.0
16-
github.com/multiformats/go-multicodec v0.7.0
17-
github.com/multiformats/go-multihash v0.2.1
18-
google.golang.org/grpc v1.56.3
10+
github.com/ipld/go-ipld-prime v0.21.0
11+
github.com/ipld/go-ipld-prime/storage/dsadapter v0.0.0-20240322071758-198d7dba8fb8
12+
github.com/ipni/go-libipni v0.6.5
13+
github.com/ipni/index-provider v0.15.1
14+
github.com/libp2p/go-libp2p v0.33.2
15+
github.com/multiformats/go-multiaddr v0.12.3
16+
github.com/multiformats/go-multicodec v0.9.0
17+
github.com/multiformats/go-multihash v0.2.3
18+
google.golang.org/grpc v1.63.2
1919
google.golang.org/protobuf v1.33.0
2020
)
2121

2222
require (
23-
github.com/benbjohnson/clock v1.3.0 // indirect
23+
github.com/benbjohnson/clock v1.3.5 // indirect
2424
github.com/beorn7/perks v1.0.1 // indirect
25-
github.com/bep/debounce v1.2.1 // indirect
2625
github.com/cespare/xxhash/v2 v2.2.0 // indirect
27-
github.com/containerd/cgroups v1.0.4 // indirect
26+
github.com/containerd/cgroups v1.1.0 // indirect
2827
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
29-
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
3028
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect
31-
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
29+
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
3230
github.com/docker/go-units v0.5.0 // indirect
3331
github.com/elastic/gosigar v0.14.2 // indirect
34-
github.com/filecoin-project/go-cbor-util v0.0.1 // indirect
35-
github.com/filecoin-project/go-data-transfer v1.15.2 // indirect
36-
github.com/filecoin-project/go-ds-versioning v0.1.2 // indirect
37-
github.com/filecoin-project/go-statemachine v1.0.2 // indirect
38-
github.com/filecoin-project/go-statestore v0.2.0 // indirect
39-
github.com/flynn/noise v1.0.0 // indirect
32+
github.com/flynn/noise v1.1.0 // indirect
4033
github.com/francoispqt/gojay v1.2.13 // indirect
41-
github.com/fsnotify/fsnotify v1.6.0 // indirect
42-
github.com/go-logr/logr v1.2.3 // indirect
43-
github.com/go-logr/stdr v1.2.2 // indirect
44-
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect
34+
github.com/gammazero/channelqueue v0.2.1 // indirect
35+
github.com/gammazero/deque v0.2.1 // indirect
36+
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect
4537
github.com/godbus/dbus/v5 v5.1.0 // indirect
4638
github.com/gogo/googleapis v1.1.0 // indirect
4739
github.com/gogo/protobuf v1.3.2 // indirect
4840
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
49-
github.com/golang/mock v1.6.0 // indirect
50-
github.com/golang/protobuf v1.5.3 // indirect
41+
github.com/golang/protobuf v1.5.4 // indirect
5142
github.com/google/gopacket v1.1.19 // indirect
52-
github.com/google/uuid v1.3.0 // indirect
53-
github.com/gorilla/websocket v1.5.0 // indirect
54-
github.com/hannahhoward/cbor-gen-for v0.0.0-20200817222906-ea96cece81f1 // indirect
55-
github.com/hannahhoward/go-pubsub v0.0.0-20200423002714-8d62886cc36e // indirect
43+
github.com/google/pprof v0.0.0-20240207164012-fb44976bdcd5 // indirect
44+
github.com/google/uuid v1.6.0 // indirect
45+
github.com/gorilla/websocket v1.5.1 // indirect
5646
github.com/hashicorp/errwrap v1.1.0 // indirect
47+
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
5748
github.com/hashicorp/go-multierror v1.1.1 // indirect
58-
github.com/hashicorp/golang-lru v0.5.4 // indirect
59-
github.com/huin/goupnp v1.0.3 // indirect
60-
github.com/ipfs/go-block-format v0.0.3 // indirect
61-
github.com/ipfs/go-graphsync v0.13.2 // indirect
62-
github.com/ipfs/go-ipfs-exchange-offline v0.3.0 // indirect
63-
github.com/ipfs/go-ipfs-pq v0.0.2 // indirect
64-
github.com/ipfs/go-ipfs-util v0.0.2 // indirect
65-
github.com/ipfs/go-ipld-cbor v0.0.6 // indirect
66-
github.com/ipfs/go-ipld-format v0.4.0 // indirect
67-
github.com/ipfs/go-log v1.0.5 // indirect
68-
github.com/ipfs/go-peertaskqueue v0.8.0 // indirect
69-
github.com/ipld/go-car/v2 v2.4.1 // indirect
70-
github.com/ipld/go-codec-dagpb v1.5.0 // indirect
49+
github.com/hashicorp/go-retryablehttp v0.7.4 // indirect
50+
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
51+
github.com/huin/goupnp v1.3.0 // indirect
52+
github.com/ipld/go-car/v2 v2.13.1 // indirect
7153
github.com/ipld/go-ipld-adl-hamt v0.0.0-20220616142416-9004dbd839e0 // indirect
7254
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
7355
github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect
7456
github.com/jbenet/goprocess v0.1.4 // indirect
75-
github.com/jpillora/backoff v1.0.0 // indirect
76-
github.com/klauspost/compress v1.15.12 // indirect
77-
github.com/klauspost/cpuid/v2 v2.1.2 // indirect
78-
github.com/koron/go-ssdp v0.0.3 // indirect
57+
github.com/klauspost/compress v1.17.6 // indirect
58+
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
59+
github.com/koron/go-ssdp v0.0.4 // indirect
7960
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
80-
github.com/libp2p/go-cidranger v1.1.0 // indirect
8161
github.com/libp2p/go-flow-metrics v0.1.0 // indirect
82-
github.com/libp2p/go-libp2p-asn-util v0.2.0 // indirect
83-
github.com/libp2p/go-libp2p-core v0.20.1 // indirect
84-
github.com/libp2p/go-libp2p-gostream v0.5.0 // indirect
85-
github.com/libp2p/go-libp2p-pubsub v0.8.1 // indirect
86-
github.com/libp2p/go-msgio v0.2.0 // indirect
87-
github.com/libp2p/go-nat v0.1.0 // indirect
62+
github.com/libp2p/go-libp2p-asn-util v0.4.1 // indirect
63+
github.com/libp2p/go-libp2p-pubsub v0.10.0 // indirect
64+
github.com/libp2p/go-msgio v0.3.0 // indirect
65+
github.com/libp2p/go-nat v0.2.0 // indirect
8866
github.com/libp2p/go-netroute v0.2.1 // indirect
89-
github.com/libp2p/go-openssl v0.1.0 // indirect
90-
github.com/libp2p/go-reuseport v0.2.0 // indirect
91-
github.com/libp2p/go-yamux/v4 v4.0.0 // indirect
92-
github.com/lucas-clemente/quic-go v0.29.1 // indirect
93-
github.com/marten-seemann/qpack v0.3.0 // indirect
94-
github.com/marten-seemann/qtls-go1-18 v0.1.3 // indirect
95-
github.com/marten-seemann/qtls-go1-19 v0.1.1 // indirect
67+
github.com/libp2p/go-reuseport v0.4.0 // indirect
68+
github.com/libp2p/go-yamux/v4 v4.0.1 // indirect
9669
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect
97-
github.com/mattn/go-isatty v0.0.16 // indirect
98-
github.com/mattn/go-pointer v0.0.1 // indirect
99-
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
100-
github.com/miekg/dns v1.1.50 // indirect
70+
github.com/mattn/go-isatty v0.0.20 // indirect
71+
github.com/miekg/dns v1.1.58 // indirect
10172
github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect
10273
github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect
103-
github.com/minio/sha256-simd v1.0.0 // indirect
74+
github.com/minio/sha256-simd v1.0.1 // indirect
10475
github.com/mr-tron/base58 v1.2.0 // indirect
10576
github.com/multiformats/go-base32 v0.1.0 // indirect
106-
github.com/multiformats/go-base36 v0.1.0 // indirect
77+
github.com/multiformats/go-base36 v0.2.0 // indirect
10778
github.com/multiformats/go-multiaddr-dns v0.3.1 // indirect
10879
github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect
109-
github.com/multiformats/go-multibase v0.1.1 // indirect
110-
github.com/multiformats/go-multistream v0.3.3 // indirect
111-
github.com/multiformats/go-varint v0.0.6 // indirect
112-
github.com/nxadm/tail v1.4.8 // indirect
113-
github.com/onsi/ginkgo v1.16.5 // indirect
114-
github.com/onsi/gomega v1.24.0 // indirect
115-
github.com/opencontainers/runtime-spec v1.0.2 // indirect
116-
github.com/opentracing/opentracing-go v1.2.0 // indirect
80+
github.com/multiformats/go-multibase v0.2.0 // indirect
81+
github.com/multiformats/go-multistream v0.5.0 // indirect
82+
github.com/multiformats/go-varint v0.0.7 // indirect
83+
github.com/onsi/ginkgo/v2 v2.15.0 // indirect
84+
github.com/opencontainers/runtime-spec v1.2.0 // indirect
11785
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
86+
github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9 // indirect
11887
github.com/pkg/errors v0.9.1 // indirect
119-
github.com/polydawn/refmt v0.0.0-20201211092308-30ac6d18308e // indirect
120-
github.com/prometheus/client_golang v1.14.0 // indirect
121-
github.com/prometheus/client_model v0.3.0 // indirect
122-
github.com/prometheus/common v0.37.0 // indirect
123-
github.com/prometheus/procfs v0.8.0 // indirect
88+
github.com/polydawn/refmt v0.89.0 // indirect
89+
github.com/prometheus/client_golang v1.18.0 // indirect
90+
github.com/prometheus/client_model v0.6.0 // indirect
91+
github.com/prometheus/common v0.47.0 // indirect
92+
github.com/prometheus/procfs v0.12.0 // indirect
93+
github.com/quic-go/qpack v0.4.0 // indirect
94+
github.com/quic-go/quic-go v0.42.0 // indirect
95+
github.com/quic-go/webtransport-go v0.6.0 // indirect
12496
github.com/raulk/go-watchdog v1.3.0 // indirect
125-
github.com/russross/blackfriday/v2 v2.1.0 // indirect
126-
github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect
12797
github.com/spaolacci/murmur3 v1.1.0 // indirect
12898
github.com/twmb/murmur3 v1.1.6 // indirect
129-
github.com/urfave/cli/v2 v2.16.3 // indirect
130-
github.com/whyrusleeping/cbor-gen v0.0.0-20220514204315-f29c37e9c44c // indirect
131-
github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee // indirect
132-
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
133-
go.opentelemetry.io/otel v1.10.0 // indirect
134-
go.opentelemetry.io/otel/trace v1.10.0 // indirect
135-
go.uber.org/atomic v1.10.0 // indirect
136-
go.uber.org/multierr v1.8.0 // indirect
137-
go.uber.org/zap v1.23.0 // indirect
99+
github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 // indirect
100+
github.com/whyrusleeping/cbor-gen v0.0.0-20240109153615-66e95c3e8a87 // indirect
101+
go.uber.org/dig v1.17.1 // indirect
102+
go.uber.org/fx v1.20.1 // indirect
103+
go.uber.org/mock v0.4.0 // indirect
104+
go.uber.org/multierr v1.11.0 // indirect
105+
go.uber.org/zap v1.27.0 // indirect
138106
golang.org/x/crypto v0.21.0 // indirect
139-
golang.org/x/exp v0.0.0-20221106115401-f9659909a136 // indirect
140-
golang.org/x/mod v0.8.0 // indirect
107+
golang.org/x/exp v0.0.0-20240213143201-ec583247a57a // indirect
108+
golang.org/x/mod v0.15.0 // indirect
141109
golang.org/x/net v0.23.0 // indirect
142-
golang.org/x/sync v0.1.0 // indirect
110+
golang.org/x/sync v0.6.0 // indirect
143111
golang.org/x/sys v0.18.0 // indirect
144112
golang.org/x/text v0.14.0 // indirect
145-
golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 // indirect
146-
golang.org/x/tools v0.6.0 // indirect
147-
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
148-
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
149-
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
150-
lukechampine.com/blake3 v1.1.7 // indirect
113+
golang.org/x/tools v0.18.0 // indirect
114+
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
115+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect
116+
lukechampine.com/blake3 v1.2.1 // indirect
151117
)

0 commit comments

Comments
 (0)