Categorygithub.com/ipfs/someguy
modulepackage
0.7.0
Repository: https://github.com/ipfs/someguy.git
Documentation: pkg.go.dev

# README

🤷 Someguy

Official Part of IPFS Project Discourse Forum Matrix CI Code Coverage GitHub Release Go Reference

A Delegated Routing V1 server and proxy for all your routing needs. Ask someguy for directions.

Build

go build -o someguy

Install

go install github.com/ipfs/someguy@latest

Docker

Automated Docker container releases are available from the Github container registry:

  • 🟢 Releases
    • latest always points at the latest stable release
    • vN.N.N point at a specific release tag
  • 🟠 Unreleased developer builds
    • main-latest always points at the HEAD of the main branch
    • main-YYYY-DD-MM-GITSHA points at a specific commit from the main branch
  • ⚠️ Experimental, unstable builds
    • staging-latest always points at the HEAD of the staging branch
    • staging-YYYY-DD-MM-GITSHA points at a specific commit from the staging branch
    • This tag is used by developers for internal testing, not intended for end users

When using Docker, make sure to pass necessary config via -e:

$ docker pull ghcr.io/ipfs/someguy:main-latest
$ docker run --rm -it --net=host ghcr.io/ipfs/someguy:main-latest

See /docs/environment-variables.md.

Usage

You can use someguy as a client, or as a server.

Server

You can start the server with someguy start. This will, by default, run a Delegated Routing V1 server that proxies requests to the IPFS Amino DHT and the cid.contact indexer (IPNI) node.

For more details run someguy start --help.

Client

If you don't want to run a server yourself, but want to query some other server, you can run someguy ask and choose any of the subcommands and ask for a provider, a peer, or even an IPNS record.

For more details run someguy ask --help.

Deployment

Suggested method for self-hosting is to run a prebuilt Docker image.

Release

  1. Create a PR from branch release-vX.Y.Z against main that:
    1. Tidies the CHANGELOG.md with the changes for the current release
    2. Updates the version.json file
  2. Once the release checker creates a draft release, copy-paste the changelog into the draft
  3. Merge the PR, the release will be automatically created once the PR is merged

License

Dual-licensed under MIT + Apache 2.0

# Functions

CascadingSamplerFunc will sample with the next tracer if the condition is met, otherwise the sample will be dropped.
No description provided by the author
NewCacheFallbackIter is a wrapper around a results iterator that will resolve peers with no addresses from cache and if no cached addresses, will look them up via FindPeers.
NewTracerProvider creates and configures a TracerProvider.
No description provided by the author
No description provided by the author
No description provided by the author

# Constants

Connected peers don't expire until they disconnect.
How long to wait for a connect in a probe to complete.
The default TTL to keep recently connected peers' multiaddrs for.
No description provided by the author
Maximum backoff duration for probing a peer.
How many concurrent probes to run at once.
How many peers to cache in the peer state cache 1_000_000 is 10x the default number of signed peer records cached by the memory address book.
How long to wait since last connection before probing a peer again.
How often to run the probe peers loop.
No description provided by the author

# Type aliases

No description provided by the author