Git Product home page Git Product logo

gossip's People

Contributors

k98kurz avatar

Stargazers

 avatar

Watchers

 avatar

gossip's Issues

Exclude sending bulletins to node from which it was received

Is your feature request related to a problem? Please describe.
Currently, the examples implemented have action handlers that forward messages/bulletins to all connected nodes, including the node from which the message/bulletin was received. This results in redundant messages.

Describe the solution you'd like
The node from which the message/bulletin was received should be excluded from that forwarding mechanism in the action handler. This can be done using the Neighbor class to simulate how each individual Node would act, though this requires additional O(n) memory.

Describe alternatives you've considered
Considered adding it to the base classes, but it should be implementable without any changes to interfaces or base classes.

Hashcash needs to be implemented at the Bulletin level

Is your feature request related to a problem? Please describe.
The problem is that the current model uses hashcash at the Message level, making forwarding of Bulletins costly for forwarders rather than the progenitor of the Bulletin.

Describe the solution you'd like
The hashcash mechanism should be implemented at the Bulletin level rather than at the Message level. In particular, Message should retain hashcash at a lower difficulty threshold to prevent node-to-node spam, and Bulletin should implement hashcash at a higher difficulty to cost the progenitors of Bulletins proof-of-work rather than forwarders.

Allow Message-level hashcash difficulty threshold to be tunable at the Connection level

Is your feature request related to a problem? Please describe.
Hashcash at the Message level prevents individual nodes from spamming other individual nodes. It intentionally throttles network activity with proof-of-work. Currently, this is set globally and is not adaptive.

Describe the solution you'd like
The difficulty threshold for each Message should be tunable at the Connection level, with each Connection starting at a low global threshold. It is not necessary to add an adaptive algorithm for tuning this per-Connection Message hashcash difficulty threshold; it is only necessary to make it possible to do so.

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.