Comments (7)
I'm thinking of doing something like this in our gossipsub impl in lodestar.
eg:
class LodestarGossipSub extends Gossipsub {
// fancy features
}
Pubsub/Gossipsub provides a validate(message): boolean
that we can/will need to overload that gets called in the right spot.
from js-libp2p-gossipsub.
Pubsub/Gossipsub provides a
validate(message): boolean
that we can/will need to overload that gets called in the right spot.
That was my first idea, but then we would have to decode message twice. First time in validate, second time when event is received.
Other problem is that in validate we don't know the topic and thus we don't know how to decode message.
from js-libp2p-gossipsub.
The decoding twice thing is definitely not ideal. We might want to tweak things there.
RE not knowing the topic, the message object that validate receives has a list of topics attached, so we can dispatch to a topic-specific validating function if we have it around.
eg something like:
interface Message {
from?: Buffer;
data?: Buffer;
seqno?: Buffer;
topicIDs: string[];
signature?: Buffer;
key?: Buffer;
}
class MyGossip {
topicValidators: Map<string, (message: Message): boolean>;
validate(message: Message): boolean {
return message.topicIDs
.map(topic => this.topicValidators.get(topic))
.every(validator=> !validator || validator(message));
}
}
from js-libp2p-gossipsub.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.
from js-libp2p-gossipsub.
Unstale
from js-libp2p-gossipsub.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.
from js-libp2p-gossipsub.
This issue was done.
from js-libp2p-gossipsub.
Related Issues (20)
- Missed Iwant messages from Lodestar to Nimbus HOT 2
- Export Metrics
- Unbundle metrics with 2 labels
- TypeError when setting direct peers in @chainsafe/libp2p-gossipsub with new libp2p peerStore structure HOT 1
- No recepient after message sent HOT 3
- Unregister protocol on gossipsub.stop
- Do not select backoff peers to graft HOT 1
- Track backoff times in connected peers
- No fanout peers HOT 2
- feat: Support WebRTC Browser-to-Browser HOT 7
- example doesn't work in the browser (insufficent peers) HOT 3
- vuln prototype pollution in dependency protobufjs HOT 2
- GossipSub treats Stream reset as Peer Disconnect HOT 2
- Metrics usage examples - browser client HOT 7
- Make `PublishError.InsufficientPeers` a bit more self-explanatory?
- 11.0.0 not working with bug : CodeError: logger not set HOT 1
- Memory leak in streamsOutbound HOT 2
- new found discovered peers not added to peers HOT 3
- Message delivery not working if publisher is sending message to early after connect
- Track publish time after messages are sent
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from js-libp2p-gossipsub.