Git Product home page Git Product logo

Comments (8)

vyzo avatar vyzo commented on July 24, 2024

This is a little tricky, there is no well-defined event that says "bootstrap complete".
Perhaps when enough peers have connected?

from go-libp2p-daemon.

vyzo avatar vyzo commented on July 24, 2024

as a workaround, the application can poll until enough connections have been created (just a few would be enough) using LIST_PEERS.

from go-libp2p-daemon.

cheatfate avatar cheatfate commented on July 24, 2024

So i can call LIST_PEERS to wait for N connections and if there some, then i can call for PROVIDE?

from go-libp2p-daemon.

raulk avatar raulk commented on July 24, 2024

The problem here comes from the fact that the DHT table is empty on start, and there's a delay before starting the periodic DHT bootstrap process.

An easy (and possibly correct) fix is to seed the routing table with the bootstrap peers. This is what go-ethereum does (just as a data point). So any queries coming performed between the startup and the first round of bootstrapping would use the bootstrap peers.

from go-libp2p-daemon.

raulk avatar raulk commented on July 24, 2024

@cheatfate I've reviewed some code and I wanted to ask you: are you using the bootstrap option when starting the daemon? This option explicitly connects to IPFS bootstrap peers (or the nodes you provide it) on startup, and then triggers periodic DHT Bootstrap. However, it is true that the control socket is opened before this happens.

from go-libp2p-daemon.

cheatfate avatar cheatfate commented on July 24, 2024

Yes i'm using -b flag, because otherwise DHT is always empty.

from go-libp2p-daemon.

anacrolix avatar anacrolix commented on July 24, 2024

Please file an issue against the DHT for this.

from go-libp2p-daemon.

momack2 avatar momack2 commented on July 24, 2024

The main solution here is calling LIST PEERS to wait for the number of connected peers you desire before calling PROVIDE or FIND_PROVIDERS. There's work in parallel to make bootstrapping faster, but that's tracked separately.

from go-libp2p-daemon.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.