Skip to content
Open
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
1 change: 1 addition & 0 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ The MIT License (MIT)

Copyright (c) 2014-2016 Juan Batiz-Benet
Copyright (c) 2019 TRON-US
Copyright (c) 2023 Bittorrent

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ go-btfs-config

> go-btfs configuration datastructure.

Documentation lives in the go-btfs repo: [docs/config.md](https://github.com/TRON-US/go-btfs/blob/master/docs/config.md).
Documentation lives in the go-btfs repo: [docs/config.md](https://github.com/bittorrent/go-btfs/blob/master/docs/config.md).

## Table of Contents

Expand All @@ -18,4 +18,4 @@ Small note: If editing the Readme, please conform to the [standard-readme](https

## License

MIT © TRON-US
MIT © Bittorrent
2 changes: 1 addition & 1 deletion autonat.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,5 +77,5 @@ type AutoNATThrottleConfig struct {
// global/peer dialback limits.
//
// When unset, this defaults to 1 minute.
Interval Duration `json:",omitempty"`
Interval OptionalDuration `json:",omitempty"`
}
77 changes: 48 additions & 29 deletions bootstrap_peers.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"errors"
"fmt"

peer "github.com/libp2p/go-libp2p-core/peer"
peer "github.com/libp2p/go-libp2p/core/peer"
ma "github.com/multiformats/go-multiaddr"
)

Expand All @@ -15,34 +15,53 @@ import (
// NOTE: This is here -- and not inside cmd/btfs/init.go -- because of an
// import dependency issue. TODO: move this into a config/default/ package.
var DefaultBootstrapAddresses = []string{
"/ip4/18.237.54.123/tcp/4001/p2p/QmWJWGxKKaqZUW4xga2BCzT5FBtYDL8Cc5Q5jywd6xPt1g",
"/ip4/54.213.128.120/tcp/4001/p2p/QmWm3vBCRuZcJMUT9jDZysoYBb66aokmSReX26UaMk8qq5",
"/ip4/34.213.5.20/tcp/4001/p2p/QmQVQBsM7uoJy8hATjTm51uSAkx2y3iGLhSwA6LWLa7iQJ",
"/ip4/18.237.202.91/tcp/4001/p2p/QmbVFdiNkvxtc7Nni7yBWAgtHg8MuyhaZ5mDaYR2ZrhhvN",
"/ip4/13.229.45.41/tcp/4001/p2p/QmX7RZXh27AX8iv2BKLGMgPBiuUpEy8p4LFXgtXAfaZDn9",
"/ip4/54.254.227.188/tcp/4001/p2p/QmYqCq3PasrzLr3PxtLo5D6spEAJ836W9Re9Eo4zUou45U",
"/ip4/52.77.240.134/tcp/4001/p2p/QmURPwdLYesWUDB66EGXvDvwcyV44rVRqV2iGNqKN24eVu",
"/ip4/3.126.224.22/tcp/4001/p2p/QmWTTmvchTodUaVvuKZMo67xk7ZgkxJf4nBo7SZry3vGU5",
"/ip4/18.194.71.27/tcp/4001/p2p/QmYHkY5CrWcvgaDo4PfvzTQgaZtfaqRGDjwW1MrHUj8cLK",
"/ip4/54.93.47.134/tcp/4001/p2p/QmeHaHe7WvjeY37z5MYC3qYQcQcuvDwUhwTXtP3KhKLXXK",
"/ip4/54.255.27.251/tcp/4001/p2p/QmURPwdLYesWUDB66EGXvDvwcyV44rVRqV2iGNqKN24eVu",
"/ip4/13.213.254.73/tcp/4001/p2p/QmX7RZXh27AX8iv2BKLGMgPBiuUpEy8p4LFXgtXAfaZDn9",
"/ip4/52.221.82.136/tcp/4001/p2p/QmYqCq3PasrzLr3PxtLo5D6spEAJ836W9Re9Eo4zUou45U",
"/ip4/3.1.76.240/tcp/4001/p2p/16Uiu2HAmQfh6CYSWG1MM1DnzJ9duM8jxqn6vxNbjGBsmzc3kkctp",
"/ip4/34.213.53.108/tcp/4001/p2p/QmWm3vBCRuZcJMUT9jDZysoYBb66aokmSReX26UaMk8qq5",
"/ip4/35.161.203.220/tcp/4001/p2p/QmWJWGxKKaqZUW4xga2BCzT5FBtYDL8Cc5Q5jywd6xPt1g",
"/ip4/35.84.213.199/tcp/4001/p2p/QmbVFdiNkvxtc7Nni7yBWAgtHg8MuyhaZ5mDaYR2ZrhhvN",
"/ip4/35.84.151.38/tcp/4001/p2p/QmQVQBsM7uoJy8hATjTm51uSAkx2y3iGLhSwA6LWLa7iQJ",
"/ip4/3.66.57.90/tcp/4001/p2p/16Uiu2HAmFT6NXQkzDZXHxuFC4qFt6D1ALf57AkJV9U54HoafX7FX",
"/ip4/3.69.104.217/tcp/4001/p2p/16Uiu2HAm2v2NBTLYmzVnLJoNbLCmdn29Gv8qLixHCJNeE81rUUYe",
"/ip4/3.126.224.22/tcp/4001/p2p/16Uiu2HAmNngtNogFpcAUdc6wdSDmb8ZZQjjoDDWaatBXW1rHsYpu",
"/ip4/35.158.193.90/tcp/4001/p2p/16Uiu2HAmLY4kyhMuoBntyXSt2YssZCHjefHEAXrYVc6acB7KEBh3",
"/ip4/13.232.5.9/tcp/4001/p2p/16Uiu2HAmSkFDwHU3snrYD2ib5wWeKcsuFMZWEPt31z5YVJ8ktw1p",
"/ip4/3.7.220.224/tcp/4001/p2p/16Uiu2HAmRVtFaXksAqb8W4Fyr8g5jkggeGDFdVcp8dQ724NMvpcR",
"/ip4/3.109.125.91/tcp/4001/p2p/16Uiu2HAkzggX1jKwc1xen5qNPQ5RKNkXQqmH2PYAKGd8JZ15YQmK",
"/ip4/65.1.217.86/tcp/4001/p2p/16Uiu2HAmGwDdvK4jAi1Ahga3zkiuW6HFZKKFNWtqVUFXvaSCNjdg",
"/ip4/15.184.66.135/tcp/4001/p2p/16Uiu2HAmBQcXzrgo9MVD8xZwt4CrLzPRK1yKAVM7eY9GhXMJYHmC",
"/ip4/15.184.174.48/tcp/4001/p2p/16Uiu2HAm6Bkxj81JQxa67aja7UWznjTgzAAVzPAqZMVD6oGpw7ST",
"/ip4/15.184.108.65/tcp/4001/p2p/16Uiu2HAkzRyGYEba2B3SBXdwp328LNFhRG4qhJVZrN6tsJK5KKu5",
"/ip4/15.184.96.102/tcp/4001/p2p/16Uiu2HAmFVWTvouWpQTRjMb4bUaidfLzsH2RVogcGHb6RwvPSxuT",
"/ip4/16.24.14.84/tcp/4001/p2p/16Uiu2HAmM96uUH53Ab9JBWfuwUBXJvGMbfVbsBXiGZGqStP93DTS",
"/ip4/16.24.16.4/tcp/4001/p2p/16Uiu2HAmJ6vEtzmmC6nM6SJwHA9NCPwTRWy7K5WT2UFXDqzJFGSf",
"/ip4/3.76.64.148/tcp/4001/p2p/16Uiu2HAmFc3snGkwK76yMYMAkHWhq6GD29w7m8Sa7kUciUK5xovu",
"/ip4/3.78.178.244/tcp/4001/p2p/16Uiu2HAmHeUHakzYG1YWfWoSriVwKhSHYz88rL3USmgeRpqtWqMw",
"/ip4/3.7.21.138/tcp/4001/p2p/16Uiu2HAm7QD77kxSKf1GTM3YkrYp8vkhUwS2ySJPht9jALeaHaft",
"/ip4/43.204.199.237/tcp/4001/p2p/16Uiu2HAm3tpaz9zgqB4i2FEwX7dwTJzv88Krpdy3kRecXZos3WdM",
"/ip4/35.155.192.241/tcp/4001/p2p/16Uiu2HAm29iAxcKRPNRBVMYCz455uck5o7KmdPJ9GQ5BKvpxxca9",
"/ip4/35.83.203.96/tcp/4001/p2p/16Uiu2HAmNnKCdkBKdoPo4sXSLhDgXvPmCi7NCjo8cfcP5RRb4mKL",
"/ip4/54.69.57.58/tcp/4001/p2p/16Uiu2HAmNDZWZtyRNZMLQ88933SFcVp2gtb99aQVbADXcCFcjFn9",
"/ip4/35.164.151.55/tcp/4001/p2p/16Uiu2HAmMgufksaU9aaenq2bNtGnG5QokCS1xdzJwUS6yRtakhbs",
}
var DefaultTestnetBootstrapAddresses = []string{
"/ip4/54.151.185.243/tcp/35369/p2p/16Uiu2HAm8ZYAmsEXE6qBoSeRTeGGR2KVPUZBLBf1dEh9y28ANMMt",
"/ip4/54.151.185.243/tcp/39789/p2p/16Uiu2HAm56ujXswzAXxY8xT5mz6aPsXUWxwNLYG7bqB2fxFmoAKD",
"/ip4/54.151.185.243/tcp/34233/p2p/16Uiu2HAm6K1GrRSaCy83N5s9pUbaFp45pHTqhkDvui8gXNMnCPj9",
"/ip4/54.151.185.243/tcp/39447/p2p/16Uiu2HAmLHxH8qXMMj6pBynFefgFNEzsbaCHuX4hfwaLoRHykjCz",
"/ip4/18.158.67.141/tcp/41265/p2p/16Uiu2HAmLgKPQUW4kTvrdhnqXtioZZsTeyNxyeXUDnfcFJQxUjKN",
"/ip4/18.158.67.141/tcp/36007/p2p/16Uiu2HAmJPmu9hUM4NhDYBvkXZidhxf4KA6endccGvKEvujPg3C4",
"/ip4/18.158.67.141/tcp/39985/p2p/16Uiu2HAm5TuvgzRE56gaZe31J4ErXSvXvxfFhjeYqMybKyR6kyr1",
"/ip4/18.158.67.141/tcp/35839/p2p/16Uiu2HAkwvgHtaBoKfGDJ9z2B3RvbvMfiBqJX8iS7eR6NFuyS7HF",
"/ip4/18.163.235.175/tcp/40165/p2p/16Uiu2HAkx4hFxXHxMWF5Sx2SvaV8YgGdzKaZcpbyArixhY9vJcJV",
"/ip4/18.163.235.175/tcp/34059/p2p/16Uiu2HAmJAxe9pjbiMDRPUFNHbYs8LMfwCaC1sBfWrTnoqnQ38Fh",
"/ip4/18.163.235.175/tcp/42895/p2p/16Uiu2HAmCuGqf7zHuJMBWtWxUHgYf3WkJqfd7sUHnwsPiBbmJTAj",
"/ip4/18.163.235.175/tcp/33463/p2p/16Uiu2HAmRNMZmbv3WzWHqaj5CietkmzzzrsvhHK9xnjBjJccerYx",
"/ip4/18.224.174.215/tcp/39341/p2p/16Uiu2HAm5eXHtcGv6KGZ9QeKM4gbBzxQPr6WLEE6qZpF3AMwzKcF",
"/ip4/18.224.174.215/tcp/43057/p2p/16Uiu2HAkumR1Ee1HvvHwNqVrCn4jwhDhRNENJVUeXjpTAkx6nNcR",
"/ip4/18.224.174.215/tcp/44715/p2p/16Uiu2HAm6JRfLXPToTt2hwVcZqTGiG7ZLj25aFbAie7Xeab2H49S",
"/ip4/18.224.174.215/tcp/33931/p2p/16Uiu2HAmKvjzAPQY5kzjpEJGVXDjMpSC1yNd7ZzLZYBKJs7ydHKV",
"/ip4/18.224.174.215/tcp/45301/p2p/16Uiu2HAmFFwNdgSoLhfgJUPEfPEVodppRxaeZBVpAvrH5s3qSkWo",
"/ip4/18.224.174.215/tcp/34237/p2p/16Uiu2HAmDigS3SDx6g9Sp6MUfdFHvDwS8Zw8E14V6bLhCAHA3jjB",
"/ip4/18.224.174.215/tcp/43097/p2p/16Uiu2HAm7HQoEbQe1fYt4LtnG6z5TqwTrrqUv5xsnt4nukskWmAi",
"/ip4/18.224.174.215/tcp/38955/p2p/16Uiu2HAm5WrYvkJwaRP7ZAroWCfjaUxKkNssqcSmEmKJ8vXVYp1o",
"/ip4/54.151.185.243/tcp/36707/p2p/16Uiu2HAmDis3wAorW46YyNmXNk963VAAHwZ1phjHXj5yduyawAUy",
"/ip4/54.151.185.243/tcp/42741/p2p/16Uiu2HAmSfqLCyqH5qQQF8zpzPMQvWiQunhWpYtSxwGw5QR2jhgU",
"/ip4/54.151.185.243/tcp/37403/p2p/16Uiu2HAmBHwyRUETsGqjYpgPRpnMC9y39tcVYH6vKxZidCBcBeFG",
"/ip4/54.151.185.243/tcp/37739/p2p/16Uiu2HAm2oKy37KvYmiv1nnRWZwUoLPZumNKFxPzhM1t8F3KxADu",
"/ip4/18.158.67.141/tcp/40155/p2p/16Uiu2HAmTMEqndByECXuxk1Rg8szxMqwS3tUFFWhAUduFzwfwmfK",
"/ip4/18.158.67.141/tcp/44569/p2p/16Uiu2HAmL4QNi68nSNbedUWp1A1cRR3z3NuJqQYmAYoj19ht6iNv",
"/ip4/18.158.67.141/tcp/39703/p2p/16Uiu2HAkzF6JMx4EL2C4cLoCLyQH8t1sgyttQxPfQtNt5FZhvpxs",
"/ip4/18.158.67.141/tcp/46713/p2p/16Uiu2HAm85HXJA7xmgNxxTVdFRuRCGstvrY8nW6KqfTtkuZrZg64",
"/ip4/18.163.235.175/tcp/36335/p2p/16Uiu2HAm8wVUsVsqksBfxy6yzHpVv5gELQnpU7Q2uhDyXFwr9bfV",
"/ip4/18.163.235.175/tcp/44029/p2p/16Uiu2HAmBvnQU5FWgEcfY1jaAK2Q9iQBy6FwQdDUtyT7mo8HU1Yu",
"/ip4/18.163.235.175/tcp/40191/p2p/16Uiu2HAkurshicwtTrqbrL3yv9xR7hogPvreUHJP3W8n9W5XMibz",
}

// ErrInvalidPeerAddr signals an address is not a valid peer address.
Expand All @@ -60,7 +79,7 @@ func DefaultBootstrapPeers() ([]peer.AddrInfo, error) {
if err != nil {
return nil, fmt.Errorf(`Failed to parse hardcoded bootstrap peers: %s
This is a problem with the BTFS codebase.
Please report it to https://github.com/TRON-US/go-btfs/issues.`, err)
Please report it to https://github.com/bittorrent/go-btfs/issues.`, err)
}
return ps, nil
}
Expand All @@ -69,7 +88,7 @@ func DefaultTestnetBootstrapPeers() ([]peer.AddrInfo, error) {
if err != nil {
return nil, fmt.Errorf(`Failed to parse hardcoded testnet bootstrap peers: %s
This is a problem with the BTFS codebase.
Please report it to https://github.com/TRON-US/go-btfs/issues.`, err)
Please report it to https://github.com/bittorrent/go-btfs/issues.`, err)
}
return ps, nil
}
Expand Down
19 changes: 19 additions & 0 deletions chain.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package config

var (
// chain ID
ethChainID = int64(5)
tronChainID = int64(100)
bttcChainID = int64(199)
bttcTestChainID = int64(1029)
testChainID = int64(1337)
)

// the configuration of the local node's ChainInfo.
type ChainInfo struct {
ChainId int64 `json:",omitempty"`
CurrentFactory string `json:",omitempty"`
PriceOracleAddress string `json:",omitempty"`
VaultLogicAddress string `json:",omitempty"`
Endpoint string `json:",omitempty"`
}
9 changes: 7 additions & 2 deletions config.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (

// Config is used to load ipfs config files.
type Config struct {
ChainInfo ChainInfo // local node's chain info
Identity Identity // local node's peer identity
Datastore Datastore // local node's storage
Addresses Addresses // local node's addresses
Expand All @@ -28,14 +29,18 @@ type Config struct {
AutoNAT AutoNATConfig
Pubsub PubsubConfig
Peering Peering

Services Services // External service domains and info
DNS DNS
Services Services // External service domains and info

Provider Provider
Reprovider Reprovider
Experimental Experiments
UI UI
Plugins Plugins

Internal Internal // experimental/unstable options

SimpleMode bool
}

const (
Expand Down
17 changes: 17 additions & 0 deletions dns.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package config

// DNS specifies DNS resolution rules using custom resolvers
type DNS struct {
// Resolvers is a map of FQDNs to URLs for custom DNS resolution.
// URLs starting with `https://` indicate DoH endpoints.
// Support for other resolver types can be added in the future.
// https://en.wikipedia.org/wiki/Fully_qualified_domain_name
// https://en.wikipedia.org/wiki/DNS_over_HTTPS
//
// Example:
// - Custom resolver for ENS: `eth.` → `https://dns.eth.limo/dns-query`
// - Override the default OS resolver: `.` → `https://doh.applied-privacy.net/query`
Resolvers map[string]string
// MaxCacheTTL is the maximum duration DNS entries are valid in the cache.
MaxCacheTTL *OptionalDuration `json:",omitempty"`
}
4 changes: 4 additions & 0 deletions experiments.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,12 @@ type Experiments struct {
Analytics bool
RemoveOnUnpin bool
HostsSyncEnabled bool
HostsSyncFlag bool
HostsSyncMode string
DisableAutoUpdate bool
HostRepairEnabled bool
HostChallengeEnabled bool
ReportOnline bool
ReportStatusContract bool
AcceleratedDHTClient bool
}
33 changes: 12 additions & 21 deletions gateway.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package config

const DefaultInlineDNSLink = false

type GatewaySpec struct {
// Paths is explicit list of path prefixes that should be handled by
// this gateway. Example: `["/ipfs", "/ipns", "/api"]`
Expand All @@ -8,7 +10,7 @@ type GatewaySpec struct {
// UseSubdomains indicates whether or not this gateway uses subdomains
// for IPFS resources instead of paths. That is: http://CID.ipfs.GATEWAY/...
//
// If this flag is set, any /ipns/$id and/or /ipfs/$id paths in PathPrefixes
// If this flag is set, any /ipns/$id and/or /ipfs/$id paths in Paths
// will be permanently redirected to http://$id.[ipns|ipfs].$gateway/.
//
// We do not support using both paths and subdomains for a single domain
Expand All @@ -18,6 +20,11 @@ type GatewaySpec struct {
// NoDNSLink configures this gateway to _not_ resolve DNSLink for the FQDN
// provided in `Host` HTTP header.
NoDNSLink bool

// InlineDNSLink configures this gateway to always inline DNSLink names
// (FQDN) into a single DNS label in order to interop with wildcard TLS certs
// and Origin per CID isolation provided by rules like https://publicsuffix.org
InlineDNSLink Flag
}

// Gateway contains options for the HTTP gateway server.
Expand All @@ -31,29 +38,13 @@ type Gateway struct {
// should be redirected.
RootRedirect string

// Writable enables PUT/POST request handling by this gateway. Usually,
// writing is done through the API, not the gateway.
// REMOVED: modern replacement tracked in https://github.com/ipfs/specs/issues/375
Writable bool

// PathPrefixes is an array of acceptable url paths that a client can
// specify in X-Ipfs-Path-Prefix header.
//
// The X-Ipfs-Path-Prefix header is used to specify a base path to prepend
// to links in directory listings and for trailing-slash redirects. It is
// intended to be set by a frontend http proxy like nginx.
//
// Example: To mount blog.ipfs.io (a DNSLink site) at ipfs.io/blog
// set PathPrefixes to ["/blog"] and nginx config to translate paths
// and pass Host header (for DNSLink):
// location /blog/ {
// rewrite "^/blog(/.*)$" $1 break;
// proxy_set_header Host blog.ipfs.io;
// proxy_set_header X-Ipfs-Gateway-Prefix /blog;
// proxy_pass http://127.0.0.1:8080;
// }
// PathPrefixes was removed: https://github.com/ipfs/go-ipfs/issues/7702
PathPrefixes []string

// FIXME: Not yet implemented
// FIXME: Not yet implemented: https://github.com/ipfs/kubo/issues/8059
APICommands []string

// NoFetch configures the gateway to _not_ fetch blocks in response to
Expand All @@ -62,7 +53,7 @@ type Gateway struct {

// NoDNSLink configures the gateway to _not_ perform DNS TXT record
// lookups in response to requests with values in `Host` HTTP header.
// This flag can be overriden per FQDN in PublicGateways.
// This flag can be overridden per FQDN in PublicGateways.
NoDNSLink bool

// PublicGateways configures behavior of known public gateways.
Expand Down
47 changes: 41 additions & 6 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,12 +1,47 @@
module github.com/TRON-US/go-btfs-config
module github.com/bittorrent/go-btfs-config

require (
github.com/bittorrent/go-btfs-common v0.9.0
github.com/facebookgo/atomicfile v0.0.0-20151019160806-2de1f203e7d5
github.com/ipfs/go-cid v0.0.6 // indirect
github.com/libp2p/go-libp2p-core v0.6.0
github.com/libp2p/go-libp2p v0.23.4
github.com/mitchellh/go-homedir v1.1.0
github.com/multiformats/go-multiaddr v0.2.2
github.com/tron-us/go-btfs-common v0.2.11
github.com/multiformats/go-multiaddr v0.7.0
)

go 1.14
require (
github.com/bittorrent/protobuf v1.4.0 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/ipfs/go-cid v0.3.2 // indirect
github.com/ipfs/go-log/v2 v2.5.1 // indirect
github.com/klauspost/cpuid/v2 v2.1.1 // indirect
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
github.com/libp2p/go-openssl v0.1.0 // indirect
github.com/mattn/go-isatty v0.0.16 // indirect
github.com/mattn/go-pointer v0.0.1 // indirect
github.com/minio/sha256-simd v1.0.0 // indirect
github.com/mr-tron/base58 v1.2.0 // indirect
github.com/multiformats/go-base32 v0.1.0 // indirect
github.com/multiformats/go-base36 v0.1.0 // indirect
github.com/multiformats/go-multibase v0.1.1 // indirect
github.com/multiformats/go-multicodec v0.6.0 // indirect
github.com/multiformats/go-multihash v0.2.1 // indirect
github.com/multiformats/go-varint v0.0.6 // indirect
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect
github.com/spaolacci/murmur3 v1.1.0 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/multierr v1.8.0 // indirect
go.uber.org/zap v1.23.0 // indirect
golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e // indirect
golang.org/x/net v0.7.0 // indirect
golang.org/x/sys v0.6.0 // indirect
golang.org/x/text v0.7.0 // indirect
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987 // indirect
google.golang.org/grpc v1.34.0 // indirect
google.golang.org/protobuf v1.30.0 // indirect
lukechampine.com/blake3 v1.1.7 // indirect
)

go 1.18
Loading