k98kurz / gossip Goto Github PK
View Code? Open in Web Editor NEWA module for building applications that use gossip to transmit messages.
License: Other
A module for building applications that use gossip to transmit messages.
License: Other
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.
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.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.