mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-28 13:57:52 +08:00
chore: resolve go.mod conflicts with master
This commit is contained in:
commit
db88daf584
@ -367,7 +367,7 @@ jobs:
|
||||
- ~/.cache/ms-playwright
|
||||
- ~/ipfs/go-ipfs/ipfs-webui/node_modules
|
||||
# We only run build as a test here. DockerHub images are built and published
|
||||
# by Github Action now: https://github.com/ipfs/go-ipfs/pull/8467
|
||||
# by GitHub Action now: https://github.com/ipfs/go-ipfs/pull/8467
|
||||
docker-build:
|
||||
executor: dockerizer
|
||||
steps:
|
||||
|
||||
26
.github/workflows/stale.yml
vendored
Normal file
26
.github/workflows/stale.yml
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
name: Close and mark stale issue
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/stale@v3
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
stale-issue-message: 'Oops, seems like we needed more information for this issue, please comment with more details or this issue will be closed in 7 days.'
|
||||
close-issue-message: 'This issue was closed because it is missing author input.'
|
||||
stale-issue-label: 'kind/stale'
|
||||
any-of-labels: 'need/author-input'
|
||||
exempt-issue-labels: 'need/triage,need/community-input,need/maintainer-input,need/maintainers-input,need/analysis,status/blocked,status/in-progress,status/ready,status/deferred,status/inactive'
|
||||
days-before-issue-stale: 6
|
||||
days-before-issue-close: 7
|
||||
enable-statistics: true
|
||||
10
CHANGELOG.md
10
CHANGELOG.md
@ -4473,10 +4473,10 @@ The scripts in https://github.com/ipfs/go-ipfs-example-plugin have been updated
|
||||
- regenerate the testdata certificate with SAN instead of CommonName ([lucas-clemente/quic-go#2723](https://github.com/lucas-clemente/quic-go/pull/2723))
|
||||
- make it possible to use multiple qtls versions at the same time, add support for Go 1.15 ([lucas-clemente/quic-go#2720](https://github.com/lucas-clemente/quic-go/pull/2720))
|
||||
- add fuzzing for transport parameters ([lucas-clemente/quic-go#2713](https://github.com/lucas-clemente/quic-go/pull/2713))
|
||||
- run golangci-lint on Github Actions ([lucas-clemente/quic-go#2700](https://github.com/lucas-clemente/quic-go/pull/2700))
|
||||
- run golangci-lint on GitHub Actions ([lucas-clemente/quic-go#2700](https://github.com/lucas-clemente/quic-go/pull/2700))
|
||||
- disallow values above 2^60 for Config.MaxIncoming{Uni}Streams ([lucas-clemente/quic-go#2711](https://github.com/lucas-clemente/quic-go/pull/2711))
|
||||
- never send a value larger than 2^60 in MAX_STREAMS frames ([lucas-clemente/quic-go#2710](https://github.com/lucas-clemente/quic-go/pull/2710))
|
||||
- run the check for go generated files on Github Actions instead of Travis ([lucas-clemente/quic-go#2703](https://github.com/lucas-clemente/quic-go/pull/2703))
|
||||
- run the check for go generated files on GitHub Actions instead of Travis ([lucas-clemente/quic-go#2703](https://github.com/lucas-clemente/quic-go/pull/2703))
|
||||
- update QUIC draft version information in README ([lucas-clemente/quic-go#2715](https://github.com/lucas-clemente/quic-go/pull/2715))
|
||||
- remove Fuzzit badge from README ([lucas-clemente/quic-go#2714](https://github.com/lucas-clemente/quic-go/pull/2714))
|
||||
- use the correct return values in Fuzz() functions ([lucas-clemente/quic-go#2705](https://github.com/lucas-clemente/quic-go/pull/2705))
|
||||
@ -4805,7 +4805,7 @@ Use-cases:
|
||||
- feat(gateway): show the absolute path and CID every time ([ipfs/go-ipfs#7219](https://github.com/ipfs/go-ipfs/pull/7219))
|
||||
- fix: do not use hard coded IPNS Publish maximum timeout duration ([ipfs/go-ipfs#7256](https://github.com/ipfs/go-ipfs/pull/7256))
|
||||
- Auto-comment on submitted PRs ([ipfs/go-ipfs#7248](https://github.com/ipfs/go-ipfs/pull/7248))
|
||||
- Fixes Github link. ([ipfs/go-ipfs#7239](https://github.com/ipfs/go-ipfs/pull/7239))
|
||||
- Fixes GitHub link. ([ipfs/go-ipfs#7239](https://github.com/ipfs/go-ipfs/pull/7239))
|
||||
- docs: fix subdomain examples in CHANGELOG ([ipfs/go-ipfs#7240](https://github.com/ipfs/go-ipfs/pull/7240))
|
||||
- doc: add snap to the release checklist ([ipfs/go-ipfs#7253](https://github.com/ipfs/go-ipfs/pull/7253))
|
||||
- Welcome message for users opening their first issue ([ipfs/go-ipfs#7247](https://github.com/ipfs/go-ipfs/pull/7247))
|
||||
@ -10243,8 +10243,8 @@ This is the first Release Candidate. Unless there are vulnerabilities or regress
|
||||
- Improve command descriptions to fit a width of 78 characters. (@RichardLitt, [ipfs/go-ipfs#2779](https://github.com/ipfs/go-ipfs/pull/2779), [ipfs/go-ipfs#2780](https://github.com/ipfs/go-ipfs/pull/2780), [ipfs/go-ipfs#2782](https://github.com/ipfs/go-ipfs/pull/2782))
|
||||
- Fix filename conflict in the debugging guide. (@Kubuxu, [ipfs/go-ipfs#2752](https://github.com/ipfs/go-ipfs/pull/2752))
|
||||
- Decapitalize log messages, according to Golang style guides. (@RichardLitt, [ipfs/go-ipfs#2853](https://github.com/ipfs/go-ipfs/pull/2853))
|
||||
- Add Github Issues HowTo guide. (@RichardLitt, @chriscool, [ipfs/go-ipfs#2889](https://github.com/ipfs/go-ipfs/pull/2889), [ipfs/go-ipfs#2895](https://github.com/ipfs/go-ipfs/pull/2895))
|
||||
- Add Github Issue template. (@chriscool, [ipfs/go-ipfs#2786](https://github.com/ipfs/go-ipfs/pull/2786))
|
||||
- Add GitHub Issues HowTo guide. (@RichardLitt, @chriscool, [ipfs/go-ipfs#2889](https://github.com/ipfs/go-ipfs/pull/2889), [ipfs/go-ipfs#2895](https://github.com/ipfs/go-ipfs/pull/2895))
|
||||
- Add GitHub Issue template. (@chriscool, [ipfs/go-ipfs#2786](https://github.com/ipfs/go-ipfs/pull/2786))
|
||||
- Apply standard-readme to the README file. (@RichardLitt, [ipfs/go-ipfs#2883](https://github.com/ipfs/go-ipfs/pull/2883))
|
||||
- Fix issues pointed out by `govet`. (@Kubuxu, [ipfs/go-ipfs#2854](https://github.com/ipfs/go-ipfs/pull/2854))
|
||||
- Clarify `ipfs get` error message. (@whyrusleeping, [ipfs/go-ipfs#2886](https://github.com/ipfs/go-ipfs/pull/2886))
|
||||
|
||||
30
README.md
30
README.md
@ -24,7 +24,7 @@ Before opening an issue, consider using one of the following locations to ensure
|
||||
|
||||
## Next milestones
|
||||
|
||||
[Milestones on Github](https://github.com/ipfs/go-ipfs/milestones)
|
||||
[Milestones on GitHub](https://github.com/ipfs/go-ipfs/milestones)
|
||||
|
||||
<!-- ToDo automate creation of these
|
||||
[](https://github.com/ipfs/go-ipfs/milestone/51)
|
||||
@ -47,24 +47,26 @@ Before opening an issue, consider using one of the following locations to ensure
|
||||
- [Other package managers](#other-package-managers)
|
||||
- [Guix](#guix)
|
||||
- [Snap](#snap)
|
||||
- [macOS package managers](#macos-package-managers)
|
||||
- [MacPorts](#MacPorts)
|
||||
- [Nix](#nix-macos)
|
||||
- [Homebrew](#Homebrew)
|
||||
- [macOS package managers](#macos-package-managers)
|
||||
- [MacPorts](#macports)
|
||||
- [Nix](#nix-macos)
|
||||
- [Homebrew](#homebrew)
|
||||
- [Windows package managers](#windows-package-managers)
|
||||
- [Chocolatey](#chocolatey)
|
||||
- [Scoop](#scoop)
|
||||
- [Install prebuilt binaries](#install-prebuilt-binaries)
|
||||
- [Install prebuilt binaries](#install-prebuilt-binaries)
|
||||
- [Build from Source](#build-from-source)
|
||||
- [Install Go](#install-go)
|
||||
- [Download and Compile IPFS](#download-and-compile-ipfs)
|
||||
- [Cross Compiling](#cross-compiling)
|
||||
- [OpenSSL](#openssl)
|
||||
- [Cross Compiling](#cross-compiling)
|
||||
- [OpenSSL](#openssl)
|
||||
- [Troubleshooting](#troubleshooting)
|
||||
- [Updating go-ipfs](#updating-go-ipfs)
|
||||
- [Using ipfs-update](#using-ipfs-update)
|
||||
- [Downloading IPFS builds using IPFS](#downloading-ipfs-builds-using-ipfs)
|
||||
- [Getting Started](#getting-started)
|
||||
- [Some things to try](#some-things-to-try)
|
||||
- [Usage](#usage)
|
||||
- [Some things to try](#some-things-to-try)
|
||||
- [Troubleshooting](#troubleshooting-1)
|
||||
- [Packages](#packages)
|
||||
- [Development](#development)
|
||||
@ -78,11 +80,7 @@ Before opening an issue, consider using one of the following locations to ensure
|
||||
|
||||
## Security Issues
|
||||
|
||||
The IPFS protocol and its implementations are still in heavy development. This means that there may be problems in our protocols, or there may be mistakes in our implementations. And -- though IPFS is not production-ready yet -- many people are already running nodes in their machines. So we take security vulnerabilities very seriously. If you discover a security issue, please bring it to our attention right away!
|
||||
|
||||
If you find a vulnerability that may affect live deployments -- for example, by exposing a remote execution exploit -- please send your report privately to security@ipfs.io. Please DO NOT file a public issue.
|
||||
|
||||
If the issue is a protocol weakness that cannot be immediately exploited or something not yet deployed, just discuss it openly.
|
||||
Please follow [`SECURITY.md`](SECURITY.md).
|
||||
|
||||
## Install
|
||||
|
||||
@ -168,7 +166,9 @@ $ sudo snap install ipfs
|
||||
|
||||
The snap sets `IPFS_PATH` to `SNAP_USER_COMMON`, which is usually `~/snap/ipfs/common`. If you want to use `~/.ipfs` instead, you can bind-mount it to `~/snap/ipfs/common` like this:
|
||||
|
||||
```sudo mount --bind ~/.ipfs ~/snap/ipfs/common```
|
||||
```
|
||||
$ sudo mount --bind ~/.ipfs ~/snap/ipfs/common
|
||||
```
|
||||
|
||||
If you want something more sophisticated to escape the snap confinement, we recommend using a different method to install `go-ipfs` so that it is not subject to snap confinement.
|
||||
|
||||
|
||||
20
SECURITY.md
Normal file
20
SECURITY.md
Normal file
@ -0,0 +1,20 @@
|
||||
# Security Policy
|
||||
|
||||
The IPFS protocol and its implementations are still in heavy development. This
|
||||
means that there may be problems in our protocols, or there may be mistakes in
|
||||
our implementations. We take security
|
||||
vulnerabilities very seriously. If you discover a security issue, please bring
|
||||
it to our attention right away!
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
If you find a vulnerability that may affect live deployments -- for example, by
|
||||
exposing a remote execution exploit -- please **send your report privately** to
|
||||
security@ipfs.io. Please **DO NOT file a public issue**.
|
||||
|
||||
If the issue is a protocol weakness that cannot be immediately exploited or
|
||||
something not yet deployed, just discuss it openly.
|
||||
|
||||
## Reporting a non security bug
|
||||
|
||||
For non-security bugs, please simply file a GitHub [issue](https://github.com/ipfs/go-ipfs/issues/new/choose).
|
||||
@ -5,7 +5,6 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
@ -154,7 +153,7 @@ func ipfsGet(ctx context.Context, ufs coreiface.UnixfsAPI, ipfsPath ipath.Path)
|
||||
if !ok {
|
||||
return fmt.Errorf("not a file node: %q", ipfsPath)
|
||||
}
|
||||
_, err = io.Copy(ioutil.Discard, fnd)
|
||||
_, err = io.Copy(io.Discard, fnd)
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot read migration: %w", err)
|
||||
}
|
||||
|
||||
@ -4,7 +4,6 @@ import (
|
||||
"errors"
|
||||
_ "expvar"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"net/http"
|
||||
_ "net/http/pprof"
|
||||
@ -331,7 +330,7 @@ func daemonFunc(req *cmds.Request, re cmds.ResponseEmitter, env cmds.Environment
|
||||
|
||||
if cacheMigrations || pinMigrations {
|
||||
// Create temp directory to store downloaded migration archives
|
||||
migrations.DownloadDirectory, err = ioutil.TempDir("", "migrations")
|
||||
migrations.DownloadDirectory, err = os.MkdirTemp("", "migrations")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -705,22 +704,23 @@ func printSwarmAddrs(node *core.IpfsNode) {
|
||||
return
|
||||
}
|
||||
|
||||
var lisAddrs []string
|
||||
ifaceAddrs, err := node.PeerHost.Network().InterfaceListenAddresses()
|
||||
if err != nil {
|
||||
log.Errorf("failed to read listening addresses: %s", err)
|
||||
}
|
||||
for _, addr := range ifaceAddrs {
|
||||
lisAddrs = append(lisAddrs, addr.String())
|
||||
lisAddrs := make([]string, len(ifaceAddrs))
|
||||
for i, addr := range ifaceAddrs {
|
||||
lisAddrs[i] = addr.String()
|
||||
}
|
||||
sort.Strings(lisAddrs)
|
||||
for _, addr := range lisAddrs {
|
||||
fmt.Printf("Swarm listening on %s\n", addr)
|
||||
}
|
||||
|
||||
var addrs []string
|
||||
for _, addr := range node.PeerHost.Addrs() {
|
||||
addrs = append(addrs, addr.String())
|
||||
nodePhostAddrs := node.PeerHost.Addrs()
|
||||
addrs := make([]string, len(nodePhostAddrs))
|
||||
for i, addr := range nodePhostAddrs {
|
||||
addrs[i] = addr.String()
|
||||
}
|
||||
sort.Strings(addrs)
|
||||
for _, addr := range addrs {
|
||||
|
||||
@ -6,7 +6,6 @@ package main
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
@ -21,7 +20,7 @@ func TestRunMain(t *testing.T) {
|
||||
|
||||
p := os.Getenv("IPFS_COVER_RET_FILE")
|
||||
if len(p) != 0 {
|
||||
ioutil.WriteFile(p, []byte(fmt.Sprintf("%d\n", ret)), 0777)
|
||||
os.WriteFile(p, []byte(fmt.Sprintf("%d\n", ret)), 0777)
|
||||
}
|
||||
|
||||
// close outputs so go testing doesn't print anything
|
||||
|
||||
@ -7,6 +7,7 @@ type Discovery struct {
|
||||
type MDNS struct {
|
||||
Enabled bool
|
||||
|
||||
// Time in seconds between discovery rounds
|
||||
Interval int
|
||||
// DEPRECATED: the time between discovery rounds is no longer configurable
|
||||
// See: https://github.com/ipfs/go-ipfs/pull/9048#discussion_r906814717
|
||||
Interval *OptionalInteger `json:",omitempty"`
|
||||
}
|
||||
|
||||
@ -43,8 +43,7 @@ func InitWithIdentity(identity Identity) (*Config, error) {
|
||||
Identity: identity,
|
||||
Discovery: Discovery{
|
||||
MDNS: MDNS{
|
||||
Enabled: true,
|
||||
Interval: 10,
|
||||
Enabled: true,
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
@ -128,7 +128,7 @@ var base32Cmd = &cmds.Command{
|
||||
Helptext: cmds.HelpText{
|
||||
Tagline: "Convert CIDs to Base32 CID version 1.",
|
||||
ShortDescription: `
|
||||
'ipfs cid base32' normalizes passes CIDs to their canonical case-insensitive encoding.
|
||||
'ipfs cid base32' normalizes passed CIDs to their canonical case-insensitive encoding.
|
||||
Useful when processing third-party CIDs which could come with arbitrary formats.
|
||||
`,
|
||||
},
|
||||
|
||||
@ -217,6 +217,7 @@ func TestCommands(t *testing.T) {
|
||||
"/repo",
|
||||
"/repo/fsck",
|
||||
"/repo/gc",
|
||||
"/repo/migrate",
|
||||
"/repo/stat",
|
||||
"/repo/verify",
|
||||
"/repo/version",
|
||||
|
||||
@ -5,7 +5,6 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/exec"
|
||||
"strings"
|
||||
@ -192,7 +191,7 @@ NOTE: For security reasons, this command will omit your private key and remote s
|
||||
return err
|
||||
}
|
||||
|
||||
data, err := ioutil.ReadFile(fname)
|
||||
data, err := os.ReadFile(fname)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -502,7 +501,7 @@ func editConfig(filename string) error {
|
||||
return errors.New("ENV variable $EDITOR not set")
|
||||
}
|
||||
|
||||
cmd := exec.Command("sh", "-c", editor+" "+filename)
|
||||
cmd := exec.Command(editor, filename)
|
||||
cmd.Stdin, cmd.Stdout, cmd.Stderr = os.Stdin, os.Stdout, os.Stderr
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
@ -6,7 +6,6 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"time"
|
||||
|
||||
cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv"
|
||||
@ -580,7 +579,7 @@ identified by QmFoo.
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
data, err := ioutil.ReadAll(file)
|
||||
data, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -7,7 +7,6 @@ import (
|
||||
"encoding/pem"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@ -276,7 +275,7 @@ elsewhere. For example, using openssl to get a PEM with public key:
|
||||
|
||||
switch exportFormat {
|
||||
case keyFormatPemCleartextOption:
|
||||
privKeyBytes, err := ioutil.ReadAll(outReader)
|
||||
privKeyBytes, err := io.ReadAll(outReader)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -344,7 +343,7 @@ The PEM format allows for key generation outside of the IPFS node:
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
data, err := ioutil.ReadAll(file)
|
||||
data, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@ package commands
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"strings"
|
||||
|
||||
cmds "github.com/ipfs/go-ipfs-cmds"
|
||||
@ -66,7 +66,7 @@ but one can customize used base with -b:
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to access file: %w", err)
|
||||
}
|
||||
buf, err := ioutil.ReadAll(file)
|
||||
buf, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to read file contents: %w", err)
|
||||
}
|
||||
@ -105,7 +105,7 @@ This command expects multibase inside of a file or via stdin:
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to access file: %w", err)
|
||||
}
|
||||
encoded_data, err := ioutil.ReadAll(file)
|
||||
encoded_data, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to read file contents: %w", err)
|
||||
}
|
||||
@ -156,7 +156,7 @@ but one can customize used base with -b:
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to access file: %w", err)
|
||||
}
|
||||
encoded_data, err := ioutil.ReadAll(file)
|
||||
encoded_data, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to read file contents: %w", err)
|
||||
}
|
||||
|
||||
@ -5,7 +5,6 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"text/tabwriter"
|
||||
|
||||
cmds "github.com/ipfs/go-ipfs-cmds"
|
||||
@ -230,7 +229,7 @@ DEPRECATED and provided for legacy reasons. Use 'ipfs dag get' instead.
|
||||
return err
|
||||
}
|
||||
|
||||
data, err := ioutil.ReadAll(r)
|
||||
data, err := io.ReadAll(r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -4,7 +4,6 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"sort"
|
||||
|
||||
@ -191,7 +190,7 @@ HTTP RPC ENCODING
|
||||
return err
|
||||
}
|
||||
defer file.Close()
|
||||
data, err := ioutil.ReadAll(file)
|
||||
data, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -11,11 +11,14 @@ import (
|
||||
"sync"
|
||||
"text/tabwriter"
|
||||
|
||||
humanize "github.com/dustin/go-humanize"
|
||||
oldcmds "github.com/ipfs/go-ipfs/commands"
|
||||
cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv"
|
||||
corerepo "github.com/ipfs/go-ipfs/core/corerepo"
|
||||
fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo"
|
||||
"github.com/ipfs/go-ipfs/repo/fsrepo/migrations"
|
||||
"github.com/ipfs/go-ipfs/repo/fsrepo/migrations/ipfsfetcher"
|
||||
|
||||
humanize "github.com/dustin/go-humanize"
|
||||
cid "github.com/ipfs/go-cid"
|
||||
bstore "github.com/ipfs/go-ipfs-blockstore"
|
||||
cmds "github.com/ipfs/go-ipfs-cmds"
|
||||
@ -39,6 +42,7 @@ var RepoCmd = &cmds.Command{
|
||||
"fsck": repoFsckCmd,
|
||||
"version": repoVersionCmd,
|
||||
"verify": repoVerifyCmd,
|
||||
"migrate": repoMigrateCmd,
|
||||
},
|
||||
}
|
||||
|
||||
@ -49,9 +53,10 @@ type GcResult struct {
|
||||
}
|
||||
|
||||
const (
|
||||
repoStreamErrorsOptionName = "stream-errors"
|
||||
repoQuietOptionName = "quiet"
|
||||
repoSilentOptionName = "silent"
|
||||
repoStreamErrorsOptionName = "stream-errors"
|
||||
repoQuietOptionName = "quiet"
|
||||
repoSilentOptionName = "silent"
|
||||
repoAllowDowngradeOptionName = "allow-downgrade"
|
||||
)
|
||||
|
||||
var repoGcCmd = &cmds.Command{
|
||||
@ -387,3 +392,66 @@ var repoVersionCmd = &cmds.Command{
|
||||
}),
|
||||
},
|
||||
}
|
||||
|
||||
var repoMigrateCmd = &cmds.Command{
|
||||
Helptext: cmds.HelpText{
|
||||
Tagline: "Apply any outstanding migrations to the repo.",
|
||||
},
|
||||
Options: []cmds.Option{
|
||||
cmds.BoolOption(repoAllowDowngradeOptionName, "Allow downgrading to a lower repo version"),
|
||||
},
|
||||
NoRemote: true,
|
||||
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
|
||||
cctx := env.(*oldcmds.Context)
|
||||
allowDowngrade, _ := req.Options[repoAllowDowngradeOptionName].(bool)
|
||||
|
||||
_, err := fsrepo.Open(cctx.ConfigRoot)
|
||||
|
||||
if err == nil {
|
||||
fmt.Println("Repo does not require migration.")
|
||||
return nil
|
||||
} else if err != fsrepo.ErrNeedMigration {
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Println("Found outdated fs-repo, starting migration.")
|
||||
|
||||
// Read Migration section of IPFS config
|
||||
configFileOpt, _ := req.Options[ConfigFileOption].(string)
|
||||
migrationCfg, err := migrations.ReadMigrationConfig(cctx.ConfigRoot, configFileOpt)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Define function to create IPFS fetcher. Do not supply an
|
||||
// already-constructed IPFS fetcher, because this may be expensive and
|
||||
// not needed according to migration config. Instead, supply a function
|
||||
// to construct the particular IPFS fetcher implementation used here,
|
||||
// which is called only if an IPFS fetcher is needed.
|
||||
newIpfsFetcher := func(distPath string) migrations.Fetcher {
|
||||
return ipfsfetcher.NewIpfsFetcher(distPath, 0, &cctx.ConfigRoot, configFileOpt)
|
||||
}
|
||||
|
||||
// Fetch migrations from current distribution, or location from environ
|
||||
fetchDistPath := migrations.GetDistPathEnv(migrations.CurrentIpfsDist)
|
||||
|
||||
// Create fetchers according to migrationCfg.DownloadSources
|
||||
fetcher, err := migrations.GetMigrationFetcher(migrationCfg.DownloadSources, fetchDistPath, newIpfsFetcher)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer fetcher.Close()
|
||||
|
||||
err = migrations.RunMigration(cctx.Context(), fetcher, fsrepo.RepoVersion, "", allowDowngrade)
|
||||
if err != nil {
|
||||
fmt.Println("The migrations of fs-repo failed:")
|
||||
fmt.Printf(" %s\n", err)
|
||||
fmt.Println("If you think this is a bug, please file an issue and include this whole log output.")
|
||||
fmt.Println(" https://github.com/ipfs/fs-repo-migrations")
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Printf("Success: fs-repo has been migrated to version %d.\n", fsrepo.RepoVersion)
|
||||
return nil
|
||||
},
|
||||
}
|
||||
|
||||
@ -134,9 +134,9 @@ func netInfo(online bool, out map[string]interface{}) error {
|
||||
return err
|
||||
}
|
||||
|
||||
var straddrs []string
|
||||
for _, a := range addrs {
|
||||
straddrs = append(straddrs, a.String())
|
||||
straddrs := make([]string, len(addrs))
|
||||
for i, a := range addrs {
|
||||
straddrs[i] = a.String()
|
||||
}
|
||||
|
||||
n["interface_addresses"] = straddrs
|
||||
|
||||
@ -5,7 +5,6 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
|
||||
blocks "github.com/ipfs/go-block-format"
|
||||
cid "github.com/ipfs/go-cid"
|
||||
@ -36,7 +35,7 @@ func (api *BlockAPI) Put(ctx context.Context, src io.Reader, opts ...caopts.Bloc
|
||||
return nil, err
|
||||
}
|
||||
|
||||
data, err := ioutil.ReadAll(src)
|
||||
data, err := io.ReadAll(src)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -9,7 +9,6 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
|
||||
cid "github.com/ipfs/go-cid"
|
||||
pin "github.com/ipfs/go-ipfs-pinner"
|
||||
@ -79,7 +78,7 @@ func (api *ObjectAPI) Put(ctx context.Context, src io.Reader, opts ...caopts.Obj
|
||||
attribute.String("inputenc", options.InputEnc),
|
||||
)
|
||||
|
||||
data, err := ioutil.ReadAll(io.LimitReader(src, inputLimit+10))
|
||||
data, err := io.ReadAll(io.LimitReader(src, inputLimit+10))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -316,7 +315,7 @@ func (api *ObjectAPI) patchData(ctx context.Context, path ipath.Path, r io.Reade
|
||||
return nil, dag.ErrNotProtobuf
|
||||
}
|
||||
|
||||
data, err := ioutil.ReadAll(r)
|
||||
data, err := io.ReadAll(r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -8,10 +8,10 @@ import (
|
||||
"github.com/ipfs/go-ipfs/tracing"
|
||||
coreiface "github.com/ipfs/interface-go-ipfs-core"
|
||||
inet "github.com/libp2p/go-libp2p-core/network"
|
||||
peer "github.com/libp2p/go-libp2p-core/peer"
|
||||
"github.com/libp2p/go-libp2p-core/peer"
|
||||
pstore "github.com/libp2p/go-libp2p-core/peerstore"
|
||||
protocol "github.com/libp2p/go-libp2p-core/protocol"
|
||||
swarm "github.com/libp2p/go-libp2p-swarm"
|
||||
"github.com/libp2p/go-libp2p-core/protocol"
|
||||
"github.com/libp2p/go-libp2p/p2p/net/swarm"
|
||||
ma "github.com/multiformats/go-multiaddr"
|
||||
"go.opentelemetry.io/otel/attribute"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
|
||||
@ -2,7 +2,6 @@ package coredag
|
||||
|
||||
import (
|
||||
"io"
|
||||
"io/ioutil"
|
||||
|
||||
ipldcbor "github.com/ipfs/go-ipld-cbor"
|
||||
ipld "github.com/ipfs/go-ipld-format"
|
||||
@ -18,7 +17,7 @@ func cborJSONParser(r io.Reader, mhType uint64, mhLen int) ([]ipld.Node, error)
|
||||
}
|
||||
|
||||
func cborRawParser(r io.Reader, mhType uint64, mhLen int) ([]ipld.Node, error) {
|
||||
data, err := ioutil.ReadAll(r)
|
||||
data, err := io.ReadAll(r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -2,7 +2,6 @@ package coredag
|
||||
|
||||
import (
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"math"
|
||||
|
||||
"github.com/ipfs/go-merkledag"
|
||||
@ -13,7 +12,7 @@ import (
|
||||
)
|
||||
|
||||
func dagpbJSONParser(r io.Reader, mhType uint64, mhLen int) ([]ipld.Node, error) {
|
||||
data, err := ioutil.ReadAll(r)
|
||||
data, err := io.ReadAll(r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -31,7 +30,7 @@ func dagpbJSONParser(r io.Reader, mhType uint64, mhLen int) ([]ipld.Node, error)
|
||||
}
|
||||
|
||||
func dagpbRawParser(r io.Reader, mhType uint64, mhLen int) ([]ipld.Node, error) {
|
||||
data, err := ioutil.ReadAll(r)
|
||||
data, err := io.ReadAll(r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -2,7 +2,6 @@ package coredag
|
||||
|
||||
import (
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"math"
|
||||
|
||||
"github.com/ipfs/go-merkledag"
|
||||
@ -18,7 +17,7 @@ func rawRawParser(r io.Reader, mhType uint64, mhLen int) ([]ipld.Node, error) {
|
||||
mhType = mh.SHA2_256
|
||||
}
|
||||
|
||||
data, err := ioutil.ReadAll(r)
|
||||
data, err := io.ReadAll(r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@ package corehttp
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
@ -23,7 +23,7 @@ func (i *gatewayHandler) serveRawBlock(ctx context.Context, w http.ResponseWrite
|
||||
webError(w, "ipfs block get "+blockCid.String(), err, http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
block, err := ioutil.ReadAll(blockReader)
|
||||
block, err := io.ReadAll(blockReader)
|
||||
if err != nil {
|
||||
webError(w, "ipfs block get "+blockCid.String(), err, http.StatusInternalServerError)
|
||||
return
|
||||
@ -31,7 +31,12 @@ func (i *gatewayHandler) serveRawBlock(ctx context.Context, w http.ResponseWrite
|
||||
content := bytes.NewReader(block)
|
||||
|
||||
// Set Content-Disposition
|
||||
name := blockCid.String() + ".bin"
|
||||
var name string
|
||||
if urlFilename := r.URL.Query().Get("filename"); urlFilename != "" {
|
||||
name = urlFilename
|
||||
} else {
|
||||
name = blockCid.String() + ".bin"
|
||||
}
|
||||
setContentDispositionHeader(w, name, "attachment")
|
||||
|
||||
// Set remaining headers
|
||||
|
||||
@ -35,7 +35,12 @@ func (i *gatewayHandler) serveCAR(ctx context.Context, w http.ResponseWriter, r
|
||||
rootCid := resolvedPath.Cid()
|
||||
|
||||
// Set Content-Disposition
|
||||
name := rootCid.String() + ".car"
|
||||
var name string
|
||||
if urlFilename := r.URL.Query().Get("filename"); urlFilename != "" {
|
||||
name = urlFilename
|
||||
} else {
|
||||
name = rootCid.String() + ".car"
|
||||
}
|
||||
setContentDispositionHeader(w, name, "attachment")
|
||||
|
||||
// Weak Etag W/ because we can't guarantee byte-for-byte identical responses
|
||||
|
||||
@ -3,7 +3,7 @@ package corehttp
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"regexp"
|
||||
@ -267,7 +267,7 @@ func TestGatewayGet(t *testing.T) {
|
||||
if contentType != "text/plain; charset=utf-8" {
|
||||
t.Errorf("expected content type to be text/plain, got %s", contentType)
|
||||
}
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if resp.StatusCode != test.status {
|
||||
t.Errorf("(%d) got %d, expected %d from %s", i, resp.StatusCode, test.status, urlstr)
|
||||
t.Errorf("Body: %s", body)
|
||||
@ -335,7 +335,7 @@ func TestPretty404(t *testing.T) {
|
||||
if resp.StatusCode != test.status {
|
||||
t.Fatalf("got %d, expected %d, from %s", resp.StatusCode, test.status, test.path)
|
||||
}
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
t.Fatalf("error reading response from %s: %s", test.path, err)
|
||||
}
|
||||
@ -482,7 +482,7 @@ func TestIPNSHostnameBacklinks(t *testing.T) {
|
||||
}
|
||||
|
||||
// expect correct links
|
||||
body, err := ioutil.ReadAll(res.Body)
|
||||
body, err := io.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
t.Fatalf("error reading response: %s", err)
|
||||
}
|
||||
@ -519,7 +519,7 @@ func TestIPNSHostnameBacklinks(t *testing.T) {
|
||||
}
|
||||
|
||||
// expect correct backlinks at root
|
||||
body, err = ioutil.ReadAll(res.Body)
|
||||
body, err = io.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
t.Fatalf("error reading response: %s", err)
|
||||
}
|
||||
@ -556,7 +556,7 @@ func TestIPNSHostnameBacklinks(t *testing.T) {
|
||||
}
|
||||
|
||||
// expect correct backlinks
|
||||
body, err = ioutil.ReadAll(res.Body)
|
||||
body, err = io.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
t.Fatalf("error reading response: %s", err)
|
||||
}
|
||||
@ -638,7 +638,7 @@ func TestVersion(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
body, err := ioutil.ReadAll(res.Body)
|
||||
body, err := io.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
t.Fatalf("error reading response: %s", err)
|
||||
}
|
||||
|
||||
@ -3,7 +3,6 @@ package corehttp
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
@ -37,7 +36,7 @@ func TestLazySeekerError(t *testing.T) {
|
||||
}
|
||||
|
||||
// shouldn't have actually seeked.
|
||||
b, err := ioutil.ReadAll(s)
|
||||
b, err := io.ReadAll(s)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -53,7 +52,7 @@ func TestLazySeekerError(t *testing.T) {
|
||||
if off != 0 {
|
||||
t.Fatal("expected to seek to the start")
|
||||
}
|
||||
b, err = ioutil.ReadAll(s)
|
||||
b, err = io.ReadAll(s)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -70,7 +69,7 @@ func TestLazySeekerError(t *testing.T) {
|
||||
t.Fatal("expected to seek to the start")
|
||||
}
|
||||
// right here...
|
||||
b, err = ioutil.ReadAll(s)
|
||||
b, err = io.ReadAll(s)
|
||||
if err == nil {
|
||||
t.Fatalf("expected an error, got output %s", string(b))
|
||||
}
|
||||
@ -120,7 +119,7 @@ func TestLazySeeker(t *testing.T) {
|
||||
}
|
||||
|
||||
expectSeek(io.SeekEnd, 0, s.size, "")
|
||||
b, err := ioutil.ReadAll(s)
|
||||
b, err := io.ReadAll(s)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@ -8,8 +8,8 @@ import (
|
||||
"github.com/ipfs/go-ipfs/core"
|
||||
|
||||
inet "github.com/libp2p/go-libp2p-core/network"
|
||||
swarmt "github.com/libp2p/go-libp2p-swarm/testing"
|
||||
bhost "github.com/libp2p/go-libp2p/p2p/host/basic"
|
||||
swarmt "github.com/libp2p/go-libp2p/p2p/net/swarm/testing"
|
||||
)
|
||||
|
||||
// This test is based on go-libp2p/p2p/net/swarm.TestConnectednessCorrect
|
||||
|
||||
@ -4,7 +4,6 @@ import (
|
||||
"bytes"
|
||||
"context"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"math/rand"
|
||||
"os"
|
||||
"path/filepath"
|
||||
@ -282,7 +281,7 @@ func testAddWPosInfo(t *testing.T, rawLeaves bool) {
|
||||
|
||||
data := make([]byte, 5*1024*1024)
|
||||
rand.New(rand.NewSource(2)).Read(data) // Rand.Read never returns an error
|
||||
fileData := ioutil.NopCloser(bytes.NewBuffer(data))
|
||||
fileData := io.NopCloser(bytes.NewBuffer(data))
|
||||
fileInfo := dummyFileInfo{"foo.txt", int64(len(data)), time.Now()}
|
||||
file, _ := files.NewReaderPathFile(filepath.Join(os.TempDir(), "foo.txt"), fileData, &fileInfo)
|
||||
|
||||
|
||||
@ -4,7 +4,6 @@ import (
|
||||
"bytes"
|
||||
"context"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"testing"
|
||||
|
||||
bserv "github.com/ipfs/go-blockservice"
|
||||
@ -87,7 +86,7 @@ func TestMetadata(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
out, err := ioutil.ReadAll(ndr)
|
||||
out, err := io.ReadAll(ndr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@ package coremock
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
|
||||
libp2p2 "github.com/ipfs/go-ipfs/core/node/libp2p"
|
||||
|
||||
@ -75,7 +75,7 @@ func MockCmdsCtx() (commands.Context, error) {
|
||||
|
||||
func MockPublicNode(ctx context.Context, mn mocknet.Mocknet) (*core.IpfsNode, error) {
|
||||
ds := syncds.MutexWrap(datastore.NewMapDatastore())
|
||||
cfg, err := config.Init(ioutil.Discard, 2048)
|
||||
cfg, err := config.Init(io.Discard, 2048)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -159,7 +159,7 @@ func LibP2P(bcfg *BuildCfg, cfg *config.Config) fx.Option {
|
||||
fx.Provide(libp2p.RelayService(enableRelayService, cfg.Swarm.RelayService)),
|
||||
fx.Provide(libp2p.Transports(cfg.Swarm.Transports)),
|
||||
fx.Invoke(libp2p.StartListening(cfg.Addresses.Swarm)),
|
||||
fx.Invoke(libp2p.SetupDiscovery(cfg.Discovery.MDNS.Enabled, cfg.Discovery.MDNS.Interval)),
|
||||
fx.Invoke(libp2p.SetupDiscovery(cfg.Discovery.MDNS.Enabled)),
|
||||
fx.Provide(libp2p.ForceReachability(cfg.Internal.Libp2pForceReachability)),
|
||||
fx.Provide(libp2p.HolePunching(cfg.Swarm.EnableHolePunching, enableRelayClient)),
|
||||
|
||||
|
||||
@ -100,13 +100,13 @@ func AddrsFactory(announce []string, appendAnnouce []string, noAnnounce []string
|
||||
}
|
||||
|
||||
func listenAddresses(addresses []string) ([]ma.Multiaddr, error) {
|
||||
var listen []ma.Multiaddr
|
||||
for _, addr := range addresses {
|
||||
listen := make([]ma.Multiaddr, len(addresses))
|
||||
for i, addr := range addresses {
|
||||
maddr, err := ma.NewMultiaddr(addr)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failure to parse config.Addresses.Swarm: %s", addresses)
|
||||
}
|
||||
listen = append(listen, maddr)
|
||||
listen[i] = maddr
|
||||
}
|
||||
|
||||
return listen, nil
|
||||
|
||||
@ -7,7 +7,6 @@ import (
|
||||
"github.com/libp2p/go-libp2p-core/host"
|
||||
"github.com/libp2p/go-libp2p-core/peer"
|
||||
"github.com/libp2p/go-libp2p/p2p/discovery/mdns"
|
||||
legacymdns "github.com/libp2p/go-libp2p/p2p/discovery/mdns_legacy"
|
||||
|
||||
"go.uber.org/fx"
|
||||
|
||||
@ -37,7 +36,7 @@ func DiscoveryHandler(mctx helpers.MetricsCtx, lc fx.Lifecycle, host host.Host)
|
||||
}
|
||||
}
|
||||
|
||||
func SetupDiscovery(useMdns bool, mdnsInterval int) func(helpers.MetricsCtx, fx.Lifecycle, host.Host, *discoveryHandler) error {
|
||||
func SetupDiscovery(useMdns bool) func(helpers.MetricsCtx, fx.Lifecycle, host.Host, *discoveryHandler) error {
|
||||
return func(mctx helpers.MetricsCtx, lc fx.Lifecycle, host host.Host, handler *discoveryHandler) error {
|
||||
if useMdns {
|
||||
service := mdns.NewMdnsService(host, mdns.ServiceName, handler)
|
||||
@ -45,16 +44,6 @@ func SetupDiscovery(useMdns bool, mdnsInterval int) func(helpers.MetricsCtx, fx.
|
||||
log.Error("error starting mdns service: ", err)
|
||||
return nil
|
||||
}
|
||||
|
||||
if mdnsInterval == 0 {
|
||||
mdnsInterval = 5
|
||||
}
|
||||
legacyService, err := legacymdns.NewMdnsService(mctx, host, time.Duration(mdnsInterval)*time.Second, legacymdns.ServiceTag)
|
||||
if err != nil {
|
||||
log.Error("mdns error: ", err)
|
||||
return nil
|
||||
}
|
||||
legacyService.RegisterNotifee(handler)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
package libp2p
|
||||
|
||||
import (
|
||||
config "github.com/ipfs/go-ipfs/config"
|
||||
"github.com/ipfs/go-ipfs/config"
|
||||
|
||||
"github.com/libp2p/go-libp2p"
|
||||
noise "github.com/libp2p/go-libp2p-noise"
|
||||
tls "github.com/libp2p/go-libp2p-tls"
|
||||
"github.com/libp2p/go-libp2p/p2p/security/noise"
|
||||
tls "github.com/libp2p/go-libp2p/p2p/security/tls"
|
||||
)
|
||||
|
||||
const secioEnabledWarning = `The SECIO security transport was enabled in the config but is no longer supported.
|
||||
|
||||
@ -5,11 +5,12 @@ import (
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
config "github.com/ipfs/go-ipfs/config"
|
||||
"github.com/ipfs/go-ipfs/config"
|
||||
|
||||
"github.com/libp2p/go-libp2p"
|
||||
"github.com/libp2p/go-libp2p-core/network"
|
||||
mplex "github.com/libp2p/go-libp2p-mplex"
|
||||
yamux "github.com/libp2p/go-libp2p-yamux"
|
||||
"github.com/libp2p/go-libp2p/p2p/muxer/mplex"
|
||||
"github.com/libp2p/go-libp2p/p2p/muxer/yamux"
|
||||
)
|
||||
|
||||
func yamuxTransport() network.Multiplexer {
|
||||
|
||||
@ -6,7 +6,8 @@ import (
|
||||
|
||||
"github.com/libp2p/go-libp2p-core/discovery"
|
||||
"github.com/libp2p/go-libp2p-core/host"
|
||||
disc "github.com/libp2p/go-libp2p-discovery"
|
||||
"github.com/libp2p/go-libp2p/p2p/discovery/backoff"
|
||||
disc "github.com/libp2p/go-libp2p/p2p/discovery/routing"
|
||||
|
||||
"github.com/ipfs/go-ipfs/core/node/helpers"
|
||||
"go.uber.org/fx"
|
||||
@ -17,9 +18,9 @@ func TopicDiscovery() interface{} {
|
||||
baseDisc := disc.NewRoutingDiscovery(cr)
|
||||
minBackoff, maxBackoff := time.Second*60, time.Hour
|
||||
rng := rand.New(rand.NewSource(rand.Int63()))
|
||||
d, err := disc.NewBackoffDiscovery(
|
||||
d, err := backoff.NewBackoffDiscovery(
|
||||
baseDisc,
|
||||
disc.NewExponentialBackoff(minBackoff, maxBackoff, disc.FullJitter, time.Second, 5.0, 0, rng),
|
||||
backoff.NewExponentialBackoff(minBackoff, maxBackoff, backoff.FullJitter, time.Second, 5.0, 0, rng),
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
|
||||
@ -3,12 +3,12 @@ package libp2p
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
config "github.com/ipfs/go-ipfs/config"
|
||||
libp2p "github.com/libp2p/go-libp2p"
|
||||
metrics "github.com/libp2p/go-libp2p-core/metrics"
|
||||
libp2pquic "github.com/libp2p/go-libp2p-quic-transport"
|
||||
tcp "github.com/libp2p/go-tcp-transport"
|
||||
websocket "github.com/libp2p/go-ws-transport"
|
||||
"github.com/ipfs/go-ipfs/config"
|
||||
"github.com/libp2p/go-libp2p"
|
||||
"github.com/libp2p/go-libp2p-core/metrics"
|
||||
libp2pquic "github.com/libp2p/go-libp2p/p2p/transport/quic"
|
||||
"github.com/libp2p/go-libp2p/p2p/transport/tcp"
|
||||
"github.com/libp2p/go-libp2p/p2p/transport/websocket"
|
||||
|
||||
"go.uber.org/fx"
|
||||
)
|
||||
|
||||
@ -5,7 +5,7 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"os"
|
||||
"os/exec"
|
||||
"os/signal"
|
||||
@ -19,13 +19,13 @@ func main() {
|
||||
fmt.Println("IPFS_COVER_DIR not defined")
|
||||
os.Exit(1)
|
||||
}
|
||||
coverFile, err := ioutil.TempFile(coverDir, "coverage-")
|
||||
coverFile, err := os.CreateTemp(coverDir, "coverage-")
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
retFile, err := ioutil.TempFile("", "cover-ret-file")
|
||||
retFile, err := os.CreateTemp("", "cover-ret-file")
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
os.Exit(1)
|
||||
@ -69,7 +69,7 @@ func main() {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
b, err := ioutil.ReadAll(retFile)
|
||||
b, err := io.ReadAll(retFile)
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
os.Exit(1)
|
||||
|
||||
@ -5,10 +5,10 @@ is read once at node instantiation, either for an offline command, or when
|
||||
starting the daemon. Commands that execute on a running daemon do not read the
|
||||
config file at runtime.
|
||||
|
||||
## Table of Contents
|
||||
# Table of Contents
|
||||
|
||||
- [The go-ipfs config file](#the-go-ipfs-config-file)
|
||||
- [Table of Contents](#table-of-contents)
|
||||
- [Table of Contents](#table-of-contents)
|
||||
- [Profiles](#profiles)
|
||||
- [Types](#types)
|
||||
- [`flag`](#flag)
|
||||
@ -108,13 +108,15 @@ config file at runtime.
|
||||
- [`Swarm.DisableBandwidthMetrics`](#swarmdisablebandwidthmetrics)
|
||||
- [`Swarm.DisableNatPortMap`](#swarmdisablenatportmap)
|
||||
- [`Swarm.EnableHolePunching`](#swarmenableholepunching)
|
||||
- [`Swarm.EnableAutoRelay`](#swarmenableautorelay)
|
||||
- [`Swarm.RelayClient`](#swarmrelayclient)
|
||||
- [`Swarm.RelayClient.Enabled`](#swarmrelayclientenabled)
|
||||
- [`Swarm.RelayClient.StaticRelays`](#swarmrelayclientstaticrelays)
|
||||
- [`Swarm.RelayService`](#swarmrelayservice)
|
||||
- [`Swarm.RelayService.Enabled`](#swarmrelayserviceenabled)
|
||||
- [`Swarm.RelayService.ConnectionDurationLimit`](#swarmrelayserviceconnectiondurationlimit)
|
||||
- [`Swarm.RelayService.ConnectionDataLimit`](#swarmrelayserviceconnectiondatalimit)
|
||||
- [`Swarm.RelayService.Limit`](#swarmrelayservicelimit)
|
||||
- [`Swarm.RelayService.ConnectionDurationLimit`](#swarmrelayserviceconnectiondurationlimit)
|
||||
- [`Swarm.RelayService.ConnectionDataLimit`](#swarmrelayserviceconnectiondatalimit)
|
||||
- [`Swarm.RelayService.ReservationTTL`](#swarmrelayservicereservationttl)
|
||||
- [`Swarm.RelayService.MaxReservations`](#swarmrelayservicemaxreservations)
|
||||
- [`Swarm.RelayService.MaxCircuits`](#swarmrelayservicemaxcircuits)
|
||||
@ -122,6 +124,8 @@ config file at runtime.
|
||||
- [`Swarm.RelayService.MaxReservationsPerPeer`](#swarmrelayservicemaxreservationsperpeer)
|
||||
- [`Swarm.RelayService.MaxReservationsPerIP`](#swarmrelayservicemaxreservationsperip)
|
||||
- [`Swarm.RelayService.MaxReservationsPerASN`](#swarmrelayservicemaxreservationsperasn)
|
||||
- [`Swarm.EnableRelayHop`](#swarmenablerelayhop)
|
||||
- [`Swarm.DisableRelay`](#swarmdisablerelay)
|
||||
- [`Swarm.EnableAutoNATService`](#swarmenableautonatservice)
|
||||
- [`Swarm.ConnMgr`](#swarmconnmgr)
|
||||
- [`Swarm.ConnMgr.Type`](#swarmconnmgrtype)
|
||||
@ -149,8 +153,6 @@ config file at runtime.
|
||||
- [`DNS.Resolvers`](#dnsresolvers)
|
||||
- [`DNS.MaxCacheTTL`](#dnsmaxcachettl)
|
||||
|
||||
|
||||
|
||||
## Profiles
|
||||
|
||||
Configuration profiles allow to tweak configuration quickly. Profiles can be
|
||||
@ -574,15 +576,15 @@ Type: `object`
|
||||
|
||||
## `Discovery`
|
||||
|
||||
Contains options for configuring ipfs node discovery mechanisms.
|
||||
Contains options for configuring IPFS node discovery mechanisms.
|
||||
|
||||
### `Discovery.MDNS`
|
||||
|
||||
Options for multicast dns peer discovery.
|
||||
Options for [ZeroConf](https://github.com/libp2p/zeroconf#readme) Multicast DNS-SD peer discovery.
|
||||
|
||||
#### `Discovery.MDNS.Enabled`
|
||||
|
||||
A boolean value for whether or not mdns should be active.
|
||||
A boolean value for whether or not Multicast DNS-SD should be active.
|
||||
|
||||
Default: `true`
|
||||
|
||||
@ -590,11 +592,8 @@ Type: `bool`
|
||||
|
||||
#### `Discovery.MDNS.Interval`
|
||||
|
||||
The number of seconds between discovery checks.
|
||||
|
||||
Default: `5`
|
||||
|
||||
Type: `integer` (integer seconds, 0 means the default)
|
||||
**REMOVED:** this is not configurable any more
|
||||
in the [new mDNS implementation](https://github.com/libp2p/zeroconf#readme).
|
||||
|
||||
## `Gateway`
|
||||
|
||||
@ -1630,10 +1629,16 @@ Type: `duration`
|
||||
|
||||
### `Swarm.ResourceMgr`
|
||||
|
||||
**EXPERIMENTAL: `Swarm.ResourceMgr` configuration will change in future release**
|
||||
|
||||
The [libp2p Network Resource Manager](https://github.com/libp2p/go-libp2p-resource-manager#readme) allows setting limits per a scope,
|
||||
and tracking recource usage over time.
|
||||
|
||||
#### `Swarm.ResourceMgr.Enabled`
|
||||
|
||||
**EXPERIMENTAL: `Swarm.ResourceMgr` is in active development, enable it only if you want to provide maintainers with feedback**
|
||||
|
||||
|
||||
Enables the libp2p Network Resource Manager and auguments the default limits
|
||||
using user-defined ones in `Swarm.ResourceMgr.Limits` (if present).
|
||||
|
||||
@ -1643,12 +1648,14 @@ Type: `flag`
|
||||
|
||||
#### `Swarm.ResourceMgr.Limits`
|
||||
|
||||
**EXPERIMENTAL: `Swarm.ResourceMgr.Limits` configuration will change in future release, exposed here only for convenience**
|
||||
|
||||
Map of resource limits [per scope](https://github.com/libp2p/go-libp2p-resource-manager#resource-scopes).
|
||||
|
||||
The map supports fields from [`BasicLimiterConfig`](https://github.com/libp2p/go-libp2p-resource-manager/blob/v0.3.0/limit_config.go#L165-L185)
|
||||
struct from [go-libp2p-resource-manager](https://github.com/libp2p/go-libp2p-resource-manager#readme).
|
||||
|
||||
Example:
|
||||
**Example: (format may change in future release)**
|
||||
|
||||
```json
|
||||
{
|
||||
|
||||
@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
@ -47,13 +47,13 @@ func setupPlugins(externalPluginsPath string) error {
|
||||
}
|
||||
|
||||
func createTempRepo() (string, error) {
|
||||
repoPath, err := ioutil.TempDir("", "ipfs-shell")
|
||||
repoPath, err := os.MkdirTemp("", "ipfs-shell")
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("failed to get temp dir: %s", err)
|
||||
}
|
||||
|
||||
// Create a config with default options and a 2048 bit key
|
||||
cfg, err := config.Init(ioutil.Discard, 2048)
|
||||
cfg, err := config.Init(io.Discard, 2048)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
@ -252,7 +252,7 @@ func main() {
|
||||
|
||||
/// --- Part III: Getting the file and directory you added back
|
||||
|
||||
outputBasePath, err := ioutil.TempDir("", "example")
|
||||
outputBasePath, err := os.MkdirTemp("", "example")
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("could not create output dir (%v)", err))
|
||||
}
|
||||
|
||||
@ -8,7 +8,6 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
mrand "math/rand"
|
||||
"os"
|
||||
"sync"
|
||||
@ -57,12 +56,12 @@ func writeFileOrFail(t *testing.T, size int, path string) []byte {
|
||||
|
||||
func writeFile(size int, path string) ([]byte, error) {
|
||||
data := randBytes(size)
|
||||
err := ioutil.WriteFile(path, data, 0666)
|
||||
err := os.WriteFile(path, data, 0666)
|
||||
return data, err
|
||||
}
|
||||
|
||||
func verifyFile(t *testing.T, path string, wantData []byte) {
|
||||
isData, err := ioutil.ReadFile(path)
|
||||
isData, err := os.ReadFile(path)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -168,7 +167,7 @@ func TestIpnsBasicIO(t *testing.T) {
|
||||
fname := mnt.Dir + "/local/testfile"
|
||||
data := writeFileOrFail(t, 10, fname)
|
||||
|
||||
rbuf, err := ioutil.ReadFile(fname)
|
||||
rbuf, err := os.ReadFile(fname)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -178,7 +177,7 @@ func TestIpnsBasicIO(t *testing.T) {
|
||||
}
|
||||
|
||||
fname2 := mnt.Dir + "/" + nd.Identity.Pretty() + "/testfile"
|
||||
rbuf, err = ioutil.ReadFile(fname2)
|
||||
rbuf, err = os.ReadFile(fname2)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -204,7 +203,7 @@ func TestFilePersistence(t *testing.T) {
|
||||
_, mnt = setupIpnsTest(t, node)
|
||||
defer mnt.Close()
|
||||
|
||||
rbuf, err := ioutil.ReadFile(mnt.Dir + fname)
|
||||
rbuf, err := os.ReadFile(mnt.Dir + fname)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -324,7 +323,7 @@ func TestAppendFile(t *testing.T) {
|
||||
|
||||
data = append(data, nudata...)
|
||||
|
||||
rbuf, err := ioutil.ReadFile(fname)
|
||||
rbuf, err := os.ReadFile(fname)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -453,7 +452,7 @@ func TestFSThrash(t *testing.T) {
|
||||
|
||||
wg.Wait()
|
||||
for name, data := range files {
|
||||
out, err := ioutil.ReadFile(name)
|
||||
out, err := os.ReadFile(name)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
@ -492,7 +491,7 @@ func TestMultiWrite(t *testing.T) {
|
||||
}
|
||||
fi.Close()
|
||||
|
||||
rbuf, err := ioutil.ReadFile(fpath)
|
||||
rbuf, err := os.ReadFile(fpath)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@ -216,7 +216,7 @@ func (r *Root) Forget() {
|
||||
func (r *Root) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) {
|
||||
log.Debug("Root ReadDirAll")
|
||||
|
||||
var listing []fuse.Dirent
|
||||
listing := make([]fuse.Dirent, 0, len(r.Keys)*2)
|
||||
for alias, k := range r.Keys {
|
||||
ent := fuse.Dirent{
|
||||
Name: k.ID().Pretty(),
|
||||
@ -291,12 +291,12 @@ func (s *Directory) Lookup(ctx context.Context, name string) (fs.Node, error) {
|
||||
|
||||
// ReadDirAll reads the link structure as directory entries
|
||||
func (dir *Directory) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) {
|
||||
var entries []fuse.Dirent
|
||||
listing, err := dir.dir.List(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, entry := range listing {
|
||||
entries := make([]fuse.Dirent, len(listing))
|
||||
for i, entry := range listing {
|
||||
dirent := fuse.Dirent{Name: entry.Name}
|
||||
|
||||
switch mfs.NodeType(entry.Type) {
|
||||
@ -306,7 +306,7 @@ func (dir *Directory) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) {
|
||||
dirent.Type = fuse.DT_File
|
||||
}
|
||||
|
||||
entries = append(entries, dirent)
|
||||
entries[i] = dirent
|
||||
}
|
||||
|
||||
if len(entries) > 0 {
|
||||
|
||||
@ -4,7 +4,6 @@
|
||||
package node
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
@ -54,7 +53,7 @@ func TestExternalUnmount(t *testing.T) {
|
||||
}
|
||||
|
||||
// get the test dir paths (/tmp/fusetestXXXX)
|
||||
dir, err := ioutil.TempDir("", "fusetest")
|
||||
dir, err := os.MkdirTemp("", "fusetest")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@ -9,7 +9,6 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"math/rand"
|
||||
"os"
|
||||
"path"
|
||||
@ -91,7 +90,7 @@ func TestIpfsBasicRead(t *testing.T) {
|
||||
fi, data := randObj(t, nd, 10000)
|
||||
k := fi.Cid()
|
||||
fname := path.Join(mnt.Dir, k.String())
|
||||
rbuf, err := ioutil.ReadFile(fname)
|
||||
rbuf, err := os.ReadFile(fname)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -190,7 +189,7 @@ func TestIpfsStressRead(t *testing.T) {
|
||||
relpath := strings.Replace(item.String(), item.Namespace(), "", 1)
|
||||
fname := path.Join(mnt.Dir, relpath)
|
||||
|
||||
rbuf, err := ioutil.ReadFile(fname)
|
||||
rbuf, err := os.ReadFile(fname)
|
||||
if err != nil {
|
||||
errs <- err
|
||||
}
|
||||
@ -204,7 +203,7 @@ func TestIpfsStressRead(t *testing.T) {
|
||||
errs <- err
|
||||
}
|
||||
|
||||
data, err := ioutil.ReadAll(read.(files.File))
|
||||
data, err := io.ReadAll(read.(files.File))
|
||||
if err != nil {
|
||||
errs <- err
|
||||
}
|
||||
@ -260,12 +259,12 @@ func TestIpfsBasicDirRead(t *testing.T) {
|
||||
|
||||
dirname := path.Join(mnt.Dir, d1nd.Cid().String())
|
||||
fname := path.Join(dirname, "actual")
|
||||
rbuf, err := ioutil.ReadFile(fname)
|
||||
rbuf, err := os.ReadFile(fname)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
dirents, err := ioutil.ReadDir(dirname)
|
||||
dirents, err := os.ReadDir(dirname)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
39
go.mod
39
go.mod
@ -15,7 +15,7 @@ require (
|
||||
github.com/fsnotify/fsnotify v1.5.1
|
||||
github.com/gabriel-vasile/mimetype v1.4.0
|
||||
github.com/hashicorp/go-multierror v1.1.1
|
||||
github.com/ipfs/go-bitswap v0.6.0
|
||||
github.com/ipfs/go-bitswap v0.7.0
|
||||
github.com/ipfs/go-block-format v0.0.3
|
||||
github.com/ipfs/go-blockservice v0.3.0
|
||||
github.com/ipfs/go-cid v0.2.0
|
||||
@ -55,7 +55,7 @@ require (
|
||||
github.com/ipfs/go-namesys v0.5.0
|
||||
github.com/ipfs/go-path v0.3.0
|
||||
github.com/ipfs/go-pinning-service-http-client v0.1.1
|
||||
github.com/ipfs/go-unixfs v0.3.1
|
||||
github.com/ipfs/go-unixfs v0.4.0
|
||||
github.com/ipfs/go-unixfsnode v1.4.0
|
||||
github.com/ipfs/go-verifcid v0.0.1
|
||||
github.com/ipfs/interface-go-ipfs-core v0.7.0
|
||||
@ -68,36 +68,27 @@ require (
|
||||
github.com/jbenet/go-temp-err-catcher v0.1.0
|
||||
github.com/jbenet/goprocess v0.1.4
|
||||
github.com/libp2p/go-doh-resolver v0.4.0
|
||||
github.com/libp2p/go-libp2p v0.19.4
|
||||
github.com/libp2p/go-libp2p-core v0.15.1
|
||||
github.com/libp2p/go-libp2p-discovery v0.6.0
|
||||
github.com/libp2p/go-libp2p v0.20.3
|
||||
github.com/libp2p/go-libp2p-core v0.16.1
|
||||
github.com/libp2p/go-libp2p-http v0.2.1
|
||||
github.com/libp2p/go-libp2p-kad-dht v0.16.0
|
||||
github.com/libp2p/go-libp2p-kbucket v0.4.7
|
||||
github.com/libp2p/go-libp2p-loggables v0.1.0
|
||||
github.com/libp2p/go-libp2p-mplex v0.7.0
|
||||
github.com/libp2p/go-libp2p-noise v0.4.0
|
||||
github.com/libp2p/go-libp2p-peerstore v0.6.0
|
||||
github.com/libp2p/go-libp2p-pubsub v0.6.1
|
||||
github.com/libp2p/go-libp2p-pubsub-router v0.5.0
|
||||
github.com/libp2p/go-libp2p-quic-transport v0.17.0
|
||||
github.com/libp2p/go-libp2p-record v0.1.3
|
||||
github.com/libp2p/go-libp2p-resource-manager v0.3.0
|
||||
github.com/libp2p/go-libp2p-routing-helpers v0.2.3
|
||||
github.com/libp2p/go-libp2p-swarm v0.10.2
|
||||
github.com/libp2p/go-libp2p-testing v0.9.2
|
||||
github.com/libp2p/go-libp2p-tls v0.4.1
|
||||
github.com/libp2p/go-libp2p-yamux v0.9.1
|
||||
github.com/libp2p/go-socket-activation v0.1.0
|
||||
github.com/libp2p/go-tcp-transport v0.5.1
|
||||
github.com/libp2p/go-ws-transport v0.6.0
|
||||
github.com/miekg/dns v1.1.48
|
||||
github.com/mitchellh/go-homedir v1.1.0
|
||||
github.com/multiformats/go-multiaddr v0.5.0
|
||||
github.com/multiformats/go-multiaddr-dns v0.3.1
|
||||
github.com/multiformats/go-multibase v0.0.3
|
||||
github.com/multiformats/go-multicodec v0.5.0
|
||||
github.com/multiformats/go-multihash v0.1.0
|
||||
github.com/multiformats/go-multihash v0.2.0
|
||||
github.com/opentracing/opentracing-go v1.2.0
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/prometheus/client_golang v1.12.1
|
||||
@ -120,7 +111,7 @@ require (
|
||||
go.uber.org/dig v1.14.0
|
||||
go.uber.org/fx v1.16.0
|
||||
go.uber.org/zap v1.21.0
|
||||
golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898
|
||||
golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
|
||||
golang.org/x/sys v0.0.0-20220517195934-5e4e11fc645e
|
||||
)
|
||||
@ -138,6 +129,8 @@ require (
|
||||
github.com/alexbrainman/goissue34681 v0.0.0-20191006012335-3fc7a47baff5 // indirect
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
github.com/btcsuite/btcd v0.22.1 // indirect
|
||||
github.com/btcsuite/btcd/btcec/v2 v2.1.3 // indirect
|
||||
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect
|
||||
github.com/cenkalti/backoff v2.2.1+incompatible // indirect
|
||||
github.com/cespare/xxhash/v2 v2.1.2 // indirect
|
||||
github.com/cheekybits/genny v1.0.0 // indirect
|
||||
@ -146,6 +139,7 @@ require (
|
||||
github.com/cskr/pubsub v1.0.2 // 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.0.1 // indirect
|
||||
github.com/dgraph-io/badger v1.6.2 // indirect
|
||||
github.com/dgraph-io/ristretto v0.0.2 // indirect
|
||||
github.com/docker/go-units v0.4.0 // indirect
|
||||
@ -183,24 +177,19 @@ require (
|
||||
github.com/koron/go-ssdp v0.0.2 // indirect
|
||||
github.com/libp2p/go-buffer-pool v0.0.2 // 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.2.0 // indirect
|
||||
github.com/libp2p/go-libp2p-blankhost v0.3.0 // indirect
|
||||
github.com/libp2p/go-libp2p-discovery v0.7.0 // indirect
|
||||
github.com/libp2p/go-libp2p-gostream v0.3.0 // indirect
|
||||
github.com/libp2p/go-libp2p-nat v0.1.0 // indirect
|
||||
github.com/libp2p/go-libp2p-pnet v0.2.0 // indirect
|
||||
github.com/libp2p/go-libp2p-transport-upgrader v0.7.1 // indirect
|
||||
github.com/libp2p/go-libp2p-swarm v0.11.0 // indirect
|
||||
github.com/libp2p/go-libp2p-xor v0.1.0 // indirect
|
||||
github.com/libp2p/go-mplex v0.7.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-reuseport v0.2.0 // indirect
|
||||
github.com/libp2p/go-yamux/v3 v3.1.2 // indirect
|
||||
github.com/libp2p/zeroconf/v2 v2.1.1 // indirect
|
||||
github.com/lucas-clemente/quic-go v0.27.1 // indirect
|
||||
@ -215,13 +204,12 @@ require (
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // 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/mr-tron/base58 v1.2.0 // indirect
|
||||
github.com/multiformats/go-base32 v0.0.4 // indirect
|
||||
github.com/multiformats/go-base36 v0.1.0 // indirect
|
||||
github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect
|
||||
github.com/multiformats/go-multistream v0.3.0 // indirect
|
||||
github.com/multiformats/go-multistream v0.3.3 // indirect
|
||||
github.com/multiformats/go-varint v0.0.6 // indirect
|
||||
github.com/nxadm/tail v1.4.8 // indirect
|
||||
github.com/onsi/ginkgo v1.16.5 // indirect
|
||||
@ -246,7 +234,6 @@ require (
|
||||
github.com/whyrusleeping/cbor-gen v0.0.0-20210219115102-f37d292932f2 // indirect
|
||||
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f // indirect
|
||||
github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 // indirect
|
||||
github.com/whyrusleeping/mdns v0.0.0-20190826153040-b9b60ed33aa9 // indirect
|
||||
github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.7.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.7.0 // indirect
|
||||
|
||||
68
go.sum
68
go.sum
@ -106,6 +106,9 @@ github.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MR
|
||||
github.com/btcsuite/btcd v0.22.0-beta/go.mod h1:9n5ntfhhHQBIhUvlhDvD3Qg6fRUj4jkN0VB8L8svzOA=
|
||||
github.com/btcsuite/btcd v0.22.1 h1:CnwP9LM/M9xuRrGSCGeMVs9iv09uMqwsVX7EeIpgV2c=
|
||||
github.com/btcsuite/btcd v0.22.1/go.mod h1:wqgTSL29+50LRkmOVknEdmt8ZojIzhuWvgu/iptuN7Y=
|
||||
github.com/btcsuite/btcd/btcec/v2 v2.1.3 h1:xM/n3yIhHAhHy04z4i43C8p4ehixJZMsnrVJkgl+MTE=
|
||||
github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE=
|
||||
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc=
|
||||
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U=
|
||||
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc=
|
||||
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=
|
||||
@ -189,6 +192,10 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
|
||||
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/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0=
|
||||
github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc=
|
||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc=
|
||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs=
|
||||
github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=
|
||||
github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ=
|
||||
github.com/dgraph-io/badger v1.6.0-rc1/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4=
|
||||
@ -455,8 +462,9 @@ github.com/ipfs/go-bitswap v0.1.2/go.mod h1:qxSWS4NXGs7jQ6zQvoPY3+NmOfHHG47mhkiL
|
||||
github.com/ipfs/go-bitswap v0.1.8/go.mod h1:TOWoxllhccevbWFUR2N7B1MTSVVge1s6XSMiCSA4MzM=
|
||||
github.com/ipfs/go-bitswap v0.3.4/go.mod h1:4T7fvNv/LmOys+21tnLzGKncMeeXUYUd1nUiJ2teMvI=
|
||||
github.com/ipfs/go-bitswap v0.5.1/go.mod h1:P+ckC87ri1xFLvk74NlXdP0Kj9RmWAh4+H78sC6Qopo=
|
||||
github.com/ipfs/go-bitswap v0.6.0 h1:f2rc6GZtoSFhEIzQmddgGiel9xntj02Dg0ZNf2hSC+w=
|
||||
github.com/ipfs/go-bitswap v0.6.0/go.mod h1:Hj3ZXdOC5wBJvENtdqsixmzzRukqd8EHLxZLZc3mzRA=
|
||||
github.com/ipfs/go-bitswap v0.7.0 h1:vSte4lll4Rob7cMQERUouxtFbuD7Vl4Hq+XEAp2ipKY=
|
||||
github.com/ipfs/go-bitswap v0.7.0/go.mod h1:Hj3ZXdOC5wBJvENtdqsixmzzRukqd8EHLxZLZc3mzRA=
|
||||
github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc=
|
||||
github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY=
|
||||
github.com/ipfs/go-block-format v0.0.3 h1:r8t66QstRp/pd/or4dpnbVfXT5Gt7lOqRvC+/dDTpMc=
|
||||
@ -634,8 +642,9 @@ github.com/ipfs/go-peertaskqueue v0.7.1/go.mod h1:M/akTIE/z1jGNXMU7kFB4TeSEFvj68
|
||||
github.com/ipfs/go-pinning-service-http-client v0.1.1 h1:Bar+Vi60A0zI8GSSrumVqnbFg6qkUgZSQTX9sV5jWrA=
|
||||
github.com/ipfs/go-pinning-service-http-client v0.1.1/go.mod h1:i6tC2nWOnJbZZUQPgxOlrg4CX8bhQZMh4II09FxvD58=
|
||||
github.com/ipfs/go-unixfs v0.2.4/go.mod h1:SUdisfUjNoSDzzhGVxvCL9QO/nKdwXdr+gbMUdqcbYw=
|
||||
github.com/ipfs/go-unixfs v0.3.1 h1:LrfED0OGfG98ZEegO4/xiprx2O+yS+krCMQSp7zLVv8=
|
||||
github.com/ipfs/go-unixfs v0.3.1/go.mod h1:h4qfQYzghiIc8ZNFKiLMFWOTzrWIAtzYQ59W/pCFf1o=
|
||||
github.com/ipfs/go-unixfs v0.4.0 h1:qSyyxfB/OiDdWHYiSbyaqKC7zfSE/TFL0QdwkRjBm20=
|
||||
github.com/ipfs/go-unixfs v0.4.0/go.mod h1:I7Nqtm06HgOOd+setAoCU6rf/HgVFHE+peeNuOv/5+g=
|
||||
github.com/ipfs/go-unixfsnode v1.1.2/go.mod h1:5dcE2x03pyjHk4JjamXmunTMzz+VUtqvPwZjIEkfV6s=
|
||||
github.com/ipfs/go-unixfsnode v1.4.0 h1:9BUxHBXrbNi8mWHc6j+5C580WJqtVw9uoeEKn4tMhwA=
|
||||
github.com/ipfs/go-unixfsnode v1.4.0/go.mod h1:qc7YFFZ8tABc58p62HnIYbUMwj9chhUuFWmxSokfePo=
|
||||
@ -751,7 +760,6 @@ github.com/libp2p/go-conn-security-multistream v0.0.2/go.mod h1:nc9vud7inQ+d6SO0
|
||||
github.com/libp2p/go-conn-security-multistream v0.1.0/go.mod h1:aw6eD7LOsHEX7+2hJkDxw1MteijaVcI+/eP2/x3J1xc=
|
||||
github.com/libp2p/go-conn-security-multistream v0.2.0/go.mod h1:hZN4MjlNetKD3Rq5Jb/P5ohUnFLNzEAR4DLSzpn2QLU=
|
||||
github.com/libp2p/go-conn-security-multistream v0.2.1/go.mod h1:cR1d8gA0Hr59Fj6NhaTpFhJZrjSYuNmhpT2r25zYR70=
|
||||
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-doh-resolver v0.4.0 h1:gUBa1f1XsPwtpE1du0O+nnZCUqtG7oYi7Bb+0S7FQqw=
|
||||
github.com/libp2p/go-doh-resolver v0.4.0/go.mod h1:v1/jwsFusgsWIGX/c6vCRrnJ60x7bhTiq/fs2qt0cAg=
|
||||
@ -775,8 +783,9 @@ github.com/libp2p/go-libp2p v0.14.3/go.mod h1:d12V4PdKbpL0T1/gsUNN8DfgMuRPDX8bS2
|
||||
github.com/libp2p/go-libp2p v0.14.4/go.mod h1:EIRU0Of4J5S8rkockZM7eJp2S0UrCyi55m2kJVru3rM=
|
||||
github.com/libp2p/go-libp2p v0.16.0/go.mod h1:ump42BsirwAWxKzsCiFnTtN1Yc+DuPu76fyMX364/O4=
|
||||
github.com/libp2p/go-libp2p v0.18.0/go.mod h1:+veaZ9z1SZQhmc5PW78jvnnxZ89Mgvmh4cggO11ETmw=
|
||||
github.com/libp2p/go-libp2p v0.19.4 h1:50YL0YwPhWKDd+qbZQDEdnsmVAAkaCQrWUjpdHv4hNA=
|
||||
github.com/libp2p/go-libp2p v0.19.4/go.mod h1:MIt8y481VDhUe4ErWi1a4bvt/CjjFfOq6kZTothWIXY=
|
||||
github.com/libp2p/go-libp2p v0.20.0/go.mod h1:g0C5Fu+aXXbCXkusCzLycuBowEih3ElmDqtbo61Em7k=
|
||||
github.com/libp2p/go-libp2p v0.20.3 h1:tjjDNfp7FqdI/7v1rXtB/BtELaPlAThL2uzlj18kcrw=
|
||||
github.com/libp2p/go-libp2p v0.20.3/go.mod h1:I+vndVanE/p/SjFbnA+BEmmfAUEpWxrdXZeyQ1Dus5c=
|
||||
github.com/libp2p/go-libp2p-asn-util v0.0.0-20200825225859-85005c6cf052/go.mod h1:nRMRTab+kZuk0LnKZpxhOVH/ndsdr2Nr//Zltc/vwgo=
|
||||
github.com/libp2p/go-libp2p-asn-util v0.1.0/go.mod h1:wu+AnM9Ii2KgO5jMmS1rz9dvzTdj8BXqsPR9HR0XB7I=
|
||||
github.com/libp2p/go-libp2p-asn-util v0.2.0 h1:rg3+Os8jbnO5DxkC7K/Utdi+DkY3q/d1/1q+8WeNAsw=
|
||||
@ -836,8 +845,9 @@ github.com/libp2p/go-libp2p-core v0.10.0/go.mod h1:ECdxehoYosLYHgDDFa2N4yE8Y7aQR
|
||||
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.14.0/go.mod h1:tLasfcVdTXnixsLB0QYaT1syJOhsbrhG7q6pGrHtBg8=
|
||||
github.com/libp2p/go-libp2p-core v0.15.1 h1:0RY+Mi/ARK9DgG1g9xVQLb8dDaaU8tCePMtGALEfBnM=
|
||||
github.com/libp2p/go-libp2p-core v0.15.1/go.mod h1:agSaboYM4hzB1cWekgVReqV5M4g5M+2eNNejV+1EEhs=
|
||||
github.com/libp2p/go-libp2p-core v0.16.1 h1:bWoiEBqVkpJ13hbv/f69tHODp86t6mvc4fBN4DkK73M=
|
||||
github.com/libp2p/go-libp2p-core v0.16.1/go.mod h1:O3i/7y+LqUb0N+qhzXjBjjpchgptWAVMG1Voegk7b4c=
|
||||
github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE=
|
||||
github.com/libp2p/go-libp2p-crypto v0.0.2/go.mod h1:eETI5OUfBnvARGOHrJz2eWNyTUxEGZnBxMcbUjfIj4I=
|
||||
github.com/libp2p/go-libp2p-crypto v0.1.0/go.mod h1:sPUokVISZiy+nNuTTH/TY+leRSxnFj/2GLjtOTW90hI=
|
||||
@ -846,8 +856,9 @@ github.com/libp2p/go-libp2p-discovery v0.1.0/go.mod h1:4F/x+aldVHjHDHuX85x1zWoFT
|
||||
github.com/libp2p/go-libp2p-discovery v0.2.0/go.mod h1:s4VGaxYMbw4+4+tsoQTqh7wfxg97AEdo4GYBt6BadWg=
|
||||
github.com/libp2p/go-libp2p-discovery v0.3.0/go.mod h1:o03drFnz9BVAZdzC/QUQ+NeQOu38Fu7LJGEOK2gQltw=
|
||||
github.com/libp2p/go-libp2p-discovery v0.5.0/go.mod h1:+srtPIU9gDaBNu//UHvcdliKBIcr4SfDcm0/PfPJLug=
|
||||
github.com/libp2p/go-libp2p-discovery v0.6.0 h1:1XdPmhMJr8Tmj/yUfkJMIi8mgwWrLUsCB3bMxdT+DSo=
|
||||
github.com/libp2p/go-libp2p-discovery v0.6.0/go.mod h1:/u1voHt0tKIe5oIA1RHBKQLVCWPna2dXmPNHc2zR9S8=
|
||||
github.com/libp2p/go-libp2p-discovery v0.7.0 h1:6Iu3NyningTb/BmUnEhcTwzwbs4zcywwbfTulM9LHuc=
|
||||
github.com/libp2p/go-libp2p-discovery v0.7.0/go.mod h1:zPug0Rxib1aQG9iIdwOpRpBf18cAfZgzicO826UQP4I=
|
||||
github.com/libp2p/go-libp2p-gostream v0.3.0 h1:rnas//vRdHYCr7bjraZJISPwZV8OGMjeX5k5fN5Ax44=
|
||||
github.com/libp2p/go-libp2p-gostream v0.3.0/go.mod h1:pLBQu8db7vBMNINGsAwLL/ZCE8wng5V1FThoaE5rNjc=
|
||||
github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go=
|
||||
@ -878,12 +889,9 @@ github.com/libp2p/go-libp2p-mplex v0.4.0/go.mod h1:yCyWJE2sc6TBTnFpjvLuEJgTSw/u+
|
||||
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/go.mod h1:i3usuPrBbh9FD2fLZjGpotyNkwr42KStYZQY7BeTiu4=
|
||||
github.com/libp2p/go-libp2p-mplex v0.7.0 h1:ONTTvHIUaFCwyPO4FRkpe4OFQJq1bDkWQLbhWiD1A44=
|
||||
github.com/libp2p/go-libp2p-mplex v0.7.0/go.mod h1:SeeXUXh7ZkfxnmsepnFgMPEhfEyACujuTM9k1TkErpc=
|
||||
github.com/libp2p/go-libp2p-nat v0.0.4/go.mod h1:N9Js/zVtAXqaeT99cXgTV9e75KpnWCvVOiGzlcHmBbY=
|
||||
github.com/libp2p/go-libp2p-nat v0.0.5/go.mod h1:1qubaE5bTZMJE+E/uu2URroMbzdubFz1ChgiN79yKPE=
|
||||
github.com/libp2p/go-libp2p-nat v0.0.6/go.mod h1:iV59LVhB3IkFvS6S6sauVTSOrNEANnINbI/fkaLimiw=
|
||||
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-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c=
|
||||
github.com/libp2p/go-libp2p-net v0.0.2/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c=
|
||||
@ -893,8 +901,6 @@ github.com/libp2p/go-libp2p-netutil v0.1.0/go.mod h1:3Qv/aDqtMLTUyQeundkKsA+YCTh
|
||||
github.com/libp2p/go-libp2p-noise v0.1.1/go.mod h1:QDFLdKX7nluB7DEnlVPbz7xlLHdwHFA9HiohJRr3vwM=
|
||||
github.com/libp2p/go-libp2p-noise v0.2.0/go.mod h1:IEbYhBBzGyvdLBoxxULL/SGbJARhUeqlO8lVSREYu2Q=
|
||||
github.com/libp2p/go-libp2p-noise v0.3.0/go.mod h1:JNjHbociDJKHD64KTkzGnzqJ0FEV5gHJa6AB00kbCNQ=
|
||||
github.com/libp2p/go-libp2p-noise v0.4.0 h1:khcMsGhHNdGqKE5LDLrnHwZvdGVMsrnD4GTkTWkwmLU=
|
||||
github.com/libp2p/go-libp2p-noise v0.4.0/go.mod h1:BzzY5pyzCYSyJbQy9oD8z5oP2idsafjt4/X42h9DjZU=
|
||||
github.com/libp2p/go-libp2p-peer v0.0.1/go.mod h1:nXQvOBbwVqoP+T5Y5nCjeH4sP9IX/J0AMzcDUVruVoo=
|
||||
github.com/libp2p/go-libp2p-peer v0.1.1/go.mod h1:jkF12jGB4Gk/IOo+yomm+7oLWxF278F7UnrYUQ1Q8es=
|
||||
github.com/libp2p/go-libp2p-peer v0.2.0/go.mod h1:RCffaCvUyW2CJmG2gAWVqwePwW7JMgxjsHm7+J5kjWY=
|
||||
@ -912,7 +918,6 @@ github.com/libp2p/go-libp2p-peerstore v0.2.8/go.mod h1:gGiPlXdz7mIHd2vfAsHzBNAMq
|
||||
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-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s=
|
||||
github.com/libp2p/go-libp2p-protocol v0.1.0/go.mod h1:KQPHpAabB57XQxGrXCNvbL6UEXfQqUgC/1adR2Xtflk=
|
||||
@ -927,15 +932,12 @@ github.com/libp2p/go-libp2p-quic-transport v0.13.0/go.mod h1:39/ZWJ1TW/jx1iFkKzz
|
||||
github.com/libp2p/go-libp2p-quic-transport v0.15.0/go.mod h1:wv4uGwjcqe8Mhjj7N/Ic0aKjA+/10UnMlSzLO0yRpYQ=
|
||||
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-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q=
|
||||
github.com/libp2p/go-libp2p-record v0.1.0/go.mod h1:ujNc8iuE5dlKWVy6wuL6dd58t0n7xI4hAIl8pE6wu5Q=
|
||||
github.com/libp2p/go-libp2p-record v0.1.2/go.mod h1:pal0eNcT5nqZaTV7UGhqeGqxFgGdsU/9W//C8dqjQDk=
|
||||
github.com/libp2p/go-libp2p-record v0.1.3 h1:R27hoScIhQf/A8XJZ8lYpnqh9LatJ5YbHs28kCIfql0=
|
||||
github.com/libp2p/go-libp2p-record v0.1.3/go.mod h1:yNUff/adKIfPnYQXgp6FQmNu3gLJ6EMg7+/vv2+9pY4=
|
||||
github.com/libp2p/go-libp2p-resource-manager v0.1.5/go.mod h1:wJPNjeE4XQlxeidwqVY5G6DLOKqFK33u2n8blpl0I6Y=
|
||||
github.com/libp2p/go-libp2p-resource-manager v0.2.1/go.mod h1:K+eCkiapf+ey/LADO4TaMpMTP9/Qde/uLlrnRqV4PLQ=
|
||||
github.com/libp2p/go-libp2p-resource-manager v0.3.0 h1:2+cYxUNi33tcydsVLt6K5Fv2E3OTiVeafltecAj15E0=
|
||||
github.com/libp2p/go-libp2p-resource-manager v0.3.0/go.mod h1:K+eCkiapf+ey/LADO4TaMpMTP9/Qde/uLlrnRqV4PLQ=
|
||||
github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys=
|
||||
@ -958,8 +960,9 @@ github.com/libp2p/go-libp2p-swarm v0.5.0/go.mod h1:sU9i6BoHE0Ve5SKz3y9WfKrh8dUat
|
||||
github.com/libp2p/go-libp2p-swarm v0.5.3/go.mod h1:NBn7eNW2lu568L7Ns9wdFrOhgRlkRnIDg0FLKbuu3i8=
|
||||
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-swarm v0.11.0 h1:ITgsTEY2tA4OxFJGcWeugiMh2x5+VOEnI2JStT1EWxI=
|
||||
github.com/libp2p/go-libp2p-swarm v0.11.0/go.mod h1:sumjVYrC84gPSZOFKL8hNcnN6HZvJSwJ8ymaXeko4Lk=
|
||||
github.com/libp2p/go-libp2p-testing v0.0.1/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E=
|
||||
github.com/libp2p/go-libp2p-testing v0.0.2/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E=
|
||||
github.com/libp2p/go-libp2p-testing v0.0.3/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E=
|
||||
@ -973,14 +976,11 @@ github.com/libp2p/go-libp2p-testing v0.4.2/go.mod h1:Q+PFXYoiYFN5CAEG2w3gLPEzotl
|
||||
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/go.mod h1:Td7kbdkWqYTJYQGTwzlgXwaqldraIanyjuRiAbK/XQU=
|
||||
github.com/libp2p/go-libp2p-testing v0.9.2 h1:dCpODRtRaDZKF8HXT9qqqgON+OMEB423Knrgeod8j84=
|
||||
github.com/libp2p/go-libp2p-testing v0.9.2/go.mod h1:Td7kbdkWqYTJYQGTwzlgXwaqldraIanyjuRiAbK/XQU=
|
||||
github.com/libp2p/go-libp2p-tls v0.1.3/go.mod h1:wZfuewxOndz5RTnCAxFliGjvYSDA40sKitV4c50uI1M=
|
||||
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.1 h1:1ByJUbyoMXvYXDoW6lLsMxqMViQNXmt+CfQqlnCpY+M=
|
||||
github.com/libp2p/go-libp2p-tls v0.4.1/go.mod h1:EKCixHEysLNDlLUoKxv+3f/Lp90O2EXNjTr0UQDnrIw=
|
||||
github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk=
|
||||
github.com/libp2p/go-libp2p-transport v0.0.5/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A=
|
||||
github.com/libp2p/go-libp2p-transport-upgrader v0.0.4/go.mod h1:RGq+tupk+oj7PzL2kn/m1w6YXxcIAYJYeI90h6BGgUc=
|
||||
@ -993,7 +993,6 @@ github.com/libp2p/go-libp2p-transport-upgrader v0.4.3/go.mod h1:bpkldbOWXMrXhpZb
|
||||
github.com/libp2p/go-libp2p-transport-upgrader v0.4.6/go.mod h1:JE0WQuQdy+uLZ5zOaI3Nw9dWGYJIA7mywEtP2lMvnyk=
|
||||
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-xor v0.0.0-20210714161855-5c005aca55db/go.mod h1:LSTM5yRnjGZbWNTA/hRwq2gGFrvRIbQJscoIL/u6InY=
|
||||
github.com/libp2p/go-libp2p-xor v0.1.0 h1:hhQwT4uGrBcuAkUGXADuPltalOdpf9aag9kaYNT2tLA=
|
||||
@ -1014,8 +1013,6 @@ github.com/libp2p/go-libp2p-yamux v0.6.0/go.mod h1:MRhd6mAYnFRnSISp4M8i0ClV/j+mW
|
||||
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/go.mod h1:rUozF8Jah2dL9LLGyBaBeTQeARdwhefMCTQVQt6QobE=
|
||||
github.com/libp2p/go-libp2p-yamux v0.9.1 h1:oplewiRix8s45SOrI30rCPZG5mM087YZp+VYhXAh4+c=
|
||||
github.com/libp2p/go-libp2p-yamux v0.9.1/go.mod h1:wRc6wvyxQINFcKe7daL4BeQ02Iyp+wxyC8WCNfngBrA=
|
||||
github.com/libp2p/go-maddr-filter v0.0.1/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q=
|
||||
github.com/libp2p/go-maddr-filter v0.0.4/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q=
|
||||
github.com/libp2p/go-maddr-filter v0.0.5/go.mod h1:Jk+36PMfIqCJhAnaASRH83bdAvfDRp/w6ENFaC9bG+M=
|
||||
@ -1057,13 +1054,13 @@ github.com/libp2p/go-openssl v0.0.7 h1:eCAzdLejcNVBzP/iZM9vqHnQm+XyCEbSSIheIPRGN
|
||||
github.com/libp2p/go-openssl v0.0.7/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc=
|
||||
github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA=
|
||||
github.com/libp2p/go-reuseport v0.0.2/go.mod h1:SPD+5RwGC7rcnzngoYC86GjPzjSywuQyMVAheVBD9nQ=
|
||||
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 v0.2.0 h1:18PRvIMlpY6ZK85nIAicSBuXXvrYoSw3dsBAR7zc560=
|
||||
github.com/libp2p/go-reuseport v0.2.0/go.mod h1:bvVho6eLMm6Bz5hmU0LYN3ixd3nPPvtIlaURZZgOY4k=
|
||||
github.com/libp2p/go-reuseport-transport v0.0.2/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs=
|
||||
github.com/libp2p/go-reuseport-transport v0.0.3/go.mod h1:Spv+MPft1exxARzP2Sruj2Wb5JSyHNncjf1Oi2dEbzM=
|
||||
github.com/libp2p/go-reuseport-transport v0.0.4/go.mod h1:trPa7r/7TJK/d+0hdBLOCGvpQQVOU74OXbNCIMkufGw=
|
||||
github.com/libp2p/go-reuseport-transport v0.0.5/go.mod h1:TC62hhPc8qs5c/RoXDZG6YmjK+/YWUPC0yYmeUecbjc=
|
||||
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-sockaddr v0.0.2/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k=
|
||||
github.com/libp2p/go-sockaddr v0.1.0/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k=
|
||||
@ -1075,7 +1072,6 @@ github.com/libp2p/go-stream-muxer v0.1.0/go.mod h1:8JAVsjeRBCWwPoZeH0W1imLOcriqX
|
||||
github.com/libp2p/go-stream-muxer-multistream v0.1.1/go.mod h1:zmGdfkQ1AzOECIAcccoL8L//laqawOsO03zX8Sa+eGw=
|
||||
github.com/libp2p/go-stream-muxer-multistream v0.2.0/go.mod h1:j9eyPol/LLRqT+GPLSxvimPhNph4sfYfMoDPd7HkzIc=
|
||||
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.0.4/go.mod h1:+E8HvC8ezEVOxIo3V5vCK9l1y/19K427vCzQ+xHKH/o=
|
||||
github.com/libp2p/go-tcp-transport v0.1.0/go.mod h1:oJ8I5VXryj493DEJ7OsBieu8fcg2nHGctwtInJVpipc=
|
||||
@ -1087,7 +1083,6 @@ github.com/libp2p/go-tcp-transport v0.2.4/go.mod h1:9dvr03yqrPyYGIEN6Dy5UvdJZjyP
|
||||
github.com/libp2p/go-tcp-transport v0.2.7/go.mod h1:lue9p1b3VmZj1MhhEGB/etmvF/nBQ0X9CW2DutBT3MM=
|
||||
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-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I=
|
||||
github.com/libp2p/go-testutil v0.1.0/go.mod h1:81b2n5HypcVyrCg/MJx4Wgfp/VHojytjVe/gLzZ2Ehc=
|
||||
@ -1098,7 +1093,6 @@ github.com/libp2p/go-ws-transport v0.3.0/go.mod h1:bpgTJmRZAvVHrgHybCVyqoBmyLQ1f
|
||||
github.com/libp2p/go-ws-transport v0.3.1/go.mod h1:bpgTJmRZAvVHrgHybCVyqoBmyLQ1fiZuEaBYusP5zsk=
|
||||
github.com/libp2p/go-ws-transport v0.4.0/go.mod h1:EcIEKqf/7GDjth6ksuS/6p7R49V4CBY6/E7R/iyhYUA=
|
||||
github.com/libp2p/go-ws-transport v0.5.0/go.mod h1:I2juo1dNTbl8BKSBYo98XY85kU2xds1iamArLvl8kNg=
|
||||
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.2.1/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow=
|
||||
github.com/libp2p/go-yamux v1.2.2/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow=
|
||||
@ -1127,7 +1121,6 @@ github.com/lucas-clemente/quic-go v0.21.2/go.mod h1:vF5M1XqhBAHgbjKcJOXY3JZz3GP0
|
||||
github.com/lucas-clemente/quic-go v0.23.0/go.mod h1:paZuzjXCE5mj6sikVLMvqXk8lJV2AsqtJ6bDhjEfxx0=
|
||||
github.com/lucas-clemente/quic-go v0.24.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/go.mod h1:AzgQoPda7N+3IqMMMkywBKggIFo2KT6pfnlrQ2QieeI=
|
||||
github.com/lucas-clemente/quic-go v0.27.1 h1:sOw+4kFSVrdWOYmUjufQ9GBVPqZ+tu+jMtXxXNmRJyk=
|
||||
github.com/lucas-clemente/quic-go v0.27.1/go.mod h1:AzgQoPda7N+3IqMMMkywBKggIFo2KT6pfnlrQ2QieeI=
|
||||
github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI=
|
||||
@ -1187,7 +1180,6 @@ github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUM
|
||||
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=
|
||||
@ -1272,8 +1264,9 @@ github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUj
|
||||
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.0.16/go.mod h1:zhfEIgVnB/rPMfxgFw15ZmGoNaKyNUIE4IWHG/kC+Ag=
|
||||
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-multihash v0.2.0 h1:oytJb9ZA1OUW0r0f9ea18GiaPOo4SXyc7p2movyUuo4=
|
||||
github.com/multiformats/go-multihash v0.2.0/go.mod h1:WxoMcYG85AZVQUyRyo9s4wULvW5qrI9vb2Lt6evduFc=
|
||||
github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg=
|
||||
github.com/multiformats/go-multistream v0.0.4/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg=
|
||||
github.com/multiformats/go-multistream v0.1.0/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg=
|
||||
@ -1281,8 +1274,9 @@ github.com/multiformats/go-multistream v0.1.1/go.mod h1:KmHZ40hzVxiaiwlj3MEbYgK9
|
||||
github.com/multiformats/go-multistream v0.2.0/go.mod h1:5GZPQZbkWOLOn3J2y4Y99vVW7vOfsAflxARk3x14o6k=
|
||||
github.com/multiformats/go-multistream v0.2.1/go.mod h1:5GZPQZbkWOLOn3J2y4Y99vVW7vOfsAflxARk3x14o6k=
|
||||
github.com/multiformats/go-multistream v0.2.2/go.mod h1:UIcnm7Zuo8HKG+HkWgfQsGL+/MIEhyTqbODbIUwSXKs=
|
||||
github.com/multiformats/go-multistream v0.3.0 h1:yX1v4IWseLPmr0rmnDo148wWJbNx40JxBZGmQb5fUP4=
|
||||
github.com/multiformats/go-multistream v0.3.0/go.mod h1:ODRoqamLUsETKS9BNcII4gcRsJBU5VAwRIv7O39cEXg=
|
||||
github.com/multiformats/go-multistream v0.3.1/go.mod h1:ODRoqamLUsETKS9BNcII4gcRsJBU5VAwRIv7O39cEXg=
|
||||
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=
|
||||
@ -1554,7 +1548,6 @@ github.com/whyrusleeping/go-sysinfo v0.0.0-20190219211824-4a357d4b90b1 h1:ctS9An
|
||||
github.com/whyrusleeping/go-sysinfo v0.0.0-20190219211824-4a357d4b90b1/go.mod h1:tKH72zYNt/exx6/5IQO6L9LoQ0rEjd5SbbWaDTs9Zso=
|
||||
github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA=
|
||||
github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4=
|
||||
github.com/whyrusleeping/mdns v0.0.0-20190826153040-b9b60ed33aa9 h1:Y1/FEOpaCpD21WxrmfeIYCFPuVPRCY2XZTWzTNHGw30=
|
||||
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=
|
||||
@ -1698,8 +1691,9 @@ golang.org/x/crypto v0.0.0-20210813211128-0a44fdfbc16e/go.mod h1:GvvjBRRGRdwPK5y
|
||||
golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/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-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898 h1:SLP7Q4Di66FONjDJbCYrCRrh97focO6sLogHO7/g8F0=
|
||||
golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e h1:T8NU3HyQ8ClP4SEE+KbFlg6n0NhuTsN4MyznaarGsZM=
|
||||
golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
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=
|
||||
@ -1801,7 +1795,6 @@ golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qx
|
||||
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-20220418201149-a630d4f3e7a2/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220517181318-183a9ca12b87 h1:cCR+9mKLOGyX4Zx+uBZDXEDAQsvKQ/XbW4vreG5v1jU=
|
||||
golang.org/x/net v0.0.0-20220517181318-183a9ca12b87/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
@ -1916,7 +1909,7 @@ golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/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-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220517195934-5e4e11fc645e h1:w36l2Uw3dRan1K3TyXriXvY+6T56GNmlKGcqiQUJDfM=
|
||||
golang.org/x/sys v0.0.0-20220517195934-5e4e11fc645e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
@ -2097,7 +2090,6 @@ google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG
|
||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
||||
google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k=
|
||||
google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||
google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
|
||||
google.golang.org/grpc v1.46.0 h1:oCjezcn6g6A75TGoKYBPgKmVBLexhYLM6MebdrPApP8=
|
||||
google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
|
||||
@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"math/rand"
|
||||
"strconv"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@ -32,12 +33,25 @@ const (
|
||||
|
||||
var logger = log.Logger("peering")
|
||||
|
||||
type state int
|
||||
type State uint
|
||||
|
||||
func (s State) String() string {
|
||||
switch s {
|
||||
case StateInit:
|
||||
return "init"
|
||||
case StateRunning:
|
||||
return "running"
|
||||
case StateStopped:
|
||||
return "stopped"
|
||||
default:
|
||||
return "unkown peering state: " + strconv.FormatUint(uint64(s), 10)
|
||||
}
|
||||
}
|
||||
|
||||
const (
|
||||
stateInit state = iota
|
||||
stateRunning
|
||||
stateStopped
|
||||
StateInit State = iota
|
||||
StateRunning
|
||||
StateStopped
|
||||
)
|
||||
|
||||
// peerHandler keeps track of all state related to a specific "peering" peer.
|
||||
@ -155,7 +169,7 @@ type PeeringService struct {
|
||||
|
||||
mu sync.RWMutex
|
||||
peers map[peer.ID]*peerHandler
|
||||
state state
|
||||
state State
|
||||
}
|
||||
|
||||
// NewPeeringService constructs a new peering service. Peers can be added and
|
||||
@ -172,35 +186,41 @@ func (ps *PeeringService) Start() error {
|
||||
defer ps.mu.Unlock()
|
||||
|
||||
switch ps.state {
|
||||
case stateInit:
|
||||
case StateInit:
|
||||
logger.Infow("starting")
|
||||
case stateRunning:
|
||||
case StateRunning:
|
||||
return nil
|
||||
case stateStopped:
|
||||
case StateStopped:
|
||||
return errors.New("already stopped")
|
||||
}
|
||||
ps.host.Network().Notify((*netNotifee)(ps))
|
||||
ps.state = stateRunning
|
||||
ps.state = StateRunning
|
||||
for _, handler := range ps.peers {
|
||||
go handler.startIfDisconnected()
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetState get the State of the PeeringService
|
||||
func (ps *PeeringService) GetState() State {
|
||||
ps.mu.RLock()
|
||||
defer ps.mu.RUnlock()
|
||||
return ps.state
|
||||
}
|
||||
|
||||
// Stop stops the peering service.
|
||||
func (ps *PeeringService) Stop() error {
|
||||
ps.host.Network().StopNotify((*netNotifee)(ps))
|
||||
|
||||
ps.mu.Lock()
|
||||
defer ps.mu.Unlock()
|
||||
|
||||
switch ps.state {
|
||||
case stateInit, stateRunning:
|
||||
case StateInit, StateRunning:
|
||||
logger.Infow("stopping")
|
||||
for _, handler := range ps.peers {
|
||||
handler.stop()
|
||||
}
|
||||
ps.state = stateStopped
|
||||
ps.state = StateStopped
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@ -231,9 +251,9 @@ func (ps *PeeringService) AddPeer(info peer.AddrInfo) {
|
||||
handler.ctx, handler.cancel = context.WithCancel(context.Background())
|
||||
ps.peers[info.ID] = handler
|
||||
switch ps.state {
|
||||
case stateRunning:
|
||||
case StateRunning:
|
||||
go handler.startIfDisconnected()
|
||||
case stateStopped:
|
||||
case StateStopped:
|
||||
// We still construct everything in this state because
|
||||
// it's easier to reason about. But we should still free
|
||||
// resources.
|
||||
|
||||
@ -125,13 +125,13 @@ func (p *profiler) runProfile(ctx context.Context) error {
|
||||
ctx, cancelFn := context.WithCancel(ctx)
|
||||
defer cancelFn()
|
||||
|
||||
var collectorsToRun []collector
|
||||
for _, name := range p.opts.Collectors {
|
||||
collectorsToRun := make([]collector, len(p.opts.Collectors))
|
||||
for i, name := range p.opts.Collectors {
|
||||
c, ok := collectors[name]
|
||||
if !ok {
|
||||
return fmt.Errorf("unknown collector '%s'", name)
|
||||
}
|
||||
collectorsToRun = append(collectorsToRun, c)
|
||||
collectorsToRun[i] = c
|
||||
}
|
||||
|
||||
results := make(chan profileResult, len(p.opts.Collectors))
|
||||
|
||||
@ -2,7 +2,6 @@ package fsrepo_test
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"reflect"
|
||||
"testing"
|
||||
@ -89,7 +88,7 @@ func TestDefaultDatastoreConfig(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
dir, err := ioutil.TempDir("", "ipfs-datastore-config-test")
|
||||
dir, err := os.MkdirTemp("", "ipfs-datastore-config-test")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -127,7 +126,7 @@ func TestLevelDbConfig(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
dir, err := ioutil.TempDir("", "ipfs-datastore-config-test")
|
||||
dir, err := os.MkdirTemp("", "ipfs-datastore-config-test")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -165,7 +164,7 @@ func TestFlatfsConfig(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
dir, err := ioutil.TempDir("", "ipfs-datastore-config-test")
|
||||
dir, err := os.MkdirTemp("", "ipfs-datastore-config-test")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -203,7 +202,7 @@ func TestMeasureConfig(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
dir, err := ioutil.TempDir("", "ipfs-datastore-config-test")
|
||||
dir, err := os.MkdirTemp("", "ipfs-datastore-config-test")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@ -5,7 +5,6 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@ -270,7 +269,7 @@ func initSpec(path string, conf map[string]interface{}) error {
|
||||
}
|
||||
bytes := dsc.DiskSpec().Bytes()
|
||||
|
||||
return ioutil.WriteFile(fn, bytes, 0600)
|
||||
return os.WriteFile(fn, bytes, 0600)
|
||||
}
|
||||
|
||||
// Init initializes a new FSRepo at the given path with the provided config.
|
||||
@ -338,7 +337,7 @@ func APIAddr(repoPath string) (ma.Multiaddr, error) {
|
||||
// some hidden wisdom. However, I'm fixing it such that:
|
||||
// 1. We don't read too little.
|
||||
// 2. We don't truncate and succeed.
|
||||
buf, err := ioutil.ReadAll(io.LimitReader(f, 2048))
|
||||
buf, err := io.ReadAll(io.LimitReader(f, 2048))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -454,7 +453,7 @@ func (r *FSRepo) readSpec() (string, error) {
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
b, err := ioutil.ReadFile(fn)
|
||||
b, err := os.ReadFile(fn)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
@ -515,7 +514,7 @@ func (r *FSRepo) FileManager() *filestore.FileManager {
|
||||
}
|
||||
|
||||
func (r *FSRepo) BackupConfig(prefix string) (string, error) {
|
||||
temp, err := ioutil.TempFile(r.path, "config-"+prefix)
|
||||
temp, err := os.CreateTemp(r.path, "config-"+prefix)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
@ -667,7 +666,7 @@ func (r *FSRepo) SwarmKey() ([]byte, error) {
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
return ioutil.ReadAll(f)
|
||||
return io.ReadAll(f)
|
||||
}
|
||||
|
||||
var _ io.Closer = &FSRepo{}
|
||||
|
||||
@ -3,7 +3,6 @@ package fsrepo
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
@ -16,7 +15,7 @@ import (
|
||||
|
||||
// swap arg order
|
||||
func testRepoPath(p string, t *testing.T) string {
|
||||
name, err := ioutil.TempDir("", p)
|
||||
name, err := os.MkdirTemp("", p)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@ -6,7 +6,6 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
@ -89,7 +88,7 @@ func FetchBinary(ctx context.Context, fetcher Fetcher, dist, ver, binName, out s
|
||||
}
|
||||
} else {
|
||||
// Create temp directory to store download
|
||||
tmpDir, err = ioutil.TempDir("", arcName)
|
||||
tmpDir, err = os.MkdirTemp("", arcName)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
@ -4,7 +4,6 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"path"
|
||||
"strings"
|
||||
@ -81,7 +80,7 @@ func (f *HttpFetcher) Fetch(ctx context.Context, filePath string) ([]byte, error
|
||||
|
||||
if resp.StatusCode >= 400 {
|
||||
defer resp.Body.Close()
|
||||
mes, err := ioutil.ReadAll(resp.Body)
|
||||
mes, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error reading error body: %s", err)
|
||||
}
|
||||
@ -96,7 +95,7 @@ func (f *HttpFetcher) Fetch(ctx context.Context, filePath string) ([]byte, error
|
||||
}
|
||||
defer rc.Close()
|
||||
|
||||
return ioutil.ReadAll(rc)
|
||||
return io.ReadAll(rc)
|
||||
}
|
||||
|
||||
func (f *HttpFetcher) Close() error {
|
||||
|
||||
@ -3,7 +3,6 @@ package migrations
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
@ -85,11 +84,11 @@ func WriteRepoVersion(ipfsDir string, version int) error {
|
||||
}
|
||||
|
||||
vFilePath := filepath.Join(ipfsDir, versionFile)
|
||||
return ioutil.WriteFile(vFilePath, []byte(fmt.Sprintf("%d\n", version)), 0644)
|
||||
return os.WriteFile(vFilePath, []byte(fmt.Sprintf("%d\n", version)), 0644)
|
||||
}
|
||||
|
||||
func repoVersion(ipfsDir string) (int, error) {
|
||||
c, err := ioutil.ReadFile(filepath.Join(ipfsDir, versionFile))
|
||||
c, err := os.ReadFile(filepath.Join(ipfsDir, versionFile))
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package migrations
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
@ -139,7 +138,7 @@ func testRepoVersion(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
vFilePath := filepath.Join(ipfsDir, versionFile)
|
||||
err = ioutil.WriteFile(vFilePath, []byte("bad-version-data\n"), 0644)
|
||||
err = os.WriteFile(vFilePath, []byte("bad-version-data\n"), 0644)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
@ -5,7 +5,6 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/url"
|
||||
"os"
|
||||
"path"
|
||||
@ -134,7 +133,7 @@ func (f *IpfsFetcher) Fetch(ctx context.Context, filePath string) ([]byte, error
|
||||
}
|
||||
defer rc.Close()
|
||||
|
||||
return ioutil.ReadAll(rc)
|
||||
return io.ReadAll(rc)
|
||||
}
|
||||
|
||||
func (f *IpfsFetcher) Close() error {
|
||||
@ -171,7 +170,7 @@ func (f *IpfsFetcher) recordFetched(fetchedPath ipath.Path) {
|
||||
}
|
||||
|
||||
func initTempNode(ctx context.Context, bootstrap []string, peers []peer.AddrInfo) (string, error) {
|
||||
identity, err := config.CreateIdentity(ioutil.Discard, []options.KeyGenerateOption{
|
||||
identity, err := config.CreateIdentity(io.Discard, []options.KeyGenerateOption{
|
||||
options.Key.Type(options.Ed25519Key),
|
||||
})
|
||||
if err != nil {
|
||||
@ -183,7 +182,7 @@ func initTempNode(ctx context.Context, bootstrap []string, peers []peer.AddrInfo
|
||||
}
|
||||
|
||||
// create temporary ipfs directory
|
||||
dir, err := ioutil.TempDir("", "ipfs-temp")
|
||||
dir, err := os.MkdirTemp("", "ipfs-temp")
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("failed to get temp dir: %s", err)
|
||||
}
|
||||
@ -247,8 +246,6 @@ func (f *IpfsFetcher) startTempNode(ctx context.Context) error {
|
||||
cancel()
|
||||
// Wait until ipfs is stopped
|
||||
<-node.Context().Done()
|
||||
|
||||
fmt.Println("migration peer", node.Identity, "shutdown")
|
||||
}
|
||||
|
||||
addrs, err := ipfs.Swarm().LocalAddrs(ctx)
|
||||
|
||||
@ -5,7 +5,6 @@ import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/url"
|
||||
"os"
|
||||
@ -63,7 +62,7 @@ func RunMigration(ctx context.Context, fetcher Fetcher, targetVer int, ipfsDir s
|
||||
|
||||
logger.Println("Need", len(missing), "migrations, downloading.")
|
||||
|
||||
tmpDir, err := ioutil.TempDir("", "migrations")
|
||||
tmpDir, err := os.MkdirTemp("", "migrations")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -6,7 +6,6 @@ import (
|
||||
"bufio"
|
||||
"compress/gzip"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
@ -36,7 +35,7 @@ func TestUnpackTgz(t *testing.T) {
|
||||
tmpDir := t.TempDir()
|
||||
|
||||
badTarGzip := filepath.Join(tmpDir, "bad.tar.gz")
|
||||
err := ioutil.WriteFile(badTarGzip, []byte("bad-data\n"), 0644)
|
||||
err := os.WriteFile(badTarGzip, []byte("bad-data\n"), 0644)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
@ -80,7 +79,7 @@ func TestUnpackZip(t *testing.T) {
|
||||
tmpDir := t.TempDir()
|
||||
|
||||
badZip := filepath.Join(tmpDir, "bad.zip")
|
||||
err := ioutil.WriteFile(badZip, []byte("bad-data\n"), 0644)
|
||||
err := os.WriteFile(badZip, []byte("bad-data\n"), 0644)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
@ -3,7 +3,6 @@ package main
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
@ -46,7 +45,7 @@ func benchmarkAdd(amount int64) (*testing.BenchmarkResult, error) {
|
||||
b.SetBytes(amount)
|
||||
for i := 0; i < b.N; i++ {
|
||||
b.StopTimer()
|
||||
tmpDir, err := ioutil.TempDir("", "")
|
||||
tmpDir, err := os.MkdirTemp("", "")
|
||||
if err != nil {
|
||||
benchmarkError = err
|
||||
b.Fatal(err)
|
||||
@ -73,7 +72,7 @@ func benchmarkAdd(amount int64) (*testing.BenchmarkResult, error) {
|
||||
}
|
||||
|
||||
const seed = 1
|
||||
f, err := ioutil.TempFile("", "")
|
||||
f, err := os.CreateTemp("", "")
|
||||
if err != nil {
|
||||
benchmarkError = err
|
||||
b.Fatal(err)
|
||||
|
||||
@ -2,7 +2,6 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
@ -38,7 +37,7 @@ func benchmarkAdd(amount int64) (*testing.BenchmarkResult, error) {
|
||||
b.SetBytes(amount)
|
||||
for i := 0; i < b.N; i++ {
|
||||
b.StopTimer()
|
||||
tmpDir, err := ioutil.TempDir("", "")
|
||||
tmpDir, err := os.MkdirTemp("", "")
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
@ -56,7 +55,7 @@ func benchmarkAdd(amount int64) (*testing.BenchmarkResult, error) {
|
||||
}
|
||||
|
||||
const seed = 1
|
||||
f, err := ioutil.TempFile("", "")
|
||||
f, err := os.CreateTemp("", "")
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
|
||||
@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"strconv"
|
||||
|
||||
@ -58,7 +57,7 @@ func app() int {
|
||||
|
||||
if len(opts.PidFile) > 0 {
|
||||
data := []byte(strconv.Itoa(os.Getpid()))
|
||||
err := ioutil.WriteFile(opts.PidFile, data, 0644)
|
||||
err := os.WriteFile(opts.PidFile, data, 0644)
|
||||
if err != nil {
|
||||
return 1
|
||||
}
|
||||
@ -79,7 +78,7 @@ func app() int {
|
||||
|
||||
if len(opts.PidFile) > 0 {
|
||||
data := []byte(strconv.Itoa(os.Getpid()))
|
||||
err := ioutil.WriteFile(opts.PidFile, data, 0644)
|
||||
err := os.WriteFile(opts.PidFile, data, 0644)
|
||||
if err != nil {
|
||||
return 1
|
||||
}
|
||||
|
||||
@ -84,4 +84,42 @@ test_expect_success "output looks good" '
|
||||
grep "Please get fs-repo-migrations from https://dist.ipfs.io" daemon_out > /dev/null
|
||||
'
|
||||
|
||||
test_expect_success "ipfs repo migrate succeed" '
|
||||
test_expect_code 0 ipfs repo migrate > migrate_out
|
||||
'
|
||||
|
||||
test_expect_success "output looks good" '
|
||||
grep "Found outdated fs-repo, starting migration." migrate_out > /dev/null &&
|
||||
grep "Success: fs-repo migrated to version $IPFS_REPO_VER" true_out > /dev/null
|
||||
'
|
||||
|
||||
test_expect_success "manually reset repo version to latest" '
|
||||
echo "$IPFS_REPO_VER" > "$IPFS_PATH"/version
|
||||
'
|
||||
|
||||
test_expect_success "detect repo does not need migration" '
|
||||
test_expect_code 0 ipfs repo migrate > migrate_out
|
||||
'
|
||||
|
||||
test_expect_success "output looks good" '
|
||||
grep "Repo does not require migration" migrate_out > /dev/null
|
||||
'
|
||||
|
||||
# ensure that we get a lock error if we need to migrate and the daemon is running
|
||||
test_launch_ipfs_daemon
|
||||
|
||||
test_expect_success "manually reset repo version to $MIGRATION_START" '
|
||||
echo "$MIGRATION_START" > "$IPFS_PATH"/version
|
||||
'
|
||||
|
||||
test_expect_success "ipfs repo migrate fails" '
|
||||
test_expect_code 1 ipfs repo migrate 2> migrate_out
|
||||
'
|
||||
|
||||
test_expect_success "output looks good" '
|
||||
grep "repo.lock" migrate_out > /dev/null
|
||||
'
|
||||
|
||||
test_kill_ipfs_daemon
|
||||
|
||||
test_done
|
||||
|
||||
@ -49,6 +49,12 @@ test_expect_success "Create text fixtures" '
|
||||
grep "< X-Content-Type-Options: nosniff" curl_output
|
||||
'
|
||||
|
||||
test_expect_success "GET for application/vnd.ipld.raw with query filename includes Content-Disposition with custom filename" '
|
||||
curl -svX GET -H "Accept: application/vnd.ipld.raw" "http://127.0.0.1:$GWAY_PORT/ipfs/$ROOT_DIR_CID/dir/ascii.txt?filename=foobar.bin" >/dev/null 2>curl_output_filename &&
|
||||
cat curl_output_filename &&
|
||||
grep "< Content-Disposition: attachment\; filename=\"foobar.bin\"" curl_output_filename
|
||||
'
|
||||
|
||||
# Cache control HTTP headers
|
||||
# (basic checks, detailed behavior is tested in t0116-gateway-cache.sh)
|
||||
|
||||
|
||||
@ -110,6 +110,12 @@ test_launch_ipfs_daemon_without_network
|
||||
grep "< Accept-Ranges: none" curl_output
|
||||
'
|
||||
|
||||
test_expect_success "GET for application/vnd.ipld.car with query filename includes Content-Disposition with custom filename" '
|
||||
curl -svX GET -H "Accept: application/vnd.ipld.car" "http://127.0.0.1:$GWAY_PORT/ipfs/$ROOT_DIR_CID/subdir/ascii.txt?filename=foobar.car" > curl_output_filename 2>&1 &&
|
||||
cat curl_output_filename &&
|
||||
grep "< Content-Disposition: attachment\; filename=\"foobar.car\"" curl_output_filename
|
||||
'
|
||||
|
||||
# Cache control HTTP headers
|
||||
|
||||
test_expect_success "GET response for application/vnd.ipld.car includes a weak Etag" '
|
||||
|
||||
Loading…
Reference in New Issue
Block a user