Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: use the latest substreams version #18

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
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
70 changes: 52 additions & 18 deletions cmd/fireaptos/cli/firehose.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ import (

"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/streamingfast/bstream/hub"
dauthAuthenticator "github.com/streamingfast/dauth/authenticator"
dgrpcserver "github.com/streamingfast/dgrpc/server"
"github.com/streamingfast/dlauncher/launcher"
"github.com/streamingfast/dmetering"
"github.com/streamingfast/dmetrics"
Expand All @@ -16,6 +18,7 @@ import (
"github.com/streamingfast/logging"
substreamsClient "github.com/streamingfast/substreams/client"
substreamsService "github.com/streamingfast/substreams/service"
"go.uber.org/zap"
)

var metricset = dmetrics.NewSet()
Expand All @@ -34,11 +37,11 @@ func init() {
cmd.Flags().Duration("firehose-real-time-tolerance", 1*time.Minute, "firehose will became alive if now - block time is smaller then tolerance")

cmd.Flags().Bool("substreams-enabled", false, "Whether to enable substreams")
cmd.Flags().Bool("substreams-partial-mode-enabled", false, "Whether to enable partial stores generation support on this instance (usually for internal deployments only)")
cmd.Flags().Bool("substreams-tier2", false, "Whether this endpoint is serving tier2 requests (non-public-facing)")
cmd.Flags().String("substreams-state-store-url", "{data-dir}/localdata", "where substreams state data are stored")
cmd.Flags().Uint64("substreams-cache-save-interval", uint64(1_000), "Interval in blocks at which to save store snapshots and output caches")
cmd.Flags().Int("substreams-parallel-subrequest-limit", 4, "number of parallel subrequests substream can make to synchronize its stores")
cmd.Flags().String("substreams-client-endpoint", "", "Firehose endpoint for substreams client, if left empty, will default to this current local firehose.")
cmd.Flags().String("substreams-client-endpoint", "", "firehose endpoint for substreams client. If empty, this endpoint will also serve its own internal tier2 requests")
cmd.Flags().String("substreams-client-jwt", "", "JWT for substreams client authentication")
cmd.Flags().Bool("substreams-client-insecure", false, "Substreams client in insecure mode")
cmd.Flags().Bool("substreams-client-plaintext", true, "Substreams client in plaintext mode")
Expand All @@ -60,6 +63,7 @@ func init() {
return nil, fmt.Errorf("unable to initialize dmetering: %w", err)
}
dmetering.SetDefaultMeter(metering)
firehoseGRPCListenAddr := viper.GetString("firehose-grpc-listen-addr")

var registerServiceExt firehoseApp.RegisterServiceExtensionFunc
if viper.GetBool("substreams-enabled") {
Expand All @@ -72,13 +76,18 @@ func init() {
substreamsService.WithCacheSaveInterval(viper.GetUint64("substreams-cache-save-interval")),
}

if viper.GetBool("substreams-partial-mode-enabled") {
opts = append(opts, substreamsService.WithPartialMode())
clientEndpoint := viper.GetString("substreams-client-endpoint")

var runTier1, runTier2 bool
if viper.GetBool("substreams-tier2") {
runTier2 = true
} else {
runTier1 = true
}

clientEndpoint := viper.GetString("substreams-client-endpoint")
if clientEndpoint == "" {
clientEndpoint = viper.GetString("firehose-grpc-listen-addr")
runTier2 = true // self-contained deployment: run tier2 for our own tier1
clientEndpoint = firehoseGRPCListenAddr
}

clientConfig := substreamsClient.NewSubstreamsClientConfig(
Expand All @@ -88,26 +97,51 @@ func init() {
viper.GetBool("substreams-client-plaintext"),
)

sss, err := substreamsService.New(
stateStore,
"aptos.extractor.v1.Block",
uint64(viper.GetInt("substreams-sub-request-parallel-jobs")),
uint64(viper.GetInt("substreams-sub-request-block-range-size")),
clientConfig,
opts...,
)
if err != nil {
return nil, fmt.Errorf("create substreams service: %w", err)
var tier1 *substreamsService.Tier1Service
var tier2 *substreamsService.Tier2Service

if runTier1 {
tier1, err = substreamsService.NewTier1(
stateStore,
"aptos.extractor.v1.Block",
uint64(viper.GetInt("substreams-sub-request-parallel-jobs")),
uint64(viper.GetInt("substreams-sub-request-block-range-size")),
clientConfig,
opts...,
)
if err != nil {
return nil, fmt.Errorf("create substreams service: %w", err)
}
}
if runTier2 {
tier2 = substreamsService.NewTier2(
stateStore,
"aptos.extractor.v1.Block",
opts...,
)
}

registerServiceExt = sss.Register
registerServiceExt = func(
server dgrpcserver.Server,
mergedBlocksStore dstore.Store,
forkedBlocksStore dstore.Store, // this can be nil here
forkableHub *hub.ForkableHub,
logger *zap.Logger,
) {
if tier1 != nil {
tier1.Register(server, mergedBlocksStore, forkedBlocksStore, forkableHub, logger)
}
if tier2 != nil {
tier2.Register(server, mergedBlocksStore, forkedBlocksStore, forkableHub, logger)
}
}
}

return firehoseApp.New(appLogger, &firehoseApp.Config{
OneBlocksStoreURL: MustReplaceDataDir(sfDataDir, viper.GetString("common-one-block-store-url")),
MergedBlocksStoreURL: MustReplaceDataDir(sfDataDir, viper.GetString("common-merged-blocks-store-url")),
BlockStreamAddr: viper.GetString("common-live-blocks-addr"),
GRPCListenAddr: viper.GetString("firehose-grpc-listen-addr"),
GRPCListenAddr: firehoseGRPCListenAddr,
GRPCShutdownGracePeriod: 1 * time.Second,
}, &firehoseApp.Modules{
Authenticator: authenticator,
Expand Down
5 changes: 3 additions & 2 deletions devel/devnet/devnet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@ start:
firehose-real-time-tolerance: 999999999s
relayer-max-source-latency: 999999999s

common-live-blocks-addr: ""
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@maoueh if I don't set this to empty string then when I run

    grpcurl -plaintext -import-path ../proto -import-path ./proto -proto sf/aptos/type/v1/type.proto -proto sf/firehose/v2/firehose.proto -d '{"start_block_num": 0}' localhost:18015 sf.firehose.v2.Stream.Blocks

I get the following error:

Failed to dial target host "localhost:18015": dial tcp [::1]:18015: connect: connection refused

This was not the case before I updated the substreams version.

I did debug it a and realized that this value is set the flow get stuck at select https://github.com/streamingfast/firehose/blob/develop/app/firehose/app.go#L183 and doesn't reach the launch line https://github.com/streamingfast/firehose/blob/develop/app/firehose/app.go#L193.

Is there a reason why this happens with the latest substreams version?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This code in firehose component that wait for the hub to be "live" exist since a long time, definitely not coming from an upgrade of the dependency alone.

But I think the way we detect it changed indeed. Now you need to have one-blocks files that "links" with live blocks coming from the live source which means syncing a testnet will be ready only once blocks are live.

Since this is syncing devnet, I imagine it will indeed not work anymore.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ow you need to have one-blocks files that "links" with live blocks coming from the live source which means syncing a testnet will be ready only once blocks are live.

Pardon my ignorance, but I'm not sure I fully understand this concepts 😆

one-blocks are the files stored locally, right? From what I've notices, this is files are created when the console reader gets the logs from the stdout and decodes the block data which are then stored. So what does this sentence mean?

syncing a testnet will be ready only once blocks are live.

Doe sit mean that the endpoint on port :18015 will be available once the full network is synced?

substreams-enabled: true
substreams-client-endpoint: "localhost:18015"
substreams-tier2: false
substreams-client-endpoint: ""
substreams-client-plaintext: true
substreams-partial-mode-enabled: true
substreams-sub-request-block-range-size: 25000
substreams-cache-save-interval: 1000
substreams-sub-request-parallel-jobs: 2
7 changes: 4 additions & 3 deletions devel/localnet/localnet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@ start:
firehose-real-time-tolerance: 999999999s
relayer-max-source-latency: 999999999s

common-live-blocks-addr: ""
substreams-enabled: true
substreams-client-endpoint: "localhost:18015"
substreams-tier2: false
substreams-client-endpoint: ""
substreams-client-plaintext: true
substreams-partial-mode-enabled: true
substreams-sub-request-block-range-size: 25000
substreams-cache-save-interval: 1000
substreams-sub-request-parallel-jobs: 2
substreams-sub-request-parallel-jobs: 2
137 changes: 72 additions & 65 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,40 +5,41 @@ go 1.18
require (
github.com/ShinyTrinkets/overseer v0.3.0
github.com/golang/protobuf v1.5.2
github.com/spf13/cobra v1.4.0
github.com/spf13/cobra v1.6.1
github.com/spf13/viper v1.8.1
github.com/streamingfast/bstream v0.0.2-0.20230228213106-2b6a3160e01e
github.com/streamingfast/bstream v0.0.2-0.20230510131449-6b591d74130d
github.com/streamingfast/cli v0.0.4-0.20220630165922-bc58c6666fc8
github.com/streamingfast/dauth v0.0.0-20221027185237-b209f25fa3ff
github.com/streamingfast/derr v0.0.0-20221125175206-82e01d420d45
github.com/streamingfast/dlauncher v0.0.0-20220909121534-7a9aa91dbb32
github.com/streamingfast/derr v0.0.0-20230515163924-8570aaa43fe1
github.com/streamingfast/dlauncher v0.0.0-20230201165548-2d1aa7607b13
github.com/streamingfast/dmetering v0.0.0-20220307162406-37261b4b3de9
github.com/streamingfast/dmetrics v0.0.0-20221129121022-a1733eca1981
github.com/streamingfast/dstore v0.1.1-0.20230202164314-93694544e2ca
github.com/streamingfast/firehose v0.1.1-0.20221101130227-3a0b1980aa0b
github.com/streamingfast/dstore v0.1.1-0.20230511202333-4f4ccf11a05f
github.com/streamingfast/firehose v0.1.1-0.20230519113451-8ac7a268a2f0
github.com/streamingfast/firehose-aptos/types v0.0.0-20220908194130-bfe2d9d84520
github.com/streamingfast/logging v0.0.0-20220813175024-b4fbb0e893df
github.com/streamingfast/logging v0.0.0-20221209193439-bff11742bf4c
github.com/streamingfast/merger v0.0.3-0.20221123202507-445dfd357868
github.com/streamingfast/node-manager v0.0.2-0.20220912235129-6c08463b0c01
github.com/streamingfast/pbgo v0.0.6-0.20221014191646-3a05d7bc30c8
github.com/streamingfast/node-manager v0.0.2-0.20221115101723-d9823ffd7ad5
github.com/streamingfast/pbgo v0.0.6-0.20221020131607-255008258d28
github.com/streamingfast/relayer v0.0.2-0.20220909122435-e67fbc964fd9
github.com/streamingfast/sf-tools v0.0.0-20221129171534-a0708b599ce5
github.com/streamingfast/sf-tools v0.0.0-20230424204011-b7f1751a98ca
github.com/streamingfast/shutter v1.5.0
github.com/streamingfast/substreams v0.2.1-0.20230130195638-895599b398e8
github.com/stretchr/testify v1.8.0
github.com/streamingfast/substreams v1.1.4-0.20230519155903-fa3c4c5db0dd
github.com/stretchr/testify v1.8.2
go.uber.org/zap v1.21.0
golang.org/x/exp v0.0.0-20220907003533-145caa8ea1d0
google.golang.org/grpc v1.50.1
google.golang.org/protobuf v1.28.1
google.golang.org/grpc v1.54.0
google.golang.org/protobuf v1.30.0
)

require (
cloud.google.com/go v0.104.0 // indirect
cloud.google.com/go/compute v1.10.0 // indirect
cloud.google.com/go/iam v0.3.0 // indirect
cloud.google.com/go/monitoring v1.7.0 // indirect
cloud.google.com/go/storage v1.23.0 // indirect
cloud.google.com/go/trace v1.2.0 // indirect
cloud.google.com/go v0.110.0 // indirect
cloud.google.com/go/compute v1.18.0 // indirect
cloud.google.com/go/compute/metadata v0.2.3 // indirect
cloud.google.com/go/iam v0.12.0 // indirect
cloud.google.com/go/monitoring v1.12.0 // indirect
cloud.google.com/go/storage v1.30.1 // indirect
cloud.google.com/go/trace v1.8.0 // indirect
contrib.go.opencensus.io/exporter/stackdriver v0.13.10 // indirect
contrib.go.opencensus.io/exporter/zipkin v0.1.1 // indirect
github.com/Azure/azure-pipeline-go v0.2.3 // indirect
Expand All @@ -47,59 +48,62 @@ require (
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.8.6 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.32.6 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/propagator v0.0.0-20221018185641-36f91511cfd7 // indirect
github.com/KimMachineGun/automemlimit v0.2.4 // indirect
github.com/RoaringBitmap/roaring v0.9.4 // indirect
github.com/ShinyTrinkets/meta-logger v0.2.0 // indirect
github.com/abourget/llerrgroup v0.2.0 // indirect
github.com/aws/aws-sdk-go v1.44.187 // indirect
github.com/aws/aws-sdk-go v1.44.233 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bits-and-blooms/bitset v1.2.0 // indirect
github.com/blendle/zapdriver v1.3.1 // indirect
github.com/bytecodealliance/wasmtime-go/v4 v4.0.0 // indirect
github.com/cenkalti/backoff/v4 v4.1.3 // indirect
github.com/census-instrumentation/opencensus-proto v0.3.0 // indirect
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect
github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4 // indirect
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1 // indirect
github.com/cilium/ebpf v0.4.0 // indirect
github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe // indirect
github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b // indirect
github.com/containerd/cgroups v1.0.4 // indirect
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect
github.com/docker/go-units v0.4.0 // indirect
github.com/dustin/go-humanize v1.0.0 // indirect
github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1 // indirect
github.com/envoyproxy/protoc-gen-validate v0.1.0 // indirect
github.com/envoyproxy/go-control-plane v0.10.3 // indirect
github.com/envoyproxy/protoc-gen-validate v0.9.1 // indirect
github.com/fsnotify/fsnotify v1.4.9 // indirect
github.com/go-logr/logr v1.2.3 // indirect
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/godbus/dbus/v5 v5.0.4 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/google/go-cmp v0.5.9 // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.2.0 // indirect
github.com/googleapis/gax-go/v2 v2.6.0 // indirect
github.com/googleapis/go-type-adapters v1.0.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
github.com/googleapis/gax-go/v2 v2.7.1 // indirect
github.com/gorilla/mux v1.8.0 // indirect
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/inconshreveable/mousetrap v1.0.0 // indirect
github.com/inconshreveable/mousetrap v1.0.1 // indirect
github.com/jhump/protoreflect v1.12.0 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a // indirect
github.com/klauspost/compress v1.15.9 // indirect
github.com/klauspost/compress v1.15.11 // indirect
github.com/lithammer/dedent v1.1.0 // indirect
github.com/logrusorgru/aurora v2.0.3+incompatible // indirect
github.com/lunixbochs/vtclean v0.0.0-20180621232353-2d01aacdc34a // indirect
github.com/magiconair/properties v1.8.5 // indirect
github.com/manifoldco/promptui v0.8.0 // indirect
github.com/mattn/go-colorable v0.1.12 // indirect
github.com/manifoldco/promptui v0.9.0 // indirect
github.com/mattn/go-ieproxy v0.0.1 // indirect
github.com/mattn/go-isatty v0.0.14 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
github.com/mitchellh/mapstructure v1.4.1 // indirect
github.com/mostynb/go-grpc-compression v1.1.17 // indirect
github.com/mschoch/smat v0.2.0 // indirect
github.com/openzipkin/zipkin-go v0.4.0 // indirect
github.com/opencontainers/runtime-spec v1.0.2 // indirect
github.com/openzipkin/zipkin-go v0.4.1 // indirect
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
github.com/paulbellamy/ratecounter v0.2.0 // indirect
github.com/pelletier/go-toml v1.9.3 // indirect
Expand All @@ -110,49 +114,52 @@ require (
github.com/prometheus/common v0.32.1 // indirect
github.com/prometheus/procfs v0.7.3 // indirect
github.com/rs/cors v1.8.3 // indirect
github.com/schollz/closestmatch v2.1.0+incompatible // indirect
github.com/sethvargo/go-retry v0.2.3 // indirect
github.com/sirupsen/logrus v1.8.1 // indirect
github.com/someone1/gcp-jwt-go v2.0.1+incompatible // indirect
github.com/spf13/afero v1.6.0 // indirect
github.com/spf13/afero v1.9.2 // indirect
github.com/spf13/cast v1.3.1 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/streamingfast/atm v0.0.0-20220131151839-18c87005e680 // indirect
github.com/streamingfast/dbin v0.0.0-20210809205249-73d5eca35dc5 // indirect
github.com/streamingfast/dgrpc v0.0.0-20230113212008-1898f17e0ac7 // indirect
github.com/streamingfast/dgrpc v0.0.0-20230417152409-2ee737f143dd // indirect
github.com/streamingfast/dtracing v0.0.0-20220305214756-b5c0e8699839 // indirect
github.com/streamingfast/jsonpb v0.0.0-20210811021341-3670f0aa02d0 // indirect
github.com/streamingfast/opaque v0.0.0-20210811180740-0c01d37ea308 // indirect
github.com/streamingfast/sf-tracing v0.0.0-20221104190152-7f721cb9b60c // indirect
github.com/streamingfast/sf-tracing v0.0.0-20230519113358-f3dc5e582d12 // indirect
github.com/subosito/gotenv v1.2.0 // indirect
github.com/teris-io/shortid v0.0.0-20171029131806-771a37caa5cf // indirect
github.com/yourbasic/graph v0.0.0-20210606180040-8ecfec1c2869 // indirect
go.opencensus.io v0.23.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/contrib/detectors/gcp v1.9.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.4 // indirect
go.opentelemetry.io/otel v1.11.1 // indirect
go.opentelemetry.io/otel/exporters/jaeger v1.9.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.9.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.9.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.9.0 // indirect
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.9.0 // indirect
go.opentelemetry.io/otel/exporters/zipkin v1.9.0 // indirect
go.opentelemetry.io/otel/sdk v1.9.0 // indirect
go.opentelemetry.io/otel/trace v1.11.1 // indirect
go.opentelemetry.io/proto/otlp v0.18.0 // indirect
go.opentelemetry.io/otel v1.15.1 // indirect
go.opentelemetry.io/otel/exporters/jaeger v1.15.1 // indirect
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.1 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.15.1 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.15.1 // indirect
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.15.1 // indirect
go.opentelemetry.io/otel/exporters/zipkin v1.15.1 // indirect
go.opentelemetry.io/otel/sdk v1.15.1 // indirect
go.opentelemetry.io/otel/trace v1.15.1 // indirect
go.opentelemetry.io/proto/otlp v0.19.0 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/automaxprocs v1.5.1 // indirect
go.uber.org/multierr v1.8.0 // indirect
golang.org/x/crypto v0.0.0-20220214200702-86341886e292 // indirect
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
golang.org/x/net v0.1.0 // indirect
golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1 // indirect
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0 // indirect
golang.org/x/sys v0.1.0 // indirect
golang.org/x/term v0.1.0 // indirect
golang.org/x/text v0.4.0 // indirect
golang.org/x/crypto v0.1.0 // indirect
golang.org/x/mod v0.8.0 // indirect
golang.org/x/net v0.8.0 // indirect
golang.org/x/oauth2 v0.6.0 // indirect
golang.org/x/sync v0.1.0 // indirect
golang.org/x/sys v0.7.0 // indirect
golang.org/x/term v0.6.0 // indirect
golang.org/x/text v0.8.0 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
google.golang.org/api v0.99.0 // indirect
google.golang.org/api v0.114.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b // indirect
google.golang.org/genproto v0.0.0-20230320184635-7606e756e683 // indirect
gopkg.in/ini.v1 v1.62.0 // indirect
gopkg.in/olivere/elastic.v3 v3.0.75 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
Expand Down
Loading