diff --git a/.dockerignore b/.dockerignore index b00ed9203..7faa7d499 100644 --- a/.dockerignore +++ b/.dockerignore @@ -18,6 +18,9 @@ .github/ .git/ +# OSX related files +.DS_Store + # Docker related files docker/ .dockerignore @@ -26,9 +29,8 @@ docker-compose.yml # dist packages dist/ -# OSX related files -.DS_Store -/hornet +# Integration test related files +integration-tests/ # Database directory privatedb*/ @@ -39,6 +41,9 @@ p2pstore*/ # snapshot dir snapshots/ +# private tangle +private_tangle/ + # log files hornet.log integration-tests/logs/*.log @@ -48,3 +53,13 @@ integration-tests/logs/*.profile # coordinator files coordinator.state migrator.state + +# Documentation +documentation/ + +# Scripts + Tools +scripts/ +tools/ + +# Executable +/hornet diff --git a/.github/workflows/build_HORNET.yml b/.github/workflows/build_HORNET.yml index fd591f13f..d64a62d85 100644 --- a/.github/workflows/build_HORNET.yml +++ b/.github/workflows/build_HORNET.yml @@ -4,6 +4,10 @@ on: pull_request: paths-ignore: - 'documentation/**' + - 'nfpm/**' + - 'private_tangle/**' + - 'scripts/**' + - 'tools/**' jobs: build: @@ -11,16 +15,16 @@ jobs: runs-on: ubuntu-latest steps: - name: Set up Go - uses: actions/setup-go@v1 + uses: actions/setup-go@v3 with: - go-version: 1.18 + go-version: 1.19 id: go - name: Print Go version run: go version - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build HORNET run: go build -v . diff --git a/.github/workflows/build_docker.yml b/.github/workflows/build_docker.yml index 7d31a2464..5fe2aee06 100644 --- a/.github/workflows/build_docker.yml +++ b/.github/workflows/build_docker.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build HORNET Docker image run: docker build . --file docker/Dockerfile --tag hornet:latest diff --git a/.github/workflows/codeql_analysis.yml b/.github/workflows/codeql_analysis.yml index 7d494f2a4..6dee2321d 100644 --- a/.github/workflows/codeql_analysis.yml +++ b/.github/workflows/codeql_analysis.yml @@ -22,20 +22,21 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: develop # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v1 + uses: github/codeql-action/init@v2 with: languages: ${{ matrix.language }} + queries: security-and-quality # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v1 + uses: github/codeql-action/autobuild@v2 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 8e69c8738..a895cc58e 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -4,6 +4,11 @@ on: pull_request: paths-ignore: - 'documentation/**' + - 'docker/**' + - 'nfpm/**' + - 'private_tangle/**' + - 'scripts/**' + - 'tools/**' jobs: golangci-lint: @@ -11,11 +16,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: golangci-lint uses: reviewdog/action-golangci-lint@v2 with: + version: v1.50.1 github_token: ${{ secrets.GITHUB_TOKEN }} golangci_lint_flags: "--timeout=10m" - reporter: "github-pr-review" + reporter: github-pr-check + filter_mode: nofilter + fail_on_error: true diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml index f75957f91..1ce7be6a6 100644 --- a/.github/workflows/integration_tests.yml +++ b/.github/workflows/integration_tests.yml @@ -4,6 +4,11 @@ on: pull_request: paths-ignore: - 'documentation/**' + - 'docker/**' + - 'nfpm/**' + - 'private_tangle/**' + - 'scripts/**' + - 'tools/**' jobs: @@ -14,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build HORNET image run: docker build -f docker/Dockerfile -t hornet:dev . @@ -25,7 +30,7 @@ jobs: docker pull gaiadocker/iproute2:latest - name: Run integration tests - run: docker-compose -f integration-tests/tester/docker-compose.yml up --abort-on-container-exit --exit-code-from tester --build + run: docker compose -f integration-tests/tester/docker-compose.yml up --abort-on-container-exit --exit-code-from tester --build - name: Create logs from tester if: always() @@ -47,7 +52,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build HORNET image run: docker build -f docker/Dockerfile -t hornet:dev . @@ -58,7 +63,7 @@ jobs: docker pull gaiadocker/iproute2:latest - name: Run integration tests - run: docker-compose -f integration-tests/tester/docker-compose.yml up --abort-on-container-exit --exit-code-from tester --build + run: docker compose -f integration-tests/tester/docker-compose.yml up --abort-on-container-exit --exit-code-from tester --build - name: Create logs from tester if: always() @@ -80,7 +85,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build HORNET image run: docker build -f docker/Dockerfile -t hornet:dev . @@ -92,7 +97,7 @@ jobs: docker build github.com/iotaledger/chrysalis-tools#:wfmock -t wfmock:latest - name: Run integration tests - run: docker-compose -f integration-tests/tester/docker-compose.yml up --abort-on-container-exit --exit-code-from tester --build + run: docker compose -f integration-tests/tester/docker-compose.yml up --abort-on-container-exit --exit-code-from tester --build - name: Create logs from tester if: always() @@ -114,7 +119,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build HORNET image run: docker build -f docker/Dockerfile -t hornet:dev . @@ -125,7 +130,7 @@ jobs: docker pull gaiadocker/iproute2:latest - name: Run integration tests - run: docker-compose -f integration-tests/tester/docker-compose.yml up --abort-on-container-exit --exit-code-from tester --build + run: docker compose -f integration-tests/tester/docker-compose.yml up --abort-on-container-exit --exit-code-from tester --build - name: Create logs from tester if: always() @@ -147,7 +152,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build HORNET image run: docker build -f docker/Dockerfile -t hornet:dev . @@ -158,7 +163,7 @@ jobs: docker pull gaiadocker/iproute2:latest - name: Run integration tests - run: docker-compose -f integration-tests/tester/docker-compose.yml up --abort-on-container-exit --exit-code-from tester --build + run: docker compose -f integration-tests/tester/docker-compose.yml up --abort-on-container-exit --exit-code-from tester --build - name: Create logs from tester if: always() @@ -172,36 +177,3 @@ jobs: with: name: ${{ env.TEST_NAME }} path: integration-tests/logs - -# benchmark: -# name: benchmark -# env: -# TEST_NAME: benchmark -# runs-on: ubuntu-latest -# steps: -# - name: Check out code into the Go module directory -# uses: actions/checkout@v2 - -# - name: Build HORNET image -# run: docker build -f docker/Dockerfile -t hornet:dev . - -# - name: Pull additional Docker images -# run: | -# docker pull gaiaadm/pumba:0.7.4 -# docker pull gaiadocker/iproute2:latest - -# - name: Run integration tests -# run: docker-compose -f integration-tests/tester/docker-compose.yml up --abort-on-container-exit --exit-code-from tester --build - -# - name: Create logs from tester -# if: always() -# run: | -# sudo chmod 777 integration-tests/logs -# docker logs tester &> integration-tests/logs/tester.log - -# - name: Save logs as artifacts -# if: always() -# uses: actions/upload-artifact@v2 -# with: -# name: ${{ env.TEST_NAME }} -# path: integration-tests/logs \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d353ce313..f808b52e8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,11 +9,11 @@ jobs: name: Release Binaries runs-on: ubuntu-latest container: - image: gohornet/goreleaser-cgo-cross-compiler:1.18 + image: iotaledger/goreleaser-cgo-cross-compiler:1.19.4 volumes: [/repo] steps: - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Release HORNET run: goreleaser --rm-dist @@ -24,37 +24,40 @@ jobs: TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }} TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} - docker: + release-docker: name: Release Docker runs-on: ubuntu-latest steps: - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Docker meta id: meta - uses: docker/metadata-action@v3 + uses: docker/metadata-action@v4 with: - images: gohornet/hornet + images: iotaledger/hornet tags: | type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}} + type=match,pattern=v(\d+.\d+),suffix=-alpha,group=1,enable=${{ contains(github.ref, '-alpha') }} + type=match,pattern=v(\d+.\d+),suffix=-beta,group=1,enable=${{ contains(github.ref, '-beta') }} + type=match,pattern=v(\d+.\d+),suffix=-rc,group=1,enable=${{ contains(github.ref, '-rc') }} - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} + username: ${{ secrets.IOTALEDGER_DOCKER_USERNAME }} + password: ${{ secrets.IOTALEDGER_DOCKER_PASSWORD }} - name: Build and push to Dockerhub - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: file: ./docker/Dockerfile platforms: linux/amd64,linux/arm64 diff --git a/.github/workflows/snyk-test-golang.yml b/.github/workflows/snyk-test-golang.yml index 79f81a573..2fd8dda8f 100644 --- a/.github/workflows/snyk-test-golang.yml +++ b/.github/workflows/snyk-test-golang.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: develop @@ -19,4 +19,4 @@ jobs: env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} with: - args: --org=gohornet + args: --org=iotaledger diff --git a/.github/workflows/test_HORNET.yml b/.github/workflows/test_HORNET.yml index 75e6cb562..dd72040ce 100644 --- a/.github/workflows/test_HORNET.yml +++ b/.github/workflows/test_HORNET.yml @@ -4,6 +4,10 @@ on: pull_request: paths-ignore: - 'documentation/**' + - 'nfpm/**' + - 'private_tangle/**' + - 'scripts/**' + - 'tools/**' jobs: test: @@ -11,9 +15,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Set up Go - uses: actions/setup-go@v1 + uses: actions/setup-go@v3 with: - go-version: 1.18 + go-version: 1.19 id: go - name: Print Go version @@ -23,7 +27,7 @@ jobs: run: sudo apt update && sudo apt install build-essential -y - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Test HORNET uses: nick-invision/retry@v2 diff --git a/.github/workflows/test_release.yml b/.github/workflows/test_release.yml index 07e5b52c3..7c9fbbea5 100644 --- a/.github/workflows/test_release.yml +++ b/.github/workflows/test_release.yml @@ -3,18 +3,21 @@ name: Test release on: pull_request: paths-ignore: - - "documentation/**" + - 'documentation/**' + - 'private_tangle/**' + - 'scripts/**' + - 'tools/**' jobs: Release: name: Test release runs-on: [ubuntu-latest] container: - image: gohornet/goreleaser-cgo-cross-compiler:1.18 + image: iotaledger/goreleaser-cgo-cross-compiler:1.19.4 volumes: [/repo] steps: - name: Check out code into the Go module directory - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Test HORNET Release run: goreleaser --snapshot --skip-publish --rm-dist diff --git a/.golangci.yml b/.golangci.yml index ee176c350..791fc2aaa 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -5,7 +5,7 @@ linters-settings: gofmt: simplify: true goimports: - local-prefixes: github.com/gohornet,github.com/iotaledger + local-prefixes: github.com/iotaledger golint: min-confidence: 0.9 gocyclo: diff --git a/.goreleaser.yml b/.goreleaser.yml index 0da942b6b..b5a105af4 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -15,7 +15,7 @@ builds: flags: - -tags=builtin_static,rocksdb ldflags: - - -s -w -X github.com/gohornet/hornet/core/cli.AppVersion={{.Version}} + - -s -w -X github.com/iotaledger/hornet/core/cli.AppVersion={{.Version}} main: main.go goos: - linux @@ -31,7 +31,7 @@ builds: - CC=aarch64-linux-gnu-gcc - CXX=aarch64-linux-gnu-g++ ldflags: - - -s -w -X github.com/gohornet/hornet/core/cli.AppVersion={{.Version}} + - -s -w -X github.com/iotaledger/hornet/core/cli.AppVersion={{.Version}} main: main.go goos: - linux @@ -47,7 +47,7 @@ builds: # - CC=/usr/bin/x86_64-w64-mingw32-gcc-posix # - CXX=/usr/bin/x86_64-w64-mingw32-g++-posix # ldflags: - # - -s -w -X github.com/gohornet/hornet/core/cli.AppVersion={{.Version}} + # - -s -w -X github.com/iotaledger/hornet/core/cli.AppVersion={{.Version}} # main: main.go # goos: # - windows @@ -93,7 +93,7 @@ nfpms: vendor: GoReleaser license: Apache 2.0 maintainer: GoHORNET - homepage: https://github.com/gohornet/hornet + homepage: https://github.com/iotaledger/hornet description: HORNET is a powerful IOTA fullnode software. formats: - deb @@ -194,5 +194,5 @@ release: prerelease: auto name_template: "{{.ProjectName}}-{{.Version}}" github: - owner: gohornet + owner: iotaledger name: hornet diff --git a/CHANGELOG.md b/CHANGELOG.md index 10d409931..57e7ca6aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,40 @@ All notable changes to this project will be documented in this file. +## [1.2.2] - 09.01.2023 + +### Fixed + - Make event execution async from peer mng to gossip service (#1565) + - Fix libp2p connection issue (#1805) + - Send correct error message if a block is submitted without parents and no PoW is enabled (#1805) + - Avoid locking of the p2p Manager while connection attempts are performed (#1805) + - Block static peers in autopeering module (#1805) + - Fix stuck peer (#1805) + - Fix edge case in warpsync which deadlocks syncing (#1805) + - Fix syncing issue by preventing requests race condition (#1805) + +### Changed + - Drop unhealthy peers (#1805) + - Drop peers that are below our pruning index (#1805) + - Solidify messages synchronously while they are processed (#1805) + - Read info from SyncManager atomically (#1805) + +### Added + - Add REST API PoW metrics to prometheus (#1480) + - Add new /api/routes endpoint (#1805) + - Add per-request Rest metrics to prometheus (#1805) + - Add new config param to disable snapshot file creation. Defaults to false (#1805) + - Add config parameter to control whether the ledger state is checked on startup. Defaults to false (#1805) + - Add /metadata, /raw, /children endpoints to /included-message (#1805) + +### Chore + - Update Tangle Bay urls (#1522) + - Update go version to 1.19 (#1805) + - Upgrade libp2p to monorepo version (#1805) + - Extend dockerignore (#1805) + - Github workflow updates (#1805) + + ## [1.2.1] - 29.04.2022 ### Fixed diff --git a/README.md b/README.md index 124d361ea..62b6fabca 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# HORNET - The IOTA community node +# HORNET - The IOTA node -![GitHub Workflow Status](https://img.shields.io/github/workflow/status/gohornet/hornet/Build?style=for-the-badge) ![GitHub release (latest by date)](https://img.shields.io/github/v/release/gohornet/hornet?style=for-the-badge) ![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/gohornet/hornet?style=for-the-badge) ![GitHub](https://img.shields.io/github/license/gohornet/hornet?style=for-the-badge) +![GitHub Workflow Status](https://img.shields.io/github/workflow/status/iotaledger/hornet/Build?style=for-the-badge) ![GitHub release (latest by date)](https://img.shields.io/github/v/release/iotaledger/hornet?style=for-the-badge) ![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/iotaledger/hornet?style=for-the-badge) ![GitHub](https://img.shields.io/github/license/iotaledger/hornet?style=for-the-badge) -
+ HORNET is a powerful, community driven IOTA fullnode software written in Go. It is easy to install and maintain. @@ -19,7 +19,7 @@ In this repository you will find the following branches: ## Notes -- **Please open a [new issue](https://github.com/gohornet/hornet/issues/new) if you detect an error or crash (or submit a PR if you have already fixed it).** +- **Please open a [new issue](https://github.com/iotaledger/hornet/issues/new) if you detect an error or crash (or submit a PR if you have already fixed it).** - **The issue section is not a support section, if you have questions about HORNET please post them in the `#hornet` channel ([official iota discord server](https://discord.iota.org/)).** --- @@ -28,7 +28,7 @@ _Table of contents_ -- [HORNET - The IOTA community node](#hornet---the-iota-community-node) +- [HORNET - The IOTA node](#hornet---the-iota-node) - [Notes](#notes) - [Documentation](#documentation) - [Contributing](#contributing) diff --git a/config.json b/config.json index 0b691f412..736f68d94 100644 --- a/config.json +++ b/config.json @@ -7,6 +7,7 @@ "publicRoutes": [ "/health", "/mqtt", + "/api/routes", "/api/v1/info", "/api/v1/tips", "/api/v1/messages*", @@ -44,9 +45,11 @@ "db": { "engine": "rocksdb", "path": "mainnetdb", - "autoRevalidation": false + "autoRevalidation": false, + "checkLedgerStateOnStartup": false }, "snapshots": { + "enabled": false, "depth": 50, "interval": 200, "fullPath": "snapshots/mainnet/full_snapshot.bin", diff --git a/config_devnet.json b/config_devnet.json index 3f86eb941..3e46731f9 100644 --- a/config_devnet.json +++ b/config_devnet.json @@ -7,6 +7,7 @@ "publicRoutes": [ "/health", "/mqtt", + "/api/routes", "/api/v1/info", "/api/v1/tips", "/api/v1/messages*", @@ -45,9 +46,11 @@ "db": { "engine": "rocksdb", "path": "devnetdb", - "autoRevalidation": false + "autoRevalidation": false, + "checkLedgerStateOnStartup": false }, "snapshots": { + "enabled": false, "depth": 50, "interval": 200, "fullPath": "snapshots/devnet/full_snapshot.bin", diff --git a/core/app/app.go b/core/app/app.go index 49b011d02..cc66d8041 100644 --- a/core/app/app.go +++ b/core/app/app.go @@ -9,11 +9,11 @@ import ( flag "github.com/spf13/pflag" "go.uber.org/dig" - "github.com/gohornet/hornet/pkg/app" - "github.com/gohornet/hornet/pkg/node" - "github.com/gohornet/hornet/pkg/toolset" "github.com/iotaledger/hive.go/configuration" "github.com/iotaledger/hive.go/logger" + "github.com/iotaledger/hornet/pkg/app" + "github.com/iotaledger/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/toolset" ) var ( @@ -21,7 +21,7 @@ var ( Name = "HORNET" // Version of the app. - Version = "1.2.1" + Version = "1.2.2" ) var ( diff --git a/core/app/params.go b/core/app/params.go index 7842ee73d..c127eface 100644 --- a/core/app/params.go +++ b/core/app/params.go @@ -3,7 +3,7 @@ package app import ( flag "github.com/spf13/pflag" - "github.com/gohornet/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/node" ) const ( diff --git a/core/database/core.go b/core/database/core.go index 17ae71946..bec3a0263 100644 --- a/core/database/core.go +++ b/core/database/core.go @@ -4,23 +4,24 @@ import ( "context" "os" "path/filepath" + "time" flag "github.com/spf13/pflag" "go.uber.org/dig" - "github.com/gohornet/hornet/pkg/database" - "github.com/gohornet/hornet/pkg/keymanager" - "github.com/gohornet/hornet/pkg/metrics" - "github.com/gohornet/hornet/pkg/model/coordinator" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/model/syncmanager" - "github.com/gohornet/hornet/pkg/model/utxo" - "github.com/gohornet/hornet/pkg/node" - "github.com/gohornet/hornet/pkg/profile" - "github.com/gohornet/hornet/pkg/shutdown" - "github.com/gohornet/hornet/pkg/utils" "github.com/iotaledger/hive.go/configuration" "github.com/iotaledger/hive.go/events" + "github.com/iotaledger/hornet/pkg/database" + "github.com/iotaledger/hornet/pkg/keymanager" + "github.com/iotaledger/hornet/pkg/metrics" + "github.com/iotaledger/hornet/pkg/model/coordinator" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/syncmanager" + "github.com/iotaledger/hornet/pkg/model/utxo" + "github.com/iotaledger/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/profile" + "github.com/iotaledger/hornet/pkg/shutdown" + "github.com/iotaledger/hornet/pkg/utils" ) const ( @@ -61,8 +62,10 @@ var ( type dependencies struct { dig.In - TangleDatabase *database.Database `name:"tangleDatabase"` - UTXODatabase *database.Database `name:"utxoDatabase"` + NodeConfig *configuration.Configuration `name:"nodeConfig"` + TangleDatabase *database.Database `name:"tangleDatabase"` + UTXODatabase *database.Database `name:"utxoDatabase"` + UTXOManager *utxo.Manager Storage *storage.Storage StorageMetrics *metrics.StorageMetrics } @@ -284,6 +287,16 @@ func configure() { } } + if deps.NodeConfig.Bool(CfgCheckLedgerStateOnStartup) { + CorePlugin.LogInfo("Checking ledger state...") + ledgerStateCheckStart := time.Now() + if err := deps.UTXOManager.CheckLedgerState(); err != nil { + CorePlugin.LogError(err) + os.Exit(1) + } + CorePlugin.LogInfof("Checking ledger state... done. took %v", time.Since(ledgerStateCheckStart).Truncate(time.Millisecond)) + } + if err = CorePlugin.Daemon().BackgroundWorker("Close database", func(ctx context.Context) { <-ctx.Done() @@ -323,7 +336,7 @@ func configureEvents() { } func attachEvents() { - deps.Storage.Events.PruningStateChanged.Attach(onPruningStateChanged) + deps.Storage.Events.PruningStateChanged.Hook(onPruningStateChanged) } func detachEvents() { diff --git a/core/database/mapdb.go b/core/database/mapdb.go index 998eef3ac..a065e54d2 100644 --- a/core/database/mapdb.go +++ b/core/database/mapdb.go @@ -1,10 +1,10 @@ package database import ( - "github.com/gohornet/hornet/pkg/database" - "github.com/gohornet/hornet/pkg/metrics" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/kvstore/mapdb" + "github.com/iotaledger/hornet/pkg/database" + "github.com/iotaledger/hornet/pkg/metrics" ) func newMapDB(metrics *metrics.DatabaseMetrics) *database.Database { diff --git a/core/database/params.go b/core/database/params.go index f27a43a55..20fd9390d 100644 --- a/core/database/params.go +++ b/core/database/params.go @@ -3,8 +3,8 @@ package database import ( flag "github.com/spf13/pflag" - "github.com/gohornet/hornet/pkg/database" - "github.com/gohornet/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/database" + "github.com/iotaledger/hornet/pkg/node" ) const ( @@ -16,6 +16,8 @@ const ( CfgDatabaseAutoRevalidation = "db.autoRevalidation" // ignore the check for corrupted databases (should only be used for debug reasons). CfgDatabaseDebug = "db.debug" + // whether to check if the ledger state matches the total supply on startup + CfgCheckLedgerStateOnStartup = "db.checkLedgerStateOnStartup" ) var params = &node.PluginParams{ @@ -26,6 +28,7 @@ var params = &node.PluginParams{ fs.String(CfgDatabasePath, "mainnetdb", "the path to the database folder") fs.Bool(CfgDatabaseAutoRevalidation, false, "whether to automatically start revalidation on startup if the database is corrupted") fs.Bool(CfgDatabaseDebug, false, "ignore the check for corrupted databases (should only be used for debug reasons)") + fs.Bool(CfgCheckLedgerStateOnStartup, false, "whether to check if the ledger state matches the total supply on startup") return fs }(), }, diff --git a/core/database/pebble.go b/core/database/pebble.go index d874bc21e..eb307e33a 100644 --- a/core/database/pebble.go +++ b/core/database/pebble.go @@ -1,10 +1,10 @@ package database import ( - "github.com/gohornet/hornet/pkg/database" - "github.com/gohornet/hornet/pkg/metrics" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/kvstore/pebble" + "github.com/iotaledger/hornet/pkg/database" + "github.com/iotaledger/hornet/pkg/metrics" ) func newPebble(path string, metrics *metrics.DatabaseMetrics) *database.Database { diff --git a/core/database/rocksdb.go b/core/database/rocksdb.go index 4962c927c..032ae638e 100644 --- a/core/database/rocksdb.go +++ b/core/database/rocksdb.go @@ -1,10 +1,10 @@ package database import ( - "github.com/gohornet/hornet/pkg/database" - "github.com/gohornet/hornet/pkg/metrics" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/kvstore/rocksdb" + "github.com/iotaledger/hornet/pkg/database" + "github.com/iotaledger/hornet/pkg/metrics" ) func newRocksDB(path string, metrics *metrics.DatabaseMetrics) *database.Database { diff --git a/core/database/split.go b/core/database/split.go index bf953bad1..a71acc39c 100644 --- a/core/database/split.go +++ b/core/database/split.go @@ -2,14 +2,13 @@ package database import ( "fmt" - "io/ioutil" "os" "path/filepath" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/database" + "github.com/iotaledger/hive.go/ioutils" "github.com/iotaledger/hive.go/kvstore" - "github.com/iotaledger/hive.go/kvstore/utils" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/database" ) const ( @@ -65,16 +64,16 @@ func SplitIntoTangleAndUTXO(databasePath string, dbEngine ...database.Engine) er return err } - if err := utils.CreateDirectory(tangleDatabasePath, 0700); err != nil { + if err := ioutils.CreateDirectory(tangleDatabasePath, 0700); err != nil { return err } - if err := utils.CreateDirectory(utxoDatabasePath, 0700); err != nil { + if err := ioutils.CreateDirectory(utxoDatabasePath, 0700); err != nil { return err } // Move the legacy database into the tangle directory - files, err := ioutil.ReadDir(legacyDatabasePath) + files, err := os.ReadDir(legacyDatabasePath) if err != nil { return err } diff --git a/core/gossip/core.go b/core/gossip/core.go index ddecfbfa6..fa98e8df9 100644 --- a/core/gossip/core.go +++ b/core/gossip/core.go @@ -2,29 +2,30 @@ package gossip import ( "context" + "errors" "fmt" "time" - "github.com/libp2p/go-libp2p-core/host" - "github.com/libp2p/go-libp2p-core/peer" - "github.com/libp2p/go-libp2p-core/protocol" + "github.com/libp2p/go-libp2p/core/host" + "github.com/libp2p/go-libp2p/core/peer" + "github.com/libp2p/go-libp2p/core/protocol" "go.uber.org/dig" - "github.com/gohornet/hornet/pkg/metrics" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/model/syncmanager" - "github.com/gohornet/hornet/pkg/node" - "github.com/gohornet/hornet/pkg/p2p" - "github.com/gohornet/hornet/pkg/profile" - "github.com/gohornet/hornet/pkg/protocol/gossip" - "github.com/gohornet/hornet/pkg/shutdown" - "github.com/gohornet/hornet/pkg/snapshot" - "github.com/gohornet/hornet/pkg/tangle" "github.com/iotaledger/hive.go/configuration" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/logger" "github.com/iotaledger/hive.go/timeutil" + "github.com/iotaledger/hornet/pkg/metrics" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/syncmanager" + "github.com/iotaledger/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/p2p" + "github.com/iotaledger/hornet/pkg/profile" + "github.com/iotaledger/hornet/pkg/protocol/gossip" + "github.com/iotaledger/hornet/pkg/shutdown" + "github.com/iotaledger/hornet/pkg/snapshot" + "github.com/iotaledger/hornet/pkg/tangle" ) const ( @@ -258,43 +259,76 @@ func checkHeartbeats() { return time.Since(proto.HeartbeatSentTime) > heartbeatSentInterval }) - peersToReconnect := make(map[peer.ID]struct{}) + peersToRemove := make(map[peer.ID]error) + peersToReconnect := make(map[peer.ID]error) + + snapshotInfo := deps.Storage.SnapshotInfo() + if snapshotInfo == nil { + // we can't check the health of the peers without info about pruning index + return + } // check if peers are alive by checking whether we received heartbeats lately deps.GossipService.ForEach(func(proto *gossip.Protocol) bool { - // use a grace period before the heartbeat check is applied - if time.Since(proto.Stream.Stat().Opened) <= checkHeartbeatsInterval || - time.Since(proto.HeartbeatReceivedTime) < heartbeatReceiveTimeout { + protoStream := proto.Stream + if protoStream == nil { + // stream not established yet return true } - /* - // TODO: re-introduce once p2p discovery is implemented - // peer is connected but doesn't seem to be alive - if p.Autopeering != nil { - // it's better to drop the connection to autopeered peers and free the slots for other peers - peerIDsToRemove[p.ID] = struct{}{} - CorePlugin.LogInfof("dropping autopeered neighbor %s / %s because we didn't receive heartbeats anymore", p.Autopeering.ID(), p.Autopeering.ID()) - return true - } - */ + latestHeatbeat := proto.LatestHeartbeat + if latestHeatbeat == nil && time.Since(protoStream.Stat().Opened) <= checkHeartbeatsInterval { + // use a grace period before the heartbeat check is applied + return true + } + + var peerRelationKnown bool + deps.PeeringManager.Call(proto.PeerID, func(peer *p2p.Peer) { + peerRelationKnown = peer.Relation == p2p.PeerRelationKnown + }) + + var errUnhealthy error + switch { + case latestHeatbeat == nil: + // no heartbeat received in the grace period + errUnhealthy = errors.New("no heartbeat received in grace period") + + case time.Since(proto.HeartbeatReceivedTime) > heartbeatReceiveTimeout: + // heartbeat outdated + errUnhealthy = errors.New("heartbeat outdated") + + case !peerRelationKnown && latestHeatbeat.SolidMilestoneIndex < snapshotInfo.PruningIndex: + // peer is unknown or connected via autopeering and its solid milestone index is below our pruning index. + // we can't help this neighbor to become sync, so it's better to drop the connection and free the slots for other peers. + errUnhealthy = fmt.Errorf("peers solid milestone index is below our pruning index: %d < %d", latestHeatbeat.SolidMilestoneIndex, snapshotInfo.PruningIndex) + } + + if errUnhealthy == nil { + // peer is healthy + return true + } + + if peerRelationKnown { + // close the connection to static connected peers, so they will be moved into reconnect pool to reestablish the connection + peersToReconnect[proto.PeerID] = fmt.Errorf("dropping connection to peer %s, error: %w", proto.PeerID.ShortString(), errUnhealthy) + } else { + // it's better to drop the connection to unknown and autopeered peers and free the slots for other peers + peersToRemove[proto.PeerID] = fmt.Errorf("dropping connection to peer %s, error: %w", proto.PeerID.ShortString(), errUnhealthy) + } - // close the connection to static connected peers, so they will be moved into reconnect pool to reestablish the connection - CorePlugin.LogInfof("closing connection to peer %s because we didn't receive heartbeats anymore", proto.PeerID.ShortString()) - peersToReconnect[proto.PeerID] = struct{}{} return true }) - /* - // TODO: re-introduce once p2p discovery is implemented - for peerIDToRemove := range peerIDsToRemove { - peering.Manager().Remove(peerIDToRemove) - } - */ + // drop the connection to the peers + for p, reason := range peersToRemove { + _ = deps.PeeringManager.DisconnectPeer(p, reason) + } // close the connection to the peers to trigger a reconnect - for p := range peersToReconnect { + for p, reason := range peersToReconnect { + CorePlugin.LogWarn(reason.Error()) + conns := deps.Host.Network().ConnsToPeer(p) for _, conn := range conns { _ = conn.Close() @@ -316,8 +350,8 @@ func configureEvents() { } }) - proto.Events.Errors.Attach(closeConnectionDueToProtocolError) - proto.Parser.Events.Error.Attach(closeConnectionDueToProtocolError) + proto.Events.Errors.Hook(closeConnectionDueToProtocolError) + proto.Parser.Events.Error.Hook(closeConnectionDueToProtocolError) if err := CorePlugin.Daemon().BackgroundWorker(fmt.Sprintf("gossip-protocol-read-%s-%s", proto.PeerID, proto.Stream.ID()), func(_ context.Context) { buf := make([]byte, readBufSize) @@ -340,11 +374,11 @@ func configureEvents() { if err := CorePlugin.Daemon().BackgroundWorker(fmt.Sprintf("gossip-protocol-write-%s-%s", proto.PeerID, proto.Stream.ID()), func(ctx context.Context) { // send heartbeat and latest milestone request if snapshotInfo := deps.Storage.SnapshotInfo(); snapshotInfo != nil { - latestMilestoneIndex := deps.SyncManager.LatestMilestoneIndex() - syncedCount := deps.GossipService.SynchronizedCount(latestMilestoneIndex) + syncState := deps.SyncManager.SyncState() + syncedCount := deps.GossipService.SynchronizedCount(syncState.LatestMilestoneIndex) connectedCount := deps.PeeringManager.ConnectedCount() // TODO: overflow not handled for synced/connected - proto.SendHeartbeat(deps.SyncManager.ConfirmedMilestoneIndex(), snapshotInfo.PruningIndex, latestMilestoneIndex, byte(connectedCount), byte(syncedCount)) + proto.SendHeartbeat(syncState.ConfirmedMilestoneIndex, snapshotInfo.PruningIndex, syncState.LatestMilestoneIndex, byte(connectedCount), byte(syncedCount)) proto.SendLatestMilestoneRequest() } @@ -386,12 +420,12 @@ func configureEvents() { } func attachEventsGossipService() { - deps.GossipService.Events.ProtocolStarted.Attach(onGossipServiceProtocolStarted) - deps.GossipService.Events.ProtocolTerminated.Attach(onGossipServiceProtocolTerminated) + deps.GossipService.Events.ProtocolStarted.Hook(onGossipServiceProtocolStarted) + deps.GossipService.Events.ProtocolTerminated.Hook(onGossipServiceProtocolTerminated) } func attachEventsBroadcastQueue() { - deps.MessageProcessor.Events.BroadcastMessage.Attach(onMessageProcessorBroadcastMessage) + deps.MessageProcessor.Events.BroadcastMessage.Hook(onMessageProcessorBroadcastMessage) } func detachEventsGossipService() { diff --git a/core/gossip/params.go b/core/gossip/params.go index 1c0c605e2..50ba6055e 100644 --- a/core/gossip/params.go +++ b/core/gossip/params.go @@ -5,7 +5,7 @@ import ( flag "github.com/spf13/pflag" - "github.com/gohornet/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/node" ) const ( diff --git a/core/gossip/sting.go b/core/gossip/sting.go index 26286db01..624f3e01a 100644 --- a/core/gossip/sting.go +++ b/core/gossip/sting.go @@ -3,71 +3,59 @@ package gossip import ( "time" - "github.com/gohornet/hornet/pkg/protocol/gossip" "github.com/iotaledger/hive.go/events" + "github.com/iotaledger/hornet/pkg/protocol/gossip" ) // sets up the event handlers which propagate STING messages. func attachEventsProtocolMessages(proto *gossip.Protocol) { - proto.Parser.Events.Received[gossip.MessageTypeMessage].Attach(events.NewClosure(func(data []byte) { + proto.Parser.Events.Received[gossip.MessageTypeMessage].Hook(events.NewClosure(func(data []byte) { proto.Metrics.ReceivedMessages.Inc() deps.ServerMetrics.Messages.Inc() deps.MessageProcessor.Process(proto, gossip.MessageTypeMessage, data) })) - proto.Events.Sent[gossip.MessageTypeMessage].Attach(events.NewClosure(func() { + proto.Events.Sent[gossip.MessageTypeMessage].Hook(events.NewClosure(func() { proto.Metrics.SentPackets.Inc() proto.Metrics.SentMessages.Inc() deps.ServerMetrics.SentMessages.Inc() })) - proto.Parser.Events.Received[gossip.MessageTypeMessageRequest].Attach(events.NewClosure(func(data []byte) { + proto.Parser.Events.Received[gossip.MessageTypeMessageRequest].Hook(events.NewClosure(func(data []byte) { proto.Metrics.ReceivedMessageRequests.Inc() deps.ServerMetrics.ReceivedMessageRequests.Inc() deps.MessageProcessor.Process(proto, gossip.MessageTypeMessageRequest, data) })) - proto.Events.Sent[gossip.MessageTypeMessageRequest].Attach(events.NewClosure(func() { + proto.Events.Sent[gossip.MessageTypeMessageRequest].Hook(events.NewClosure(func() { proto.Metrics.SentPackets.Inc() proto.Metrics.SentMessageRequests.Inc() deps.ServerMetrics.SentMessageRequests.Inc() })) - proto.Parser.Events.Received[gossip.MessageTypeMilestoneRequest].Attach(events.NewClosure(func(data []byte) { + proto.Parser.Events.Received[gossip.MessageTypeMilestoneRequest].Hook(events.NewClosure(func(data []byte) { proto.Metrics.ReceivedMilestoneRequests.Inc() deps.ServerMetrics.ReceivedMilestoneRequests.Inc() deps.MessageProcessor.Process(proto, gossip.MessageTypeMilestoneRequest, data) })) - proto.Events.Sent[gossip.MessageTypeMilestoneRequest].Attach(events.NewClosure(func() { + proto.Events.Sent[gossip.MessageTypeMilestoneRequest].Hook(events.NewClosure(func() { proto.Metrics.SentPackets.Inc() proto.Metrics.SentMilestoneRequests.Inc() deps.ServerMetrics.SentMilestoneRequests.Inc() })) - proto.Parser.Events.Received[gossip.MessageTypeHeartbeat].Attach(events.NewClosure(func(data []byte) { + proto.Parser.Events.Received[gossip.MessageTypeHeartbeat].Hook(events.NewClosure(func(data []byte) { proto.Metrics.ReceivedHeartbeats.Inc() deps.ServerMetrics.ReceivedHeartbeats.Inc() proto.LatestHeartbeat = gossip.ParseHeartbeat(data) - - /* - // TODO: reintroduce - if proto.Autopeering != nil && p.LatestHeartbeat.SolidMilestoneIndex < tangle.SnapshotInfo().PruningIndex { - // peer is connected via autopeering and its solid milestone index is below our pruning index. - // we can't help this neighbor to become sync, so it's better to drop the connection and free the slots for other peers. - log.Infof("dropping autopeered neighbor %s / %s because SMI (%d) is below our pruning index (%d)", p.Autopeering.Address(), p.Autopeering.ID(), p.LatestHeartbeat.SolidMilestoneIndex, tangle.SnapshotInfo().PruningIndex) - peering.Manager().Remove(p.ID) - return - } - */ - proto.HeartbeatReceivedTime = time.Now() proto.Events.HeartbeatUpdated.Trigger(proto.LatestHeartbeat) })) - proto.Events.Sent[gossip.MessageTypeHeartbeat].Attach(events.NewClosure(func() { + proto.Events.Sent[gossip.MessageTypeHeartbeat].Hook(events.NewClosure(func() { proto.Metrics.SentPackets.Inc() proto.Metrics.SentHeartbeats.Inc() deps.ServerMetrics.SentHeartbeats.Inc() diff --git a/core/gracefulshutdown/core.go b/core/gracefulshutdown/core.go index 76df4a3b1..389c9d577 100644 --- a/core/gracefulshutdown/core.go +++ b/core/gracefulshutdown/core.go @@ -3,8 +3,8 @@ package gracefulshutdown import ( "go.uber.org/dig" - "github.com/gohornet/hornet/pkg/node" - "github.com/gohornet/hornet/pkg/shutdown" + "github.com/iotaledger/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/shutdown" ) func init() { diff --git a/core/p2p/core.go b/core/p2p/core.go index 95fec70f0..cadceaa4c 100644 --- a/core/p2p/core.go +++ b/core/p2p/core.go @@ -6,19 +6,20 @@ import ( "time" "github.com/libp2p/go-libp2p" - connmgr "github.com/libp2p/go-libp2p-connmgr" - "github.com/libp2p/go-libp2p-core/crypto" - "github.com/libp2p/go-libp2p-core/host" - "github.com/libp2p/go-libp2p-core/peer" + "github.com/libp2p/go-libp2p/core/crypto" + "github.com/libp2p/go-libp2p/core/host" + "github.com/libp2p/go-libp2p/core/peer" + "github.com/libp2p/go-libp2p/p2p/net/connmgr" + "github.com/libp2p/go-libp2p/p2p/transport/tcp" "github.com/multiformats/go-multiaddr" "go.uber.org/dig" - "github.com/gohornet/hornet/pkg/database" - "github.com/gohornet/hornet/pkg/node" - "github.com/gohornet/hornet/pkg/p2p" - "github.com/gohornet/hornet/pkg/shutdown" "github.com/iotaledger/hive.go/configuration" "github.com/iotaledger/hive.go/logger" + "github.com/iotaledger/hornet/pkg/database" + "github.com/iotaledger/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/p2p" + "github.com/iotaledger/hornet/pkg/shutdown" ) func init() { @@ -144,7 +145,7 @@ Your node identity private key can now be found at "%s". createdHost, err := libp2p.New(libp2p.Identity(privKey), libp2p.ListenAddrStrings(deps.P2PBindMultiAddresses...), libp2p.Peerstore(peerStoreContainer.Peerstore()), - libp2p.DefaultTransports, + libp2p.Transport(tcp.NewTCPTransport), libp2p.ConnectionManager(connManager), libp2p.NATPortMap(), ) diff --git a/core/p2p/params.go b/core/p2p/params.go index 9dccbff61..69d9cb8c0 100644 --- a/core/p2p/params.go +++ b/core/p2p/params.go @@ -5,7 +5,7 @@ import ( flag "github.com/spf13/pflag" - "github.com/gohornet/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/node" ) const ( diff --git a/core/pow/core.go b/core/pow/core.go index cf78fa9ac..9da2a9362 100644 --- a/core/pow/core.go +++ b/core/pow/core.go @@ -5,34 +5,27 @@ import ( "go.uber.org/dig" - "github.com/gohornet/hornet/pkg/node" - "github.com/gohornet/hornet/pkg/pow" - "github.com/gohornet/hornet/pkg/shutdown" "github.com/iotaledger/hive.go/configuration" + "github.com/iotaledger/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/pow" + "github.com/iotaledger/hornet/pkg/shutdown" ) func init() { CorePlugin = &node.CorePlugin{ Pluggable: node.Pluggable{ - Name: "PoW", - DepsFunc: func(cDeps dependencies) { deps = cDeps }, - Params: params, - Provide: provide, - Run: run, + Name: "PoW", + Params: params, + Provide: provide, + Run: run, }, } } var ( CorePlugin *node.CorePlugin - deps dependencies ) -type dependencies struct { - dig.In - Handler *pow.Handler -} - func provide(c *dig.Container) { type handlerDeps struct { diff --git a/core/pow/params.go b/core/pow/params.go index af5d3f8a5..d34ce8e5f 100644 --- a/core/pow/params.go +++ b/core/pow/params.go @@ -5,7 +5,7 @@ import ( flag "github.com/spf13/pflag" - "github.com/gohornet/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/node" ) const ( diff --git a/core/profile/core.go b/core/profile/core.go index 40dc761e2..35324c5a4 100644 --- a/core/profile/core.go +++ b/core/profile/core.go @@ -7,9 +7,9 @@ import ( "github.com/shirou/gopsutil/mem" "go.uber.org/dig" - "github.com/gohornet/hornet/pkg/node" - "github.com/gohornet/hornet/pkg/profile" "github.com/iotaledger/hive.go/configuration" + "github.com/iotaledger/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/profile" ) var ( diff --git a/core/profile/params.go b/core/profile/params.go index 17c1024ac..2f429a43a 100644 --- a/core/profile/params.go +++ b/core/profile/params.go @@ -3,7 +3,7 @@ package profile import ( flag "github.com/spf13/pflag" - "github.com/gohornet/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/node" ) const ( diff --git a/core/protocfg/core.go b/core/protocfg/core.go index 67e0b930b..4c95ff250 100644 --- a/core/protocfg/core.go +++ b/core/protocfg/core.go @@ -6,9 +6,9 @@ import ( flag "github.com/spf13/pflag" "go.uber.org/dig" - "github.com/gohornet/hornet/pkg/model/coordinator" - "github.com/gohornet/hornet/pkg/node" "github.com/iotaledger/hive.go/configuration" + "github.com/iotaledger/hornet/pkg/model/coordinator" + "github.com/iotaledger/hornet/pkg/node" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/core/protocfg/params.go b/core/protocfg/params.go index 5cc0e9cc2..1e537eb95 100644 --- a/core/protocfg/params.go +++ b/core/protocfg/params.go @@ -3,7 +3,7 @@ package protocfg import ( flag "github.com/spf13/pflag" - "github.com/gohornet/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/node" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/core/snapshot/core.go b/core/snapshot/core.go index 00aa38217..43c5150d6 100644 --- a/core/snapshot/core.go +++ b/core/snapshot/core.go @@ -8,18 +8,18 @@ import ( flag "github.com/spf13/pflag" "go.uber.org/dig" - "github.com/gohornet/hornet/pkg/database" - "github.com/gohornet/hornet/pkg/metrics" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/model/syncmanager" - "github.com/gohornet/hornet/pkg/model/utxo" - "github.com/gohornet/hornet/pkg/node" - "github.com/gohornet/hornet/pkg/shutdown" - "github.com/gohornet/hornet/pkg/snapshot" - "github.com/gohornet/hornet/pkg/tangle" "github.com/iotaledger/hive.go/configuration" "github.com/iotaledger/hive.go/events" + "github.com/iotaledger/hornet/pkg/database" + "github.com/iotaledger/hornet/pkg/metrics" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/syncmanager" + "github.com/iotaledger/hornet/pkg/model/utxo" + "github.com/iotaledger/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/shutdown" + "github.com/iotaledger/hornet/pkg/snapshot" + "github.com/iotaledger/hornet/pkg/tangle" ) const ( @@ -181,6 +181,7 @@ func provide(c *dig.Container) { deps.Storage, deps.SyncManager, deps.UTXOManager, + deps.NodeConfig.Bool(CfgSnapshotsEnabled), deps.NetworkID, networkIDSource, deps.SnapshotsFullPath, @@ -222,6 +223,7 @@ func configure() { switch { case snapshotInfo != nil && !*forceLoadingSnapshot: + // snapshot already exists, no need to load it if err := deps.SnapshotManager.CheckCurrentSnapshot(snapshotInfo); err != nil { CorePlugin.LogPanic(err) } @@ -246,7 +248,7 @@ func run() { if err := CorePlugin.Daemon().BackgroundWorker("Snapshots", func(ctx context.Context) { CorePlugin.LogInfo("Starting Snapshots ... done") - deps.Tangle.Events.ConfirmedMilestoneIndexChanged.Attach(onConfirmedMilestoneIndexChanged) + deps.Tangle.Events.ConfirmedMilestoneIndexChanged.Hook(onConfirmedMilestoneIndexChanged) defer deps.Tangle.Events.ConfirmedMilestoneIndexChanged.Detach(onConfirmedMilestoneIndexChanged) for { diff --git a/core/snapshot/params.go b/core/snapshot/params.go index fd7cee050..a60b21cba 100644 --- a/core/snapshot/params.go +++ b/core/snapshot/params.go @@ -5,10 +5,12 @@ import ( flag "github.com/spf13/pflag" - "github.com/gohornet/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/node" ) const ( + // whether to generate snapshot files. + CfgSnapshotsEnabled = "snapshots.enabled" // the depth, respectively the starting point, at which a snapshot of the ledger is generated CfgSnapshotsDepth = "snapshots.depth" // interval, in milestones, at which snapshot files are created (snapshots are only created if the node is synced) @@ -42,6 +44,7 @@ var params = &node.PluginParams{ Params: map[string]*flag.FlagSet{ "nodeConfig": func() *flag.FlagSet { fs := flag.NewFlagSet("", flag.ContinueOnError) + fs.Bool(CfgSnapshotsEnabled, false, "whether to generate snapshot files") fs.Int(CfgSnapshotsDepth, 50, "the depth, respectively the starting point, at which a snapshot of the ledger is generated") fs.Int(CfgSnapshotsInterval, 200, "interval, in milestones, at which snapshot files are created (snapshots are only created if the node is synced)") fs.String(CfgSnapshotsFullPath, "snapshots/mainnet/full_snapshot.bin", "path to the full snapshot file") diff --git a/core/tangle/core.go b/core/tangle/core.go index f9c123578..0d4cfaa31 100644 --- a/core/tangle/core.go +++ b/core/tangle/core.go @@ -9,23 +9,23 @@ import ( flag "github.com/spf13/pflag" "go.uber.org/dig" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/keymanager" - "github.com/gohornet/hornet/pkg/metrics" - "github.com/gohornet/hornet/pkg/model/migrator" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/milestonemanager" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/model/syncmanager" - "github.com/gohornet/hornet/pkg/node" - "github.com/gohornet/hornet/pkg/protocol/gossip" - "github.com/gohornet/hornet/pkg/shutdown" - "github.com/gohornet/hornet/pkg/snapshot" - "github.com/gohornet/hornet/pkg/tangle" "github.com/iotaledger/hive.go/configuration" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/logger" "github.com/iotaledger/hive.go/timeutil" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/keymanager" + "github.com/iotaledger/hornet/pkg/metrics" + "github.com/iotaledger/hornet/pkg/model/migrator" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/milestonemanager" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/syncmanager" + "github.com/iotaledger/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/protocol/gossip" + "github.com/iotaledger/hornet/pkg/shutdown" + "github.com/iotaledger/hornet/pkg/snapshot" + "github.com/iotaledger/hornet/pkg/tangle" ) const ( @@ -242,9 +242,9 @@ func configureEvents() { } func attachHeartbeatEvents() { - deps.Tangle.Events.ConfirmedMilestoneIndexChanged.Attach(onConfirmedMilestoneIndexChanged) - deps.SnapshotManager.Events.PruningMilestoneIndexChanged.Attach(onPruningMilestoneIndexChanged) - deps.Tangle.Events.LatestMilestoneIndexChanged.Attach(onLatestMilestoneIndexChanged) + deps.Tangle.Events.ConfirmedMilestoneIndexChanged.Hook(onConfirmedMilestoneIndexChanged) + deps.SnapshotManager.Events.PruningMilestoneIndexChanged.Hook(onPruningMilestoneIndexChanged) + deps.Tangle.Events.LatestMilestoneIndexChanged.Hook(onLatestMilestoneIndexChanged) } func detachHeartbeatEvents() { diff --git a/core/tangle/params.go b/core/tangle/params.go index 37417d2de..3abd28255 100644 --- a/core/tangle/params.go +++ b/core/tangle/params.go @@ -5,7 +5,7 @@ import ( flag "github.com/spf13/pflag" - "github.com/gohornet/hornet/pkg/node" + "github.com/iotaledger/hornet/pkg/node" ) const ( diff --git a/docker/Dockerfile b/docker/Dockerfile index 7aa2d67f8..370c2a6a9 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,13 +1,13 @@ # https://hub.docker.com/_/golang -FROM golang:1.18-bullseye AS build +FROM golang:1.19-bullseye AS build ARG BUILD_TAGS=builtin_static,rocksdb -LABEL org.label-schema.description="HORNET - The IOTA community node" -LABEL org.label-schema.name="gohornet/hornet" +LABEL org.label-schema.description="HORNET - The IOTA node" +LABEL org.label-schema.name="iotaledger/hornet" LABEL org.label-schema.schema-version="1.0" -LABEL org.label-schema.vcs-url="https://github.com/gohornet/hornet" -LABEL org.label-schema.usage="https://github.com/gohornet/hornet/blob/main/documentation/docs/getting_started/using_docker.md" +LABEL org.label-schema.vcs-url="https://github.com/iotaledger/hornet" +LABEL org.label-schema.usage="https://github.com/iotaledger/hornet/blob/main/documentation/docs/getting_started/using_docker.md" # Ensure ca-certificates are up to date RUN update-ca-certificates diff --git a/documentation/docs/how_tos/hornet_apt_repository.md b/documentation/docs/how_tos/hornet_apt_repository.md index c0e3f0ba8..b5d1dc411 100644 --- a/documentation/docs/how_tos/hornet_apt_repository.md +++ b/documentation/docs/how_tos/hornet_apt_repository.md @@ -95,10 +95,10 @@ All installation methods mentioned in this article from this point should be con ::: -1. Download the latest release compiled for your system from [GitHub release assets](https://github.com/gohornet/hornet/releases): +1. Download the latest release compiled for your system from [GitHub release assets](https://github.com/iotaledger/hornet/releases): ```bash - curl -LO https://github.com/gohornet/hornet/releases/download/v1.0.5/HORNET-1.0.5_Linux_x86_64.tar.gz + curl -LO https://github.com/iotaledger/hornet/releases/download/v1.2.2/HORNET-1.2.2_Linux_x86_64.tar.gz ``` Please make sure to download the binaries for your system: @@ -111,7 +111,7 @@ All installation methods mentioned in this article from this point should be con 2. Extract the files in a folder of your choice (for example `/opt` on Linux): ```bash - tar -xf HORNET-1.0.5_Linux_x86_64.tar.gz + tar -xf HORNET-1.2.2_Linux_x86_64.tar.gz ``` 3. Once you have extracted the files, you get a main executable file. You can also find sample [configuration](post_installation.md) JSON files available in the archive (tar or zip). @@ -187,12 +187,12 @@ You can find installation instructions in the [official Go documentation](https: 4. Clone the Hornet source code from GitHub: ```bash - git clone https://github.com/gohornet/hornet.git && cd hornet && git checkout mainnet + git clone https://github.com/iotaledger/hornet.git && cd hornet && git checkout mainnet ``` 5. Build the Hornet: ```bash - ./scripts/build_hornet_rocksdb_builtin.sh + ./scripts/build_hornet_rocksdb.sh ``` * This command will build Hornet based on the latest commit from the currently chosen branch. * This may take a couple of minutes. diff --git a/documentation/docs/how_tos/managing_a_node.md b/documentation/docs/how_tos/managing_a_node.md index d3132f355..e3a5cc033 100644 --- a/documentation/docs/how_tos/managing_a_node.md +++ b/documentation/docs/how_tos/managing_a_node.md @@ -22,7 +22,8 @@ Hornet uses an embedded database engine that stores its data in a directory in a "db": { "engine": "rocksdb", "path": "mainnetdb", - "autoRevalidation": false + "autoRevalidation": false, + "checkLedgerStateOnStartup": false } ``` @@ -32,6 +33,7 @@ Another important directory is the `snapshots` directory. You can control the `s ```json "snapshots": { + "enabled": false, "interval": 50, "fullPath": "snapshots/mainnet/full_snapshot.bin", "deltaPath": "snapshots/mainnet/delta_snapshot.bin", @@ -111,6 +113,7 @@ Your node's ledger accumulates many messages, which uses a significant disk capa ```json "snapshots": { + "enabled": false, "interval": 50, "fullPath": "snapshots/mainnet/full_snapshot.bin", "deltaPath": "snapshots/mainnet/delta_snapshot.bin", diff --git a/documentation/docs/how_tos/post_installation.md b/documentation/docs/how_tos/post_installation.md index 71d1b386f..38ec62d5b 100644 --- a/documentation/docs/how_tos/post_installation.md +++ b/documentation/docs/how_tos/post_installation.md @@ -126,6 +126,7 @@ You can find the HTTP REST API related options in the `restAPI` section within t "publicRoutes": [ "/health", "/mqtt", + "/api/routes", "/api/v1/info", "/api/v1/tips", "/api/v1/messages*", diff --git a/documentation/docs/how_tos/using_docker.md b/documentation/docs/how_tos/using_docker.md index 22aba5cc9..2ed2c8b09 100644 --- a/documentation/docs/how_tos/using_docker.md +++ b/documentation/docs/how_tos/using_docker.md @@ -17,7 +17,7 @@ keywords: ![Hornet Node using Docker](/img/Banner/banner_hornet_using_docker.png) -Hornet Docker images (amd64/x86_64 architecture) are available at the [gohornet/hornet](https://hub.docker.com/r/gohornet/hornet) Docker hub. +Hornet Docker images (amd64/x86_64 architecture) are available at the [iotaledger/hornet](https://hub.docker.com/r/iotaledger/hornet) Docker hub. ## Requirements @@ -31,7 +31,7 @@ Hornet Docker images (amd64/x86_64 architecture) are available at the [gohornet/ Once you have completed all the installation [requirements](#requirements), you can clone the repository by running: ```sh -git clone https://github.com/gohornet/hornet && cd hornet && git checkout production +git clone https://github.com/iotaledger/hornet && cd hornet && git checkout production ``` :::note @@ -68,10 +68,10 @@ The Docker image runs under user with user id 65532 and group id 65532. To make ## Run -You can pull the latest image from `gohornet/hornet` public Docker hub registry by running: +You can pull the latest image from `iotaledger/hornet` public Docker hub registry by running: ```bash -docker pull gohornet/hornet:latest && docker tag gohornet/hornet:latest hornet:latest +docker pull iotaledger/hornet:latest && docker tag iotaledger/hornet:latest hornet:latest ``` We recommend that you run on host network to improve performance. Otherwise, you will have to publish ports using iptables NAT which is slower. @@ -152,7 +152,7 @@ docker build -f docker/Dockerfile -t hornet:latest . Or pull it from Docker hub (only available for amd64/x86_64): ```sh -docker pull gohornet/hornet:latest && docker tag gohornet/hornet:latest hornet:latest +docker pull iotaledger/hornet:latest && docker tag iotaledger/hornet:latest hornet:latest ``` ## Managing a Node diff --git a/documentation/docs/how_tos/using_docker_compose.md b/documentation/docs/how_tos/using_docker_compose.md index 6742ff9fa..fa00502cc 100644 --- a/documentation/docs/how_tos/using_docker_compose.md +++ b/documentation/docs/how_tos/using_docker_compose.md @@ -40,7 +40,7 @@ version: '3' services: hornet: container_name: hornet - image: gohornet/hornet:latest + image: iotaledger/hornet:latest network_mode: host restart: always ulimits: diff --git a/documentation/docs/references/configuration.md b/documentation/docs/references/configuration.md index 48eef379a..3796f443a 100644 --- a/documentation/docs/references/configuration.md +++ b/documentation/docs/references/configuration.md @@ -68,6 +68,7 @@ Example: "publicRoutes": [ "/health", "/mqtt", + "/api/routes", "/api/v1/info", "/api/v1/tips", "/api/v1/messages*", @@ -125,19 +126,20 @@ Example: ## 3. DB -| Name | Description | Type | -| :--------------- | :---------------------------------------------------------------------------------- | :----- | -| engine | The used database engine (pebble/rocksdb/mapdb) | string | -| path | The path to the database folder | string | -| autoRevalidation | Whether to automatically start revalidation on startup if the database is corrupted | bool | - +| Name | Description | Type | +| :------------------------ | :---------------------------------------------------------------------------------- | :----- | +| engine | The used database engine (pebble/rocksdb/mapdb) | string | +| path | The path to the database folder | string | +| autoRevalidation | Whether to automatically start revalidation on startup if the database is corrupted | bool | +| checkLedgerStateOnStartup | Whether to check if the ledger state matches the total supply on startup | bool | Example: ```json "db": { "engine": "rocksdb", "path": "mainnetdb", - "autoRevalidation": false + "autoRevalidation": false, + "checkLedgerStateOnStartup": false }, ``` @@ -145,6 +147,7 @@ Example: | Name | Description | Type | | :---------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------- | +| enabled | whether to generate snapshot files | bool | | depth | The depth, respectively the starting point, at which a snapshot of the ledger is generated | integer | | interval | Interval, in milestones, at which snapshot files are created (snapshots are only created if the node is synced) | integer | | fullPath | Path to the full snapshot file | string | @@ -163,6 +166,7 @@ Example: ```json "snapshots": { + "enabled": false, "depth": 50, "interval": 200, "fullPath": "snapshots/mainnet/full_snapshot.bin", diff --git a/documentation/docs/references/faq.md b/documentation/docs/references/faq.md index 57d352fdb..063164326 100644 --- a/documentation/docs/references/faq.md +++ b/documentation/docs/references/faq.md @@ -35,8 +35,8 @@ Of course, you are very welcome! Just send a PR or offer your help in the `#horn ## I Found a Bug, What Should I Do? -Please open a [new issue](https://github.com/gohornet/hornet/issues/new?assignees=&labels=bug&template=bug_report.md&title=). We'll have a look at your bug report as soon as possible. +Please open a [new issue](https://github.com/iotaledger/hornet/issues/new?assignees=&labels=bug&template=bug_report.md&title=). We'll have a look at your bug report as soon as possible. ## I Am Missing Feature XYZ. Can You Add It? -Please open a [new feature request](https://github.com/gohornet/hornet/issues/new?assignees=&labels=feature&template=feature_request.md&title=). We cannot assure that the feature will actually be implemented. Pull requests are very welcome! +Please open a [new feature request](https://github.com/iotaledger/hornet/issues/new?assignees=&labels=feature&template=feature_request.md&title=). We cannot assure that the feature will actually be implemented. Pull requests are very welcome! diff --git a/documentation/docs/troubleshooting.md b/documentation/docs/troubleshooting.md index 3eac6925b..d3e745327 100644 --- a/documentation/docs/troubleshooting.md +++ b/documentation/docs/troubleshooting.md @@ -20,4 +20,4 @@ If you can not find your question in the FAQ, feel free to ask in the `#hornet` ## Did Something Go Wrong? -Please open a [new issue](https://github.com/gohornet/hornet/issues/new) if you detect an error or crash. You can also submit a PR if you have already fixed it. +Please open a [new issue](https://github.com/iotaledger/hornet/issues/new) if you detect an error or crash. You can also submit a PR if you have already fixed it. diff --git a/documentation/docs/welcome.md b/documentation/docs/welcome.md index a726dc76e..c5ede24e5 100644 --- a/documentation/docs/welcome.md +++ b/documentation/docs/welcome.md @@ -42,4 +42,4 @@ the [roadmap](https://roadmap.iota.org/) for more information. ## Source Code -The source code of the project is available on [GitHub](https://github.com/gohornet/hornet). \ No newline at end of file +The source code of the project is available on [GitHub](https://github.com/iotaledger/hornet). \ No newline at end of file diff --git a/documentation/docusaurus.config.js b/documentation/docusaurus.config.js index b297e5380..dd92f7138 100644 --- a/documentation/docusaurus.config.js +++ b/documentation/docusaurus.config.js @@ -9,7 +9,7 @@ module.exports = { path: path.resolve(__dirname, 'docs'), routeBasePath: 'hornet', sidebarPath: path.resolve(__dirname, 'sidebars.js'), - editUrl: 'https://github.com/gohornet/hornet/edit/production/documentation', + editUrl: 'https://github.com/iotaledger/hornet/edit/production/documentation', versions: { current: { label: 'IOTA', diff --git a/go.mod b/go.mod index 638792e6a..187738165 100644 --- a/go.mod +++ b/go.mod @@ -1,241 +1,218 @@ -module github.com/gohornet/hornet +module github.com/iotaledger/hornet -go 1.18 +go 1.19 -replace github.com/linxGnu/grocksdb => github.com/gohornet/grocksdb v1.6.38-0.20211012114404-55f425442260 +replace github.com/linxGnu/grocksdb => github.com/iotaledger/grocksdb v1.6.38-0.20211012114404-55f425442260 require ( - github.com/bits-and-blooms/bitset v1.2.2 + github.com/bits-and-blooms/bitset v1.4.0 github.com/blang/vfs v1.0.0 - github.com/cockroachdb/pebble v0.0.0-20220408205130-c55c1d80c374 - github.com/docker/docker v20.10.14+incompatible + github.com/cockroachdb/pebble v0.0.0-20230106151110-65ff304d3d7a + github.com/docker/docker v20.10.22+incompatible github.com/docker/go-connections v0.4.0 github.com/dustin/go-humanize v1.0.0 - github.com/eclipse/paho.mqtt.golang v1.3.5 - github.com/fhmq/hmq v0.0.0-20220409045343-c53d8f8a0daa + github.com/eclipse/paho.mqtt.golang v1.4.2 + github.com/fhmq/hmq v1.5.0 github.com/go-echarts/go-echarts v1.0.0 github.com/gobuffalo/packr/v2 v2.8.3 github.com/golang-jwt/jwt v3.2.2+incompatible github.com/gorilla/websocket v1.5.0 - github.com/hashicorp/go-version v1.4.0 + github.com/hashicorp/go-version v1.6.0 github.com/iotaledger/go-ds-kvstore v0.0.0-20220404122649-445475b91fcf - github.com/iotaledger/hive.go v0.0.0-20220408130540-d344e455dd23 + github.com/iotaledger/hive.go v0.0.0-20221227223844-749e1d43a081 github.com/iotaledger/iota.go v1.0.0 github.com/iotaledger/iota.go/v2 v2.0.2-0.20220225080023-871c779a63cb - github.com/ipfs/go-datastore v0.5.1 + github.com/ipfs/go-datastore v0.6.0 github.com/ipfs/go-ds-badger v0.3.0 - github.com/labstack/echo/v4 v4.7.2 - github.com/labstack/gommon v0.3.2-0.20220410183028-64116baad496 - github.com/libp2p/go-libp2p v0.18.0 - github.com/libp2p/go-libp2p-connmgr v0.3.1 - github.com/libp2p/go-libp2p-core v0.14.0 - github.com/libp2p/go-libp2p-peerstore v0.6.0 + github.com/labstack/echo-contrib v0.13.1 + github.com/labstack/echo/v4 v4.10.0 + github.com/labstack/gommon v0.4.0 + github.com/libp2p/go-libp2p v0.24.2 github.com/mr-tron/base58 v1.2.0 - github.com/multiformats/go-multiaddr v0.5.0 - github.com/pelletier/go-toml/v2 v2.0.0-beta.7 + github.com/multiformats/go-multiaddr v0.8.0 + github.com/pelletier/go-toml/v2 v2.0.6 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.12.1 + github.com/prometheus/client_golang v1.14.0 github.com/shirou/gopsutil v3.21.11+incompatible github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.7.1 + github.com/stretchr/testify v1.8.1 github.com/tcnksm/go-latest v0.0.0-20170313132115-e3007ae9052e - github.com/wollac/iota-crypto-demo v0.0.0-20211124150533-68dd13b59838 - go.uber.org/atomic v1.9.0 - go.uber.org/dig v1.14.1 - golang.org/x/crypto v0.0.0-20220408190544-5352b0902921 - golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3 - golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 - golang.org/x/time v0.0.0-20220224211638-0e9765cccd65 + github.com/wollac/iota-crypto-demo v0.0.0-20221117162917-b10619eccb98 + go.uber.org/atomic v1.10.0 + go.uber.org/dig v1.16.0 + golang.org/x/crypto v0.5.0 + golang.org/x/net v0.5.0 + golang.org/x/term v0.4.0 + golang.org/x/time v0.3.0 ) require ( - filippo.io/edwards25519 v1.0.0-rc.1 // indirect + filippo.io/edwards25519 v1.0.0 // indirect github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96 // indirect - github.com/DataDog/zstd v1.5.0 // indirect - github.com/Microsoft/go-winio v0.5.0 // indirect + github.com/DataDog/zstd v1.5.2 // indirect + github.com/Microsoft/go-winio v0.6.0 // indirect github.com/ReneKroon/ttlcache/v2 v2.11.0 // indirect - github.com/Shopify/sarama v1.32.0 // indirect + github.com/Shopify/sarama v1.37.2 // indirect github.com/benbjohnson/clock v1.3.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bitly/go-simplejson v0.5.0 // indirect - github.com/btcsuite/btcd v0.22.0-beta // indirect github.com/cespare/xxhash v1.1.0 // indirect - github.com/cespare/xxhash/v2 v2.1.2 // indirect - github.com/cheekybits/genny v1.0.0 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cockroachdb/errors v1.9.0 // indirect github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f // indirect github.com/cockroachdb/redact v1.1.3 // indirect - github.com/containerd/cgroups v1.0.3 // indirect - github.com/containerd/containerd v1.5.5 // indirect - github.com/coreos/go-systemd/v22 v22.3.2 // indirect + github.com/containerd/cgroups v1.0.4 // indirect + github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect github.com/dgraph-io/badger v1.6.2 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect - github.com/dgraph-io/ristretto v0.1.0 // indirect - github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 // indirect - github.com/docker/distribution v2.7.1+incompatible // indirect - github.com/docker/go-units v0.4.0 // indirect - github.com/eapache/go-resiliency v1.2.0 // indirect + github.com/dgraph-io/ristretto v0.1.1 // indirect + github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect + github.com/docker/distribution v2.8.1+incompatible // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/eapache/go-resiliency v1.3.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect github.com/eapache/queue v1.1.0 // indirect github.com/elastic/gosigar v0.14.2 // indirect - github.com/emirpasic/gods v1.12.1 // indirect + github.com/emirpasic/gods v1.18.1 // indirect github.com/fatih/structs v1.1.0 // indirect github.com/flynn/noise v1.0.0 // indirect github.com/francoispqt/gojay v1.2.13 // indirect - github.com/fsnotify/fsnotify v1.5.1 // indirect - github.com/getsentry/sentry-go v0.13.0 // indirect + github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/getsentry/sentry-go v0.16.0 // indirect github.com/gin-contrib/sse v0.1.0 // indirect - github.com/gin-gonic/gin v1.7.7 // indirect + github.com/gin-gonic/gin v1.8.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect - github.com/go-playground/locales v0.14.0 // indirect + github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.0 // indirect - github.com/go-playground/validator/v10 v10.10.1 // indirect + github.com/go-playground/validator/v10 v10.11.1 // indirect github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect - github.com/gobuffalo/logger v1.0.6 // indirect - github.com/gobuffalo/packd v1.0.1 // indirect + github.com/gobuffalo/logger v1.0.7 // indirect + github.com/gobuffalo/packd v1.0.2 // indirect + github.com/goccy/go-json v0.10.0 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/glog v1.0.0 // indirect + github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/go-github v17.0.0+incompatible // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gopacket v1.1.19 // indirect + github.com/google/pprof v0.0.0-20221219190121-3cb0bae90811 // indirect github.com/google/uuid v1.3.0 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/huin/goupnp v1.0.3 // indirect - github.com/ipfs/go-cid v0.1.0 // indirect - github.com/ipfs/go-ipfs-util v0.0.2 // indirect + github.com/iotaledger/grocksdb v1.7.5-0.20221128103803-fcdb79760195 // indirect + github.com/ipfs/go-cid v0.3.2 // indirect github.com/ipfs/go-log/v2 v2.5.1 // indirect github.com/jackpal/go-nat-pmp v1.0.2 // indirect github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect github.com/jbenet/goprocess v0.1.4 // indirect github.com/jcmturner/aescts/v2 v2.0.0 // indirect github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect - github.com/jcmturner/gofork v1.0.0 // indirect - github.com/jcmturner/gokrb5/v8 v8.4.2 // indirect + github.com/jcmturner/gofork v1.7.6 // indirect + github.com/jcmturner/gokrb5/v8 v8.4.3 // indirect github.com/jcmturner/rpc/v2 v2.0.3 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/karrick/godirwalk v1.16.1 // indirect - github.com/klauspost/compress v1.15.1 // indirect - github.com/klauspost/cpuid/v2 v2.0.12 // indirect - github.com/knadh/koanf v1.4.1 // indirect - github.com/koron/go-ssdp v0.0.2 // indirect - github.com/kr/pretty v0.3.0 // indirect + github.com/karrick/godirwalk v1.17.0 // indirect + github.com/klauspost/compress v1.15.14 // indirect + github.com/klauspost/cpuid/v2 v2.2.3 // indirect + github.com/knadh/koanf v1.4.5 // indirect + github.com/koron/go-ssdp v0.0.3 // indirect + github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect github.com/leodido/go-urn v1.2.1 // indirect - github.com/libp2p/go-buffer-pool v0.0.2 // indirect + github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/libp2p/go-cidranger v1.1.0 // indirect - github.com/libp2p/go-conn-security-multistream v0.3.0 // indirect - github.com/libp2p/go-eventbus v0.2.1 // indirect - github.com/libp2p/go-flow-metrics v0.0.3 // indirect - github.com/libp2p/go-libp2p-asn-util v0.1.0 // indirect - github.com/libp2p/go-libp2p-blankhost v0.3.0 // indirect - github.com/libp2p/go-libp2p-mplex v0.6.0 // indirect - github.com/libp2p/go-libp2p-nat v0.1.0 // indirect - github.com/libp2p/go-libp2p-noise v0.3.0 // indirect - github.com/libp2p/go-libp2p-pnet v0.2.0 // indirect - github.com/libp2p/go-libp2p-quic-transport v0.17.0 // indirect - github.com/libp2p/go-libp2p-resource-manager v0.2.0 // indirect - github.com/libp2p/go-libp2p-swarm v0.10.2 // indirect - github.com/libp2p/go-libp2p-tls v0.4.0 // indirect - github.com/libp2p/go-libp2p-transport-upgrader v0.7.1 // indirect - github.com/libp2p/go-libp2p-yamux v0.8.2 // indirect - github.com/libp2p/go-mplex v0.6.0 // indirect - github.com/libp2p/go-msgio v0.1.0 // indirect + github.com/libp2p/go-flow-metrics v0.1.0 // indirect + github.com/libp2p/go-libp2p-asn-util v0.2.0 // indirect + github.com/libp2p/go-msgio v0.2.0 // indirect github.com/libp2p/go-nat v0.1.0 // indirect - github.com/libp2p/go-netroute v0.2.0 // indirect - github.com/libp2p/go-openssl v0.0.7 // indirect - github.com/libp2p/go-reuseport v0.1.0 // indirect - github.com/libp2p/go-reuseport-transport v0.1.0 // indirect - github.com/libp2p/go-stream-muxer-multistream v0.4.0 // indirect - github.com/libp2p/go-tcp-transport v0.5.1 // indirect - github.com/libp2p/go-ws-transport v0.6.0 // indirect - github.com/libp2p/go-yamux/v3 v3.1.0 // indirect - github.com/linxGnu/grocksdb v1.7.0 // indirect - github.com/lucas-clemente/quic-go v0.27.0 // indirect + github.com/libp2p/go-netroute v0.2.1 // indirect + github.com/libp2p/go-openssl v0.1.0 // indirect + github.com/libp2p/go-reuseport v0.2.0 // indirect + github.com/libp2p/go-yamux/v4 v4.0.0 // indirect + github.com/lucas-clemente/quic-go v0.31.1 // indirect github.com/markbates/errx v1.1.0 // indirect github.com/markbates/oncer v1.0.0 // indirect github.com/markbates/safe v1.0.1 // indirect - github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect - github.com/marten-seemann/qtls-go1-17 v0.1.1 // indirect - github.com/marten-seemann/qtls-go1-18 v0.1.1 // indirect + github.com/marten-seemann/qtls-go1-18 v0.1.4 // indirect + github.com/marten-seemann/qtls-go1-19 v0.1.2 // indirect github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect - github.com/mattn/go-colorable v0.1.12 // indirect - github.com/mattn/go-isatty v0.0.14 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect - github.com/miekg/dns v1.1.48 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-pointer v0.0.1 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/miekg/dns v1.1.50 // indirect github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect - github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect github.com/minio/sha256-simd v1.0.0 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect - github.com/mitchellh/mapstructure v1.4.3 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect - github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 // indirect + github.com/moby/term v0.0.0-20221205130635-1aeaba878587 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/morikuni/aec v1.0.0 // indirect - github.com/multiformats/go-base32 v0.0.4 // indirect - github.com/multiformats/go-base36 v0.1.0 // indirect + github.com/multiformats/go-base32 v0.1.0 // indirect + github.com/multiformats/go-base36 v0.2.0 // indirect github.com/multiformats/go-multiaddr-dns v0.3.1 // indirect github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect - github.com/multiformats/go-multibase v0.0.3 // indirect - github.com/multiformats/go-multihash v0.1.0 // indirect - github.com/multiformats/go-multistream v0.2.2 // indirect - github.com/multiformats/go-varint v0.0.6 // indirect - github.com/nxadm/tail v1.4.8 // indirect + github.com/multiformats/go-multibase v0.1.1 // indirect + github.com/multiformats/go-multicodec v0.7.0 // indirect + github.com/multiformats/go-multihash v0.2.1 // indirect + github.com/multiformats/go-multistream v0.3.3 // indirect + github.com/multiformats/go-varint v0.0.7 // indirect github.com/oasisprotocol/ed25519 v0.0.0-20210505154701-76d8c688d86e // indirect - github.com/onsi/ginkgo v1.16.5 // indirect + github.com/onsi/ginkgo/v2 v2.6.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.0.1 // indirect + github.com/opencontainers/image-spec v1.1.0-rc2 // indirect github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 // indirect - github.com/panjf2000/ants/v2 v2.4.8 // indirect + github.com/panjf2000/ants/v2 v2.7.1 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect - github.com/petermattis/goid v0.0.0-20220331194723-8ee3e6ded87a // indirect - github.com/pierrec/lz4 v2.6.1+incompatible // indirect + github.com/petermattis/goid v0.0.0-20221215004737-a150e88a970d // indirect + github.com/pierrec/lz4/v4 v4.1.17 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.33.0 // indirect - github.com/prometheus/procfs v0.7.3 // indirect - github.com/raulk/clock v1.1.0 // indirect - github.com/raulk/go-watchdog v1.2.0 // indirect + github.com/prometheus/client_model v0.3.0 // indirect + github.com/prometheus/common v0.39.0 // indirect + github.com/prometheus/procfs v0.9.0 // indirect + github.com/raulk/go-watchdog v1.3.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - github.com/rogpeppe/go-internal v1.8.1 // indirect + github.com/rogpeppe/go-internal v1.9.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect - github.com/segmentio/fasthash v1.0.3 // indirect - github.com/sirupsen/logrus v1.8.1 // indirect + github.com/sirupsen/logrus v1.9.0 // indirect github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect - github.com/spf13/cast v1.4.1 // indirect - github.com/tidwall/gjson v1.14.0 // indirect - github.com/tidwall/match v1.1.1 // indirect - github.com/tidwall/pretty v1.2.0 // indirect - github.com/tklauser/go-sysconf v0.3.10 // indirect - github.com/tklauser/numcpus v0.4.0 // indirect - github.com/ugorji/go/codec v1.2.7 // indirect + github.com/spf13/cast v1.5.0 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect + github.com/tklauser/go-sysconf v0.3.11 // indirect + github.com/tklauser/numcpus v0.6.0 // indirect + github.com/ugorji/go/codec v1.2.8 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect - github.com/valyala/fasttemplate v1.2.1 // indirect - github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 // indirect + github.com/valyala/fasttemplate v1.2.2 // indirect github.com/yusufpapurcu/wmi v1.2.2 // indirect - go.uber.org/multierr v1.8.0 // indirect - go.uber.org/zap v1.21.0 // indirect - golang.org/x/exp v0.0.0-20220407100705-7b9b53b0aca4 // indirect - golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 // indirect - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f // indirect - golang.org/x/text v0.3.7 // indirect - golang.org/x/tools v0.1.10 // indirect - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect - google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac // indirect - google.golang.org/grpc v1.45.0 // indirect - google.golang.org/protobuf v1.28.0 // indirect - gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect + go.uber.org/fx v1.19.0 // indirect + go.uber.org/multierr v1.9.0 // indirect + go.uber.org/zap v1.24.0 // indirect + golang.org/x/exp v0.0.0-20230108222341-4b8118a2686a // indirect + golang.org/x/mod v0.7.0 // indirect + golang.org/x/sync v0.1.0 // indirect + golang.org/x/sys v0.4.0 // indirect + golang.org/x/text v0.6.0 // indirect + golang.org/x/tools v0.5.0 // indirect + golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect + google.golang.org/genproto v0.0.0-20230106154932-a12b697841d9 // indirect + google.golang.org/grpc v1.51.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + gotest.tools/v3 v3.4.0 // indirect lukechampine.com/blake3 v1.1.7 // indirect ) diff --git a/go.sum b/go.sum index fb4119916..2b4cc8945 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,3 @@ -bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= @@ -44,26 +43,14 @@ dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7 dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= -filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= +filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= +filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96 h1:cTp8I5+VIoKjsnZuH8vjyaysT/ses3EvZeaV/1UkF2M= github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= -github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= -github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= -github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= -github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/CloudyKit/fastprinter v0.0.0-20170127035650-74b38d55f37a/go.mod h1:EFZQ978U7x8IRnstaskI3IysnWY5Ao3QgZUKOXlsAdw= @@ -72,71 +59,34 @@ github.com/CloudyKit/jet v2.1.3-0.20180809161101-62edd43e4f88+incompatible/go.mo github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= -github.com/DataDog/zstd v1.5.0 h1:+K/VEwIAaPcHiMtQvpLD4lqW7f0Gk3xdYZmI1hD+CXo= -github.com/DataDog/zstd v1.5.0/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= +github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM= -github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= -github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= -github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.5.0 h1:Elr9Wn+sGKPlkaBvwu4mTrxtmOp3F3yV9qhaHbXGjwU= -github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= -github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= -github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= -github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= -github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg= -github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00= -github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600= -github.com/Microsoft/hcsshim v0.8.18/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= -github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU= -github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= +github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE= github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/ReneKroon/ttlcache/v2 v2.11.0 h1:OvlcYFYi941SBN3v9dsDcC2N8vRxyHcCmJb3Vl4QMoM= github.com/ReneKroon/ttlcache/v2 v2.11.0/go.mod h1:mBxvsNY+BT8qLLd6CuAJubbKo6r0jh3nb5et22bbfGY= github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= -github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= -github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/sarama v1.32.0 h1:P+RUjEaRU0GMMbYexGMDyrMkLhbbBVUVISDywi+IlFU= -github.com/Shopify/sarama v1.32.0/go.mod h1:+EmJJKZWVT/faR9RcOxJerP+LId4iWdQPBGLy1Y1Njs= -github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= -github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/Shopify/toxiproxy/v2 v2.3.0 h1:62YkpiP4bzdhKMH+6uC5E95y608k3zDwdzuBMsnn3uQ= -github.com/Shopify/toxiproxy/v2 v2.3.0/go.mod h1:KvQTtB6RjCJY4zqNJn7C7JDFgsG5uoHYDirfUfpIm0c= -github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= -github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= -github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= +github.com/Shopify/sarama v1.37.2 h1:LoBbU0yJPte0cE5TZCGdlzZRmMgMtZU/XgnUKZg9Cv4= +github.com/Shopify/sarama v1.37.2/go.mod h1:Nxye/E+YPru//Bpaorfhc3JsSGYwCaDDj+R4bK52U5o= +github.com/Shopify/toxiproxy/v2 v2.5.0 h1:i4LPT+qrSlKNtQf5QliVjdP08GyAH8+BUIc9gT0eahc= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/appleboy/gofight/v2 v2.1.2 h1:VOy3jow4vIK8BRQJoC/I9muxyYlJ2yb9ht2hZoS3rf4= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= -github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= -github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= github.com/aws/aws-sdk-go-v2/config v1.8.3/go.mod h1:4AEiLtAb8kLs7vgw2ZV3p2VZ1+hBavOc84hqxVNpCyw= github.com/aws/aws-sdk-go-v2/credentials v1.4.3/go.mod h1:FNNC6nQZQUuyhq5aE5c7ata8o9e4ECGmS4lAXC7o1mQ= @@ -149,11 +99,9 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.7.2/go.mod h1:8EzeIqfWt2wWT4rJVu3f21 github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= -github.com/benbjohnson/clock v1.0.2/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -161,73 +109,33 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bitly/go-simplejson v0.5.0 h1:6IH+V8/tVMab511d5bn4M7EwGXZf9Hj6i2xSwkNEM+Y= github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= -github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= -github.com/bits-and-blooms/bitset v1.2.2 h1:J5gbX05GpMdBjCvQ9MteIg2KKDExr7DrgK+Yc15FvIk= -github.com/bits-and-blooms/bitset v1.2.2/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= +github.com/bits-and-blooms/bitset v1.4.0 h1:+YZ8ePm+He2pU3dZlIZiOeAKfrBkXi1lSrXJ/Xzgbu8= +github.com/bits-and-blooms/bitset v1.4.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/vfs v1.0.0 h1:AUZUgulCDzbaNjTRWEP45X7m/J10brAptZpSRKRZBZc= github.com/blang/vfs v1.0.0/go.mod h1:jjuNUc/IKcRNNWC9NUCvz4fR9PZLPIKxEygtPs/4tSI= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= -github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= -github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= -github.com/btcsuite/btcd v0.0.0-20190523000118-16327141da8c/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= -github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= -github.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94= -github.com/btcsuite/btcd v0.22.0-beta h1:LTDpDKUM5EeOFBPM8IXpinEcmZ6FWfNZbE3lfrfdnWo= -github.com/btcsuite/btcd v0.22.0-beta/go.mod h1:9n5ntfhhHQBIhUvlhDvD3Qg6fRUj4jkN0VB8L8svzOA= -github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= -github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts= -github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o= -github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= -github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= -github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= -github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= -github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= -github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= -github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= -github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= -github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= -github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= -github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= -github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= -github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= -github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= -github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= -github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/cockroachdb/datadriven v1.0.0/go.mod h1:5Ib8Meh+jk1RlHIXej6Pzevx/NLlNvQB9pmSBZErGA4= github.com/cockroachdb/datadriven v1.0.1-0.20211007161720-b558070c3be0/go.mod h1:5Ib8Meh+jk1RlHIXej6Pzevx/NLlNvQB9pmSBZErGA4= github.com/cockroachdb/datadriven v1.0.1-0.20220214170620-9913f5bc19b7/go.mod h1:hi0MtSY3AYDQNDi83kDkMH5/yqM/CsIrsOITkSoH7KI= +github.com/cockroachdb/datadriven v1.0.2 h1:H9MtNqVoVhvd9nCBwOyDjUEdZCREqbIdCJD93PBm/jA= github.com/cockroachdb/errors v1.6.1/go.mod h1:tm6FTP5G81vwJ5lC0SizQo374JNCOPrHyXGitRJoDqM= github.com/cockroachdb/errors v1.8.1/go.mod h1:qGwQn6JmZ+oMjuLwjWzUNqblqk0xl4CVV3SQbGwK7Ac= github.com/cockroachdb/errors v1.8.8/go.mod h1:z6VnEL3hZ/2ONZEvG7S5Ym0bU2AqPcEKnIiA1wbsSu0= @@ -237,139 +145,38 @@ github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u9 github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f h1:6jduT9Hfc0njg5jJ1DdKCFPdMBrp/mdZfCpa5h+WM74= github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= github.com/cockroachdb/pebble v0.0.0-20210817201821-5e4468e97817/go.mod h1:JXfQr3d+XO4bL1pxGwKKo09xylQSdZ/mpZ9b2wfVcPs= -github.com/cockroachdb/pebble v0.0.0-20220408205130-c55c1d80c374 h1:nbw4FggbcYdSMv47h/ma5puL5nHIAY6Snpbmiy4xxDA= -github.com/cockroachdb/pebble v0.0.0-20220408205130-c55c1d80c374/go.mod h1:buxOO9GBtOcq1DiXDpIPYrmxY020K2A8lOrwno5FetU= +github.com/cockroachdb/pebble v0.0.0-20230106151110-65ff304d3d7a h1:f9cXPJOu07pznSwbdozW++dO1aUBPxP9HA7jW6zi8mc= +github.com/cockroachdb/pebble v0.0.0-20230106151110-65ff304d3d7a/go.mod h1:JsehdjcR1QgLZkqBeYrbVdE3cdxbdrycA/PN+Cg+RNw= github.com/cockroachdb/redact v1.0.8/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2/go.mod h1:8BT+cPK6xvFOcRlk0R8eg+OTkcqI6baNH4xAkpiYVvQ= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= -github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= -github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= -github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= -github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= -github.com/containerd/btrfs v0.0.0-20201111183144-404b9149801e/go.mod h1:jg2QkJcsabfHugurUvvPhS3E08Oxiuh5W/g1ybB4e0E= -github.com/containerd/btrfs v0.0.0-20210316141732-918d888fb676/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= -github.com/containerd/btrfs v1.0.0/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= -github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601/go.mod h1:X9rLEHIqSf/wfK8NsPqxJmeZgW4pcfzdXITDrUSJ6uI= -github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= -github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= github.com/containerd/cgroups v0.0.0-20201119153540-4cbc285b3327/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= -github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= -github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU= -github.com/containerd/cgroups v1.0.3 h1:ADZftAkglvCiD44c77s5YmMqaP2pzVCFZvBmAlBdAP4= -github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= -github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= -github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ= -github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU= -github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI= -github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s= -github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g= -github.com/containerd/containerd v1.5.5 h1:q1gxsZsGZ8ddVe98yO6pR21b5xQSMiR61lD0W96pgQo= -github.com/containerd/containerd v1.5.5/go.mod h1:oSTh0QpT1w6jYcGmbiSbxv9OSQYaa88mPyWIuU79zyo= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo= -github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y= -github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ= -github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM= -github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= -github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= -github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= -github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= -github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU= -github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g= -github.com/containerd/go-runc v0.0.0-20201020171139-16b287bc67d0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= -github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= -github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak9TYCG3juvb0= -github.com/containerd/imgcrypt v1.0.4-0.20210301171431-0ae5c75f59ba/go.mod h1:6TNsg0ctmizkrOgXRNQjAPFWpMYRWuiB6dSF4Pfa5SA= -github.com/containerd/imgcrypt v1.1.1-0.20210312161619-7ed62a527887/go.mod h1:5AZJNI6sLHJljKuI9IHnw1pWqo/F0nGDOuR9zgTs7ow= -github.com/containerd/imgcrypt v1.1.1/go.mod h1:xpLnwiQmEUJPvQoAapeb2SNCxz7Xr6PJrXQb0Dpc4ms= -github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c= -github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= -github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8= -github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= -github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk= -github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= -github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= -github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw= -github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y= -github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= -github.com/containerd/zfs v0.0.0-20210324211415-d5c4544f0433/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= -github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= -github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= -github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8= -github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc= -github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4= -github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/containerd/cgroups v1.0.4 h1:jN/mbWBEaz+T1pi5OFtnkQ+8qnmEbAr1Oo1FRm5B0dA= +github.com/containerd/cgroups v1.0.4/go.mod h1:nLNQtsF7Sl2HxNebu77i1R0oDlhiTG+kO4JTrUzo6IA= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= -github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= -github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= -github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= -github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= -github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I= -github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR6AkioZ1ySsx5yxlDQZ8stG2b88gTPxgJU= github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U= -github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= -github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= +github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc= github.com/dgraph-io/badger v1.5.4/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= github.com/dgraph-io/badger v1.6.2 h1:mNw0qs90GVgGGWylh0umH5iag1j6n/PeJtNvL6KY/x8= @@ -379,55 +186,39 @@ github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdw github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= github.com/dgraph-io/ristretto v0.0.2/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= -github.com/dgraph-io/ristretto v0.1.0 h1:Jv3CGQHp9OjuMBSne1485aDpUkTKEcUqF+jm/LuerPI= -github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu6v9Vcb3Q9ug= -github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= +github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190323231341-8198c7b169ec/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug= -github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v20.10.14+incompatible h1:+T9/PRYWNDo5SZl5qS1r9Mo/0Q8AwxKKPtu9S1yxM0w= -github.com/docker/docker v20.10.14+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= +github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v20.10.22+incompatible h1:6jX4yB+NtcbldT90k7vBSaWJDB3i+zkVJT9BEK8kQkk= +github.com/docker/docker v20.10.22+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= -github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= -github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q= -github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-resiliency v1.3.0 h1:RRL0nge+cWGlxXbUzJ7yMcq6w2XBEr19dCN6HECGaT0= +github.com/eapache/go-resiliency v1.3.0/go.mod h1:5yPzW0MIvSe0JDsv0v+DvcjEv2FyD6iZYSs1ZI+iQho= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/eclipse/paho.mqtt.golang v1.3.5 h1:sWtmgNxYM9P2sP+xEItMozsR3w0cqZFlqnNN1bdl41Y= github.com/eclipse/paho.mqtt.golang v1.3.5/go.mod h1:eTzb4gxwwyWpqBUHGQZ4ABAV7+Jgm1PklsYT/eo8Hcc= -github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/eclipse/paho.mqtt.golang v1.4.2 h1:66wOzfUHSSI1zamx7jR6yMEI5EuHnT1G6rNA5PM12m4= +github.com/eclipse/paho.mqtt.golang v1.4.2/go.mod h1:JGt0RsEwEX+Xa/agj90YJ9d9DH2b7upDZMK9HRbFvCA= github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= github.com/elastic/gosigar v0.12.0/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= github.com/elastic/gosigar v0.14.2 h1:Dg80n8cr90OZ7x+bAax/QjoW/XqTI11RmA79ZwIm9/4= github.com/elastic/gosigar v0.14.2/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= -github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emirpasic/gods v1.12.1 h1:KEXpRg94qvWNpl3F8PRlzJRFhy1kr6SiBiFH6X2Nwp8= -github.com/emirpasic/gods v1.12.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= +github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= +github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -435,136 +226,102 @@ github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5y github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= -github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/fhmq/hmq v0.0.0-20220409045343-c53d8f8a0daa h1:1ZZGxqtbVYLPgAl6RVGpUfvf1nFUuoT6XNim8ZOaShM= -github.com/fhmq/hmq v0.0.0-20220409045343-c53d8f8a0daa/go.mod h1:7up7C+wX2pD7rAT2jDYj2J3nRo0BbsEEO4CJmsyqjcA= +github.com/fhmq/hmq v1.5.0 h1:e8UzrSxcxoQoPkzIpecAQdeIdA/mrr3aPjZCDRZ3Hmg= +github.com/fhmq/hmq v1.5.0/go.mod h1:FrvMxs0oNsB6QH0H8qVCEoAyyi2nrOyZ21M0CmdUUH4= github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4/go.mod h1:T9YF2M40nIgbVgp3rreNmTged+9HrbNTIQf1PsaIiTA= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ= github.com/flynn/noise v1.0.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag= -github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= -github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY= -github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= -github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= -github.com/frankban/quicktest v1.14.2 h1:SPb1KFFmM+ybpEjPUhCCkZOM5xlovT5UbrMvWnXyBns= -github.com/frankban/quicktest v1.14.2/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= +github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= -github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= -github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= -github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= +github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= -github.com/getsentry/sentry-go v0.13.0 h1:20dgTiUSfxRB/EhMPtxcL9ZEbM1ZdR+W/7f7NWD+xWo= -github.com/getsentry/sentry-go v0.13.0/go.mod h1:EOsfu5ZdvKPfeHYV6pTVQnsjfp30+XA7//UooKNumH0= +github.com/getsentry/sentry-go v0.16.0 h1:owk+S+5XcgJLlGR/3+3s6N4d+uKwqYvh/eS0AIMjPWo= +github.com/getsentry/sentry-go v0.16.0/go.mod h1:ZXCloQLj0pG7mja5NK6NPf2V4A88YJ4pNlc2mOHwh6Y= github.com/ghemawat/stream v0.0.0-20171120220530-696b145b53b9/go.mod h1:106OIgooyS7OzLDOpUGgm9fA3bQENb/cFSyyBmMoJDs= -github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= -github.com/gin-gonic/gin v1.7.7 h1:3DoBmSbJbZAWqXJC3SLjAPfutPJJRN1U5pALB7EeTTs= -github.com/gin-gonic/gin v1.7.7/go.mod h1:axIBovoeJpVj8S3BwE0uPMTeReE4+AfFtqpqaZ1qq1U= +github.com/gin-gonic/gin v1.8.2 h1:UzKToD9/PoFj/V4rvlKqTRKnQYyz8Sc1MJlv4JHPtvY= +github.com/gin-gonic/gin v1.8.2/go.mod h1:qw5AYuDrzRTnhvusDsrov+fDIxp9Dleuu12h8nfB398= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= github.com/go-echarts/go-echarts v1.0.0 h1:n181E4iXwj4zrU9VYmdM2m8dyhERt2w9k9YhHqdp6A8= github.com/go-echarts/go-echarts v1.0.0/go.mod h1:qbmyAb/Rl1f2w7wKba1D4LoNq4U164yO4/wedFbcWyo= -github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= -github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= -github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= -github.com/go-playground/validator/v10 v10.10.1 h1:uA0+amWMiglNZKZ9FJRKUAe9U3RX91eVn1JYXMWt7ig= -github.com/go-playground/validator/v10 v10.10.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= -github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= +github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= -github.com/gobuffalo/logger v1.0.6 h1:nnZNpxYo0zx+Aj9RfMPBm+x9zAU2OayFh/xrAWi34HU= github.com/gobuffalo/logger v1.0.6/go.mod h1:J31TBEHR1QLV2683OXTAItYIg8pv2JMHnF/quuAbMjs= -github.com/gobuffalo/packd v1.0.1 h1:U2wXfRr4E9DH8IdsDLlRFwTZTK7hLfq9qT/QHXGVe/0= +github.com/gobuffalo/logger v1.0.7 h1:LTLwWelETXDYyqF/ASf0nxaIcdEOIJNxRokPcfI/xbU= +github.com/gobuffalo/logger v1.0.7/go.mod h1:u40u6Bq3VVvaMcy5sRBclD8SXhBYPS0Qk95ubt+1xJM= github.com/gobuffalo/packd v1.0.1/go.mod h1:PP2POP3p3RXGz7Jh6eYEf93S7vA2za6xM7QT85L4+VY= +github.com/gobuffalo/packd v1.0.2 h1:Yg523YqnOxGIWCp69W12yYBKsoChwI7mtu6ceM9Bwfw= +github.com/gobuffalo/packd v1.0.2/go.mod h1:sUc61tDqGMXON80zpKGp92lDb86Km28jfvX7IAyxFT8= github.com/gobuffalo/packr/v2 v2.8.3 h1:xE1yzvnO56cUC0sTpKR3DIbxZgB54AftTFMhB2XEWlY= github.com/gobuffalo/packr/v2 v2.8.3/go.mod h1:0SahksCVcx4IMnigTjiFuyldmTrdTctXsOdiU5KwbKc= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= -github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= -github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= +github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA= +github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= -github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= -github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= -github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= -github.com/gohornet/grocksdb v1.6.38-0.20211012114404-55f425442260 h1:Pf6oR/aezlojjxzaNqIZa5q1+LKFgePrH+E9B57sKiE= -github.com/gohornet/grocksdb v1.6.38-0.20211012114404-55f425442260/go.mod h1:/+iSQrn7Izt6kFhHBQvcE6FkklsKXa8hc35pFyFDrDw= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -597,7 +354,6 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= @@ -617,15 +373,14 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM= github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= @@ -643,64 +398,54 @@ github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20221219190121-3cb0bae90811 h1:wORs2YN3R3ona/CXYuTvLM31QlgoNKHvlCNuArCDDCU= +github.com/google/pprof v0.0.0-20221219190121-3cb0bae90811/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= -github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= -github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw= github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= +github.com/hashicorp/consul/api v1.13.0/go.mod h1:ZlVrynguJKcYr54zGaDbaL3fOvKC9m72FhPvA8T35KQ= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= @@ -711,8 +456,8 @@ github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/C github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.4.0 h1:aAQzgqIrRKRa7w75CKpbBxYsmUoPjzVm1W59ca1L0J4= -github.com/hashicorp/go-version v1.4.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= +github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -722,16 +467,19 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= github.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q= github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= +github.com/hjson/hjson-go/v4 v4.0.0 h1:wlm6IYYqHjOdXH1gHev4VoXCaW20HdQAGCxdOEEg2cs= +github.com/hjson/hjson-go/v4 v4.0.0/go.mod h1:KaYt3bTw3zhBjYqnXkYywcYctk0A2nxeEFTse3rH13E= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= -github.com/huin/goupnp v1.0.2/go.mod h1:0dxJBVBHqTMjIUMkESDTNgOOx/Mw5wYIfyFmdzSamkM= github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ= github.com/huin/goupnp v1.0.3/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= @@ -739,50 +487,32 @@ github.com/hydrogen18/memlistener v0.0.0-20141126152155-54553eb933fb/go.mod h1:q github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/iotaledger/go-ds-kvstore v0.0.0-20220404122649-445475b91fcf h1:3LoDur2QvBLbyXrGubX6HmoP6x5pVn1KkheFonTa6Is= github.com/iotaledger/go-ds-kvstore v0.0.0-20220404122649-445475b91fcf/go.mod h1:KMsgDNZKM3kkaIAoIk/FZ6A1vfVPix91lx2dm3dA6g8= +github.com/iotaledger/grocksdb v1.6.38-0.20211012114404-55f425442260/go.mod h1:/+iSQrn7Izt6kFhHBQvcE6FkklsKXa8hc35pFyFDrDw= +github.com/iotaledger/grocksdb v1.7.5-0.20221128103803-fcdb79760195 h1:W5v+7oSXtSq2OSadYPyaAbPjTJW10T2bOgMDGZcyVOc= +github.com/iotaledger/grocksdb v1.7.5-0.20221128103803-fcdb79760195/go.mod h1:AoAM7v6lyWRQzrmmegOEq759o1PgvvKvn2bEe1A1mc8= github.com/iotaledger/hive.go v0.0.0-20211011085923-fd2eb0a47bf8/go.mod h1:vZXMpgveUkATu1IueKmUJK3/OVgrYRQdH/Jh/yZ2j9Q= -github.com/iotaledger/hive.go v0.0.0-20220408130540-d344e455dd23 h1:YIIS4RcTXKRcRHm2v9Dcf4pOaNColYHqoDB8rubUwGY= -github.com/iotaledger/hive.go v0.0.0-20220408130540-d344e455dd23/go.mod h1:YKe8Y/+kiF1oZWnu6p67QEzofFNxNsAMpP6MpcvbnNM= +github.com/iotaledger/hive.go v0.0.0-20221227223844-749e1d43a081 h1:2KZmrgQFHkBd/BopA+wpW/asoRbFPl+XFvNfVlqrSWI= +github.com/iotaledger/hive.go v0.0.0-20221227223844-749e1d43a081/go.mod h1:n/3e0/ibMEHBCJqxZomsVCIvhMIMibH+05XrYDD5pro= github.com/iotaledger/iota.go v1.0.0 h1:tqm1FxJ/zOdzbrAaQ5BQpVF8dUy2eeGlSeWlNG8GoXY= github.com/iotaledger/iota.go v1.0.0/go.mod h1:RiKYwDyY7aCD1L0YRzHSjOsJ5mUR9yvQpvhZncNcGQI= github.com/iotaledger/iota.go/v2 v2.0.2-0.20220225080023-871c779a63cb h1:32j+/9oRThYzt82QckEs63DSGDQGy+CiSHQ1GEBTVwk= github.com/iotaledger/iota.go/v2 v2.0.2-0.20220225080023-871c779a63cb/go.mod h1:nkQd/FAS51Bjf1UECljhGslyreaswOKWVo4mb0I6lPg= -github.com/ipfs/go-cid v0.0.2/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= -github.com/ipfs/go-cid v0.0.3/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= -github.com/ipfs/go-cid v0.0.5/go.mod h1:plgt+Y5MnOey4vO4UlUazGqdbEXuFYitED67FexhXog= -github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= -github.com/ipfs/go-cid v0.1.0 h1:YN33LQulcRHjfom/i25yoOZR4Telp1Hr/2RU3d0PnC0= -github.com/ipfs/go-cid v0.1.0/go.mod h1:rH5/Xv83Rfy8Rw6xG+id3DYAMUVmem1MowoKwdXmN2o= +github.com/ipfs/go-cid v0.3.2 h1:OGgOd+JCFM+y1DjWPmVH+2/4POtpDzwcr7VgnB7mZXc= +github.com/ipfs/go-cid v0.3.2/go.mod h1:gQ8pKqT/sUxGY+tIwy1RPpAojYu7jAyCp5Tz1svoupw= github.com/ipfs/go-datastore v0.5.0/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk= -github.com/ipfs/go-datastore v0.5.1 h1:WkRhLuISI+XPD0uk3OskB0fYFSyqK8Ob5ZYew9Qa1nQ= -github.com/ipfs/go-datastore v0.5.1/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk= +github.com/ipfs/go-datastore v0.6.0 h1:JKyz+Gvz1QEZw0LsX1IBn+JFCJQH4SJVFtM4uWU0Myk= +github.com/ipfs/go-datastore v0.6.0/go.mod h1:rt5M3nNbSO/8q1t4LNkLyUwRs8HupMeN/8O4Vn9YAT8= github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= github.com/ipfs/go-ds-badger v0.3.0 h1:xREL3V0EH9S219kFFueOYJJTcjgNSZ2HY1iSvN7U1Ro= github.com/ipfs/go-ds-badger v0.3.0/go.mod h1:1ke6mXNqeV8K3y5Ak2bAA0osoTfmxUdupVCGm4QUIek= github.com/ipfs/go-ds-leveldb v0.5.0 h1:s++MEBbD3ZKc9/8/njrn4flZLnCuY9I79v94gBUNumo= -github.com/ipfs/go-ds-leveldb v0.5.0/go.mod h1:d3XG9RUDzQ6V4SHi8+Xgj9j1XuEk1z82lquxrVbml/Q= github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= -github.com/ipfs/go-ipfs-util v0.0.2 h1:59Sswnk1MFaiq+VcaknX7aYEyGyGDAA73ilhEK2POp8= -github.com/ipfs/go-ipfs-util v0.0.2/go.mod h1:CbPtkWJzjLdEcezDns2XYaehFVNXG9zrdrtMecczcsQ= -github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= -github.com/ipfs/go-log v1.0.4/go.mod h1:oDCg2FkjogeFOhqqb+N39l2RpTNPL6F/StPkB3kPgcs= -github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo= -github.com/ipfs/go-log/v2 v2.0.3/go.mod h1:O7P1lJt27vWHhOwQmcFEvlmo49ry2VY2+JfBWFaa9+0= github.com/ipfs/go-log/v2 v2.0.5/go.mod h1:eZs4Xt4ZUJQFM3DlanGhy7TkwwawCZcSByscwkWG+dw= -github.com/ipfs/go-log/v2 v2.1.1/go.mod h1:2v2nsGfZsvvAJz13SyFzf9ObaqwHiHxsPLEHntrv9KM= -github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g= -github.com/ipfs/go-log/v2 v2.3.0/go.mod h1:QqGoj30OTpnKaG/LKTGTxoP2mmQtjVMEnK72gynbe/g= -github.com/ipfs/go-log/v2 v2.4.0/go.mod h1:nPZnh7Cj7lwS3LpRU5Mwr2ol1c2gXIEXuF6aywqrtmo= -github.com/ipfs/go-log/v2 v2.5.0/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= @@ -791,43 +521,32 @@ github.com/iris-contrib/i18n v0.0.0-20171121225848-987a633949d0/go.mod h1:pMCz62 github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= -github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA= github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABoLk/+KKHggpk= github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPwbGVtZVWC34vc5WLsDk= -github.com/jbenet/goprocess v0.1.3/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o= github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= -github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8= -github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= +github.com/jcmturner/gofork v1.7.6 h1:QH0l3hzAU1tfT3rZCnW5zXl+orbkNMMRGJfdJjHVETg= +github.com/jcmturner/gofork v1.7.6/go.mod h1:1622LH6i/EZqLloHfE7IeZ0uEJwMSUyQ/nDd82IeqRo= github.com/jcmturner/goidentity/v6 v6.0.1 h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o= github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= -github.com/jcmturner/gokrb5/v8 v8.4.2 h1:6ZIM6b/JJN0X8UM43ZOM6Z4SJzla+a/u7scXFJzodkA= -github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc= +github.com/jcmturner/gokrb5/v8 v8.4.3 h1:iTonLeSJOn7MVUtyMT+arAn5AKAPrkilzhGw8wE/Tq8= +github.com/jcmturner/gokrb5/v8 v8.4.3/go.mod h1:dqRwJGXznQrzw6cWmyo6kH+E7jksEQG/CyVWsJEsJO0= github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY= github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= -github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -842,9 +561,9 @@ github.com/juju/testing v0.0.0-20180920084828-472a3e8b2073/go.mod h1:63prj8cnj0t github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= -github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d/go.mod h1:P2viExyCEfeWGU259JnaQ34Inuec4R38JCyBx2edgD0= -github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw= github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= +github.com/karrick/godirwalk v1.17.0 h1:b4kY7nqDdioR/6qnbHQyDvmA17u5G1cZ6J+CZXwSWoI= +github.com/karrick/godirwalk v1.17.0/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= github.com/kataras/golog v0.0.9/go.mod h1:12HJgwBIZFNGL0EJnMRhmvGA0PQGx8VFwrZtM4CqbAk= github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= github.com/kataras/iris/v12 v12.0.1/go.mod h1:udK4vLQKkdDqMGJJVd/msuMtN6hpYJhg/lSzuxjhO+U= @@ -854,270 +573,145 @@ github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2 github.com/kataras/pio v0.0.0-20190103105442-ea782b38602d/go.mod h1:NV88laa9UiiDuX9AhMbDPkGYSPugBOV6yTZB1l2K9Z0= github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.14.4/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.15.1 h1:y9FcTHGyrebwfP0ZZqFiaxTaiDnUrGkJkI+f583BL1A= -github.com/klauspost/compress v1.15.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.15.14 h1:i7WCKDToww0wA+9qrUZ1xOjp218vfFo3nTU6UHp+gOc= +github.com/klauspost/compress v1.15.14/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.0.12 h1:p9dKCg8i4gmOxtv35DvrYoWqYzQrvEVdjQ762Y0OqZE= -github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c= +github.com/klauspost/cpuid/v2 v2.2.3 h1:sxCkb+qR91z4vsqw4vGGZlDgPz3G7gjaLyK3V8y70BU= +github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/knadh/koanf v1.2.1/go.mod h1:xpPTwMhsA/aaQLAilyCCqfpEiY1gpa160AiCuWHJUjY= -github.com/knadh/koanf v1.4.1 h1:Z0VGW/uo8NJmjd+L1Dc3S5frq6c62w5xQ9Yf4Mg3wFQ= -github.com/knadh/koanf v1.4.1/go.mod h1:1cfH5223ZeZUOs8FU2UdTmaNfHpqgtjV0+NHjRO43gs= +github.com/knadh/koanf v1.4.5 h1:yKWFswTrqFc0u7jBAoERUz30+N1b1yPXU01gAPr8IrY= +github.com/knadh/koanf v1.4.5/go.mod h1:Hgyjp4y8v44hpZtPzs7JZfRAW5AhN7KfZcwv1RYggDs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= -github.com/koron/go-ssdp v0.0.2 h1:fL3wAoyT6hXHQlORyXUW4Q23kkQpJRgEAYcZB5BR71o= -github.com/koron/go-ssdp v0.0.2/go.mod h1:XoLfkAiA2KeZsYh4DbHxD7h3nR2AZNqVQOa+LJuqPYs= +github.com/koron/go-ssdp v0.0.3 h1:JivLMY45N76b4p/vsWGOKewBQu6uf39y8l+AQ7sDKx8= +github.com/koron/go-ssdp v0.0.3/go.mod h1:b2MxI6yh02pKrsyNoQUsk4+YNikaGhe4894J+Q5lDvA= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/labstack/echo-contrib v0.13.1 h1:9TktDom9FJKhkKO45YvV4klW8IedtSUp/k85gZVdZ28= +github.com/labstack/echo-contrib v0.13.1/go.mod h1:LdM7aOHAYLOPmAAGXXG9TuN4h5sh6dPEu4pb6W2HKuU= github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g= github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= -github.com/labstack/echo/v4 v4.7.2 h1:Kv2/p8OaQ+M6Ex4eGimg9b9e6icoxA42JSlOR3msKtI= -github.com/labstack/echo/v4 v4.7.2/go.mod h1:xkCDAdFCIf8jsFQ5NnbK7oqaF/yU1A1X20Ltm0OvSks= +github.com/labstack/echo/v4 v4.10.0 h1:5CiyngihEO4HXsz3vVsJn7f8xAlWwRr3aY6Ih280ZKA= +github.com/labstack/echo/v4 v4.10.0/go.mod h1:S/T/5fy/GigaXnHTkh0ZGe4LpkkQysvRjFMSUTkDRNQ= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= -github.com/labstack/gommon v0.3.2-0.20220410183028-64116baad496 h1:n+6DpaE0j+mYn9+51nERoX3XD2M4rUpSvIkjNw17rtg= -github.com/labstack/gommon v0.3.2-0.20220410183028-64116baad496/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/labstack/gommon v0.4.0 h1:y7cvthEAEbU0yHOf4axH8ZG2NH8knB9iNSoTO8dyIk8= +github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= -github.com/libp2p/go-addr-util v0.1.0/go.mod h1:6I3ZYuFr2O/9D+SoyM0zEw0EF3YkldtTX406BpdQMqw= -github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= -github.com/libp2p/go-buffer-pool v0.0.2 h1:QNK2iAFa8gjAe1SPz6mHSMuCcjs+X1wlHzeOSqcmlfs= -github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoRZd1Vi32+RXyFM= +github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= +github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c= github.com/libp2p/go-cidranger v1.1.0/go.mod h1:KWZTfSr+r9qEo9OkI9/SIEeAtw+NNoU0dXIXt15Okic= -github.com/libp2p/go-conn-security-multistream v0.3.0 h1:9UCIKlBL1hC9u7nkMXpD1nkc/T53PKMAn3/k9ivBAVc= -github.com/libp2p/go-conn-security-multistream v0.3.0/go.mod h1:EEP47t4fw/bTelVmEzIDqSe69hO/ip52xBEhZMLWAHM= -github.com/libp2p/go-eventbus v0.2.1 h1:VanAdErQnpTioN2TowqNcOijf6YwhuODe4pPKSDpxGc= -github.com/libp2p/go-eventbus v0.2.1/go.mod h1:jc2S4SoEVPP48H9Wpzm5aiGwUCBMfGhVhhBjyhhCJs8= -github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= -github.com/libp2p/go-flow-metrics v0.0.3 h1:8tAs/hSdNvUiLgtlSy3mxwxWP4I9y/jlkPFT7epKdeM= -github.com/libp2p/go-flow-metrics v0.0.3/go.mod h1:HeoSNUrOJVK1jEpDqVEiUOIXqhbnS27omG0uWU5slZs= -github.com/libp2p/go-libp2p v0.18.0 h1:moKKKG875KNGsCjZxTIFB75ihHiVjFeWg5I4aR1pDLk= -github.com/libp2p/go-libp2p v0.18.0/go.mod h1:+veaZ9z1SZQhmc5PW78jvnnxZ89Mgvmh4cggO11ETmw= -github.com/libp2p/go-libp2p-asn-util v0.1.0 h1:rABPCO77SjdbJ/eJ/ynIo8vWICy1VEnL5JAxJbQLo1E= -github.com/libp2p/go-libp2p-asn-util v0.1.0/go.mod h1:wu+AnM9Ii2KgO5jMmS1rz9dvzTdj8BXqsPR9HR0XB7I= -github.com/libp2p/go-libp2p-blankhost v0.2.0/go.mod h1:eduNKXGTioTuQAUcZ5epXi9vMl+t4d8ugUBRQ4SqaNQ= -github.com/libp2p/go-libp2p-blankhost v0.3.0 h1:kTnLArltMabZlzY63pgGDA4kkUcLkBFSM98zBssn/IY= -github.com/libp2p/go-libp2p-blankhost v0.3.0/go.mod h1:urPC+7U01nCGgJ3ZsV8jdwTp6Ji9ID0dMTvq+aJ+nZU= -github.com/libp2p/go-libp2p-circuit v0.6.0 h1:rw/HlhmUB3OktS/Ygz6+2XABOmHKzZpPUuMNUMosj8w= -github.com/libp2p/go-libp2p-circuit v0.6.0/go.mod h1:kB8hY+zCpMeScyvFrKrGicRdid6vNXbunKE4rXATZ0M= -github.com/libp2p/go-libp2p-connmgr v0.3.1 h1:alEy2fpGKFu+7ZhQF4GF0dvKLyVHeLtIfS/KziwoiZw= -github.com/libp2p/go-libp2p-connmgr v0.3.1/go.mod h1:RVoyPjJm0J9Vd1m6qUN2Tn7kJm4rL1Ml20pFsFgPGik= -github.com/libp2p/go-libp2p-core v0.2.0/go.mod h1:X0eyB0Gy93v0DZtSYbEM7RnMChm9Uv3j7yRXjO77xSI= -github.com/libp2p/go-libp2p-core v0.3.0/go.mod h1:ACp3DmS3/N64c2jDzcV429ukDpicbL6+TrrxANBjPGw= -github.com/libp2p/go-libp2p-core v0.5.0/go.mod h1:49XGI+kc38oGVwqSBhDEwytaAxgZasHhFfQKibzTls0= -github.com/libp2p/go-libp2p-core v0.5.1/go.mod h1:uN7L2D4EvPCvzSH5SrhR72UWbnSGpt5/a35Sm4upn4Y= -github.com/libp2p/go-libp2p-core v0.5.7/go.mod h1:txwbVEhHEXikXn9gfC7/UDDw7rkxuX0bJvM49Ykaswo= -github.com/libp2p/go-libp2p-core v0.6.0/go.mod h1:txwbVEhHEXikXn9gfC7/UDDw7rkxuX0bJvM49Ykaswo= -github.com/libp2p/go-libp2p-core v0.8.0/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= -github.com/libp2p/go-libp2p-core v0.8.6/go.mod h1:dgHr0l0hIKfWpGpqAMbpo19pen9wJfdCGv51mTmdpmM= -github.com/libp2p/go-libp2p-core v0.10.0/go.mod h1:ECdxehoYosLYHgDDFa2N4yE8Y7aQRAMf0sX9mf2sbGg= -github.com/libp2p/go-libp2p-core v0.11.0/go.mod h1:ECdxehoYosLYHgDDFa2N4yE8Y7aQRAMf0sX9mf2sbGg= -github.com/libp2p/go-libp2p-core v0.12.0/go.mod h1:ECdxehoYosLYHgDDFa2N4yE8Y7aQRAMf0sX9mf2sbGg= -github.com/libp2p/go-libp2p-core v0.13.0/go.mod h1:ECdxehoYosLYHgDDFa2N4yE8Y7aQRAMf0sX9mf2sbGg= -github.com/libp2p/go-libp2p-core v0.14.0 h1:0kYSgiK/D7Eo28GTuRXo5YHsWwAisVpFCqCVPUd/vJs= -github.com/libp2p/go-libp2p-core v0.14.0/go.mod h1:tLasfcVdTXnixsLB0QYaT1syJOhsbrhG7q6pGrHtBg8= -github.com/libp2p/go-libp2p-mplex v0.4.1/go.mod h1:cmy+3GfqfM1PceHTLL7zQzAAYaryDu6iPSC+CIb094g= -github.com/libp2p/go-libp2p-mplex v0.5.0/go.mod h1:eLImPJLkj3iG5t5lq68w3Vm5NAQ5BcKwrrb2VmOYb3M= -github.com/libp2p/go-libp2p-mplex v0.6.0 h1:5ubK4/vLE2JkogKlJ2JLeXcSfA6qY6mE2HMJV9ve/Sk= -github.com/libp2p/go-libp2p-mplex v0.6.0/go.mod h1:i3usuPrBbh9FD2fLZjGpotyNkwr42KStYZQY7BeTiu4= -github.com/libp2p/go-libp2p-nat v0.1.0 h1:vigUi2MEN+fwghe5ijpScxtbbDz+L/6y8XwlzYOJgSY= -github.com/libp2p/go-libp2p-nat v0.1.0/go.mod h1:DQzAG+QbDYjN1/C3B6vXucLtz3u9rEonLVPtZVzQqks= -github.com/libp2p/go-libp2p-noise v0.3.0 h1:NCVH7evhVt9njbTQshzT7N1S3Q6fjj9M11FCgfH5+cA= -github.com/libp2p/go-libp2p-noise v0.3.0/go.mod h1:JNjHbociDJKHD64KTkzGnzqJ0FEV5gHJa6AB00kbCNQ= -github.com/libp2p/go-libp2p-peerstore v0.4.0/go.mod h1:rDJUFyzEWPpXpEwywkcTYYzDHlwza8riYMaUzaN6hX0= -github.com/libp2p/go-libp2p-peerstore v0.6.0 h1:HJminhQSGISBIRb93N6WK3t6Fa8OOTnHd/VBjL4mY5A= -github.com/libp2p/go-libp2p-peerstore v0.6.0/go.mod h1:DGEmKdXrcYpK9Jha3sS7MhqYdInxJy84bIPtSu65bKc= -github.com/libp2p/go-libp2p-pnet v0.2.0 h1:J6htxttBipJujEjz1y0a5+eYoiPcFHhSYHH6na5f0/k= -github.com/libp2p/go-libp2p-pnet v0.2.0/go.mod h1:Qqvq6JH/oMZGwqs3N1Fqhv8NVhrdYcO0BW4wssv21LA= -github.com/libp2p/go-libp2p-quic-transport v0.13.0/go.mod h1:39/ZWJ1TW/jx1iFkKzzUg00W6tDJh73FC0xYudjr7Hc= -github.com/libp2p/go-libp2p-quic-transport v0.16.0/go.mod h1:1BXjVMzr+w7EkPfiHkKnwsWjPjtfaNT0q8RS3tGDvEQ= -github.com/libp2p/go-libp2p-quic-transport v0.16.1/go.mod h1:1BXjVMzr+w7EkPfiHkKnwsWjPjtfaNT0q8RS3tGDvEQ= -github.com/libp2p/go-libp2p-quic-transport v0.17.0 h1:yFh4Gf5MlToAYLuw/dRvuzYd1EnE2pX3Lq1N6KDiWRQ= -github.com/libp2p/go-libp2p-quic-transport v0.17.0/go.mod h1:x4pw61P3/GRCcSLypcQJE/Q2+E9f4X+5aRcZLXf20LM= -github.com/libp2p/go-libp2p-resource-manager v0.1.5/go.mod h1:wJPNjeE4XQlxeidwqVY5G6DLOKqFK33u2n8blpl0I6Y= -github.com/libp2p/go-libp2p-resource-manager v0.2.0 h1:Ul/k5d5StIpAtq7IapAEGh/2+0rwsJGXYJ6Kbzeedtc= -github.com/libp2p/go-libp2p-resource-manager v0.2.0/go.mod h1:K+eCkiapf+ey/LADO4TaMpMTP9/Qde/uLlrnRqV4PLQ= -github.com/libp2p/go-libp2p-swarm v0.8.0/go.mod h1:sOMp6dPuqco0r0GHTzfVheVBh6UEL0L1lXUZ5ot2Fvc= -github.com/libp2p/go-libp2p-swarm v0.10.0/go.mod h1:71ceMcV6Rg/0rIQ97rsZWMzto1l9LnNquef+efcRbmA= -github.com/libp2p/go-libp2p-swarm v0.10.2 h1:UaXf+CTq6Ns1N2V1EgqJ9Q3xaRsiN7ImVlDMpirMAWw= -github.com/libp2p/go-libp2p-swarm v0.10.2/go.mod h1:Pdkq0QU5a+qu+oyqIV3bknMsnzk9lnNyKvB9acJ5aZs= -github.com/libp2p/go-libp2p-testing v0.1.1/go.mod h1:xaZWMJrPUM5GlDBxCeGUi7kI4eqnjVyavGroI2nxEM0= -github.com/libp2p/go-libp2p-testing v0.1.2-0.20200422005655-8775583591d8/go.mod h1:Qy8sAncLKpwXtS2dSnDOP8ktexIAHKu+J+pnZOFZLTc= -github.com/libp2p/go-libp2p-testing v0.4.0/go.mod h1:Q+PFXYoiYFN5CAEG2w3gLPEzotlKsNSbKQ/lImlOWF0= -github.com/libp2p/go-libp2p-testing v0.5.0/go.mod h1:QBk8fqIL1XNcno/l3/hhaIEn4aLRijpYOR+zVjjlh+A= -github.com/libp2p/go-libp2p-testing v0.7.0/go.mod h1:OLbdn9DbgdMwv00v+tlp1l3oe2Cl+FAjoWIA2pa0X6E= -github.com/libp2p/go-libp2p-testing v0.8.0/go.mod h1:gRdsNxQSxAZowTgcLY7CC33xPmleZzoBpqSYbWenqPc= -github.com/libp2p/go-libp2p-testing v0.9.0 h1:NnqhCnKispyyodubaZY0TYRh3Nz2DMBjmeKJJuPoos8= -github.com/libp2p/go-libp2p-tls v0.3.0/go.mod h1:fwF5X6PWGxm6IDRwF3V8AVCCj/hOd5oFlg+wo2FxJDY= -github.com/libp2p/go-libp2p-tls v0.3.1/go.mod h1:fwF5X6PWGxm6IDRwF3V8AVCCj/hOd5oFlg+wo2FxJDY= -github.com/libp2p/go-libp2p-tls v0.4.0 h1:5EbzrSqAxP8z1MCZfeBz/8+9ch0IQMQzAxnCihC1MW8= -github.com/libp2p/go-libp2p-tls v0.4.0/go.mod h1:EKCixHEysLNDlLUoKxv+3f/Lp90O2EXNjTr0UQDnrIw= -github.com/libp2p/go-libp2p-transport-upgrader v0.5.0/go.mod h1:Rc+XODlB3yce7dvFV4q/RmyJGsFcCZRkeZMu/Zdg0mo= -github.com/libp2p/go-libp2p-transport-upgrader v0.7.0/go.mod h1:GIR2aTRp1J5yjVlkUoFqMkdobfob6RnAwYg/RZPhrzg= -github.com/libp2p/go-libp2p-transport-upgrader v0.7.1 h1:MSMe+tUfxpC9GArTz7a4G5zQKQgGh00Vio87d3j3xIg= -github.com/libp2p/go-libp2p-transport-upgrader v0.7.1/go.mod h1:GIR2aTRp1J5yjVlkUoFqMkdobfob6RnAwYg/RZPhrzg= -github.com/libp2p/go-libp2p-yamux v0.5.0/go.mod h1:AyR8k5EzyM2QN9Bbdg6X1SkVVuqLwTGf0L4DFq9g6po= -github.com/libp2p/go-libp2p-yamux v0.8.0/go.mod h1:yTkPgN2ib8FHyU1ZcVD7aelzyAqXXwEPbyx+aSKm9h8= -github.com/libp2p/go-libp2p-yamux v0.8.1/go.mod h1:rUozF8Jah2dL9LLGyBaBeTQeARdwhefMCTQVQt6QobE= -github.com/libp2p/go-libp2p-yamux v0.8.2 h1:6GKWntresp0TFxMP/oSoH96nV8XKJRdynXsdp43dn0Y= -github.com/libp2p/go-libp2p-yamux v0.8.2/go.mod h1:rUozF8Jah2dL9LLGyBaBeTQeARdwhefMCTQVQt6QobE= -github.com/libp2p/go-maddr-filter v0.1.0/go.mod h1:VzZhTXkMucEGGEOSKddrwGiOv0tUhgnKqNEmIAz/bPU= -github.com/libp2p/go-mplex v0.3.0/go.mod h1:0Oy/A9PQlwBytDRp4wSkFnzHYDKcpLot35JQ6msjvYQ= -github.com/libp2p/go-mplex v0.4.0/go.mod h1:y26Lx+wNVtMYMaPu300Cbot5LkEZ4tJaNYeHeT9dh6E= -github.com/libp2p/go-mplex v0.6.0 h1:5kKp029zrsLVJT5q6ASt4LwuZFxj3B13wXXaGmFrWg0= -github.com/libp2p/go-mplex v0.6.0/go.mod h1:y26Lx+wNVtMYMaPu300Cbot5LkEZ4tJaNYeHeT9dh6E= -github.com/libp2p/go-msgio v0.0.4/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= -github.com/libp2p/go-msgio v0.0.6/go.mod h1:4ecVB6d9f4BDSL5fqvPiC4A3KivjWn+Venn/1ALLMWA= -github.com/libp2p/go-msgio v0.1.0 h1:8Q7g/528ivAlfXTFWvWhVjTE8XG8sDTkRUKPYh9+5Q8= -github.com/libp2p/go-msgio v0.1.0/go.mod h1:eNlv2vy9V2X/kNldcZ+SShFE++o2Yjxwx6RAYsmgJnE= +github.com/libp2p/go-flow-metrics v0.1.0 h1:0iPhMI8PskQwzh57jB9WxIuIOQ0r+15PChFGkx3Q3WM= +github.com/libp2p/go-flow-metrics v0.1.0/go.mod h1:4Xi8MX8wj5aWNDAZttg6UPmc0ZrnFNsMtpsYUClFtro= +github.com/libp2p/go-libp2p v0.24.2 h1:iMViPIcLY0D6zr/f+1Yq9EavCZu2i7eDstsr1nEwSAk= +github.com/libp2p/go-libp2p v0.24.2/go.mod h1:WuxtL2V8yGjam03D93ZBC19tvOUiPpewYv1xdFGWu1k= +github.com/libp2p/go-libp2p-asn-util v0.2.0 h1:rg3+Os8jbnO5DxkC7K/Utdi+DkY3q/d1/1q+8WeNAsw= +github.com/libp2p/go-libp2p-asn-util v0.2.0/go.mod h1:WoaWxbHKBymSN41hWSq/lGKJEca7TNm58+gGJi2WsLI= +github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA= +github.com/libp2p/go-msgio v0.2.0 h1:W6shmB+FeynDrUVl2dgFQvzfBZcXiyqY4VmpQLu9FqU= +github.com/libp2p/go-msgio v0.2.0/go.mod h1:dBVM1gW3Jk9XqHkU4eKdGvVHdLa51hoGfll6jMJMSlY= github.com/libp2p/go-nat v0.1.0 h1:MfVsH6DLcpa04Xr+p8hmVRG4juse0s3J8HyNWYHffXg= github.com/libp2p/go-nat v0.1.0/go.mod h1:X7teVkwRHNInVNWQiO/tAiAVRwSr5zoRz4YSTC3uRBM= github.com/libp2p/go-netroute v0.1.2/go.mod h1:jZLDV+1PE8y5XxBySEBgbuVAXbhtuHSdmLPL2n9MKbk= -github.com/libp2p/go-netroute v0.1.3/go.mod h1:jZLDV+1PE8y5XxBySEBgbuVAXbhtuHSdmLPL2n9MKbk= -github.com/libp2p/go-netroute v0.1.5/go.mod h1:V1SR3AaECRkEQCoFFzYwVYWvYIEtlxx89+O3qcpCl4A= -github.com/libp2p/go-netroute v0.2.0 h1:0FpsbsvuSnAhXFnCY0VLFbJOzaK0VnP0r1QT/o4nWRE= -github.com/libp2p/go-netroute v0.2.0/go.mod h1:Vio7LTzZ+6hoT4CMZi5/6CpY3Snzh2vgZhWgxMNwlQI= -github.com/libp2p/go-openssl v0.0.4/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= -github.com/libp2p/go-openssl v0.0.5/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= -github.com/libp2p/go-openssl v0.0.7 h1:eCAzdLejcNVBzP/iZM9vqHnQm+XyCEbSSIheIPRGNsw= -github.com/libp2p/go-openssl v0.0.7/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= -github.com/libp2p/go-reuseport v0.1.0 h1:0ooKOx2iwyIkf339WCZ2HN3ujTDbkK0PjC7JVoP1AiM= -github.com/libp2p/go-reuseport v0.1.0/go.mod h1:bQVn9hmfcTaoo0c9v5pBhOarsU1eNOBZdaAd2hzXRKU= -github.com/libp2p/go-reuseport-transport v0.1.0 h1:C3PHeHjmnz8m6f0uydObj02tMEoi7CyD1zuN7xQT8gc= -github.com/libp2p/go-reuseport-transport v0.1.0/go.mod h1:vev0C0uMkzriDY59yFHD9v+ujJvYmDQVLowvAjEOmfw= +github.com/libp2p/go-netroute v0.2.1 h1:V8kVrpD8GK0Riv15/7VN6RbUQ3URNZVosw7H2v9tksU= +github.com/libp2p/go-netroute v0.2.1/go.mod h1:hraioZr0fhBjG0ZRXJJ6Zj2IVEVNx6tDTFQfSmcq7mQ= +github.com/libp2p/go-openssl v0.1.0 h1:LBkKEcUv6vtZIQLVTegAil8jbNpJErQ9AnT+bWV+Ooo= +github.com/libp2p/go-openssl v0.1.0/go.mod h1:OiOxwPpL3n4xlenjx2h7AwSGaFSC/KZvf6gNdOBQMtc= +github.com/libp2p/go-reuseport v0.2.0 h1:18PRvIMlpY6ZK85nIAicSBuXXvrYoSw3dsBAR7zc560= +github.com/libp2p/go-reuseport v0.2.0/go.mod h1:bvVho6eLMm6Bz5hmU0LYN3ixd3nPPvtIlaURZZgOY4k= github.com/libp2p/go-sockaddr v0.0.2/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= -github.com/libp2p/go-sockaddr v0.1.0/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= -github.com/libp2p/go-stream-muxer-multistream v0.3.0/go.mod h1:yDh8abSIzmZtqtOt64gFJUXEryejzNb0lisTt+fAMJA= -github.com/libp2p/go-stream-muxer-multistream v0.4.0 h1:HsM/9OdtqnIzjVXcxTXjmqKrj3gJ8kacaOJwJS1ipaY= -github.com/libp2p/go-stream-muxer-multistream v0.4.0/go.mod h1:nb+dGViZleRP4XcyHuZSVrJCBl55nRBOMmiSL/dyziw= -github.com/libp2p/go-tcp-transport v0.4.0/go.mod h1:0y52Rwrn4076xdJYu/51/qJIdxz+EWDAOG2S45sV3VI= -github.com/libp2p/go-tcp-transport v0.5.0/go.mod h1:UPPL0DIjQqiWRwVAb+CEQlaAG0rp/mCqJfIhFcLHc4Y= -github.com/libp2p/go-tcp-transport v0.5.1 h1:edOOs688VLZAozWC7Kj5/6HHXKNwi9M6wgRmmLa8M6Q= -github.com/libp2p/go-tcp-transport v0.5.1/go.mod h1:UPPL0DIjQqiWRwVAb+CEQlaAG0rp/mCqJfIhFcLHc4Y= -github.com/libp2p/go-ws-transport v0.6.0 h1:326XBL6Q+5CQ2KtjXz32+eGu02W/Kz2+Fm4SpXdr0q4= -github.com/libp2p/go-ws-transport v0.6.0/go.mod h1:dXqtI9e2JV9FtF1NOtWVZSKXh5zXvnuwPXfj8GPBbYU= -github.com/libp2p/go-yamux v1.4.1/go.mod h1:fr7aVgmdNGJK+N1g+b6DW6VxzbRCjCOejR/hkmpooHE= -github.com/libp2p/go-yamux/v3 v3.0.1/go.mod h1:s2LsDhHbh+RfCsQoICSYt58U2f8ijtPANFD8BmE74Bo= -github.com/libp2p/go-yamux/v3 v3.0.2/go.mod h1:s2LsDhHbh+RfCsQoICSYt58U2f8ijtPANFD8BmE74Bo= -github.com/libp2p/go-yamux/v3 v3.1.0 h1:2johPiST4xsXsqQ/38C2MAERw0hJ+t8oehHWA8F2R3Q= -github.com/libp2p/go-yamux/v3 v3.1.0/go.mod h1:jeLEQgLXqE2YqX1ilAClIfCMDY+0uXQUKmmb/qp0gT4= -github.com/libp2p/zeroconf/v2 v2.1.1/go.mod h1:fuJqLnUwZTshS3U/bMRJ3+ow/v9oid1n0DmyYyNO1Xs= -github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= -github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/lucas-clemente/quic-go v0.23.0/go.mod h1:paZuzjXCE5mj6sikVLMvqXk8lJV2AsqtJ6bDhjEfxx0= -github.com/lucas-clemente/quic-go v0.25.0/go.mod h1:YtzP8bxRVCBlO77yRanE264+fY/T2U9ZlW1AaHOsMOg= -github.com/lucas-clemente/quic-go v0.27.0 h1:v6WY87q9zD4dKASbG8hy/LpzAVNzEQzw8sEIeloJsc4= -github.com/lucas-clemente/quic-go v0.27.0/go.mod h1:AzgQoPda7N+3IqMMMkywBKggIFo2KT6pfnlrQ2QieeI= +github.com/libp2p/go-yamux/v4 v4.0.0 h1:+Y80dV2Yx/kv7Y7JKu0LECyVdMXm1VUoko+VQ9rBfZQ= +github.com/libp2p/go-yamux/v4 v4.0.0/go.mod h1:NWjl8ZTLOGlozrXSOZ/HlfG++39iKNnM5wwmtQP1YB4= +github.com/lucas-clemente/quic-go v0.31.1 h1:O8Od7hfioqq0PMYHDyBkxU2aA7iZ2W9pjbrWuja2YR4= +github.com/lucas-clemente/quic-go v0.31.1/go.mod h1:0wFbizLgYzqHqtlyxyCaJKlE7bYgE6JQ+54TLd/Dq2g= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= -github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= github.com/markbates/errx v1.1.0 h1:QDFeR+UP95dO12JgW+tgi2UVfo0V8YBHiUIOaeBPiEI= github.com/markbates/errx v1.1.0/go.mod h1:PLa46Oex9KNbVDZhKel8v1OT7hD5JZ2eI7AHhA0wswc= github.com/markbates/oncer v1.0.0 h1:E83IaVAHygyndzPimgUYJjbshhDTALZyXxvk9FOlQRY= github.com/markbates/oncer v1.0.0/go.mod h1:Z59JA581E9GP6w96jai+TGqafHPW+cPfRxz2aSZ0mcI= github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= -github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc= -github.com/marten-seemann/qtls-go1-15 v0.1.4/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I= -github.com/marten-seemann/qtls-go1-16 v0.1.4/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= -github.com/marten-seemann/qtls-go1-16 v0.1.5 h1:o9JrYPPco/Nukd/HpOHMHZoBDXQqoNtUCmny98/1uqQ= -github.com/marten-seemann/qtls-go1-16 v0.1.5/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= -github.com/marten-seemann/qtls-go1-17 v0.1.0/go.mod h1:fz4HIxByo+LlWcreM4CZOYNuz3taBQ8rN2X6FqvaWo8= -github.com/marten-seemann/qtls-go1-17 v0.1.1 h1:DQjHPq+aOzUeh9/lixAGunn6rIOQyWChPSI4+hgW7jc= -github.com/marten-seemann/qtls-go1-17 v0.1.1/go.mod h1:C2ekUKcDdz9SDWxec1N/MvcXBpaX9l3Nx67XaR84L5s= -github.com/marten-seemann/qtls-go1-18 v0.1.0-beta.1/go.mod h1:PUhIQk19LoFt2174H4+an8TYvWOGjb/hHwphBeaDHwI= -github.com/marten-seemann/qtls-go1-18 v0.1.1 h1:qp7p7XXUFL7fpBvSS1sWD+uSqPvzNQK43DH+/qEkj0Y= -github.com/marten-seemann/qtls-go1-18 v0.1.1/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4= +github.com/marten-seemann/qpack v0.3.0 h1:UiWstOgT8+znlkDPOg2+3rIuYXJ2CnGDkGUXN6ki6hE= +github.com/marten-seemann/qtls-go1-18 v0.1.4 h1:ogomB+lWV3Vmwiu6RTwDVTMGx+9j7SEi98e8QB35Its= +github.com/marten-seemann/qtls-go1-18 v0.1.4/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4= +github.com/marten-seemann/qtls-go1-19 v0.1.2 h1:ZevAEqKXH0bZmoOBPiqX2h5rhQ7cbZi+X+rlq2JUbCE= +github.com/marten-seemann/qtls-go1-19 v0.1.2/go.mod h1:5HTDWtVudo/WFsHKRNuOhWlbdjrfs5JHrYb0wIJqGpI= github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk= github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd/go.mod h1:QuCEs1Nt24+FYQEqAAncTDPJIuGs+LxK1MCiFL25pMU= +github.com/marten-seemann/webtransport-go v0.4.3 h1:vkt5o/Ci+luknRteWdYGYH1KcB7ziup+J+1PzZJIvmg= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= -github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0= +github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mediocregopher/mediocre-go-lib v0.0.0-20181029021733-cb65787f37ed/go.mod h1:dSsfyI2zABAdhcbvkXqgxOxrCsbYeHCPgrZkku60dSg= github.com/mediocregopher/radix/v3 v3.3.0/go.mod h1:EmfVyvspXz1uZEyPBMyGK+kjWiKQGvsUt6O3Pj+LDCQ= github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= -github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= -github.com/miekg/dns v1.1.48 h1:Ucfr7IIVyMBz4lRE8qmGUuZ4Wt3/ZGu9hmcMT3Uu4tQ= -github.com/miekg/dns v1.1.48/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME= -github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= +github.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA= +github.com/miekg/dns v1.1.50/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME= github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c h1:bzE/A84HN25pxAuk9Eej1Kz9OUelF97nAc82bDquQI8= github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c/go.mod h1:0SQS9kMwD2VsyFEB++InYyBJroV/FRmBgcydeSUcJms= github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUMM0I83AUIT6Hu17AWfgjzIbtrYFc= github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b/go.mod h1:lxPUiZwKoFL8DUUmalo2yJJUCxbPKtm8OKfqr2/FTNU= github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc h1:PTfri+PuQmWDqERdnNMiD9ZejrlswWrCpBEZgWOiTrc= github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc/go.mod h1:cGKTAVKx4SxOuR/czcZ/E2RSJ3sfHs8FpHhQ5CWMf9s= -github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= -github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= -github.com/minio/sha256-simd v0.0.0-20190328051042-05b4dd3047e5/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= -github.com/minio/sha256-simd v0.1.0/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= -github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= @@ -1131,19 +725,13 @@ github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0Qu github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs= -github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= -github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= -github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= -github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ= -github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= -github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= -github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= +github.com/moby/term v0.0.0-20221205130635-1aeaba878587 h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA= +github.com/moby/term v0.0.0-20221205130635-1aeaba878587/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -1154,274 +742,152 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjY github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= -github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= -github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= -github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= -github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= -github.com/multiformats/go-base32 v0.0.4 h1:+qMh4a2f37b4xTNs6mqitDinryCI+tfO2dRVMN9mjSE= -github.com/multiformats/go-base32 v0.0.4/go.mod h1:jNLFzjPZtp3aIARHbJRZIaPuspdH0J6q39uUM5pnABM= -github.com/multiformats/go-base36 v0.1.0 h1:JR6TyF7JjGd3m6FbLU2cOxhC0Li8z8dLNGQ89tUg4F4= -github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM= -github.com/multiformats/go-multiaddr v0.0.4/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE= +github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI= +github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0= +github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= github.com/multiformats/go-multiaddr v0.1.1/go.mod h1:aMKBKNEYmzmDmxfX88/vz+J5IU55txyt0p4aiWVohjo= github.com/multiformats/go-multiaddr v0.2.0/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4= -github.com/multiformats/go-multiaddr v0.2.1/go.mod h1:s/Apk6IyxfvMjDafnhJgJ3/46z7tZ04iMk5wP4QMGGE= -github.com/multiformats/go-multiaddr v0.2.2/go.mod h1:NtfXiOtHvghW9KojvtySjH5y0u0xW5UouOmQQrn6a3Y= -github.com/multiformats/go-multiaddr v0.3.0/go.mod h1:dF9kph9wfJ+3VLAaeBqo9Of8x4fJxp6ggJGteB8HQTI= -github.com/multiformats/go-multiaddr v0.3.1/go.mod h1:uPbspcUPd5AfaP6ql3ujFY+QWzmBD8uLLL4bXW0XfGc= -github.com/multiformats/go-multiaddr v0.3.3/go.mod h1:lCKNGP1EQ1eZ35Za2wlqnabm9xQkib3fyB+nZXHLag0= -github.com/multiformats/go-multiaddr v0.4.0/go.mod h1:YcpyLH8ZPudLxQlemYBPhSm0/oCXAT8Z4mzFpyoPyRc= -github.com/multiformats/go-multiaddr v0.4.1/go.mod h1:3afI9HfVW8csiF8UZqtpYRiDyew8pRX7qLIGHu9FLuM= -github.com/multiformats/go-multiaddr v0.5.0 h1:i/JuOoVg4szYQ4YEzDGtb2h0o8M7CG/Yq6cGlcjWZpM= -github.com/multiformats/go-multiaddr v0.5.0/go.mod h1:3KAxNkUqLTJ20AAwN4XVX4kZar+bR+gh4zgbfr3SNug= +github.com/multiformats/go-multiaddr v0.8.0 h1:aqjksEcqK+iD/Foe1RRFsGZh8+XFiGo7FgUCZlpv3LU= +github.com/multiformats/go-multiaddr v0.8.0/go.mod h1:Fs50eBDWvZu+l3/9S6xAE7ZYj6yhxlvaVZjakWN7xRs= github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A= github.com/multiformats/go-multiaddr-dns v0.3.1/go.mod h1:G/245BRQ6FJGmryJCrOuTdB37AMA5AMOVuO6NY3JwTk= github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= github.com/multiformats/go-multiaddr-fmt v0.1.0/go.mod h1:hGtDIW4PU4BqJ50gW2quDuPVjyWNZxToGUh/HwTZYJo= -github.com/multiformats/go-multiaddr-net v0.2.0/go.mod h1:gGdH3UXny6U3cKKYCvpXI5rnK7YaOIEOPVDI9tsJbEA= -github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= -github.com/multiformats/go-multibase v0.0.3 h1:l/B6bJDQjvQ5G52jw4QGSYeOTZoAwIO77RblWplfIqk= -github.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc= -github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= -github.com/multiformats/go-multihash v0.0.5/go.mod h1:lt/HCbqlQwlPBz7lv0sQCdtfcMtlJvakRUn/0Ual8po= +github.com/multiformats/go-multibase v0.1.1 h1:3ASCDsuLX8+j4kx58qnJ4YFq/JWTJpCyDW27ztsVTOI= +github.com/multiformats/go-multibase v0.1.1/go.mod h1:ZEjHE+IsUrgp5mhlEAYjMtZwK1k4haNkcaPg9aoe1a8= +github.com/multiformats/go-multicodec v0.7.0 h1:rTUjGOwjlhGHbEMbPoSUJowG1spZTVsITRANCjKTUAQ= +github.com/multiformats/go-multicodec v0.7.0/go.mod h1:GUC8upxSBE4oG+q3kWZRw/+6yC1BqO550bjhWsJbZlw= github.com/multiformats/go-multihash v0.0.8/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= -github.com/multiformats/go-multihash v0.0.10/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= -github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= -github.com/multiformats/go-multihash v0.0.14/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= -github.com/multiformats/go-multihash v0.0.15/go.mod h1:D6aZrWNLFTV/ynMpKsNtB40mJzmCl4jb1alC0OvHiHg= -github.com/multiformats/go-multihash v0.1.0 h1:CgAgwqk3//SVEw3T+6DqI4mWMyRuDwZtOWcJT0q9+EA= -github.com/multiformats/go-multihash v0.1.0/go.mod h1:RJlXsxt6vHGaia+S8We0ErjhojtKzPP2AH4+kYM7k84= -github.com/multiformats/go-multistream v0.1.1/go.mod h1:KmHZ40hzVxiaiwlj3MEbYgK9JFk2/9UktWZAF54Du38= -github.com/multiformats/go-multistream v0.2.1/go.mod h1:5GZPQZbkWOLOn3J2y4Y99vVW7vOfsAflxARk3x14o6k= -github.com/multiformats/go-multistream v0.2.2 h1:TCYu1BHTDr1F/Qm75qwYISQdzGcRdC21nFgQW7l7GBo= -github.com/multiformats/go-multistream v0.2.2/go.mod h1:UIcnm7Zuo8HKG+HkWgfQsGL+/MIEhyTqbODbIUwSXKs= +github.com/multiformats/go-multihash v0.2.1 h1:aem8ZT0VA2nCHHk7bPJ1BjUbHNciqZC/d16Vve9l108= +github.com/multiformats/go-multihash v0.2.1/go.mod h1:WxoMcYG85AZVQUyRyo9s4wULvW5qrI9vb2Lt6evduFc= +github.com/multiformats/go-multistream v0.3.3 h1:d5PZpjwRgVlbwfdTDjife7XszfZd8KYWfROYFlGcR8o= +github.com/multiformats/go-multistream v0.3.3/go.mod h1:ODRoqamLUsETKS9BNcII4gcRsJBU5VAwRIv7O39cEXg= github.com/multiformats/go-varint v0.0.1/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= -github.com/multiformats/go-varint v0.0.2/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= -github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= -github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY= -github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= -github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= +github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= -github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= -github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= -github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/npillmayer/nestext v0.1.3/go.mod h1:h2lrijH8jpicr25dFY+oAJLyzlya6jhnuG+zWp9L0Uk= +github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oasisprotocol/ed25519 v0.0.0-20210505154701-76d8c688d86e h1:pHDo+QVA9a72j08pr99Zh91vkQibH0CiNNSp36sOflA= github.com/oasisprotocol/ed25519 v0.0.0-20210505154701-76d8c688d86e/go.mod h1:IZbb50w3AB72BVobEF6qG93NNSrTw/V2QlboxqSu3Xw= -github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/ginkgo/v2 v2.6.1 h1:1xQPCjcqYw/J5LchOcp4/2q/jzJFjiAOc25chhnDw+Q= +github.com/onsi/ginkgo/v2 v2.6.1/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1LFVcsAo= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= github.com/onsi/gomega v1.10.4/go.mod h1:g/HbgYopi++010VEqkFgJHKC09uJiW9UkXvMUuKHUCQ= -github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak= -github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY= -github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= -github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/onsi/gomega v1.24.1 h1:KORJXNNTzJXzu4ScJWssJfJMnJ+2QJqhoQSRwNlze9E= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= -github.com/opencontainers/runc v1.0.1/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= -github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= +github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3snG66yBm59tKhhSPQrQ/0bCrv1LQbKt40LnUPiUxdc= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= -github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= -github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= -github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8= -github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= -github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= -github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= -github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= -github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/panjf2000/ants/v2 v2.4.6/go.mod h1:f6F0NZVFsGCp5A7QW/Zj/m92atWwOkY0OIhFxRNFr4A= -github.com/panjf2000/ants/v2 v2.4.8 h1:JgTbolX6K6RreZ4+bfctI0Ifs+3mrE5BIHudQxUDQ9k= -github.com/panjf2000/ants/v2 v2.4.8/go.mod h1:f6F0NZVFsGCp5A7QW/Zj/m92atWwOkY0OIhFxRNFr4A= +github.com/panjf2000/ants/v2 v2.7.1 h1:qBy5lfSdbxvrR0yUnZfaEDjf0FlCw4ufsbcsxmE7r+M= +github.com/panjf2000/ants/v2 v2.7.1/go.mod h1:KIBmYG9QQX5U2qzFP/yQJaq/nSb6rahS9iEHkrCMgM8= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= -github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= github.com/pelletier/go-toml v1.9.3 h1:zeC5b1GviRUyKYd6OJPvBU/mcVDVoL1OhT17FCt5dSQ= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.0.0-beta.7 h1:L4yIgTPTZBEmqW8Wkzkk59Ee8wsVRVct80l+lZBQuYw= -github.com/pelletier/go-toml/v2 v2.0.0-beta.7/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= -github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= -github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= +github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= +github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/petermattis/goid v0.0.0-20220331194723-8ee3e6ded87a h1:VXRRto5GMJPNfB7MNbUVoFhtxwoYjBEsIt/NpWg42U0= -github.com/petermattis/goid v0.0.0-20220331194723-8ee3e6ded87a/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= -github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= +github.com/petermattis/goid v0.0.0-20221215004737-a150e88a970d h1:htwtWgtQo8YS6JFWWi2DNgY0RwSGJ1ruMoxY6CUUclk= +github.com/petermattis/goid v0.0.0-20221215004737-a150e88a970d/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= -github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc= +github.com/pierrec/lz4/v4 v4.1.17/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= -github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.9.0/go.mod h1:FqZLKOZnGdFAhOK4nqGHa7D66IdsO+O441Eve7ptJDU= -github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1 h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.33.0 h1:rHgav/0a6+uYgGdNt3jwz8FNSesO/Hsang3O0T9A5SE= -github.com/prometheus/common v0.33.0/go.mod h1:gB3sOl7P0TvJabZpLY5uQMpUqRCPPCyRLCZYc7JZTNE= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/common v0.39.0 h1:oOyhkDq05hPZKItWVBkJ6g6AtGxi+fy7F4JvUV8uhsI= +github.com/prometheus/common v0.39.0/go.mod h1:6XBZ7lYdLCbkAVhwRsWTZn+IN5AB9F/NXd5w0BbEX0Y= github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/raulk/clock v1.1.0 h1:dpb29+UKMbLqiU/jqIJptgLR1nn23HLgMY0sTCDza5Y= -github.com/raulk/clock v1.1.0/go.mod h1:3MpVxdZ/ODBQDxbN+kzshf5OSZwPjtMDx6BBXBmOeY0= -github.com/raulk/go-watchdog v1.2.0 h1:konN75pw2BMmZ+AfuAm5rtFsWcJpKF3m02rKituuXNo= -github.com/raulk/go-watchdog v1.2.0/go.mod h1:lzSbAl5sh4rtI8tYHU01BWIDzgzqaQLj6RcA1i4mlqI= -github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= +github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/raulk/go-watchdog v1.3.0 h1:oUmdlHxdkXRJlwfG0O9omj8ukerm8MEQavSiDTEtBsk= +github.com/raulk/go-watchdog v1.3.0/go.mod h1:fIvOnLbF0b0ZwkB9YU4mOW9Did//4vPZtDqv66NfsMU= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rhnvrm/simples3 v0.6.1/go.mod h1:Y+3vYm2V7Y4VijFoJHHTrja6OgPrJ2cBti8dPGkC3sA= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= -github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= -github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= -github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/segmentio/fasthash v1.0.3 h1:EI9+KE1EwvMLBWwjpRDc+fEM+prwxDYbslddQGtrmhM= -github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= @@ -1449,64 +915,44 @@ github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go. github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= -github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= -github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/smola/gocompat v0.2.0/go.mod h1:1B0MlxbmoZNo3h8guHp8HztB3BSYR5itql9qtVc0ypY= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= -github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a/go.mod h1:7AyxJNCJ7SBZ1MfVQCWD6Uqo2oubI2Eq2y2eqf+A5r0= github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 h1:RC6RW7j+1+HkWaX/Yh71Ee5ZHaHYt7ZP4sQgUrm6cDU= github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= +github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= -github.com/src-d/envconfig v1.0.0/go.mod h1:Q9YQZ7BKITldTBnoxsE5gOeB5y66RyPXeue/R4aaNBc= -github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= -github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= -github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.3.0 h1:NGXK3lHquSN08v5vWalVI/L8XU9hdzE/G6xsrze47As= github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -1514,78 +960,46 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= -github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= -github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= github.com/tcnksm/go-latest v0.0.0-20170313132115-e3007ae9052e h1:IWllFTiDjjLIf2oeKxpIUmtiDV5sn71VgeQgg6vcE7k= github.com/tcnksm/go-latest v0.0.0-20170313132115-e3007ae9052e/go.mod h1:d7u6HkTYKSv5m6MCKkOQlHwaShTMl3HjqSGW3XtVhXM= -github.com/tidwall/gjson v1.14.0 h1:6aeJ0bzojgWLa82gDQHcx3S0Lr/O51I9bJ5nv6JFx5w= -github.com/tidwall/gjson v1.14.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= -github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= -github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= -github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= -github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= -github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= -github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= -github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= +github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= +github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms= +github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= -github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= -github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= -github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/ugorji/go/codec v1.2.8 h1:sgBJS6COt0b/P40VouWKdseidkDgHxYGm0SAglUHfP0= +github.com/ugorji/go/codec v1.2.8/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= -github.com/valyala/fasttemplate v1.2.1 h1:TVEnxayobAdVkhQfrfes2IzOB6o+z4roRkPF52WA1u4= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= +github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU= github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= -github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= -github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= -github.com/whyrusleeping/mdns v0.0.0-20190826153040-b9b60ed33aa9/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= -github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= -github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= -github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= -github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= -github.com/wollac/iota-crypto-demo v0.0.0-20211124150533-68dd13b59838 h1:l2x0F76xeTGOacj4jq97gh9ML0GvxExCLoLKFK5zRHs= -github.com/wollac/iota-crypto-demo v0.0.0-20211124150533-68dd13b59838/go.mod h1:/ppk5XTA9XkH4sdjhcxjbasdwJlNJj4AOJyHG9JOugE= -github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.0/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= -github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= +github.com/wollac/iota-crypto-demo v0.0.0-20221117162917-b10619eccb98 h1:i7k63xHOX2ntuHrhHewfKro67c834jug2DIk599fqAA= +github.com/wollac/iota-crypto-demo v0.0.0-20221117162917-b10619eccb98/go.mod h1:Knu2XMRWe8SkwTlHc/+ghP+O9DEaZRQQEyTjvLJ5Cck= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= @@ -1599,9 +1013,6 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= -github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= -github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= go.dedis.ch/fixbuf v1.0.3/go.mod h1:yzJMt34Wa5xD37V5RTdmp38cz3QhMagdGoem9anUalw= go.dedis.ch/kyber/v3 v3.0.4/go.mod h1:OzvaEnPvKlyrWyp3kGXlFdp7ap1VC6RkZDTaPikqhsQ= go.dedis.ch/kyber/v3 v3.0.9/go.mod h1:rhNjUUg6ahf8HEg5HUvVBYoWY4boAafX8tYxX+PS+qg= @@ -1609,20 +1020,15 @@ go.dedis.ch/kyber/v3 v3.0.13/go.mod h1:kXy7p3STAurkADD+/aZcsznZGKVHEqbtmdIzvPfrs go.dedis.ch/protobuf v1.0.5/go.mod h1:eIV4wicvi6JK0q/QnfIEGeSFNG0ZeB24kzut5+HaRLo= go.dedis.ch/protobuf v1.0.7/go.mod h1:pv5ysfkDX/EawiPqcW3ikOxsL5t+BqnV6xHSmE79KI4= go.dedis.ch/protobuf v1.0.11/go.mod h1:97QR256dnkimeNdfmURz0wAMNVbd1VmLXhG1CrTYrJ4= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= -go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= +go.etcd.io/etcd/api/v3 v3.5.4/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/pkg/v3 v3.5.4/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= +go.etcd.io/etcd/client/v3 v3.5.4/go.mod h1:ZaRkVgBZC+L+dLCjTcF1hRXpgZXQPOvnA/Ak/gq3kiY= go.mongodb.org/mongo-driver v1.0.0/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= -go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -1631,80 +1037,57 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= +go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.12.0/go.mod h1:X34SnWGr8Fyla9zQNO2GSO2D+TIuqB14OS8JhYocIyw= -go.uber.org/dig v1.14.1 h1:fyakRgZDdi2F8FgwJJoRGangMSPTIxPSLGzR3Oh0/54= -go.uber.org/dig v1.14.1/go.mod h1:52EKx/Vjdpz9EzeNcweC4YMsTrDdFn9mS/+Uw5ZnVTI= +go.uber.org/dig v1.16.0 h1:O48QoUEj4ePocypAIE5jz+SrxVdG/izHM1CZ/Yjrwww= +go.uber.org/dig v1.16.0/go.mod h1:557JTAUZT5bUK0SvCwikmLPPtdQhfvLYtO5tJgQSbnk= +go.uber.org/fx v1.19.0 h1:QetyAKH/ya3Avfg+s84DljRV+svcSAo8k+2y+B+ZaRQ= +go.uber.org/fx v1.19.0/go.mod h1:bGK+AEy7XUwTBkqCsK/vDyFF0JJOA6X5KWpNC0e6qTA= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= -go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= -go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= -go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= +go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= +go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.14.1/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= -go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= -go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8= -go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= +go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= -golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190618222545-ea8f1a30c443/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191119213627-4f8c1d86b1ba/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200602180216-279210d13fed/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210506145944-38f3c27a63bf/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= -golang.org/x/crypto v0.0.0-20210813211128-0a44fdfbc16e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220408190544-5352b0902921 h1:iU7T1X1J6yxDr0rda54sWGkHgOp5XJrqm79gcNlC2VM= -golang.org/x/crypto v0.0.0-20220408190544-5352b0902921/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= +golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1716,8 +1099,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200513190911-00229845015e/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20220407100705-7b9b53b0aca4 h1:K3x+yU+fbot38x5bQbU2QqUAVyYLEktdNH2GxZLnM3U= -golang.org/x/exp v0.0.0-20220407100705-7b9b53b0aca4/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= +golang.org/x/exp v0.0.0-20230108222341-4b8118a2686a h1:tlXy25amD5A7gOfbXdqCGN5k8ESEed/Ee1E5RcrYnqU= +golang.org/x/exp v0.0.0-20230108222341-4b8118a2686a/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1744,9 +1127,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o= -golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= -golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1758,25 +1140,20 @@ golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190313220215-9f648a60d977/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1792,31 +1169,25 @@ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3 h1:EN5+DfgmRMvRUrMGERW2gQl3Vc+Z7ZMnI/xdEpPSf0c= -golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220725212005-46097bf591d3/go.mod h1:AaygXjzTFtRAg2ttMY5RMuhpJ3cNnI0XpyFJD1iQRSM= +golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1831,8 +1202,6 @@ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1844,8 +1213,9 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1853,14 +1223,11 @@ golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1871,41 +1238,29 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191206220618-eeba5f6aabab/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1917,63 +1272,49 @@ golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210317225723-c4fcb01b228e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210426080607-c94f62235c83/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210511113859-b0526f3d8744/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210909193231-528a39cd75f3/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f h1:8w7RhxzTVgUzw/AH/9mUV5q0vMgy40SQRursCcfmkCw= -golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.4.0 h1:O7UWfv5+A2qiuulQk30kVinPoMtoIPeVaKLEgLpVkvg= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1983,22 +1324,20 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220224211638-0e9765cccd65 h1:M73Iuj3xbbb9Uk1DYhzydthsj6oOd6l9bpuFcNoUvTs= -golang.org/x/time v0.0.0-20220224211638-0e9765cccd65/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181130052023-1c3d964395ce/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -2011,11 +1350,10 @@ golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -2030,7 +1368,6 @@ golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -2054,7 +1391,6 @@ golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82u golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210112230658-8b4aab62c064/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -2065,18 +1401,17 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= -golang.org/x/tools v0.1.10 h1:QjFRCZxdOhBJ/UNgnBZLbNV13DlbnK0quyivTnXJM20= -golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= +golang.org/x/tools v0.5.0 h1:+bSpV5HIeWkuvgaMfI3UmKRThoTA5ODJTUd8T17NO+4= +golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y= -google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -2108,7 +1443,6 @@ google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -2120,8 +1454,6 @@ google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= -google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -2130,7 +1462,6 @@ google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= @@ -2150,7 +1481,6 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -2161,29 +1491,22 @@ google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac h1:qSNTkEN+L2mvWcLgJOR+8bdHX9rN/IdU3A1Ghpfb1Rg= -google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/genproto v0.0.0-20230106154932-a12b697841d9 h1:3wPBShTLWQnEkZ9VW/HZZ8zT/9LLtleBtq7l8SKtJIA= +google.golang.org/genproto v0.0.0-20230106154932-a12b697841d9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= @@ -2196,8 +1519,8 @@ google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= -google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.51.0 h1:E1eGv1FTqoLIdnBCZufiSHgKjlqG6fKFf6pPWtMTh8U= +google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -2211,22 +1534,17 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= -gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= gopkg.in/h2non/gock.v1 v1.0.14/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE= @@ -2236,17 +1554,9 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/src-d/go-cli.v0 v0.0.0-20181105080154-d492247bbc0d/go.mod h1:z+K8VcOYVYcSwSjGebuDL6176A1XskgbtNl64NSg+n8= -gopkg.in/src-d/go-log.v1 v1.0.1/go.mod h1:GN34hKP0g305ysm2/hctJ0Y8nWP3zxXXJ8GFabTyABE= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -2259,13 +1569,11 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= -gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= -gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= +gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -2275,43 +1583,11 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= -k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ= -k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8= -k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= -k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= -k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc= -k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= -k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM= -k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q= -k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= -k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k= -k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0= -k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= -k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI= -k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM= -k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= -k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= -k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= -k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= -k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= -k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= -k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -lukechampine.com/blake3 v1.1.6/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= lukechampine.com/blake3 v1.1.7 h1:GgRMhmdsuK8+ii6UZFDL8Nb+VyMwadAgcJyfYHxG6n0= lukechampine.com/blake3 v1.1.7/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= diff --git a/integration-tests/tester/docker-compose.yml b/integration-tests/tester/docker-compose.yml index 5013b2761..47dea9158 100644 --- a/integration-tests/tester/docker-compose.yml +++ b/integration-tests/tester/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.5" services: tester: container_name: tester - image: golang:1.18 + image: golang:1.19 working_dir: /tmp/hornet/integration-tests/tester command: /tmp/assets/entrypoint.sh environment: diff --git a/integration-tests/tester/framework/config.go b/integration-tests/tester/framework/config.go index 308d92cba..b70774e0f 100644 --- a/integration-tests/tester/framework/config.go +++ b/integration-tests/tester/framework/config.go @@ -8,21 +8,21 @@ import ( "github.com/docker/go-connections/nat" - "github.com/gohornet/hornet/plugins/autopeering" - - "github.com/gohornet/hornet/core/app" - "github.com/gohornet/hornet/core/gossip" - "github.com/gohornet/hornet/core/p2p" - "github.com/gohornet/hornet/core/protocfg" - "github.com/gohornet/hornet/core/snapshot" - coopkg "github.com/gohornet/hornet/pkg/model/coordinator" - "github.com/gohornet/hornet/pkg/utils" - "github.com/gohornet/hornet/plugins/coordinator" - "github.com/gohornet/hornet/plugins/dashboard" - "github.com/gohornet/hornet/plugins/migrator" - "github.com/gohornet/hornet/plugins/profiling" - "github.com/gohornet/hornet/plugins/receipt" - "github.com/gohornet/hornet/plugins/restapi" + "github.com/iotaledger/hornet/plugins/autopeering" + + "github.com/iotaledger/hornet/core/app" + "github.com/iotaledger/hornet/core/gossip" + "github.com/iotaledger/hornet/core/p2p" + "github.com/iotaledger/hornet/core/protocfg" + "github.com/iotaledger/hornet/core/snapshot" + coopkg "github.com/iotaledger/hornet/pkg/model/coordinator" + "github.com/iotaledger/hornet/pkg/utils" + "github.com/iotaledger/hornet/plugins/coordinator" + "github.com/iotaledger/hornet/plugins/dashboard" + "github.com/iotaledger/hornet/plugins/migrator" + "github.com/iotaledger/hornet/plugins/profiling" + "github.com/iotaledger/hornet/plugins/receipt" + "github.com/iotaledger/hornet/plugins/restapi" iotago "github.com/iotaledger/iota.go/v2" "github.com/iotaledger/iota.go/v2/ed25519" ) diff --git a/integration-tests/tester/framework/framework.go b/integration-tests/tester/framework/framework.go index e3937be31..68be2d2de 100644 --- a/integration-tests/tester/framework/framework.go +++ b/integration-tests/tester/framework/framework.go @@ -10,10 +10,10 @@ import ( "time" "github.com/docker/docker/client" - "github.com/libp2p/go-libp2p-core/crypto" + "github.com/libp2p/go-libp2p/core/crypto" "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/p2p/autopeering" + "github.com/iotaledger/hornet/pkg/p2p/autopeering" ) var ( diff --git a/integration-tests/tester/framework/network.go b/integration-tests/tester/framework/network.go index 10aafa431..912711c42 100644 --- a/integration-tests/tester/framework/network.go +++ b/integration-tests/tester/framework/network.go @@ -11,8 +11,8 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/client" - "github.com/libp2p/go-libp2p-core/crypto" - "github.com/libp2p/go-libp2p-core/peer" + "github.com/libp2p/go-libp2p/core/crypto" + "github.com/libp2p/go-libp2p/core/peer" ) type NetworkType byte diff --git a/integration-tests/tester/framework/node.go b/integration-tests/tester/framework/node.go index 0baa26c07..c7d8e8a29 100644 --- a/integration-tests/tester/framework/node.go +++ b/integration-tests/tester/framework/node.go @@ -8,7 +8,7 @@ import ( "sync/atomic" "time" - "github.com/libp2p/go-libp2p-core/peer" + "github.com/libp2p/go-libp2p/core/peer" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/integration-tests/tester/framework/profiling.go b/integration-tests/tester/framework/profiling.go index c81a36dad..c7d155695 100644 --- a/integration-tests/tester/framework/profiling.go +++ b/integration-tests/tester/framework/profiling.go @@ -5,7 +5,7 @@ import ( "context" "encoding/json" "fmt" - "io/ioutil" + "io" "net/http" "strconv" "time" @@ -13,10 +13,10 @@ import ( "github.com/go-echarts/go-echarts/charts" "github.com/gorilla/websocket" - "github.com/gohornet/hornet/pkg/tangle" - "github.com/gohornet/hornet/pkg/tipselect" - "github.com/gohornet/hornet/plugins/dashboard" "github.com/iotaledger/hive.go/websockethub" + "github.com/iotaledger/hornet/pkg/tangle" + "github.com/iotaledger/hornet/pkg/tipselect" + "github.com/iotaledger/hornet/plugins/dashboard" ) const ( @@ -259,7 +259,7 @@ func (n *Profiler) GraphMetrics(dur time.Duration) error { return fmt.Errorf("unable to render metrics charts: %w", err) } - return writeFileInLogDir(fmt.Sprintf("%s_%s_%d.html", n.targetName, metricsChartPrefix, time.Now().Unix()), ioutil.NopCloser(&buf)) + return writeFileInLogDir(fmt.Sprintf("%s_%s_%d.html", n.targetName, metricsChartPrefix, time.Now().Unix()), io.NopCloser(&buf)) } // queries the given pprof URI and returns the profile data. @@ -280,7 +280,7 @@ func (n *Profiler) query(path string) ([]byte, error) { } defer func() { _ = resp.Body.Close() }() - profileBytes, err := ioutil.ReadAll(resp.Body) + profileBytes, err := io.ReadAll(resp.Body) if err != nil { return nil, fmt.Errorf("unable to read profile from response: %w", err) } @@ -289,6 +289,6 @@ func (n *Profiler) query(path string) ([]byte, error) { // writeProfile writes the given profile data to the given file in the log directory. func (n *Profiler) writeProfile(fileName string, profileBytes []byte) error { - profileReader := ioutil.NopCloser(bytes.NewReader(profileBytes)) + profileReader := io.NopCloser(bytes.NewReader(profileBytes)) return writeFileInLogDir(fileName, profileReader) } diff --git a/integration-tests/tester/framework/static_network.go b/integration-tests/tester/framework/static_network.go index ad977d727..ff4c4f453 100644 --- a/integration-tests/tester/framework/static_network.go +++ b/integration-tests/tester/framework/static_network.go @@ -15,10 +15,10 @@ type connected bool type StaticPeeringLayout map[int]map[int]connected // Validate validates whether the static peering layout is valid by checking: -// - the layout isn't empty -// - keys must be continuous numbers reflecting the ID of the node -// - a node must hold nodes to peer to and they must exist in the map -// - a node doesn't peer to itself +// - the layout isn't empty +// - keys must be continuous numbers reflecting the ID of the node +// - a node must hold nodes to peer to and they must exist in the map +// - a node doesn't peer to itself func (spl StaticPeeringLayout) Validate() error { if len(spl) == 0 { return ErrLayoutEmpty @@ -118,7 +118,7 @@ func (n *StaticNetwork) AwaitPeering(ctx context.Context) error { peers, err := node.DebugNodeAPIClient.Peers(context.Background()) if err != nil { - log.Println(fmt.Sprintf("node %s, peering: %s", node.ID.String(), err)) + log.Printf("node %s, peering: %s\n", node.ID.String(), err) continue } diff --git a/integration-tests/tester/framework/visualizer_test.go b/integration-tests/tester/framework/visualizer_test.go index 12156619e..074d9c760 100644 --- a/integration-tests/tester/framework/visualizer_test.go +++ b/integration-tests/tester/framework/visualizer_test.go @@ -11,7 +11,7 @@ import ( "github.com/stretchr/testify/assert" - "github.com/gohornet/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/hornet" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/integration-tests/tester/tests/autopeering/autopeering_test.go b/integration-tests/tester/tests/autopeering/autopeering_test.go index 892c9e112..3c7e1c357 100644 --- a/integration-tests/tester/tests/autopeering/autopeering_test.go +++ b/integration-tests/tester/tests/autopeering/autopeering_test.go @@ -8,7 +8,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/integration-tests/tester/framework" + "github.com/iotaledger/hornet/integration-tests/tester/framework" ) // TestAutopeering creates an autopeered network and then checks whether all nodes are synced. diff --git a/integration-tests/tester/tests/autopeering/main_test.go b/integration-tests/tester/tests/autopeering/main_test.go index 35d62b1eb..848a41375 100644 --- a/integration-tests/tester/tests/autopeering/main_test.go +++ b/integration-tests/tester/tests/autopeering/main_test.go @@ -4,7 +4,7 @@ import ( "os" "testing" - "github.com/gohornet/hornet/integration-tests/tester/framework" + "github.com/iotaledger/hornet/integration-tests/tester/framework" ) var f *framework.Framework diff --git a/integration-tests/tester/tests/benchmark/benchmark_test.go b/integration-tests/tester/tests/benchmark/benchmark_test.go index 6009b5c4e..7463371f8 100644 --- a/integration-tests/tester/tests/benchmark/benchmark_test.go +++ b/integration-tests/tester/tests/benchmark/benchmark_test.go @@ -9,7 +9,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/integration-tests/tester/framework" + "github.com/iotaledger/hornet/integration-tests/tester/framework" ) // TestNetworkBenchmark boots up a statically peered network and then graphs MPS, CPU and memory profiles diff --git a/integration-tests/tester/tests/benchmark/main_test.go b/integration-tests/tester/tests/benchmark/main_test.go index 28a8388de..3b0ab8767 100644 --- a/integration-tests/tester/tests/benchmark/main_test.go +++ b/integration-tests/tester/tests/benchmark/main_test.go @@ -4,7 +4,7 @@ import ( "os" "testing" - "github.com/gohornet/hornet/integration-tests/tester/framework" + "github.com/iotaledger/hornet/integration-tests/tester/framework" ) var f *framework.Framework diff --git a/integration-tests/tester/tests/common/common_test.go b/integration-tests/tester/tests/common/common_test.go index 57a63cd5f..79b3dfcd6 100644 --- a/integration-tests/tester/tests/common/common_test.go +++ b/integration-tests/tester/tests/common/common_test.go @@ -8,7 +8,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/integration-tests/tester/framework" + "github.com/iotaledger/hornet/integration-tests/tester/framework" ) // TestCommon boots up a statically peered network and then checks that all diff --git a/integration-tests/tester/tests/common/main_test.go b/integration-tests/tester/tests/common/main_test.go index 28a8388de..3b0ab8767 100644 --- a/integration-tests/tester/tests/common/main_test.go +++ b/integration-tests/tester/tests/common/main_test.go @@ -4,7 +4,7 @@ import ( "os" "testing" - "github.com/gohornet/hornet/integration-tests/tester/framework" + "github.com/iotaledger/hornet/integration-tests/tester/framework" ) var f *framework.Framework diff --git a/integration-tests/tester/tests/migration/batch_test.go b/integration-tests/tester/tests/migration/batch_test.go index 9325de0fe..2d385ed7b 100644 --- a/integration-tests/tester/tests/migration/batch_test.go +++ b/integration-tests/tester/tests/migration/batch_test.go @@ -10,7 +10,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/integration-tests/tester/framework" + "github.com/iotaledger/hornet/integration-tests/tester/framework" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/integration-tests/tester/tests/migration/main_test.go b/integration-tests/tester/tests/migration/main_test.go index 15b73451e..396dcd860 100644 --- a/integration-tests/tester/tests/migration/main_test.go +++ b/integration-tests/tester/tests/migration/main_test.go @@ -4,7 +4,7 @@ import ( "os" "testing" - "github.com/gohornet/hornet/integration-tests/tester/framework" + "github.com/iotaledger/hornet/integration-tests/tester/framework" ) var f *framework.Framework diff --git a/integration-tests/tester/tests/migration/migration_test.go b/integration-tests/tester/tests/migration/migration_test.go index fe8023844..0354095c7 100644 --- a/integration-tests/tester/tests/migration/migration_test.go +++ b/integration-tests/tester/tests/migration/migration_test.go @@ -9,7 +9,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/integration-tests/tester/framework" + "github.com/iotaledger/hornet/integration-tests/tester/framework" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/integration-tests/tester/tests/snapshot/main_test.go b/integration-tests/tester/tests/snapshot/main_test.go index d721094c7..35d30ec63 100644 --- a/integration-tests/tester/tests/snapshot/main_test.go +++ b/integration-tests/tester/tests/snapshot/main_test.go @@ -4,7 +4,7 @@ import ( "os" "testing" - "github.com/gohornet/hornet/integration-tests/tester/framework" + "github.com/iotaledger/hornet/integration-tests/tester/framework" ) var f *framework.Framework diff --git a/integration-tests/tester/tests/snapshot/snapshot_test.go b/integration-tests/tester/tests/snapshot/snapshot_test.go index dd1049116..b39751fac 100644 --- a/integration-tests/tester/tests/snapshot/snapshot_test.go +++ b/integration-tests/tester/tests/snapshot/snapshot_test.go @@ -8,7 +8,7 @@ import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/integration-tests/tester/framework" + "github.com/iotaledger/hornet/integration-tests/tester/framework" "github.com/iotaledger/iota.go/consts" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/integration-tests/tester/tests/value/main_test.go b/integration-tests/tester/tests/value/main_test.go index 1481a962a..88792700d 100644 --- a/integration-tests/tester/tests/value/main_test.go +++ b/integration-tests/tester/tests/value/main_test.go @@ -4,7 +4,7 @@ import ( "os" "testing" - "github.com/gohornet/hornet/integration-tests/tester/framework" + "github.com/iotaledger/hornet/integration-tests/tester/framework" ) var f *framework.Framework diff --git a/integration-tests/tester/tests/value/value_test.go b/integration-tests/tester/tests/value/value_test.go index 8845cbd22..dcc05db23 100644 --- a/integration-tests/tester/tests/value/value_test.go +++ b/integration-tests/tester/tests/value/value_test.go @@ -10,7 +10,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/integration-tests/tester/framework" + "github.com/iotaledger/hornet/integration-tests/tester/framework" iotago "github.com/iotaledger/iota.go/v2" "github.com/iotaledger/iota.go/v2/ed25519" ) diff --git a/main.go b/main.go index 382b42c19..9a444852f 100644 --- a/main.go +++ b/main.go @@ -1,34 +1,34 @@ package main import ( - "github.com/gohornet/hornet/core/app" - "github.com/gohornet/hornet/core/database" - "github.com/gohornet/hornet/core/gossip" - "github.com/gohornet/hornet/core/gracefulshutdown" - "github.com/gohornet/hornet/core/p2p" - "github.com/gohornet/hornet/core/pow" - "github.com/gohornet/hornet/core/profile" - "github.com/gohornet/hornet/core/protocfg" - "github.com/gohornet/hornet/core/snapshot" - "github.com/gohornet/hornet/core/tangle" - "github.com/gohornet/hornet/pkg/node" - "github.com/gohornet/hornet/plugins/autopeering" - "github.com/gohornet/hornet/plugins/coordinator" - "github.com/gohornet/hornet/plugins/dashboard" - "github.com/gohornet/hornet/plugins/debug" - "github.com/gohornet/hornet/plugins/faucet" - "github.com/gohornet/hornet/plugins/migrator" - "github.com/gohornet/hornet/plugins/mqtt" - "github.com/gohornet/hornet/plugins/participation" - "github.com/gohornet/hornet/plugins/profiling" - "github.com/gohornet/hornet/plugins/prometheus" - "github.com/gohornet/hornet/plugins/receipt" - "github.com/gohornet/hornet/plugins/restapi" - restapiv1 "github.com/gohornet/hornet/plugins/restapi/v1" - "github.com/gohornet/hornet/plugins/spammer" - "github.com/gohornet/hornet/plugins/urts" - "github.com/gohornet/hornet/plugins/versioncheck" - "github.com/gohornet/hornet/plugins/warpsync" + "github.com/iotaledger/hornet/core/app" + "github.com/iotaledger/hornet/core/database" + "github.com/iotaledger/hornet/core/gossip" + "github.com/iotaledger/hornet/core/gracefulshutdown" + "github.com/iotaledger/hornet/core/p2p" + "github.com/iotaledger/hornet/core/pow" + "github.com/iotaledger/hornet/core/profile" + "github.com/iotaledger/hornet/core/protocfg" + "github.com/iotaledger/hornet/core/snapshot" + "github.com/iotaledger/hornet/core/tangle" + "github.com/iotaledger/hornet/pkg/node" + "github.com/iotaledger/hornet/plugins/autopeering" + "github.com/iotaledger/hornet/plugins/coordinator" + "github.com/iotaledger/hornet/plugins/dashboard" + "github.com/iotaledger/hornet/plugins/debug" + "github.com/iotaledger/hornet/plugins/faucet" + "github.com/iotaledger/hornet/plugins/migrator" + "github.com/iotaledger/hornet/plugins/mqtt" + "github.com/iotaledger/hornet/plugins/participation" + "github.com/iotaledger/hornet/plugins/profiling" + "github.com/iotaledger/hornet/plugins/prometheus" + "github.com/iotaledger/hornet/plugins/receipt" + "github.com/iotaledger/hornet/plugins/restapi" + restapiv1 "github.com/iotaledger/hornet/plugins/restapi/v1" + "github.com/iotaledger/hornet/plugins/spammer" + "github.com/iotaledger/hornet/plugins/urts" + "github.com/iotaledger/hornet/plugins/versioncheck" + "github.com/iotaledger/hornet/plugins/warpsync" ) func main() { diff --git a/pkg/common/errors.go b/pkg/common/errors.go index 4acdd1db7..b3ecbba81 100644 --- a/pkg/common/errors.go +++ b/pkg/common/errors.go @@ -5,6 +5,8 @@ import ( ) var ( + // ErrCritical is returned when a critical error stops the execution of a task. + ErrCritical = errors.New("critical error") // ErrOperationAborted is returned when the operation was aborted e.g. by a shutdown signal. ErrOperationAborted = errors.New("operation was aborted") // ErrMessageNotFound is returned when a message was not found. @@ -13,6 +15,8 @@ var ( ErrNodeNotSynced = errors.New("node is not synchronized") // ErrNodeLoadTooHigh is returned when the load on the node is too high. ErrNodeLoadTooHigh = errors.New("node load is too high") + // ErrSnapshotInfoNotFound is returned when the snapshot info is not found in the database. + ErrSnapshotInfoNotFound = errors.New("snapshot info not found") ) // CriticalError wraps the given error as a critical error. diff --git a/pkg/common/errors_test.go b/pkg/common/errors_test.go index a07821bda..037343442 100644 --- a/pkg/common/errors_test.go +++ b/pkg/common/errors_test.go @@ -8,7 +8,7 @@ import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/common" ) func TestSoftError_Error(t *testing.T) { diff --git a/pkg/dag/children_traverser.go b/pkg/dag/children_traverser.go index d75c3826a..4be39b750 100644 --- a/pkg/dag/children_traverser.go +++ b/pkg/dag/children_traverser.go @@ -7,9 +7,9 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/utils" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/utils" ) // ChildrenTraverser can be used to walk the dag in direction of the tips (future cone). diff --git a/pkg/dag/concurrent_parents_traverser.go b/pkg/dag/concurrent_parents_traverser.go index f5cbd2c94..365a2a7b4 100644 --- a/pkg/dag/concurrent_parents_traverser.go +++ b/pkg/dag/concurrent_parents_traverser.go @@ -9,9 +9,9 @@ import ( "go.uber.org/atomic" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/utils" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/utils" ) var ( diff --git a/pkg/dag/cone_root_indexes.go b/pkg/dag/cone_root_indexes.go index 1e04a1433..a16c94bf4 100644 --- a/pkg/dag/cone_root_indexes.go +++ b/pkg/dag/cone_root_indexes.go @@ -7,10 +7,10 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" ) // updateOutdatedConeRootIndexes updates the cone root indexes of the given messages. diff --git a/pkg/dag/cone_root_indexes_test.go b/pkg/dag/cone_root_indexes_test.go index 2ccbed14e..69514706e 100644 --- a/pkg/dag/cone_root_indexes_test.go +++ b/pkg/dag/cone_root_indexes_test.go @@ -6,11 +6,11 @@ import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/dag" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/testsuite" - "github.com/gohornet/hornet/pkg/whiteflag" + "github.com/iotaledger/hornet/pkg/dag" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/testsuite" + "github.com/iotaledger/hornet/pkg/whiteflag" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/dag/helper.go b/pkg/dag/helper.go index 3e1fd94d6..eee85d27c 100644 --- a/pkg/dag/helper.go +++ b/pkg/dag/helper.go @@ -3,8 +3,8 @@ package dag import ( "context" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/storage" ) // Predicate defines whether a traversal should continue or not. diff --git a/pkg/dag/memcached_traverser.go b/pkg/dag/memcached_traverser.go index 0f2f10c79..6cb873918 100644 --- a/pkg/dag/memcached_traverser.go +++ b/pkg/dag/memcached_traverser.go @@ -1,9 +1,9 @@ package dag import ( - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" ) type MemcachedTraverserStorage struct { diff --git a/pkg/dag/parents_traverser.go b/pkg/dag/parents_traverser.go index c35669a77..009107cfd 100644 --- a/pkg/dag/parents_traverser.go +++ b/pkg/dag/parents_traverser.go @@ -6,9 +6,9 @@ import ( "fmt" "sync" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/utils" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/utils" ) type ParentsTraverserInterface interface { diff --git a/pkg/dag/storage_interfaces.go b/pkg/dag/storage_interfaces.go index b5e18a594..ce434ae34 100644 --- a/pkg/dag/storage_interfaces.go +++ b/pkg/dag/storage_interfaces.go @@ -1,9 +1,9 @@ package dag import ( - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" ) // ParentsTraverserStorage provides the interface to the used storage in the ParentsTraverser. diff --git a/pkg/database/database.go b/pkg/database/database.go index 7f43c6ad3..d429938b6 100644 --- a/pkg/database/database.go +++ b/pkg/database/database.go @@ -6,10 +6,10 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/metrics" - "github.com/gohornet/hornet/pkg/utils" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/kvstore" + "github.com/iotaledger/hornet/pkg/metrics" + "github.com/iotaledger/hornet/pkg/utils" ) type Engine string diff --git a/pkg/database/engine.go b/pkg/database/engine.go index d3bc17bec..eda7dfb25 100644 --- a/pkg/database/engine.go +++ b/pkg/database/engine.go @@ -8,11 +8,11 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/utils" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/kvstore/mapdb" "github.com/iotaledger/hive.go/kvstore/pebble" "github.com/iotaledger/hive.go/kvstore/rocksdb" + "github.com/iotaledger/hornet/pkg/utils" ) type databaseInfo struct { diff --git a/pkg/database/pebble.go b/pkg/database/pebble.go index 84437361d..5b860e4fe 100644 --- a/pkg/database/pebble.go +++ b/pkg/database/pebble.go @@ -62,7 +62,7 @@ func NewPebbleDB(directory string, reportCompactionRunning func(running bool), e // of dirty filesystem buffers. This option only controls SSTable syncs; WAL // syncs are controlled by WALBytesPerSync. // - // The default value is 512 KB. + // The default value is 512KB. opts.BytesPerSync = 512 << 10 // 512 KB // Cache is used to cache uncompressed blocks from sstables. @@ -108,14 +108,6 @@ func NewPebbleDB(directory string, reportCompactionRunning func(running bool), e // The default value is 1 GB. opts.Experimental.CompactionDebtConcurrency = 10 << 30 // 10 GB - // DeleteRangeFlushDelay configures how long the database should wait - // before forcing a flush of a memtable that contains a range - // deletion. Disk space cannot be reclaimed until the range deletion - // is flushed. No automatic flush occurs if zero. - // - // The default value is 0. - opts.Experimental.DeleteRangeFlushDelay = 10 * time.Second - // MinDeletionRate is the minimum number of bytes per second that would // be deleted. Deletion pacing is used to slow down deletions when // compactions finish up or readers close, and newly-obsolete files need @@ -162,6 +154,14 @@ func NewPebbleDB(directory string, reportCompactionRunning func(running bool), e // The default value is 1. opts.Experimental.ReadSamplingMultiplier = 0 + // DeleteRangeFlushDelay configures how long the database should wait + // before forcing a flush of a memtable that contains a range + // deletion. Disk space cannot be reclaimed until the range deletion + // is flushed. No automatic flush occurs if zero. + // + // The default value is 0. + opts.FlushDelayDeleteRange = 10 * time.Second + // FlushSplitBytes denotes the target number of bytes per sublevel in // each flush split interval (i.e. range between two flush split keys) // in L0 sstables. When set to zero, only a single sstable is generated @@ -236,7 +236,7 @@ func NewPebbleDB(directory string, reportCompactionRunning func(running bool), e // when L0 read-amplification passes the L0CompactionConcurrency threshold. // // The default value is 1. - opts.MaxConcurrentCompactions = 1 + opts.MaxConcurrentCompactions = func() int { return 1 } return pebble.CreateDB(directory, opts) } diff --git a/pkg/database/utils.go b/pkg/database/utils.go index d1a6c4b31..64ac03264 100644 --- a/pkg/database/utils.go +++ b/pkg/database/utils.go @@ -3,14 +3,14 @@ package database import ( "fmt" - "github.com/gohornet/hornet/pkg/utils" - hiveutils "github.com/iotaledger/hive.go/kvstore/utils" + "github.com/iotaledger/hive.go/ioutils" + "github.com/iotaledger/hornet/pkg/utils" ) // DatabaseExists checks if the database folder exists and is not empty. func DatabaseExists(dbPath string) (bool, error) { - dirExists, err := hiveutils.PathExists(dbPath) + dirExists, err := ioutils.PathExists(dbPath) if err != nil { return false, fmt.Errorf("unable to check database path (%s): %w", dbPath, err) } diff --git a/pkg/jwt/jwt.go b/pkg/jwt/jwt.go index ec9f72a68..485631a84 100644 --- a/pkg/jwt/jwt.go +++ b/pkg/jwt/jwt.go @@ -11,7 +11,7 @@ import ( "github.com/golang-jwt/jwt" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" - "github.com/libp2p/go-libp2p-core/crypto" + "github.com/libp2p/go-libp2p/core/crypto" ) // Errors @@ -84,6 +84,7 @@ func (j *JWTAuth) Middleware(skipper middleware.Skipper, allow func(c echo.Conte } // use the default JWT middleware to verify and extract the JWT + //nolint:staticcheck // TODO: replace with https://github.com/labstack/echo-jwt instead handler := middleware.JWTWithConfig(config)(func(c echo.Context) error { return nil }) diff --git a/pkg/keymanager/keymanager.go b/pkg/keymanager/keymanager.go index 53fef9eea..435e9b016 100644 --- a/pkg/keymanager/keymanager.go +++ b/pkg/keymanager/keymanager.go @@ -3,7 +3,7 @@ package keymanager import ( "sort" - "github.com/gohornet/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/milestone" iotago "github.com/iotaledger/iota.go/v2" "github.com/iotaledger/iota.go/v2/ed25519" ) diff --git a/pkg/keymanager/keymanager_test.go b/pkg/keymanager/keymanager_test.go index 2173f84f6..bd1eecab4 100644 --- a/pkg/keymanager/keymanager_test.go +++ b/pkg/keymanager/keymanager_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/assert" - "github.com/gohornet/hornet/pkg/keymanager" + "github.com/iotaledger/hornet/pkg/keymanager" iotago "github.com/iotaledger/iota.go/v2" "github.com/iotaledger/iota.go/v2/ed25519" ) diff --git a/pkg/model/coordinator/coordinator.go b/pkg/model/coordinator/coordinator.go index 01080de11..3e76691cd 100644 --- a/pkg/model/coordinator/coordinator.go +++ b/pkg/model/coordinator/coordinator.go @@ -10,21 +10,21 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/dag" - "github.com/gohornet/hornet/pkg/utils" - - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/migrator" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/model/syncmanager" - "github.com/gohornet/hornet/pkg/model/utxo" - "github.com/gohornet/hornet/pkg/pow" - "github.com/gohornet/hornet/pkg/whiteflag" + "github.com/iotaledger/hornet/pkg/dag" + "github.com/iotaledger/hornet/pkg/utils" + "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/logger" "github.com/iotaledger/hive.go/syncutils" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/migrator" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/syncmanager" + "github.com/iotaledger/hornet/pkg/model/utxo" + "github.com/iotaledger/hornet/pkg/pow" + "github.com/iotaledger/hornet/pkg/whiteflag" iotago "github.com/iotaledger/iota.go/v2" // import implementation diff --git a/pkg/model/coordinator/debug_node_api.go b/pkg/model/coordinator/debug_node_api.go index 155c736e7..a0663ea0c 100644 --- a/pkg/model/coordinator/debug_node_api.go +++ b/pkg/model/coordinator/debug_node_api.go @@ -8,8 +8,8 @@ import ( iotago "github.com/iotaledger/iota.go/v2" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" ) const ( diff --git a/pkg/model/coordinator/events.go b/pkg/model/coordinator/events.go index fa78fe85c..eb599c851 100644 --- a/pkg/model/coordinator/events.go +++ b/pkg/model/coordinator/events.go @@ -1,8 +1,8 @@ package coordinator import ( - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" ) // CheckpointCaller is used to signal issued checkpoints. diff --git a/pkg/model/coordinator/milestones.go b/pkg/model/coordinator/milestones.go index dcc5ca29d..3d83e354b 100644 --- a/pkg/model/coordinator/milestones.go +++ b/pkg/model/coordinator/milestones.go @@ -4,10 +4,10 @@ import ( "context" "time" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/coordinator/quorum.go b/pkg/model/coordinator/quorum.go index b53cc2024..71a418605 100644 --- a/pkg/model/coordinator/quorum.go +++ b/pkg/model/coordinator/quorum.go @@ -10,10 +10,10 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/syncutils" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/coordinator/signing_provider.go b/pkg/model/coordinator/signing_provider.go index d4c429b1d..87b1b097e 100644 --- a/pkg/model/coordinator/signing_provider.go +++ b/pkg/model/coordinator/signing_provider.go @@ -1,8 +1,8 @@ package coordinator import ( - "github.com/gohornet/hornet/pkg/keymanager" - "github.com/gohornet/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/keymanager" + "github.com/iotaledger/hornet/pkg/model/milestone" iotago "github.com/iotaledger/iota.go/v2" "github.com/iotaledger/iota.go/v2/ed25519" ) diff --git a/pkg/model/coordinator/state.go b/pkg/model/coordinator/state.go index 22b01730f..0884a5e9b 100644 --- a/pkg/model/coordinator/state.go +++ b/pkg/model/coordinator/state.go @@ -5,8 +5,8 @@ import ( "encoding/json" "time" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" ) // State stores the latest state of the coordinator. diff --git a/pkg/model/faucet/faucet.go b/pkg/model/faucet/faucet.go index 24a0e4307..e09b19c4e 100644 --- a/pkg/model/faucet/faucet.go +++ b/pkg/model/faucet/faucet.go @@ -10,22 +10,22 @@ import ( "github.com/labstack/echo/v4" "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/dag" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/model/syncmanager" - "github.com/gohornet/hornet/pkg/model/utxo" - "github.com/gohornet/hornet/pkg/pow" - "github.com/gohornet/hornet/pkg/restapi" - "github.com/gohornet/hornet/pkg/utils" - "github.com/gohornet/hornet/pkg/whiteflag" "github.com/iotaledger/hive.go/daemon" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/logger" "github.com/iotaledger/hive.go/serializer" "github.com/iotaledger/hive.go/syncutils" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/dag" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/syncmanager" + "github.com/iotaledger/hornet/pkg/model/utxo" + "github.com/iotaledger/hornet/pkg/pow" + "github.com/iotaledger/hornet/pkg/restapi" + "github.com/iotaledger/hornet/pkg/utils" + "github.com/iotaledger/hornet/pkg/whiteflag" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/faucet/faucet_test.go b/pkg/model/faucet/faucet_test.go index 150752d73..ef53caaf7 100644 --- a/pkg/model/faucet/faucet_test.go +++ b/pkg/model/faucet/faucet_test.go @@ -7,9 +7,9 @@ import ( iotago "github.com/iotaledger/iota.go/v2" - "github.com/gohornet/hornet/pkg/model/faucet/test" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/faucet/test" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" ) func TestSingleRequest(t *testing.T) { diff --git a/pkg/model/faucet/test/testenv.go b/pkg/model/faucet/test/testenv.go index c91669067..cb8233545 100644 --- a/pkg/model/faucet/test/testenv.go +++ b/pkg/model/faucet/test/testenv.go @@ -10,19 +10,19 @@ import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/dag" - "github.com/gohornet/hornet/pkg/model/faucet" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/model/utxo" - "github.com/gohornet/hornet/pkg/protocol/gossip" - "github.com/gohornet/hornet/pkg/testsuite" - "github.com/gohornet/hornet/pkg/testsuite/utils" - "github.com/gohornet/hornet/pkg/whiteflag" "github.com/iotaledger/hive.go/daemon" "github.com/iotaledger/hive.go/events" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/dag" + "github.com/iotaledger/hornet/pkg/model/faucet" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/utxo" + "github.com/iotaledger/hornet/pkg/protocol/gossip" + "github.com/iotaledger/hornet/pkg/testsuite" + "github.com/iotaledger/hornet/pkg/testsuite/utils" + "github.com/iotaledger/hornet/pkg/whiteflag" iotago "github.com/iotaledger/iota.go/v2" "github.com/iotaledger/iota.go/v2/pow" ) @@ -320,7 +320,7 @@ func (env *FaucetTestEnv) processFaucetRequests(preFlushFunc func() error) (horn tips = append(tips, messageID) wg.Done() }) - env.Faucet.Events.IssuedMessage.Attach(onFaucetIssuedMessage) + env.Faucet.Events.IssuedMessage.Hook(onFaucetIssuedMessage) defer env.Faucet.Events.IssuedMessage.Detach(onFaucetIssuedMessage) if preFlushFunc != nil { diff --git a/pkg/model/migrator/receipt.go b/pkg/model/migrator/receipt.go index 94ac799b3..770b8bb09 100644 --- a/pkg/model/migrator/receipt.go +++ b/pkg/model/migrator/receipt.go @@ -3,16 +3,15 @@ package migrator import ( "bytes" "fmt" - "io/ioutil" "os" "path" "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/utxo" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/utxo" "github.com/iotaledger/iota.go/encoding/t5b1" iotago "github.com/iotaledger/iota.go/v2" ) @@ -79,7 +78,7 @@ func (rs *ReceiptService) Backup(r *utxo.ReceiptTuple) error { if err != nil { return err } - if err := ioutil.WriteFile(receiptFileName, receiptJSON, os.ModePerm); err != nil { + if err := os.WriteFile(receiptFileName, receiptJSON, os.ModePerm); err != nil { return common.CriticalError(fmt.Errorf("unable to persist receipt onto disk: %w", err)) } return nil diff --git a/pkg/model/migrator/service.go b/pkg/model/migrator/service.go index 3a81ca398..a9e47b02d 100644 --- a/pkg/model/migrator/service.go +++ b/pkg/model/migrator/service.go @@ -7,12 +7,12 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/model/utxo" - "github.com/gohornet/hornet/pkg/utils" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/serializer" "github.com/iotaledger/hive.go/syncutils" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/model/utxo" + "github.com/iotaledger/hornet/pkg/utils" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/migrator/service_test.go b/pkg/model/migrator/service_test.go index 6ff4d3add..39e807698 100644 --- a/pkg/model/migrator/service_test.go +++ b/pkg/model/migrator/service_test.go @@ -2,7 +2,6 @@ package migrator_test import ( "context" - "io/ioutil" "log" "os" "path/filepath" @@ -11,14 +10,14 @@ import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/model/migrator" + "github.com/iotaledger/hornet/pkg/model/migrator" iotago "github.com/iotaledger/iota.go/v2" ) var stateFileName string func init() { - dir, err := ioutil.TempDir("", "migrator_test") + dir, err := os.MkdirTemp("", "migrator_test") if err != nil { log.Fatalf("failed to create temp dir: %s", err) } diff --git a/pkg/model/migrator/validator.go b/pkg/model/migrator/validator.go index e444e7795..14adf8473 100644 --- a/pkg/model/migrator/validator.go +++ b/pkg/model/migrator/validator.go @@ -9,8 +9,8 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/whiteflag" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/whiteflag" "github.com/iotaledger/iota.go/address" "github.com/iotaledger/iota.go/api" "github.com/iotaledger/iota.go/bundle" diff --git a/pkg/model/migrator/validator_test.go b/pkg/model/migrator/validator_test.go index c48b6a6c4..f991ec21e 100644 --- a/pkg/model/migrator/validator_test.go +++ b/pkg/model/migrator/validator_test.go @@ -6,7 +6,7 @@ import ( "github.com/pkg/errors" "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/model/migrator" + "github.com/iotaledger/hornet/pkg/model/migrator" "github.com/iotaledger/iota.go/address" "github.com/iotaledger/iota.go/api" "github.com/iotaledger/iota.go/encoding/t5b1" diff --git a/pkg/model/milestonemanager/milestone_manager.go b/pkg/model/milestonemanager/milestone_manager.go index 9d3b4fcba..212a90678 100644 --- a/pkg/model/milestonemanager/milestone_manager.go +++ b/pkg/model/milestonemanager/milestone_manager.go @@ -3,11 +3,11 @@ package milestonemanager import ( "time" - "github.com/gohornet/hornet/pkg/keymanager" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/model/syncmanager" "github.com/iotaledger/hive.go/events" + "github.com/iotaledger/hornet/pkg/keymanager" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/syncmanager" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/milestonemanager/milestones_manager_test.go b/pkg/model/milestonemanager/milestones_manager_test.go index 4fac10ffb..be69ddf6d 100644 --- a/pkg/model/milestonemanager/milestones_manager_test.go +++ b/pkg/model/milestonemanager/milestones_manager_test.go @@ -7,13 +7,13 @@ import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/keymanager" - "github.com/gohornet/hornet/pkg/model/coordinator" - "github.com/gohornet/hornet/pkg/model/milestonemanager" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/testsuite" - "github.com/gohornet/hornet/pkg/utils" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/keymanager" + "github.com/iotaledger/hornet/pkg/model/coordinator" + "github.com/iotaledger/hornet/pkg/model/milestonemanager" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/testsuite" + "github.com/iotaledger/hornet/pkg/utils" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/mselection/heaviest.go b/pkg/model/mselection/heaviest.go index 0a2c820b0..8bd539a85 100644 --- a/pkg/model/mselection/heaviest.go +++ b/pkg/model/mselection/heaviest.go @@ -9,9 +9,9 @@ import ( "github.com/bits-and-blooms/bitset" "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/utils" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/utils" ) var ( diff --git a/pkg/model/mselection/heaviest_test.go b/pkg/model/mselection/heaviest_test.go index abe990369..8b18c2010 100644 --- a/pkg/model/mselection/heaviest_test.go +++ b/pkg/model/mselection/heaviest_test.go @@ -9,12 +9,12 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/dag" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/testsuite" - "github.com/gohornet/hornet/pkg/whiteflag" + "github.com/iotaledger/hornet/pkg/dag" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/testsuite" + "github.com/iotaledger/hornet/pkg/whiteflag" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/participation/answer_test.go b/pkg/model/participation/answer_test.go index c7a851150..c02b56fc6 100644 --- a/pkg/model/participation/answer_test.go +++ b/pkg/model/participation/answer_test.go @@ -7,9 +7,9 @@ import ( "github.com/pkg/errors" "github.com/stretchr/testify/assert" - "github.com/gohornet/hornet/pkg/model/participation" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/participation" ) func RandValidAnswer() (*participation.Answer, []byte) { diff --git a/pkg/model/participation/ballot_test.go b/pkg/model/participation/ballot_test.go index 4d2bf2003..7e8acd740 100644 --- a/pkg/model/participation/ballot_test.go +++ b/pkg/model/participation/ballot_test.go @@ -6,9 +6,9 @@ import ( "github.com/pkg/errors" "github.com/stretchr/testify/assert" - "github.com/gohornet/hornet/pkg/model/participation" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/participation" ) func RandBallot(questionCount int) (*participation.Ballot, []byte) { diff --git a/pkg/model/participation/event.go b/pkg/model/participation/event.go index d8231936d..3a72723a2 100644 --- a/pkg/model/participation/event.go +++ b/pkg/model/participation/event.go @@ -10,8 +10,8 @@ import ( // import implementation "golang.org/x/crypto/blake2b" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/milestone" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/participation/event_builder.go b/pkg/model/participation/event_builder.go index 2a6d41758..afcaeba48 100644 --- a/pkg/model/participation/event_builder.go +++ b/pkg/model/participation/event_builder.go @@ -3,8 +3,8 @@ package participation import ( "fmt" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/milestone" ) // NewEventBuilder creates a new EventBuilder. diff --git a/pkg/model/participation/event_test.go b/pkg/model/participation/event_test.go index c076cc0fc..f26ce46b8 100644 --- a/pkg/model/participation/event_test.go +++ b/pkg/model/participation/event_test.go @@ -8,11 +8,11 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/participation" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" "github.com/iotaledger/hive.go/testutil" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/participation" ) const letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" diff --git a/pkg/model/participation/participation_manager.go b/pkg/model/participation/participation_manager.go index d01fd5146..0dc4662a1 100644 --- a/pkg/model/participation/participation_manager.go +++ b/pkg/model/participation/participation_manager.go @@ -6,13 +6,13 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/model/syncmanager" - "github.com/gohornet/hornet/pkg/model/utxo" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/serializer" "github.com/iotaledger/hive.go/syncutils" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/syncmanager" + "github.com/iotaledger/hornet/pkg/model/utxo" iotago "github.com/iotaledger/iota.go/v2" ) @@ -368,12 +368,12 @@ func (pm *ParticipationManager) ApplyNewLedgerUpdate(index milestone.Index, crea // applyNewUTXOForEvents checks if the new UTXO is part of a participation transaction. // The following rules must be satisfied: -// - Must be a value transaction -// - Inputs must all come from the same address. Multiple inputs are allowed. -// - Has a singular output going to the same address as all input addresses. -// - Output Type 0 (SigLockedSingleOutput) and Type 1 (SigLockedDustAllowanceOutput) are both valid for this. -// - The Indexation must match the configured Indexation. -// - The participation data must be parseable. +// - Must be a value transaction +// - Inputs must all come from the same address. Multiple inputs are allowed. +// - Has a singular output going to the same address as all input addresses. +// - Output Type 0 (SigLockedSingleOutput) and Type 1 (SigLockedDustAllowanceOutput) are both valid for this. +// - The Indexation must match the configured Indexation. +// - The participation data must be parseable. func (pm *ParticipationManager) applyNewUTXOForEvents(index milestone.Index, newOutput *utxo.Output, events map[EventID]*Event) error { messageID := newOutput.MessageID() diff --git a/pkg/model/participation/participation_manager_test.go b/pkg/model/participation/participation_manager_test.go index 043fa8f40..1848ab309 100644 --- a/pkg/model/participation/participation_manager_test.go +++ b/pkg/model/participation/participation_manager_test.go @@ -5,13 +5,13 @@ import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/participation" - "github.com/gohornet/hornet/pkg/model/participation/test" - "github.com/gohornet/hornet/pkg/model/storage" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/participation" + "github.com/iotaledger/hornet/pkg/model/participation/test" + "github.com/iotaledger/hornet/pkg/model/storage" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/participation/participation_store.go b/pkg/model/participation/participation_store.go index a82e82216..5553c5c06 100644 --- a/pkg/model/participation/participation_store.go +++ b/pkg/model/participation/participation_store.go @@ -3,13 +3,13 @@ package participation import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/model/utxo" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/utxo" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/participation/participation_test.go b/pkg/model/participation/participation_test.go index 7228adab5..a22c5203e 100644 --- a/pkg/model/participation/participation_test.go +++ b/pkg/model/participation/participation_test.go @@ -6,9 +6,9 @@ import ( "github.com/pkg/errors" "github.com/stretchr/testify/assert" - "github.com/gohornet/hornet/pkg/model/participation" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/participation" "github.com/iotaledger/iota.go/v2/tpkg" ) diff --git a/pkg/model/participation/participations_test.go b/pkg/model/participation/participations_test.go index 304c991a7..d50c31b93 100644 --- a/pkg/model/participation/participations_test.go +++ b/pkg/model/participation/participations_test.go @@ -7,9 +7,9 @@ import ( "github.com/pkg/errors" "github.com/stretchr/testify/assert" - "github.com/gohornet/hornet/pkg/model/participation" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/participation" ) func RandParticipations(participationCount int) (*participation.Participations, []byte) { diff --git a/pkg/model/participation/question_test.go b/pkg/model/participation/question_test.go index 51ef98ef6..819778167 100644 --- a/pkg/model/participation/question_test.go +++ b/pkg/model/participation/question_test.go @@ -7,9 +7,9 @@ import ( "github.com/pkg/errors" "github.com/stretchr/testify/assert" - "github.com/gohornet/hornet/pkg/model/participation" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/participation" ) func RandValidQuestion() (*participation.Question, []byte) { diff --git a/pkg/model/participation/staking_rewards_test.go b/pkg/model/participation/staking_rewards_test.go index 7a77379f0..20de56785 100644 --- a/pkg/model/participation/staking_rewards_test.go +++ b/pkg/model/participation/staking_rewards_test.go @@ -5,10 +5,10 @@ import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/participation" - "github.com/gohornet/hornet/pkg/model/participation/test" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/participation" + "github.com/iotaledger/hornet/pkg/model/participation/test" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/participation/staking_test.go b/pkg/model/participation/staking_test.go index 23301427b..3356e7fc9 100644 --- a/pkg/model/participation/staking_test.go +++ b/pkg/model/participation/staking_test.go @@ -8,9 +8,9 @@ import ( "github.com/stretchr/testify/assert" - "github.com/gohornet/hornet/pkg/model/participation" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/participation" ) func RandValidStaking() (*participation.Staking, []byte) { diff --git a/pkg/model/participation/status.go b/pkg/model/participation/status.go index 47d90e773..83e20241a 100644 --- a/pkg/model/participation/status.go +++ b/pkg/model/participation/status.go @@ -5,7 +5,7 @@ import ( "encoding/binary" "encoding/hex" - "github.com/gohornet/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/milestone" ) // AnswerStatus holds the current and accumulated vote for an answer. diff --git a/pkg/model/participation/test/builder.go b/pkg/model/participation/test/builder.go index c3b5c44f9..528c6eb96 100644 --- a/pkg/model/participation/test/builder.go +++ b/pkg/model/participation/test/builder.go @@ -3,13 +3,13 @@ package test import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/participation" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/participation" - "github.com/gohornet/hornet/pkg/model/utxo" - "github.com/gohornet/hornet/pkg/testsuite" - "github.com/gohornet/hornet/pkg/testsuite/utils" + "github.com/iotaledger/hornet/pkg/model/utxo" + "github.com/iotaledger/hornet/pkg/testsuite" + "github.com/iotaledger/hornet/pkg/testsuite/utils" ) type ParticipationHelper struct { diff --git a/pkg/model/participation/test/testenv.go b/pkg/model/participation/test/testenv.go index b347243b4..dd7d54449 100644 --- a/pkg/model/participation/test/testenv.go +++ b/pkg/model/participation/test/testenv.go @@ -8,15 +8,15 @@ import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/participation" - "github.com/gohornet/hornet/pkg/model/utxo" - "github.com/gohornet/hornet/pkg/testsuite" - "github.com/gohornet/hornet/pkg/testsuite/utils" - "github.com/gohornet/hornet/pkg/whiteflag" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/kvstore/mapdb" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/participation" + "github.com/iotaledger/hornet/pkg/model/utxo" + "github.com/iotaledger/hornet/pkg/testsuite" + "github.com/iotaledger/hornet/pkg/testsuite/utils" + "github.com/iotaledger/hornet/pkg/whiteflag" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/participation/tracked_participation.go b/pkg/model/participation/tracked_participation.go index 42eeedd05..c7642c1cb 100644 --- a/pkg/model/participation/tracked_participation.go +++ b/pkg/model/participation/tracked_participation.go @@ -1,10 +1,10 @@ package participation import ( - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/utxo" "github.com/iotaledger/hive.go/marshalutil" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/utxo" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/participation/tracked_participation_test.go b/pkg/model/participation/tracked_participation_test.go index cf3aedfb8..e1246cebb 100644 --- a/pkg/model/participation/tracked_participation_test.go +++ b/pkg/model/participation/tracked_participation_test.go @@ -7,12 +7,12 @@ import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/participation" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" "github.com/iotaledger/hive.go/testutil" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/participation" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/storage/child.go b/pkg/model/storage/child.go index afa71b585..92167a863 100644 --- a/pkg/model/storage/child.go +++ b/pkg/model/storage/child.go @@ -1,8 +1,8 @@ package storage import ( - "github.com/gohornet/hornet/pkg/model/hornet" "github.com/iotaledger/hive.go/objectstorage" + "github.com/iotaledger/hornet/pkg/model/hornet" ) type Child struct { diff --git a/pkg/model/storage/children_storage.go b/pkg/model/storage/children_storage.go index 9402be41d..682157cc3 100644 --- a/pkg/model/storage/children_storage.go +++ b/pkg/model/storage/children_storage.go @@ -3,11 +3,11 @@ package storage import ( "time" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/profile" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/objectstorage" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/profile" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/storage/health.go b/pkg/model/storage/health.go index 37ac1e831..79037e0d7 100644 --- a/pkg/model/storage/health.go +++ b/pkg/model/storage/health.go @@ -3,8 +3,8 @@ package storage import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/common" "github.com/iotaledger/hive.go/kvstore" + "github.com/iotaledger/hornet/pkg/common" ) type StoreHealthTracker struct { diff --git a/pkg/model/storage/indexation.go b/pkg/model/storage/indexation.go index 80b66da69..e99d54e8c 100644 --- a/pkg/model/storage/indexation.go +++ b/pkg/model/storage/indexation.go @@ -1,8 +1,8 @@ package storage import ( - "github.com/gohornet/hornet/pkg/model/hornet" "github.com/iotaledger/hive.go/objectstorage" + "github.com/iotaledger/hornet/pkg/model/hornet" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/storage/indexation_storage.go b/pkg/model/storage/indexation_storage.go index 8dffe5850..6693bdd88 100644 --- a/pkg/model/storage/indexation_storage.go +++ b/pkg/model/storage/indexation_storage.go @@ -3,11 +3,11 @@ package storage import ( "time" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/profile" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/objectstorage" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/profile" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/storage/message.go b/pkg/model/storage/message.go index f34420513..356b31aff 100644 --- a/pkg/model/storage/message.go +++ b/pkg/model/storage/message.go @@ -4,9 +4,9 @@ import ( "fmt" "sync" - "github.com/gohornet/hornet/pkg/model/hornet" "github.com/iotaledger/hive.go/objectstorage" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/hornet" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/storage/message_metadata.go b/pkg/model/storage/message_metadata.go index 2de407c8e..501fc67c4 100644 --- a/pkg/model/storage/message_metadata.go +++ b/pkg/model/storage/message_metadata.go @@ -4,12 +4,12 @@ import ( "fmt" "time" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/bitmask" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/objectstorage" "github.com/iotaledger/hive.go/syncutils" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/storage/messages_memcache.go b/pkg/model/storage/messages_memcache.go index b112d95c6..3ea3922cb 100644 --- a/pkg/model/storage/messages_memcache.go +++ b/pkg/model/storage/messages_memcache.go @@ -1,7 +1,7 @@ package storage import ( - "github.com/gohornet/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/hornet" ) type CachedMessageFunc func(messageID hornet.MessageID) (*CachedMessage, error) diff --git a/pkg/model/storage/messages_storage.go b/pkg/model/storage/messages_storage.go index 7da28abab..1e0f3ac7a 100644 --- a/pkg/model/storage/messages_storage.go +++ b/pkg/model/storage/messages_storage.go @@ -3,12 +3,12 @@ package storage import ( "time" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/profile" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/objectstorage" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/profile" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/storage/metadata_memcache.go b/pkg/model/storage/metadata_memcache.go index b74bb97e7..80ac5fb91 100644 --- a/pkg/model/storage/metadata_memcache.go +++ b/pkg/model/storage/metadata_memcache.go @@ -1,7 +1,7 @@ package storage import ( - "github.com/gohornet/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/hornet" ) type CachedMessageMetadataFunc func(messageID hornet.MessageID) (*CachedMetadata, error) diff --git a/pkg/model/storage/milestones.go b/pkg/model/storage/milestones.go index b1af7d51f..8fd265386 100644 --- a/pkg/model/storage/milestones.go +++ b/pkg/model/storage/milestones.go @@ -1,7 +1,7 @@ package storage import ( - "github.com/gohornet/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/milestone" ) func MilestoneCaller(handler interface{}, params ...interface{}) { diff --git a/pkg/model/storage/milestones_storage.go b/pkg/model/storage/milestones_storage.go index 53782fd81..b0197cd8a 100644 --- a/pkg/model/storage/milestones_storage.go +++ b/pkg/model/storage/milestones_storage.go @@ -5,17 +5,23 @@ import ( "fmt" "time" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/profile" + "github.com/pkg/errors" + "github.com/iotaledger/hive.go/byteutils" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/objectstorage" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/profile" iotago "github.com/iotaledger/iota.go/v2" ) +var ( + ErrMilestoneNotFound = errors.New("milestone not found") +) + func databaseKeyForMilestoneIndex(milestoneIndex milestone.Index) []byte { bytes := make([]byte, 4) binary.LittleEndian.PutUint32(bytes, uint32(milestoneIndex)) @@ -149,6 +155,28 @@ func (s *Storage) CachedMilestoneOrNil(milestoneIndex milestone.Index) *CachedMi return &CachedMilestone{CachedObject: cachedMilestone} } +// MilestoneTimestampByIndex returns the timestamp of a milestone. +func (s *Storage) MilestoneTimestampByIndex(milestoneIndex milestone.Index) (time.Time, error) { + cachedMilestone := s.CachedMilestoneOrNil(milestoneIndex) // milestone +1 + if cachedMilestone == nil { + return time.Time{}, ErrMilestoneNotFound + } + defer cachedMilestone.Release(true) // milestone -1 + + return cachedMilestone.Milestone().Timestamp, nil +} + +// MilestoneTimestampUnixByIndex returns the unix timestamp of a milestone. +func (s *Storage) MilestoneTimestampUnixByIndex(milestoneIndex milestone.Index) (int64, error) { + cachedMilestone := s.CachedMilestoneOrNil(milestoneIndex) // milestone +1 + if cachedMilestone == nil { + return 0, ErrMilestoneNotFound + } + defer cachedMilestone.Release(true) // milestone -1 + + return cachedMilestone.Milestone().Timestamp.Unix(), nil +} + // ContainsMilestone returns if the given milestone exists in the cache/persistence layer. func (s *Storage) ContainsMilestone(milestoneIndex milestone.Index, readOptions ...ReadOption) bool { return s.milestoneStorage.Contains(databaseKeyForMilestoneIndex(milestoneIndex), readOptions...) diff --git a/pkg/model/storage/snapshot.go b/pkg/model/storage/snapshot.go index 1c546e4d7..44cabd07d 100644 --- a/pkg/model/storage/snapshot.go +++ b/pkg/model/storage/snapshot.go @@ -6,9 +6,9 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/bitmask" "github.com/iotaledger/hive.go/marshalutil" + "github.com/iotaledger/hornet/pkg/model/milestone" ) var ( diff --git a/pkg/model/storage/snapshot_db.go b/pkg/model/storage/snapshot_db.go index 65e00b657..df7e7a16d 100644 --- a/pkg/model/storage/snapshot_db.go +++ b/pkg/model/storage/snapshot_db.go @@ -3,8 +3,8 @@ package storage import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/common" "github.com/iotaledger/hive.go/kvstore" + "github.com/iotaledger/hornet/pkg/common" ) func (s *Storage) configureSnapshotStore(snapshotStore kvstore.KVStore) error { diff --git a/pkg/model/storage/solid_entry_points.go b/pkg/model/storage/solid_entry_points.go index 5c26b53b7..7fcbc0fc1 100644 --- a/pkg/model/storage/solid_entry_points.go +++ b/pkg/model/storage/solid_entry_points.go @@ -7,9 +7,9 @@ import ( "fmt" "sort" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/syncutils" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" ) type SolidEntryPoint struct { diff --git a/pkg/model/storage/solid_entry_points_store.go b/pkg/model/storage/solid_entry_points_store.go index b16cf8838..dbcdf2fd2 100644 --- a/pkg/model/storage/solid_entry_points_store.go +++ b/pkg/model/storage/solid_entry_points_store.go @@ -3,8 +3,8 @@ package storage import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" ) var ( diff --git a/pkg/model/storage/storage.go b/pkg/model/storage/storage.go index 6840abd9e..402d8cfdf 100644 --- a/pkg/model/storage/storage.go +++ b/pkg/model/storage/storage.go @@ -3,12 +3,12 @@ package storage import ( "sync" - "github.com/gohornet/hornet/pkg/model/utxo" - "github.com/gohornet/hornet/pkg/profile" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/objectstorage" "github.com/iotaledger/hive.go/syncutils" + "github.com/iotaledger/hornet/pkg/model/utxo" + "github.com/iotaledger/hornet/pkg/profile" ) type packageEvents struct { @@ -238,6 +238,8 @@ func (s *Storage) profileCachesDisabled() *profile.Caches { } // profileLeakDetectionEnabled returns a Caches profile with caching disabled and leak detection enabled. +// +//nolint:unused func (s *Storage) profileCacheEnabled() *profile.Caches { return &profile.Caches{ Addresses: &profile.CacheOpts{ @@ -307,6 +309,8 @@ func (s *Storage) profileCacheEnabled() *profile.Caches { } // profileLeakDetectionEnabled returns a Caches profile with caching disabled and leak detection enabled. +// +//nolint:unused func (s *Storage) profileLeakDetectionEnabled() *profile.Caches { return &profile.Caches{ Addresses: &profile.CacheOpts{ diff --git a/pkg/model/storage/unreferenced_message.go b/pkg/model/storage/unreferenced_message.go index e53931142..2749215b4 100644 --- a/pkg/model/storage/unreferenced_message.go +++ b/pkg/model/storage/unreferenced_message.go @@ -3,9 +3,9 @@ package storage import ( "encoding/binary" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/objectstorage" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" ) type UnreferencedMessage struct { diff --git a/pkg/model/storage/unreferenced_message_storage.go b/pkg/model/storage/unreferenced_message_storage.go index bd19dd8ea..1d7201ff2 100644 --- a/pkg/model/storage/unreferenced_message_storage.go +++ b/pkg/model/storage/unreferenced_message_storage.go @@ -4,12 +4,12 @@ import ( "encoding/binary" "time" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/profile" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/objectstorage" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/profile" ) // CachedUnreferencedMessage represents a cached unreferenced message. diff --git a/pkg/model/syncmanager/sync_manager.go b/pkg/model/syncmanager/sync_manager.go index 7bdb55995..d554e6b86 100644 --- a/pkg/model/syncmanager/sync_manager.go +++ b/pkg/model/syncmanager/sync_manager.go @@ -5,15 +5,23 @@ import ( "fmt" "time" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/utxo" "github.com/iotaledger/hive.go/syncutils" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/utxo" ) const ( isNodeAlmostSyncedThreshold = 2 ) +type SyncState struct { + NodeSynced bool + NodeAlmostSynced bool + NodeSyncedWithinBelowMaxDepth bool + LatestMilestoneIndex milestone.Index + ConfirmedMilestoneIndex milestone.Index +} + type SyncManager struct { utxoManager *utxo.Manager // belowMaxDepth is the maximum allowed delta @@ -68,6 +76,21 @@ func (s *SyncManager) ResetMilestoneIndexes() { s.latestMilestoneIndex = 0 } +func (s *SyncManager) SyncState() *SyncState { + s.confirmedMilestoneLock.RLock() + s.latestMilestoneLock.RLock() + defer s.confirmedMilestoneLock.RUnlock() + defer s.latestMilestoneLock.RUnlock() + + return &SyncState{ + NodeSynced: s.isNodeSynced, + NodeAlmostSynced: s.isNodeAlmostSynced, + NodeSyncedWithinBelowMaxDepth: s.isNodeSyncedWithinBelowMaxDepth, + LatestMilestoneIndex: s.latestMilestoneIndex, + ConfirmedMilestoneIndex: s.confirmedMilestoneIndex, + } +} + // IsNodeSynced returns whether the node is synced. func (s *SyncManager) IsNodeSynced() bool { return s.isNodeSynced @@ -140,6 +163,7 @@ func (s *SyncManager) updateNodeSynced(confirmedIndex, latestIndex milestone.Ind s.isNodeSynced = false s.isNodeAlmostSynced = false s.isNodeSyncedWithinBelowMaxDepth = false + return } @@ -164,6 +188,7 @@ func (s *SyncManager) updateNodeSynced(confirmedIndex, latestIndex milestone.Ind if latestIndex < isNodeAlmostSyncedThreshold { s.isNodeAlmostSynced = true s.isNodeSyncedWithinBelowMaxDepth = true + return } s.isNodeAlmostSynced = confirmedIndex >= (latestIndex - isNodeAlmostSyncedThreshold) @@ -171,6 +196,7 @@ func (s *SyncManager) updateNodeSynced(confirmedIndex, latestIndex milestone.Ind // catch overflow if latestIndex < s.belowMaxDepth { s.isNodeSyncedWithinBelowMaxDepth = true + return } s.isNodeSyncedWithinBelowMaxDepth = confirmedIndex >= (latestIndex - s.belowMaxDepth) @@ -191,6 +217,7 @@ func (s *SyncManager) SetConfirmedMilestoneIndex(index milestone.Index, updateSy } s.updateNodeSynced(index, s.LatestMilestoneIndex()) + return nil } @@ -221,6 +248,7 @@ func (s *SyncManager) SetLatestMilestoneIndex(index milestone.Index, updateSynce if s.latestMilestoneIndex >= index { // current LMI is bigger than new LMI => abort s.latestMilestoneLock.Unlock() + return false } diff --git a/pkg/model/utxo/balances.go b/pkg/model/utxo/balances.go index 1d9ce1e17..048bc34fb 100644 --- a/pkg/model/utxo/balances.go +++ b/pkg/model/utxo/balances.go @@ -6,11 +6,11 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/byteutils" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/milestone" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/utxo/marshalutils_helper.go b/pkg/model/utxo/marshalutils_helper.go index 5a0a2aefe..1ef9cb063 100644 --- a/pkg/model/utxo/marshalutils_helper.go +++ b/pkg/model/utxo/marshalutils_helper.go @@ -1,9 +1,9 @@ package utxo import ( - "github.com/gohornet/hornet/pkg/model/hornet" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/hornet" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/utxo/milestone_diff.go b/pkg/model/utxo/milestone_diff.go index c886a6a4a..c6b634ccf 100644 --- a/pkg/model/utxo/milestone_diff.go +++ b/pkg/model/utxo/milestone_diff.go @@ -6,9 +6,9 @@ import ( "fmt" "sort" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/marshalutil" + "github.com/iotaledger/hornet/pkg/model/milestone" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/utxo/milestone_diff_test.go b/pkg/model/utxo/milestone_diff_test.go index b2e2724d6..5af90c259 100644 --- a/pkg/model/utxo/milestone_diff_test.go +++ b/pkg/model/utxo/milestone_diff_test.go @@ -8,9 +8,9 @@ import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/byteutils" "github.com/iotaledger/hive.go/kvstore/mapdb" + "github.com/iotaledger/hornet/pkg/model/milestone" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/utxo/output.go b/pkg/model/utxo/output.go index a09c1df3b..588ebd678 100644 --- a/pkg/model/utxo/output.go +++ b/pkg/model/utxo/output.go @@ -7,11 +7,11 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/model/hornet" "github.com/iotaledger/hive.go/byteutils" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/hornet" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/utxo/output_test.go b/pkg/model/utxo/output_test.go index 4b0e6627d..5f066de47 100644 --- a/pkg/model/utxo/output_test.go +++ b/pkg/model/utxo/output_test.go @@ -7,9 +7,9 @@ import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/model/hornet" "github.com/iotaledger/hive.go/byteutils" "github.com/iotaledger/hive.go/kvstore/mapdb" + "github.com/iotaledger/hornet/pkg/model/hornet" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/utxo/receipt.go b/pkg/model/utxo/receipt.go index 875ba5398..8f1fa9396 100644 --- a/pkg/model/utxo/receipt.go +++ b/pkg/model/utxo/receipt.go @@ -3,11 +3,11 @@ package utxo import ( "encoding/binary" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/utxo/spent.go b/pkg/model/utxo/spent.go index 1f402dca8..c52f9b991 100644 --- a/pkg/model/utxo/spent.go +++ b/pkg/model/utxo/spent.go @@ -3,12 +3,12 @@ package utxo import ( "bytes" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/byteutils" "github.com/iotaledger/hive.go/kvstore" "github.com/iotaledger/hive.go/marshalutil" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/utxo/spent_test.go b/pkg/model/utxo/spent_test.go index c1bc95523..0c5f1a019 100644 --- a/pkg/model/utxo/spent_test.go +++ b/pkg/model/utxo/spent_test.go @@ -6,10 +6,10 @@ import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/byteutils" "github.com/iotaledger/hive.go/kvstore/mapdb" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/model/milestone" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/utxo/utxo.go b/pkg/model/utxo/utxo.go index f80df9b7b..0a17f482a 100644 --- a/pkg/model/utxo/utxo.go +++ b/pkg/model/utxo/utxo.go @@ -9,8 +9,8 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/kvstore" + "github.com/iotaledger/hornet/pkg/model/milestone" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/model/utxo/utxo_test.go b/pkg/model/utxo/utxo_test.go index 33b0c98aa..70b3e4aaf 100644 --- a/pkg/model/utxo/utxo_test.go +++ b/pkg/model/utxo/utxo_test.go @@ -5,8 +5,8 @@ import ( "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/kvstore/mapdb" + "github.com/iotaledger/hornet/pkg/model/milestone" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/p2p/autopeering/autopeering.go b/pkg/p2p/autopeering/autopeering.go index f1dc9a093..eaaf0fe81 100644 --- a/pkg/p2p/autopeering/autopeering.go +++ b/pkg/p2p/autopeering/autopeering.go @@ -10,13 +10,11 @@ import ( "github.com/pkg/errors" - "github.com/libp2p/go-libp2p-core/crypto" - peer2 "github.com/libp2p/go-libp2p-core/peer" + "github.com/libp2p/go-libp2p/core/crypto" + peer2 "github.com/libp2p/go-libp2p/core/peer" "github.com/mr-tron/base58/base58" "github.com/multiformats/go-multiaddr" - "github.com/gohornet/hornet/pkg/p2p" - "github.com/gohornet/hornet/pkg/utils" "github.com/iotaledger/hive.go/autopeering/discover" "github.com/iotaledger/hive.go/autopeering/peer" "github.com/iotaledger/hive.go/autopeering/peer/service" @@ -27,6 +25,8 @@ import ( "github.com/iotaledger/hive.go/iputils" "github.com/iotaledger/hive.go/logger" "github.com/iotaledger/hive.go/netutil" + "github.com/iotaledger/hornet/pkg/p2p" + "github.com/iotaledger/hornet/pkg/utils" ) const ( @@ -386,7 +386,13 @@ func (a *AutopeeringManager) Init(localPeerContainer *LocalPeerContainer, initSe return true } - a.selectionProtocol = selection.New(localPeerContainer.Local(), a.discoveryProtocol, selection.Logger(a.LoggerNamed("sel")), selection.NeighborValidator(selection.ValidatorFunc(isValidPeer))) + a.selectionProtocol = selection.New( + localPeerContainer.Local(), + a.discoveryProtocol, + selection.Logger(a.LoggerNamed("sel")), + selection.NeighborValidator(selection.ValidatorFunc(isValidPeer)), + selection.NeighborBlockDuration(0), // disable neighbor block duration (we manually block neighbors) + ) } func (a *AutopeeringManager) Run(ctx context.Context) { diff --git a/pkg/p2p/autopeering/autopeering_test.go b/pkg/p2p/autopeering/autopeering_test.go index a7521eba8..243c57c4a 100644 --- a/pkg/p2p/autopeering/autopeering_test.go +++ b/pkg/p2p/autopeering/autopeering_test.go @@ -7,7 +7,7 @@ import ( "github.com/multiformats/go-multiaddr" "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/p2p/autopeering" + "github.com/iotaledger/hornet/pkg/p2p/autopeering" ) func TestMultiAddrAutopeeringProtocol(t *testing.T) { diff --git a/pkg/p2p/autopeering/local.go b/pkg/p2p/autopeering/local.go index fb3c136ac..0638ada6f 100644 --- a/pkg/p2p/autopeering/local.go +++ b/pkg/p2p/autopeering/local.go @@ -9,7 +9,7 @@ import ( "github.com/multiformats/go-multiaddr" - "github.com/gohornet/hornet/pkg/database" + "github.com/iotaledger/hornet/pkg/database" "github.com/iotaledger/hive.go/autopeering/peer" "github.com/iotaledger/hive.go/autopeering/peer/service" diff --git a/pkg/p2p/config_manager.go b/pkg/p2p/config_manager.go index a497a124f..9cfda88bc 100644 --- a/pkg/p2p/config_manager.go +++ b/pkg/p2p/config_manager.go @@ -3,7 +3,7 @@ package p2p import ( "sync" - "github.com/libp2p/go-libp2p-core/peer" + "github.com/libp2p/go-libp2p/core/peer" "github.com/multiformats/go-multiaddr" "github.com/pkg/errors" ) diff --git a/pkg/p2p/identity.go b/pkg/p2p/identity.go index df0a5aefa..4370828e5 100644 --- a/pkg/p2p/identity.go +++ b/pkg/p2p/identity.go @@ -8,23 +8,22 @@ import ( "encoding/hex" "encoding/pem" "fmt" - "io/ioutil" "os" "path/filepath" "runtime" "github.com/ipfs/go-datastore/query" badger "github.com/ipfs/go-ds-badger" - "github.com/libp2p/go-libp2p-core/crypto" - "github.com/libp2p/go-libp2p-core/peer" - "github.com/libp2p/go-libp2p-core/peerstore" - "github.com/libp2p/go-libp2p-peerstore/pstoreds" + "github.com/libp2p/go-libp2p/core/crypto" + "github.com/libp2p/go-libp2p/core/peer" + "github.com/libp2p/go-libp2p/core/peerstore" + "github.com/libp2p/go-libp2p/p2p/host/peerstore/pstoreds" "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/database" - "github.com/gohornet/hornet/pkg/utils" kvstoreds "github.com/iotaledger/go-ds-kvstore" "github.com/iotaledger/hive.go/kvstore" + "github.com/iotaledger/hornet/pkg/database" + "github.com/iotaledger/hornet/pkg/utils" ) const ( @@ -91,8 +90,8 @@ func NewPeerStoreContainer(peerStorePath string, dbEngine database.Engine, creat }, nil } -// parseEd25519PrivateKeyFromString parses an Ed25519 private key from a hex encoded string. -func parseEd25519PrivateKeyFromString(identityPrivKey string) (crypto.PrivKey, error) { +// ParseEd25519PrivateKeyFromString parses an Ed25519 private key from a hex encoded string. +func ParseEd25519PrivateKeyFromString(identityPrivKey string) (crypto.PrivKey, error) { if identityPrivKey == "" { return nil, ErrNoPrivKeyFound } @@ -181,7 +180,7 @@ func WriteEd25519PrivateKeyToPEMFile(filepath string, privateKey crypto.PrivKey) // or creates a new one and stores it as a PEM file in the p2p store folder. func LoadOrCreateIdentityPrivateKey(p2pStorePath string, identityPrivKey string) (crypto.PrivKey, bool, error) { - privKeyFromConfig, err := parseEd25519PrivateKeyFromString(identityPrivKey) + privKeyFromConfig, err := ParseEd25519PrivateKeyFromString(identityPrivKey) if err != nil { if errors.Is(err, ErrPrivKeyInvalid) { return nil, false, errors.New("configuration contains an invalid private key") @@ -301,7 +300,7 @@ func MigrateDeprecatedPeerStore(p2pStorePath string, identityPrivKey string, new return false, err } - privKey, err := parseEd25519PrivateKeyFromString(identityPrivKey) + privKey, err := ParseEd25519PrivateKeyFromString(identityPrivKey) if err != nil { if errors.Is(err, ErrPrivKeyInvalid) { return false, errors.New("configuration contains an invalid private key") @@ -312,7 +311,7 @@ func MigrateDeprecatedPeerStore(p2pStorePath string, identityPrivKey string, new } // there was no private key specified, retrieve it from the peer store with the public key from the deprecated file - existingPubKeyBytes, err := ioutil.ReadFile(deprecatedPubKeyFilePath) + existingPubKeyBytes, err := os.ReadFile(deprecatedPubKeyFilePath) if err != nil { return false, fmt.Errorf("unable to read deprecated public key file for peer identity: %w", err) } diff --git a/pkg/p2p/manager.go b/pkg/p2p/manager.go index 07ede4010..0b0da9094 100644 --- a/pkg/p2p/manager.go +++ b/pkg/p2p/manager.go @@ -6,16 +6,16 @@ import ( "math/rand" "time" - "github.com/libp2p/go-libp2p-core/host" - "github.com/libp2p/go-libp2p-core/network" - "github.com/libp2p/go-libp2p-core/peer" + "github.com/libp2p/go-libp2p/core/host" + "github.com/libp2p/go-libp2p/core/network" + "github.com/libp2p/go-libp2p/core/peer" "github.com/multiformats/go-multiaddr" "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/utils" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/logger" "github.com/iotaledger/hive.go/typeutils" + "github.com/iotaledger/hornet/pkg/utils" ) const ( @@ -101,11 +101,13 @@ type ManagerEvents struct { // PeerCaller gets called with a Peer. func PeerCaller(handler interface{}, params ...interface{}) { + //nolint:forcetypeassert // we will replace that with generic events anyway handler.(func(*Peer))(params[0].(*Peer)) } // PeerIDCaller gets called with a peer.ID. func PeerIDCaller(handler interface{}, params ...interface{}) { + //nolint:forcetypeassert // we will replace that with generic events anyway handler.(func(peer.ID))(params[0].(peer.ID)) } @@ -117,26 +119,31 @@ type PeerOptError struct { // PeerOptErrorCaller gets called with a Peer and an error. func PeerOptErrorCaller(handler interface{}, params ...interface{}) { + //nolint:forcetypeassert // we will replace that with generic events anyway handler.(func(*PeerOptError))(params[0].(*PeerOptError)) } // ManagerStateCaller gets called with a ManagerState. func ManagerStateCaller(handler interface{}, params ...interface{}) { + //nolint:forcetypeassert // we will replace that with generic events anyway handler.(func(ManagerState))(params[0].(ManagerState)) } // PeerDurationCaller gets called with a Peer and a time.Duration. func PeerDurationCaller(handler interface{}, params ...interface{}) { + //nolint:forcetypeassert // we will replace that with generic events anyway handler.(func(*Peer, time.Duration))(params[0].(*Peer), params[1].(time.Duration)) } // PeerConnCaller gets called with a Peer and its associated network.Conn. func PeerConnCaller(handler interface{}, params ...interface{}) { + //nolint:forcetypeassert // we will replace that with generic events anyway handler.(func(*Peer, network.Conn))(params[0].(*Peer), params[1].(network.Conn)) } // PeerRelationCaller gets called with a Peer and its old PeerRelation. func PeerRelationCaller(handler interface{}, params ...interface{}) { + //nolint:forcetypeassert // we will replace that with generic events anyway handler.(func(p *Peer, old PeerRelation))(params[0].(*Peer), params[1].(PeerRelation)) } @@ -185,7 +192,9 @@ func (mo *ManagerOptions) apply(opts ...ManagerOption) { func (mo *ManagerOptions) reconnectDelay() time.Duration { recInter := mo.reconnectInterval jitter := mo.reconnectIntervalJitter + //nolint:gosec // we don't care about weak random numbers here delayJitter := rand.Int63n(int64(jitter)) + return recInter + time.Duration(delayJitter) } @@ -210,25 +219,28 @@ func NewManager(host host.Host, opts ...ManagerOption) *Manager { StateChange: events.NewEvent(ManagerStateCaller), Error: events.NewEvent(events.ErrorCaller), }, - host: host, - peers: map[peer.ID]*Peer{}, - allowedPeers: map[peer.ID]struct{}{}, - opts: mngOpts, - stopped: typeutils.NewAtomicBool(), - connectPeerChan: make(chan *connectpeermsg, 10), - disconnectPeerChan: make(chan *disconnectpeermsg, 10), - isConnectedReqChan: make(chan *isconnectedrequestmsg, 10), - allowPeerChan: make(chan *allowpeermsg, 10), - disallowPeerChan: make(chan *disallowpeermsg, 10), - isAllowedReqChan: make(chan *isallowedrequestmsg, 10), - connectedChan: make(chan *connectionmsg, 10), - disconnectedChan: make(chan *disconnectmsg, 10), - reconnectChan: make(chan *reconnectmsg, 100), - forEachChan: make(chan *foreachmsg, 10), - callChan: make(chan *callmsg, 10), + host: host, + peers: map[peer.ID]*Peer{}, + allowedPeers: map[peer.ID]struct{}{}, + opts: mngOpts, + stopped: typeutils.NewAtomicBool(), + connectPeerChan: make(chan *connectpeermsg, 10), + connectPeerAttemptChan: make(chan *connectpeerattemptmsg, 10), + reconnectChan: make(chan *reconnectmsg, 100), + reconnectAttemptChan: make(chan *reconnectattemptmsg, 100), + disconnectPeerChan: make(chan *disconnectpeermsg, 10), + isConnectedReqChan: make(chan *isconnectedrequestmsg, 10), + allowPeerChan: make(chan *allowpeermsg, 10), + disallowPeerChan: make(chan *disallowpeermsg, 10), + isAllowedReqChan: make(chan *isallowedrequestmsg, 10), + connectedChan: make(chan *connectionmsg, 10), + disconnectedChan: make(chan *disconnectmsg, 10), + forEachChan: make(chan *foreachmsg, 10), + callChan: make(chan *callmsg, 10), } peeringManager.WrappedLogger = utils.NewWrappedLogger(peeringManager.opts.logger) peeringManager.configureEvents() + return peeringManager } @@ -251,19 +263,21 @@ type Manager struct { // tells whether the manager was shut down. stopped *typeutils.AtomicBool // event loop channels - connectPeerChan chan *connectpeermsg - disconnectPeerChan chan *disconnectpeermsg - isConnectedReqChan chan *isconnectedrequestmsg - allowPeerChan chan *allowpeermsg - disallowPeerChan chan *disallowpeermsg - isAllowedReqChan chan *isallowedrequestmsg - connectedChan chan *connectionmsg - disconnectedChan chan *disconnectmsg - reconnectChan chan *reconnectmsg - forEachChan chan *foreachmsg - callChan chan *callmsg - - // closures + connectPeerChan chan *connectpeermsg + connectPeerAttemptChan chan *connectpeerattemptmsg + reconnectChan chan *reconnectmsg + reconnectAttemptChan chan *reconnectattemptmsg + disconnectPeerChan chan *disconnectpeermsg + isConnectedReqChan chan *isconnectedrequestmsg + allowPeerChan chan *allowpeermsg + disallowPeerChan chan *disallowpeermsg + isAllowedReqChan chan *isallowedrequestmsg + connectedChan chan *connectionmsg + disconnectedChan chan *disconnectmsg + forEachChan chan *foreachmsg + callChan chan *callmsg + + // closures. onP2PManagerConnect *events.Closure onP2PManagerConnected *events.Closure onP2PManagerDisconnect *events.Closure @@ -308,7 +322,7 @@ func (m *Manager) shutdown() { m.stopped.Set() // drain all outstanding requests of the event loop. - // we do not care about correct handling of the channels, because we are shutting down anyway. + // we don't care about correct handling of the channels, because we are shutting down anyway. drainLoop: for { select { @@ -316,6 +330,14 @@ drainLoop: // do not connect to the peer connectPeerMsg.back <- ErrManagerShutdown + case connectPeerAttemptMsg := <-m.connectPeerAttemptChan: + // do not connect to the peer + connectPeerAttemptMsg.back <- ErrManagerShutdown + + case <-m.reconnectChan: + + case <-m.reconnectAttemptChan: + case disconnectPeerMsg := <-m.disconnectPeerChan: disconnectPeerMsg.back <- ErrManagerShutdown @@ -335,8 +357,6 @@ drainLoop: case <-m.disconnectedChan: - case <-m.reconnectChan: - case forEachMsg := <-m.forEachChan: forEachMsg.back <- struct{}{} @@ -363,6 +383,7 @@ func (m *Manager) ConnectPeer(addrInfo *peer.AddrInfo, peerRelation PeerRelation } back := make(chan error) m.connectPeerChan <- &connectpeermsg{addrInfo: addrInfo, peerRelation: peerRelation, back: back, alias: al} + return <-back } @@ -379,6 +400,7 @@ func (m *Manager) DisconnectPeer(peerID peer.ID, disconnectReason ...error) erro reason = disconnectReason[0] } m.disconnectPeerChan <- &disconnectpeermsg{peerID: peerID, reason: reason, back: back} + return <-back } @@ -390,6 +412,7 @@ func (m *Manager) IsConnected(peerID peer.ID) bool { back := make(chan bool) m.isConnectedReqChan <- &isconnectedrequestmsg{peerID: peerID, back: back} + return <-back } @@ -401,6 +424,7 @@ func (m *Manager) AllowPeer(peerID peer.ID) error { back := make(chan error) m.allowPeerChan <- &allowpeermsg{peerID: peerID, back: back} + return <-back } @@ -412,6 +436,7 @@ func (m *Manager) DisallowPeer(peerID peer.ID) error { back := make(chan error) m.disallowPeerChan <- &disallowpeermsg{peerID: peerID, back: back} + return <-back } @@ -423,6 +448,7 @@ func (m *Manager) IsAllowed(peerID peer.ID) bool { back := make(chan bool) m.isAllowedReqChan <- &isallowedrequestmsg{peerID: peerID, back: back} + return <-back } @@ -451,8 +477,10 @@ func (m *Manager) ConnectedCount(relation ...PeerRelation) int { if m.host.Network().Connectedness(p.ID) == network.Connected { count++ } + return true }, relation...) + return count } @@ -464,6 +492,7 @@ func (m *Manager) PeerInfoSnapshot(id peer.ID) *PeerInfoSnapshot { info = p.InfoSnapshot() info.Connected = m.host.Network().Connectedness(p.ID) == network.Connected }) + return info } @@ -474,8 +503,10 @@ func (m *Manager) PeerInfoSnapshots() []*PeerInfoSnapshot { info := p.InfoSnapshot() info.Connected = m.host.Network().Connectedness(p.ID) == network.Connected infos = append(infos, info) + return true }) + return infos } @@ -501,6 +532,25 @@ type connectpeermsg struct { back chan error } +type connectpeerattemptmsg struct { + addrInfo *peer.AddrInfo + peerRelation PeerRelation + alias string + back chan error + connect bool + connectErr error +} + +type reconnectmsg struct { + peerID peer.ID +} + +type reconnectattemptmsg struct { + peerID peer.ID + reconnect bool + connectErr error +} + type connectionmsg struct { net network.Network conn network.Conn @@ -538,10 +588,6 @@ type isallowedrequestmsg struct { back chan bool } -type reconnectmsg struct { - peerID peer.ID -} - type foreachmsg struct { f PeerForEachFunc back chan struct{} @@ -563,18 +609,50 @@ func (m *Manager) eventLoop(ctx context.Context) { select { case <-ctx.Done(): m.shutdown() + return case connectPeerMsg := <-m.connectPeerChan: - err := m.connectPeer(connectPeerMsg.addrInfo, connectPeerMsg.peerRelation, connectPeerMsg.alias) - if err != nil { - m.Events.Error.Trigger(fmt.Errorf("error connect to %s (%v): %w", connectPeerMsg.addrInfo.ID.ShortString(), connectPeerMsg.addrInfo.Addrs, err)) + m.connectPeer(ctx, connectPeerMsg) + + case connectPeerAttemptMsg := <-m.connectPeerAttemptChan: + if connectPeerAttemptMsg.connectErr != nil { + if connectPeerAttemptMsg.connect { + // unsuccessful connect: + // get rid of the peer instance if the relation is unknown + // or initiate a reconnect timer + m.cleanupPeerIfNotKnown(connectPeerAttemptMsg.addrInfo.ID) + m.scheduleReconnectIfKnown(connectPeerAttemptMsg.addrInfo.ID) + } + + m.Events.Error.Trigger(fmt.Errorf("error connect to %s (%v): %w", connectPeerAttemptMsg.addrInfo.ID.ShortString(), connectPeerAttemptMsg.addrInfo.Addrs, connectPeerAttemptMsg.connectErr)) + + if errors.Is(connectPeerAttemptMsg.connectErr, ErrPeerInManagerAlready) { + m.updateRelation(connectPeerAttemptMsg.addrInfo.ID, connectPeerAttemptMsg.peerRelation) + m.updateAlias(connectPeerAttemptMsg.addrInfo.ID, connectPeerAttemptMsg.alias) + } } - if errors.Is(err, ErrPeerInManagerAlready) { - m.updateRelation(connectPeerMsg.addrInfo.ID, connectPeerMsg.peerRelation) - m.updateAlias(connectPeerMsg.addrInfo.ID, connectPeerMsg.alias) + connectPeerAttemptMsg.back <- connectPeerAttemptMsg.connectErr + + case reconnectMsg := <-m.reconnectChan: + m.reconnectPeer(ctx, reconnectMsg.peerID) + + case reconnectAttemptMsg := <-m.reconnectAttemptChan: + if reconnectAttemptMsg.connectErr != nil { + // unsuccessful connect: + // get rid of the peer instance if the relation is unknown + // or initiate a reconnect timer + m.cleanupPeerIfNotKnown(reconnectAttemptMsg.peerID) + m.scheduleReconnectIfKnown(reconnectAttemptMsg.peerID) + + m.Events.Error.Trigger(fmt.Errorf("error reconnect %s: %w", reconnectAttemptMsg.peerID.ShortString(), reconnectAttemptMsg.connectErr)) + + continue } - connectPeerMsg.back <- err + if !reconnectAttemptMsg.reconnect { + continue + } + m.Events.Reconnected.Trigger(m.peers[reconnectAttemptMsg.peerID]) case disconnectPeerMsg := <-m.disconnectPeerChan: p := m.peers[disconnectPeerMsg.peerID] @@ -602,17 +680,6 @@ func (m *Manager) eventLoop(ctx context.Context) { allowed := m.isAllowed(isAllowedReqMsg.peerID) isAllowedReqMsg.back <- allowed - case reconnectMsg := <-m.reconnectChan: - reconnect, err := m.reconnectPeer(reconnectMsg.peerID) - if err != nil { - m.Events.Error.Trigger(fmt.Errorf("error reconnect %s: %w", reconnectMsg.peerID.ShortString(), err)) - continue - } - if !reconnect { - continue - } - m.Events.Reconnected.Trigger(m.peers[reconnectMsg.peerID]) - case isConnectedReqMsg := <-m.isConnectedReqChan: connected := m.isConnected(isConnectedReqMsg.peerID) isConnectedReqMsg.back <- connected @@ -656,24 +723,110 @@ func (m *Manager) eventLoop(ctx context.Context) { // connects to the given peer if it isn't already connected and if its relation is PeerRelationKnown, // then the connection to the peer is further protected from trimming. -func (m *Manager) connectPeer(addrInfo *peer.AddrInfo, relation PeerRelation, alias string) error { - if _, has := m.peers[addrInfo.ID]; has { - return ErrPeerInManagerAlready +func (m *Manager) connectPeer(ctx context.Context, connectPeerMsg *connectpeermsg) { + + if _, has := m.peers[connectPeerMsg.addrInfo.ID]; has { + m.connectPeerAttemptChan <- &connectpeerattemptmsg{ + addrInfo: connectPeerMsg.addrInfo, + peerRelation: connectPeerMsg.peerRelation, + alias: connectPeerMsg.alias, + // pass the error channel of the caller to the connectPeerAttemptChan + back: connectPeerMsg.back, + connect: false, + connectErr: ErrPeerInManagerAlready, + } + + return } - if addrInfo.ID == m.host.ID() { - return ErrCantConnectToItself + if connectPeerMsg.addrInfo.ID == m.host.ID() { + m.connectPeerAttemptChan <- &connectpeerattemptmsg{ + addrInfo: connectPeerMsg.addrInfo, + peerRelation: connectPeerMsg.peerRelation, + alias: connectPeerMsg.alias, + // pass the error channel of the caller to the connectPeerAttemptChan + back: connectPeerMsg.back, + connect: false, + connectErr: ErrCantConnectToItself, + } + + return } - p := NewPeer(addrInfo.ID, relation, addrInfo.Addrs, alias) + p := NewPeer(connectPeerMsg.addrInfo.ID, connectPeerMsg.peerRelation, connectPeerMsg.addrInfo.Addrs, connectPeerMsg.alias) if p.Relation == PeerRelationKnown || p.Relation == PeerRelationAutopeered { - m.host.ConnManager().Protect(addrInfo.ID, PeerConnectivityProtectionTag) + m.host.ConnManager().Protect(connectPeerMsg.addrInfo.ID, PeerConnectivityProtectionTag) } - m.peers[addrInfo.ID] = p + m.peers[connectPeerMsg.addrInfo.ID] = p m.Events.Connect.Trigger(p) - return m.connect(*addrInfo) + // perform an actual connection attempt to the given peer. + // connection attempts should happen in a separate goroutine + go func() { + ctxConnect, cancelConnect := context.WithTimeout(ctx, connTimeout) + defer cancelConnect() + + // if the connection fails, the peer is either cleared from the Manager if its relation is PeerRelationUnknown + // or a reconnect attempt is scheduled if it is PeerRelationKnown. + // this is done in via the connectPeerAttemptChan. + m.connectPeerAttemptChan <- &connectpeerattemptmsg{ + addrInfo: connectPeerMsg.addrInfo, + peerRelation: connectPeerMsg.peerRelation, + alias: connectPeerMsg.alias, + // pass the error channel of the caller to the connectPeerAttemptChan + back: connectPeerMsg.back, + connect: true, + connectErr: m.host.Connect(ctxConnect, *connectPeerMsg.addrInfo), + } + }() +} + +// reconnect peer does a connection attempt to the given peer but only +// if its relation is PeerRelationKnown. +func (m *Manager) reconnectPeer(ctx context.Context, peerID peer.ID) { + p, has := m.peers[peerID] + if !has { + // directly return the result of the reconnect attempt + m.reconnectAttemptChan <- &reconnectattemptmsg{ + peerID: peerID, + reconnect: false, + connectErr: nil, + } + + return + } + + if p.Relation != PeerRelationKnown || p.reconnectTimer == nil { + // directly return the result of the reconnect attempt + m.reconnectAttemptChan <- &reconnectattemptmsg{ + peerID: peerID, + reconnect: false, + connectErr: nil, + } + + return + } + + m.Events.Reconnecting.Trigger(p) + + addrInfo := peer.AddrInfo{ID: peerID, Addrs: p.Addrs} + + // perform an actual connection attempt to the given peer. + // connection attempts should happen in a separate goroutine + go func() { + ctxConnect, cancelConnect := context.WithTimeout(ctx, connTimeout) + defer cancelConnect() + + // if the connection fails, the peer is either cleared from the Manager if its relation is PeerRelationUnknown + // or a reconnect attempt is scheduled if it is PeerRelationKnown. + // this is done in via the reconnectAttemptChan. + m.reconnectAttemptChan <- &reconnectattemptmsg{ + peerID: peerID, + reconnect: true, + connectErr: m.host.Connect(ctxConnect, addrInfo), + } + }() } // disconnects and removes the given peer from the Manager. @@ -686,6 +839,7 @@ func (m *Manager) disconnectPeer(peerID peer.ID) (bool, error) { m.host.ConnManager().Unprotect(peerID, PeerConnectivityProtectionTag) delete(m.peers, peerID) m.Events.Disconnect.Trigger(p) + return true, m.host.Network().ClosePeer(peerID) } @@ -718,6 +872,7 @@ func (m *Manager) disallowPeer(peerID peer.ID) { // checks whether the given peer is allowed to connect (autopeering). func (m *Manager) isAllowed(peerID peer.ID) bool { _, has := m.allowedPeers[peerID] + return has } @@ -730,15 +885,19 @@ func (m *Manager) updateRelation(peerID peer.ID, newRelation PeerRelation) { } oldRelation := p.Relation p.Relation = newRelation + switch newRelation { case PeerRelationUnknown: p.reconnectTimer.Stop() p.reconnectTimer = nil + case PeerRelationAutopeered: fallthrough + case PeerRelationKnown: m.host.ConnManager().Protect(peerID, PeerConnectivityProtectionTag) } + m.Events.RelationUpdated.Trigger(p, oldRelation) } @@ -796,40 +955,6 @@ func (m *Manager) resetReconnect(peerID peer.ID) { } } -// reconnect peer does a connection attempt to the given peer but only -// if its relation is PeerRelationKnown. -func (m *Manager) reconnectPeer(peerID peer.ID) (bool, error) { - p, has := m.peers[peerID] - if !has { - return false, nil - } - - if p.Relation != PeerRelationKnown || p.reconnectTimer == nil { - return false, nil - } - - m.Events.Reconnecting.Trigger(p) - return true, m.connect(peer.AddrInfo{ID: peerID, Addrs: p.Addrs}) -} - -// connect does an actual connection attempt to the given peer. -// if the connection fails, the peer is either cleared from the Manager if its relation is PeerRelationUnknown -// or a reconnect attempt is scheduled if it is PeerRelationKnown. -func (m *Manager) connect(addrInfo peer.AddrInfo) error { - ctx, cancel := context.WithTimeout(context.Background(), connTimeout) - defer cancel() - - err := m.host.Connect(ctx, addrInfo) - if err != nil { - // unsuccessful connect: - // get rid of the peer instance if the relation is unknown - // or initiate a reconnect timer - m.cleanupPeerIfNotKnown(addrInfo.ID) - m.scheduleReconnectIfKnown(addrInfo.ID) - } - return err -} - // adds the given connection as peer with PeerRelationUnknown to the Manager's peer set, // if the peer isn't already in the set. func (m *Manager) addPeerAsUnknownIfAbsent(conn network.Conn) { @@ -863,6 +988,7 @@ func (m *Manager) isConnected(peerID peer.ID) bool { if _, has := m.peers[peerID]; !has { return false } + return m.host.Network().Connectedness(peerID) == network.Connected } @@ -932,15 +1058,15 @@ func (m *Manager) configureEvents() { } func (m *Manager) attachEvents() { - m.Events.Connect.Attach(m.onP2PManagerConnect) - m.Events.Connected.Attach(m.onP2PManagerConnected) - m.Events.Disconnect.Attach(m.onP2PManagerDisconnect) - m.Events.Disconnected.Attach(m.onP2PManagerDisconnected) - m.Events.ScheduledReconnect.Attach(m.onP2PManagerScheduledReconnect) - m.Events.Reconnecting.Attach(m.onP2PManagerReconnecting) - m.Events.RelationUpdated.Attach(m.onP2PManagerRelationUpdated) - m.Events.StateChange.Attach(m.onP2PManagerStateChange) - m.Events.Error.Attach(m.onP2PManagerError) + m.Events.Connect.Hook(m.onP2PManagerConnect) + m.Events.Connected.Hook(m.onP2PManagerConnected) + m.Events.Disconnect.Hook(m.onP2PManagerDisconnect) + m.Events.Disconnected.Hook(m.onP2PManagerDisconnected) + m.Events.ScheduledReconnect.Hook(m.onP2PManagerScheduledReconnect) + m.Events.Reconnecting.Hook(m.onP2PManagerReconnecting) + m.Events.RelationUpdated.Hook(m.onP2PManagerRelationUpdated) + m.Events.StateChange.Hook(m.onP2PManagerStateChange) + m.Events.Error.Hook(m.onP2PManagerError) } func (m *Manager) detachEvents() { @@ -960,8 +1086,8 @@ func (m *Manager) detachEvents() { // the handlers are called in newly spawned goroutines. type netNotifiee Manager -func (m *netNotifiee) Listen(net network.Network, multiaddr multiaddr.Multiaddr) {} -func (m *netNotifiee) ListenClose(net network.Network, multiaddr multiaddr.Multiaddr) {} +func (m *netNotifiee) Listen(_ network.Network, _ multiaddr.Multiaddr) {} +func (m *netNotifiee) ListenClose(_ network.Network, _ multiaddr.Multiaddr) {} func (m *netNotifiee) Connected(net network.Network, conn network.Conn) { if m.stopped.IsSet() { return @@ -974,5 +1100,3 @@ func (m *netNotifiee) Disconnected(net network.Network, conn network.Conn) { } m.disconnectedChan <- &disconnectmsg{net: net, conn: conn, reason: errors.New("connection closed by libp2p network event")} } -func (m *netNotifiee) OpenedStream(net network.Network, stream network.Stream) {} -func (m *netNotifiee) ClosedStream(net network.Network, stream network.Stream) {} diff --git a/pkg/p2p/manager_test.go b/pkg/p2p/manager_test.go index b50be155b..4bcfdb813 100644 --- a/pkg/p2p/manager_test.go +++ b/pkg/p2p/manager_test.go @@ -7,18 +7,18 @@ import ( "time" "github.com/libp2p/go-libp2p" - connmgr "github.com/libp2p/go-libp2p-connmgr" - "github.com/libp2p/go-libp2p-core/crypto" - "github.com/libp2p/go-libp2p-core/host" - "github.com/libp2p/go-libp2p-core/network" - "github.com/libp2p/go-libp2p-core/peer" + "github.com/libp2p/go-libp2p/core/crypto" + "github.com/libp2p/go-libp2p/core/host" + "github.com/libp2p/go-libp2p/core/network" + "github.com/libp2p/go-libp2p/core/peer" + connmgr "github.com/libp2p/go-libp2p/p2p/net/connmgr" "github.com/pkg/errors" "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/p2p" "github.com/iotaledger/hive.go/configuration" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/logger" + "github.com/iotaledger/hornet/pkg/p2p" ) func newNode(t require.TestingT) host.Host { @@ -140,7 +140,8 @@ func TestManager(t *testing.T) { // if we then tell node 1 to connect to node 2 again explicitly (even if they're already connected), // but with a different relation than what node 2 currently is for node 1, it will be updated: - _ = node1Manager.ConnectPeer(node2AddrInfo, p2p.PeerRelationKnown) + err = node1Manager.ConnectPeer(node2AddrInfo, p2p.PeerRelationKnown) + require.ErrorIs(t, err, p2p.ErrPeerInManagerAlready) require.True(t, node1.ConnManager().IsProtected(node2.ID(), p2p.PeerConnectivityProtectionTag)) // connect node 4 to node 2 too @@ -237,10 +238,10 @@ func TestManagerEvents(t *testing.T) { node2AddrInfo := &peer.AddrInfo{ID: node2.ID(), Addrs: node2.Addrs()} var connectCalled, connectedCalled bool - node1Manager.Events.Connect.Attach(events.NewClosure(func(_ *p2p.Peer) { + node1Manager.Events.Connect.Hook(events.NewClosure(func(_ *p2p.Peer) { connectCalled = true })) - node1Manager.Events.Connected.Attach(events.NewClosure(func(_ *p2p.Peer, _ network.Conn) { + node1Manager.Events.Connected.Hook(events.NewClosure(func(_ *p2p.Peer, _ network.Conn) { connectedCalled = true })) @@ -255,10 +256,10 @@ func TestManagerEvents(t *testing.T) { }, 4*time.Second, 10*time.Millisecond) var disconnectCalled, disconnectedCalled bool - node1Manager.Events.Disconnect.Attach(events.NewClosure(func(_ *p2p.Peer) { + node1Manager.Events.Disconnect.Hook(events.NewClosure(func(_ *p2p.Peer) { disconnectCalled = true })) - node1Manager.Events.Disconnected.Attach(events.NewClosure(func(_ *p2p.PeerOptError) { + node1Manager.Events.Disconnected.Hook(events.NewClosure(func(_ *p2p.PeerOptError) { disconnectedCalled = true })) @@ -280,7 +281,7 @@ func TestManagerEvents(t *testing.T) { var relationUpdatedCalled bool var updatedRelation, oldRelation p2p.PeerRelation - node1Manager.Events.RelationUpdated.Attach(events.NewClosure(func(peer *p2p.Peer, oldRel p2p.PeerRelation) { + node1Manager.Events.RelationUpdated.Hook(events.NewClosure(func(peer *p2p.Peer, oldRel p2p.PeerRelation) { relationUpdatedCalled = true updatedRelation = peer.Relation oldRelation = oldRel @@ -292,10 +293,10 @@ func TestManagerEvents(t *testing.T) { require.Equal(t, p2p.PeerRelationUnknown, oldRelation) var reconnectingCalled, reconnectedCalled bool - node1Manager.Events.Reconnecting.Attach(events.NewClosure(func(_ *p2p.Peer) { + node1Manager.Events.Reconnecting.Hook(events.NewClosure(func(_ *p2p.Peer) { reconnectingCalled = true })) - node1Manager.Events.Reconnected.Attach(events.NewClosure(func(_ *p2p.Peer) { + node1Manager.Events.Reconnected.Hook(events.NewClosure(func(_ *p2p.Peer) { reconnectedCalled = true })) diff --git a/pkg/p2p/peer.go b/pkg/p2p/peer.go index d36f477dc..c83b348a6 100644 --- a/pkg/p2p/peer.go +++ b/pkg/p2p/peer.go @@ -3,7 +3,7 @@ package p2p import ( "time" - "github.com/libp2p/go-libp2p-core/peer" + "github.com/libp2p/go-libp2p/core/peer" "github.com/multiformats/go-multiaddr" ) diff --git a/pkg/pow/pow.go b/pkg/pow/pow.go index d45bc0127..c63868efc 100644 --- a/pkg/pow/pow.go +++ b/pkg/pow/pow.go @@ -7,10 +7,10 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/common" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/utils" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/common" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/utils" iotago "github.com/iotaledger/iota.go/v2" "github.com/iotaledger/iota.go/v2/pow" ) diff --git a/pkg/protocol/gossip/broadcaster.go b/pkg/protocol/gossip/broadcaster.go index efabf7504..e4c770dff 100644 --- a/pkg/protocol/gossip/broadcaster.go +++ b/pkg/protocol/gossip/broadcaster.go @@ -3,9 +3,9 @@ package gossip import ( "context" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/model/syncmanager" - "github.com/gohornet/hornet/pkg/p2p" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/syncmanager" + "github.com/iotaledger/hornet/pkg/p2p" ) // Broadcaster provides functions to broadcast data to gossip streams. @@ -71,12 +71,13 @@ func (b *Broadcaster) BroadcastHeartbeat(filter func(proto *Protocol) bool) { return } - confirmedMilestoneIndex := b.syncManager.ConfirmedMilestoneIndex() // bee differentiates between solid and confirmed milestone, for hornet it is the same. + syncState := b.syncManager.SyncState() connectedCount := b.peeringManager.ConnectedCount() - syncedCount := b.service.SynchronizedCount(confirmedMilestoneIndex) + // TODO: overflow not handled for synced/connected + syncedCount := b.service.SynchronizedCount(syncState.ConfirmedMilestoneIndex) - heartbeatMsg, err := NewHeartbeatMsg(confirmedMilestoneIndex, snapshotInfo.PruningIndex, b.syncManager.LatestMilestoneIndex(), byte(connectedCount), byte(syncedCount)) + heartbeatMsg, err := NewHeartbeatMsg(syncState.ConfirmedMilestoneIndex, snapshotInfo.PruningIndex, syncState.LatestMilestoneIndex, byte(connectedCount), byte(syncedCount)) if err != nil { return } diff --git a/pkg/protocol/gossip/msg_proc.go b/pkg/protocol/gossip/msg_proc.go index 79c839966..346438b32 100644 --- a/pkg/protocol/gossip/msg_proc.go +++ b/pkg/protocol/gossip/msg_proc.go @@ -5,23 +5,23 @@ import ( "fmt" "time" - "github.com/libp2p/go-libp2p-core/peer" + "github.com/libp2p/go-libp2p/core/peer" "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/dag" - "github.com/gohornet/hornet/pkg/metrics" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/model/syncmanager" - "github.com/gohornet/hornet/pkg/p2p" - "github.com/gohornet/hornet/pkg/profile" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/objectstorage" "github.com/iotaledger/hive.go/protocol/message" "github.com/iotaledger/hive.go/serializer" "github.com/iotaledger/hive.go/syncutils" "github.com/iotaledger/hive.go/workerpool" + "github.com/iotaledger/hornet/pkg/dag" + "github.com/iotaledger/hornet/pkg/metrics" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/syncmanager" + "github.com/iotaledger/hornet/pkg/p2p" + "github.com/iotaledger/hornet/pkg/profile" iotago "github.com/iotaledger/iota.go/v2" "github.com/iotaledger/iota.go/v2/pow" ) @@ -379,10 +379,29 @@ func (proc *MessageProcessor) processWorkUnit(wu *WorkUnit, p *Protocol) { } } - wu.requested = requests.HasRequest() + // ATTENTION: potential data race, processRequests might be executed several times in parallel for the same WorkUnit. + // requested should only be set to true but not to false, even if HasRequest might be false in one run. + if requests.HasRequest() { + wu.requested = true + } + return requests } + processMessage := func(msg *storage.Message, isMilestonePayload bool, requests Requests, p *Protocol) { + // do not process gossip if we are not in sync. + // we ignore all received messages if we didn't request them and it's not a milestone. + // otherwise these messages would get evicted from the cache, and it's heavier to load them + // from the storage than to request them again. + // ATTENTION: we use requests.HasRequest() here instead of wu.requested because + // we only want to trigger the MessageProcessed event with the correct requests. + if !requests.HasRequest() && !proc.syncManager.IsNodeAlmostSynced() && !isMilestonePayload { + return + } + + proc.Events.MessageProcessed.Trigger(msg, requests, p) + } + wu.processingLock.Lock() switch { @@ -402,17 +421,13 @@ func (proc *MessageProcessor) processWorkUnit(wu *WorkUnit, p *Protocol) { case wu.Is(Hashed): wu.processingLock.Unlock() + isMilestonePayload := wu.msg.IsMilestone() + // we need to check for requests here again because there is a race condition // between processing received messages and enqueuing requests. - requests := processRequests(wu, wu.msg, wu.msg.IsMilestone()) - if wu.requested { - proc.Events.MessageProcessed.Trigger(wu.msg, requests, p) - } + requests := processRequests(wu, wu.msg, isMilestonePayload) - if proc.storage.ContainsMessage(wu.msg.MessageID()) { - proc.serverMetrics.KnownMessages.Inc() - p.Metrics.KnownMessages.Inc() - } + processMessage(wu.msg, isMilestonePayload, requests, p) return } @@ -454,15 +469,7 @@ func (proc *MessageProcessor) processWorkUnit(wu *WorkUnit, p *Protocol) { // increase the known message count for all other peers wu.increaseKnownTxCount(p) - // do not process gossip if we are not in sync. - // we ignore all received messages if we didn't request them and it's not a milestone. - // otherwise these messages would get evicted from the cache, and it's heavier to load them - // from the storage than to request them again. - if !wu.requested && !proc.syncManager.IsNodeAlmostSynced() && !isMilestonePayload { - return - } - - proc.Events.MessageProcessed.Trigger(msg, requests, p) + processMessage(msg, isMilestonePayload, requests, p) } func (proc *MessageProcessor) Broadcast(cachedMsgMeta *storage.CachedMetadata) { @@ -475,18 +482,20 @@ func (proc *MessageProcessor) Broadcast(cachedMsgMeta *storage.CachedMetadata) { return } - if !proc.syncManager.IsNodeSyncedWithinBelowMaxDepth() { + syncState := proc.syncManager.SyncState() + + if !syncState.NodeSyncedWithinBelowMaxDepth { // no need to broadcast messages if the node is not sync within "below max depth" return } // we pass a background context here to not prevent broadcasting messages at shutdown (COO etc). - _, ocri, err := dag.ConeRootIndexes(context.Background(), proc.storage, cachedMsgMeta.Retain(), proc.syncManager.ConfirmedMilestoneIndex()) // meta pass +1 + _, ocri, err := dag.ConeRootIndexes(context.Background(), proc.storage, cachedMsgMeta.Retain(), syncState.ConfirmedMilestoneIndex) // meta pass +1 if err != nil { return } - if (proc.syncManager.LatestMilestoneIndex() - ocri) > proc.opts.BelowMaxDepth { + if (syncState.LatestMilestoneIndex - ocri) > proc.opts.BelowMaxDepth { // the solid message was below max depth in relation to the latest milestone index, do not broadcast return } diff --git a/pkg/protocol/gossip/msg_proc_test.go b/pkg/protocol/gossip/msg_proc_test.go index c63fb801f..aec7ad1ff 100644 --- a/pkg/protocol/gossip/msg_proc_test.go +++ b/pkg/protocol/gossip/msg_proc_test.go @@ -6,17 +6,17 @@ import ( "testing" "github.com/libp2p/go-libp2p" - connmgr "github.com/libp2p/go-libp2p-connmgr" - "github.com/libp2p/go-libp2p-core/crypto" + "github.com/libp2p/go-libp2p/core/crypto" + connmgr "github.com/libp2p/go-libp2p/p2p/net/connmgr" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/metrics" - "github.com/gohornet/hornet/pkg/model/storage" - "github.com/gohornet/hornet/pkg/p2p" - "github.com/gohornet/hornet/pkg/protocol/gossip" - "github.com/gohornet/hornet/pkg/testsuite" "github.com/iotaledger/hive.go/serializer" + "github.com/iotaledger/hornet/pkg/metrics" + "github.com/iotaledger/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/p2p" + "github.com/iotaledger/hornet/pkg/protocol/gossip" + "github.com/iotaledger/hornet/pkg/testsuite" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/protocol/gossip/protocol.go b/pkg/protocol/gossip/protocol.go index a1588440d..37601081b 100644 --- a/pkg/protocol/gossip/protocol.go +++ b/pkg/protocol/gossip/protocol.go @@ -5,15 +5,15 @@ import ( "sync" "time" - "github.com/libp2p/go-libp2p-core/network" - "github.com/libp2p/go-libp2p-core/peer" + "github.com/libp2p/go-libp2p/core/network" + "github.com/libp2p/go-libp2p/core/peer" "go.uber.org/atomic" - "github.com/gohornet/hornet/pkg/metrics" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/protocol" + "github.com/iotaledger/hornet/pkg/metrics" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" ) const ( @@ -199,33 +199,38 @@ func (p *Protocol) SendLatestMilestoneRequest() { // HasDataForMilestone tells whether the underlying peer given the latest heartbeat message, has the cone data for the given milestone. // Returns false if no heartbeat message was received yet. func (p *Protocol) HasDataForMilestone(index milestone.Index) bool { - if p.LatestHeartbeat == nil { + heartbeat := p.LatestHeartbeat + if heartbeat == nil { return false } - return p.LatestHeartbeat.PrunedMilestoneIndex < index && p.LatestHeartbeat.SolidMilestoneIndex >= index + + return heartbeat.PrunedMilestoneIndex < index && heartbeat.SolidMilestoneIndex >= index } // CouldHaveDataForMilestone tells whether the underlying peer given the latest heartbeat message, could have parts of the cone data for the given milestone. // Returns false if no heartbeat message was received yet. func (p *Protocol) CouldHaveDataForMilestone(index milestone.Index) bool { - if p.LatestHeartbeat == nil { + heartbeat := p.LatestHeartbeat + if heartbeat == nil { return false } - return p.LatestHeartbeat.PrunedMilestoneIndex < index && p.LatestHeartbeat.LatestMilestoneIndex >= index + + return heartbeat.PrunedMilestoneIndex < index && heartbeat.LatestMilestoneIndex >= index } // IsSynced tells whether the underlying peer is synced. func (p *Protocol) IsSynced(cmi milestone.Index) bool { - if p.LatestHeartbeat == nil { + heartbeat := p.LatestHeartbeat + if heartbeat == nil { return false } - latestIndex := p.LatestHeartbeat.LatestMilestoneIndex + latestIndex := heartbeat.LatestMilestoneIndex if latestIndex < cmi { latestIndex = cmi } - if p.LatestHeartbeat.SolidMilestoneIndex < (latestIndex - minCMISynchronizationThreshold) { + if heartbeat.SolidMilestoneIndex < (latestIndex - minCMISynchronizationThreshold) { return false } diff --git a/pkg/protocol/gossip/requester.go b/pkg/protocol/gossip/requester.go index 43d629614..964d81736 100644 --- a/pkg/protocol/gossip/requester.go +++ b/pkg/protocol/gossip/requester.go @@ -4,9 +4,9 @@ import ( "context" "time" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/model/storage" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/storage" ) // RequesterOptions are options around a Requester. diff --git a/pkg/protocol/gossip/rqueue.go b/pkg/protocol/gossip/rqueue.go index 4481dd094..c8d823d03 100644 --- a/pkg/protocol/gossip/rqueue.go +++ b/pkg/protocol/gossip/rqueue.go @@ -9,8 +9,8 @@ import ( "github.com/pkg/errors" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/model/milestone" ) var ( diff --git a/pkg/protocol/gossip/rqueue_test.go b/pkg/protocol/gossip/rqueue_test.go index c1f3464fe..d0e2fafd3 100644 --- a/pkg/protocol/gossip/rqueue_test.go +++ b/pkg/protocol/gossip/rqueue_test.go @@ -7,8 +7,8 @@ import ( "github.com/stretchr/testify/assert" - "github.com/gohornet/hornet/pkg/model/hornet" - "github.com/gohornet/hornet/pkg/protocol/gossip" + "github.com/iotaledger/hornet/pkg/model/hornet" + "github.com/iotaledger/hornet/pkg/protocol/gossip" iotago "github.com/iotaledger/iota.go/v2" ) diff --git a/pkg/protocol/gossip/service.go b/pkg/protocol/gossip/service.go index 2dd3dd121..016d4aa87 100644 --- a/pkg/protocol/gossip/service.go +++ b/pkg/protocol/gossip/service.go @@ -4,22 +4,22 @@ import ( "context" "errors" "fmt" - "github.com/iotaledger/hive.go/workerpool" "time" - "github.com/libp2p/go-libp2p-core/host" - "github.com/libp2p/go-libp2p-core/network" - "github.com/libp2p/go-libp2p-core/peer" - "github.com/libp2p/go-libp2p-core/protocol" - "github.com/multiformats/go-multiaddr" + "github.com/iotaledger/hive.go/workerpool" + + "github.com/libp2p/go-libp2p/core/host" + "github.com/libp2p/go-libp2p/core/network" + "github.com/libp2p/go-libp2p/core/peer" + "github.com/libp2p/go-libp2p/core/protocol" - "github.com/gohornet/hornet/pkg/metrics" - "github.com/gohornet/hornet/pkg/model/milestone" - "github.com/gohornet/hornet/pkg/p2p" - "github.com/gohornet/hornet/pkg/utils" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/logger" "github.com/iotaledger/hive.go/typeutils" + "github.com/iotaledger/hornet/pkg/metrics" + "github.com/iotaledger/hornet/pkg/model/milestone" + "github.com/iotaledger/hornet/pkg/p2p" + "github.com/iotaledger/hornet/pkg/utils" ) // ServiceEvents are events happening around a Service. @@ -183,7 +183,6 @@ type Service struct { connectedChan chan *connectionmsg closeStreamChan chan *closestreammsg disconnectedChan chan *connectionmsg - streamClosedChan chan *streamclosedmsg relationUpdatedChan chan *relationupdatedmsg streamReqChan chan *streamreqmsg forEachChan chan *foreachmsg @@ -231,7 +230,6 @@ func NewService( connectedChan: make(chan *connectionmsg, 10), closeStreamChan: make(chan *closestreammsg, 10), disconnectedChan: make(chan *connectionmsg, 10), - streamClosedChan: make(chan *streamclosedmsg, 10), relationUpdatedChan: make(chan *relationupdatedmsg, 10), streamReqChan: make(chan *streamreqmsg, 10), forEachChan: make(chan *foreachmsg, 10), @@ -306,17 +304,11 @@ func (s *Service) Start(ctx context.Context) { s.inboundStreamChan <- stream }) - // manage libp2p network events - s.host.Network().Notify((*netNotifiee)(s)) - s.eventLoop(ctx) // libp2p stream handler s.host.RemoveStreamHandler(s.protocol) - // de-register libp2p network events - s.host.Network().StopNotify((*netNotifiee)(s)) - s.detachEvents() s.peeringMngWP.Stop() } @@ -340,8 +332,6 @@ drainLoop: case <-s.disconnectedChan: - case <-s.streamClosedChan: - case <-s.relationUpdatedChan: case streamReqMsg := <-s.streamReqChan: @@ -371,11 +361,6 @@ type streamreqmsg struct { back chan *Protocol } -type streamclosedmsg struct { - peerID peer.ID - stream network.Stream -} - type relationupdatedmsg struct { peer *p2p.Peer oldRelation p2p.PeerRelation @@ -398,26 +383,21 @@ func (s *Service) eventLoop(ctx context.Context) { s.handleInboundStream(inboundStream) case connectedMsg := <-s.connectedChan: - s.handleConnected(connectedMsg.peer, connectedMsg.conn) + s.handleConnected(ctx, connectedMsg.peer, connectedMsg.conn) - case disconnectMsg := <-s.closeStreamChan: - if err := s.deregisterProtocol(disconnectMsg.peerID); err != nil && !errors.Is(err, ErrProtocolDoesNotExist) { - disconnectMsg.back <- err + case closeStreamMsg := <-s.closeStreamChan: + if err := s.deregisterProtocol(closeStreamMsg.peerID); err != nil && !errors.Is(err, ErrProtocolDoesNotExist) { + closeStreamMsg.back <- err } - disconnectMsg.back <- nil + closeStreamMsg.back <- nil case disconnectedMsg := <-s.disconnectedChan: if err := s.deregisterProtocol(disconnectedMsg.peer.ID); err != nil && !errors.Is(err, ErrProtocolDoesNotExist) { s.Events.Error.Trigger(err) } - case streamClosedMsg := <-s.streamClosedChan: - if err := s.deregisterProtocol(streamClosedMsg.peerID); err != nil && !errors.Is(err, ErrProtocolDoesNotExist) { - s.Events.Error.Trigger(err) - } - case relationUpdatedMsg := <-s.relationUpdatedChan: - s.handleRelationUpdated(relationUpdatedMsg.peer, relationUpdatedMsg.oldRelation) + s.handleRelationUpdated(ctx, relationUpdatedMsg.peer, relationUpdatedMsg.oldRelation) case streamReqMsg := <-s.streamReqChan: streamReqMsg.back <- s.proto(streamReqMsg.peerID) @@ -463,7 +443,7 @@ func (s *Service) handleInboundStream(stream network.Stream) { if len(cancelReason) > 0 { s.Events.InboundStreamCanceled.Trigger(stream, cancelReason) - s.closeUnwantedStream(stream) + s.closeUnwantedStreamAndClosePeer(stream) return } @@ -474,19 +454,27 @@ func (s *Service) handleInboundStream(stream network.Stream) { s.registerProtocol(remotePeerID, stream) } -// closes the given unwanted stream by closing the underlying -// connection and the stream itself. +// closeUnwantedStream closes the given unwanted stream. func (s *Service) closeUnwantedStream(stream network.Stream) { // using close and reset is the only way to make the remote's peer // "ClosedStream" notifiee handler fire: this is important, because // we want the remote peer to deregister the stream - _ = stream.Conn().Close() _ = stream.Reset() } +// closeUnwantedStreamAndClosePeer closes the given unwanted stream by closing the underlying +// peer and the stream itself. +func (s *Service) closeUnwantedStreamAndClosePeer(stream network.Stream) { + // using close and reset is the only way to make the remote's peer + // "ClosedStream" notifiee handler fire: this is important, because + // we want the remote peer to deregister the stream + _ = stream.Reset() + _ = s.host.Network().ClosePeer(stream.Conn().RemotePeer()) +} + // handles the automatic creation of a protocol instance if the given peer // was connected outbound and its peer relation allows it. -func (s *Service) handleConnected(peer *p2p.Peer, conn network.Conn) { +func (s *Service) handleConnected(ctx context.Context, peer *p2p.Peer, conn network.Conn) { connect := func() error { // don't create a new protocol if one is already ongoing @@ -510,14 +498,16 @@ func (s *Service) handleConnected(peer *p2p.Peer, conn network.Conn) { s.unknownPeers[peer.ID] = struct{}{} } - stream, err := s.openStream(peer.ID) + stream, err := s.openStream(ctx, peer.ID) if err != nil { // close the connection to the peer _ = conn.Close() + return err } s.registerProtocol(peer.ID, stream) + return nil } @@ -527,17 +517,18 @@ func (s *Service) handleConnected(peer *p2p.Peer, conn network.Conn) { } // opens up a stream to the given peer. -func (s *Service) openStream(peerID peer.ID) (network.Stream, error) { - ctx, cancel := context.WithTimeout(context.Background(), s.opts.streamConnectTimeout) - defer cancel() +func (s *Service) openStream(ctx context.Context, peerID peer.ID) (network.Stream, error) { + ctxNewStream, cancelNewStream := context.WithTimeout(ctx, s.opts.streamConnectTimeout) + defer cancelNewStream() - stream, err := s.host.NewStream(ctx, peerID, s.protocol) + stream, err := s.host.NewStream(ctxNewStream, peerID, s.protocol) if err != nil { return nil, fmt.Errorf("unable to create gossip stream to %s: %w", peerID, err) } // now some special sauce to trigger the remote peer's SetStreamHandler // https://github.com/libp2p/go-libp2p/issues/729 _, _ = stream.Read(make([]byte, 0)) + return stream, nil } @@ -571,6 +562,11 @@ func (s *Service) deregisterProtocol(peerID peer.ID) error { return fmt.Errorf("unable to cleanly reset stream to %s: %w", peerID, err) } + // Drop connection to peer since we no longer have a protocol stream to it + if conn := proto.Stream.Conn(); conn != nil { + return conn.Close() + } + return nil } @@ -578,7 +574,7 @@ func (s *Service) deregisterProtocol(peerID peer.ID) error { // is no longer unknown, a gossip protocol stream is started. likewise, if the // relation is "downgraded" to unknown, the ongoing stream is closed if no more // unknown peer slots are available. -func (s *Service) handleRelationUpdated(peer *p2p.Peer, oldRel p2p.PeerRelation) { +func (s *Service) handleRelationUpdated(ctx context.Context, peer *p2p.Peer, oldRel p2p.PeerRelation) { newRel := peer.Relation updateRelation := func() error { @@ -586,6 +582,7 @@ func (s *Service) handleRelationUpdated(peer *p2p.Peer, oldRel p2p.PeerRelation) if len(s.unknownPeers) >= s.opts.unknownPeersLimit { // close the stream if no more unknown peer slots are available err := s.deregisterProtocol(peer.ID) + return err } s.unknownPeers[peer.ID] = struct{}{} @@ -603,7 +600,7 @@ func (s *Service) handleRelationUpdated(peer *p2p.Peer, oldRel p2p.PeerRelation) // here we might open a stream even if the connection is inbound: // the service should however take care of duplicated streams - stream, err := s.openStream(peer.ID) + stream, err := s.openStream(ctx, peer.ID) if err != nil { return err } @@ -691,15 +688,15 @@ func (s *Service) configureEvents() { func (s *Service) attachEvents() { // peering manager - s.peeringManager.Events.Connected.Attach(s.onPeeringManagerConnected) - s.peeringManager.Events.Disconnected.Attach(s.onPeeringManagerDisconnected) - s.peeringManager.Events.RelationUpdated.Attach(s.onPeeringManagerRelationUpdated) + s.peeringManager.Events.Connected.Hook(s.onPeeringManagerConnected) + s.peeringManager.Events.Disconnected.Hook(s.onPeeringManagerDisconnected) + s.peeringManager.Events.RelationUpdated.Hook(s.onPeeringManagerRelationUpdated) // logger - s.Events.ProtocolStarted.Attach(s.onGossipServiceProtocolStarted) - s.Events.ProtocolTerminated.Attach(s.onGossipServiceProtocolTerminated) - s.Events.InboundStreamCanceled.Attach(s.onGossipServiceInboundStreamCanceled) - s.Events.Error.Attach(s.onGossipServiceError) + s.Events.ProtocolStarted.Hook(s.onGossipServiceProtocolStarted) + s.Events.ProtocolTerminated.Hook(s.onGossipServiceProtocolTerminated) + s.Events.InboundStreamCanceled.Hook(s.onGossipServiceInboundStreamCanceled) + s.Events.Error.Hook(s.onGossipServiceError) } func (s *Service) detachEvents() { @@ -714,22 +711,3 @@ func (s *Service) detachEvents() { s.Events.InboundStreamCanceled.Detach(s.onGossipServiceInboundStreamCanceled) s.Events.Error.Detach(s.onGossipServiceError) } - -// lets Service implement network.Notifiee in order to automatically -// clean up ongoing reset streams -type netNotifiee Service - -func (m *netNotifiee) Listen(net network.Network, multiaddr multiaddr.Multiaddr) {} -func (m *netNotifiee) ListenClose(net network.Network, multiaddr multiaddr.Multiaddr) {} -func (m *netNotifiee) Connected(net network.Network, conn network.Conn) {} -func (m *netNotifiee) Disconnected(net network.Network, conn network.Conn) {} -func (m *netNotifiee) OpenedStream(net network.Network, stream network.Stream) {} -func (m *netNotifiee) ClosedStream(net network.Network, stream network.Stream) { - if stream.Protocol() != m.protocol { - return - } - if m.stopped.IsSet() { - return - } - m.streamClosedChan <- &streamclosedmsg{peerID: stream.Conn().RemotePeer(), stream: stream} -} diff --git a/pkg/protocol/gossip/service_test.go b/pkg/protocol/gossip/service_test.go index 3eb654a45..9664d9137 100644 --- a/pkg/protocol/gossip/service_test.go +++ b/pkg/protocol/gossip/service_test.go @@ -7,29 +7,26 @@ import ( "time" "github.com/libp2p/go-libp2p" - connmgr "github.com/libp2p/go-libp2p-connmgr" - "github.com/libp2p/go-libp2p-core/crypto" - "github.com/libp2p/go-libp2p-core/host" - "github.com/libp2p/go-libp2p-core/peer" + "github.com/libp2p/go-libp2p/core/crypto" + "github.com/libp2p/go-libp2p/core/host" + "github.com/libp2p/go-libp2p/core/peer" + connmgr "github.com/libp2p/go-libp2p/p2p/net/connmgr" + "github.com/libp2p/go-libp2p/p2p/transport/tcp" "github.com/stretchr/testify/require" - "github.com/gohornet/hornet/pkg/metrics" - "github.com/gohornet/hornet/pkg/p2p" - "github.com/gohornet/hornet/pkg/protocol/gossip" "github.com/iotaledger/hive.go/configuration" "github.com/iotaledger/hive.go/events" "github.com/iotaledger/hive.go/logger" + "github.com/iotaledger/hornet/pkg/metrics" + "github.com/iotaledger/hornet/pkg/p2p" + "github.com/iotaledger/hornet/pkg/protocol/gossip" ) const protocolID = "/iota/abcdf/1.0.0" -func newNode(name string, ctx context.Context, t *testing.T, mngOpts []p2p.ManagerOption, srvOpts []gossip.ServiceOption) ( +func newNode(name string, ctx context.Context, t *testing.T, mngOpts []p2p.ManagerOption, srvOpts []gossip.ServiceOption, privateKey crypto.PrivKey) ( host.Host, *p2p.Manager, *gossip.Service, peer.AddrInfo, ) { - // we use Ed25519 because otherwise it takes longer as the default is RSA - sk, _, err := crypto.GenerateKeyPair(crypto.Ed25519, -1) - require.NoError(t, err) - connManager, err := connmgr.NewConnManager( 1, 100, @@ -38,8 +35,10 @@ func newNode(name string, ctx context.Context, t *testing.T, mngOpts []p2p.Manag require.NoError(t, err) n, err := libp2p.New( - libp2p.Identity(sk), + libp2p.DefaultListenAddrs, + libp2p.Identity(privateKey), libp2p.ConnectionManager(connManager), + libp2p.Transport(tcp.NewTCPTransport), ) require.NoError(t, err) @@ -71,17 +70,26 @@ func TestServiceEvents(t *testing.T) { } var srvOpts []gossip.ServiceOption - node1, node1Manager, node1Service, node1AddrInfo := newNode("node1", ctx, t, mngOpts, srvOpts) - node2, node2Manager, node2Service, node2AddrInfo := newNode("node2", ctx, t, mngOpts, srvOpts) + node1PrvKey, err := p2p.ParseEd25519PrivateKeyFromString("5536d0d7eb7cb3780085d73d55079a373a726df58010d881167add08d7e8108c76d7a7f15c094c292faa22ac81b976034f0b11db86a8863d9a9b0c64820e087d") + require.NoError(t, err) + + node2PrvKey, err := p2p.ParseEd25519PrivateKeyFromString("35764adaa5e02cbd677285ffd90f927644d2010dca7608876dd3ea3a44f8fcb491cdffa377a307e1d16df5c18e4beee9fffbd61998bd1f8c76a616c1b6c7ca7d") + require.NoError(t, err) + + // node 1