Giter VIP home page Giter VIP logo

Comments (3)

iduartgomez avatar iduartgomez commented on June 8, 2024

Resolved a lot of issues but still some unresolved stuff:

  • When proxy propagation is done, if it fails, backtrack and try new nodes until they succeed or exhausted. Alternatively, or additionally, try to spread to more than 1 host per hop.
  • When nodes join the network, and as gateways tend to be filled, those may be placed at the edges of the network. Making the network loosely connected at some nodes and "unreachable". In theory this should be fixed by propagation, but I believe due to the first point we reach some situations where the network is "stalled" and new nodes cannot connect any more.

from freenet-core.

iduartgomez avatar iduartgomez commented on June 8, 2024

After some discussion, we may want to change how things are done in the future re. join op, between other alternatives.

  • Send, from the requester, multiple join requests to the gateway, in parallel, which return independently. For this to work we should work out a way to only assign one location per requester for subsequent/parallel requests (this implies, at the very least, searching at the gateway for those parallel requests).
  • Return immediately, at each hop, if the connection was accepted or not. This can be done directly to the requester without having to rewind the connection chain per hop (as is done now), in fact is a good idea to change this and return immediately to the requester. Important: when we done real network connection, verify that the requester peer is reachable by the node which potentially is accepting the connection, otherwise don't accept it.
  • Do multiple requests from each hop, this could not return immediately which adding back significant complexity to the callback chain in order to synchronize the number of connections accepted so far, or adding additional verification (we already do that so maybe we would just not verify the "excess" connections). Although the first change may run into similar problems and we potentially have to discard potential connections.

This could be also probably solved by splitting evenly and keeping track of the number of accepted connections so far. All in all still will need to improve this, but leaving any additional work for when we start adding real networking.

from freenet-core.

iduartgomez avatar iduartgomez commented on June 8, 2024

Will come back to do the improvements in other issues/pr for now this is "good enough".

from freenet-core.

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.