libp2p / libp2p/go-libp2p

Automatic publishing of observable addresses in small networks

Open
#984 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

kind/enhancement status/ready
Dominant language
Go
Stars
6.9k
Forks
1.3k
Avg merge
13d 21h
Merged PRs (30d)
1

Description

From: @rklaehn in ipfs/go-ipfs#7538

We have a problem where a go-ipfs node that runs from inside a container does not properly publish its own observed address. This is in a relatively small private swarm.

It seems like the current heuristics is 3 dials within 10 minutes:

@hsanjuan said on slack:
> there is a threshold of having like 3 successful connections withing a 10 minute time frame for an external IP to show up there (when not discovered by autonat etc).

The heuristics for when to publish externally observed addresses could be improved for this case.

@Stebalien suggested on slack:
> It needs confirmations from multiple observers before it starts reporting them. But we should probably change that when we have few observations. For example, if we have fewer than 8 observations for any given address, we could continue to advertise all observed addresses. Once we get 8+ distinct observations for a given address, we'd stop. Could you file an issue in go-libp2p?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files or tests. Start by tracing how externally observed addresses are collected and published, then locate the current three-dials-within-ten-minutes heuristic. Compare its behavior in small private swarms with the proposed fewer-than-eight-observations rule; done means the publication behavior is defined and covered for sparse observations.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.