Comments (6)
I think this sort of problem can be alleviated by exporting interfaces from .d.ts files and then everything depends on the interface, rather than typing an implementation and using that as argument types, etc. This is the approach taken by Store in ipfs-interfaces.
I will try it next week
N.b. floodsub has a similar problem but IPFS still compiles by coincidence as the default code path finds gossipsub and not floodsub.
Just did the same for it
from js-libp2p-gossipsub.
[email protected]
only added tests, I am not sure of what changed. But I can revert the commit and do a breaking change here
from js-libp2p-gossipsub.
I think it's just because the types are loaded from different paths, same as the problem with instanceof
and loading classes from different locations.
from js-libp2p-gossipsub.
I reverted with a patch and released a minor. Should be good now?
Bah, we will need to orchestrate really carefully the libp2p-interfaces
update in js-libp2p
from js-libp2p-gossipsub.
I think this sort of problem can be alleviated by exporting interfaces from .d.ts
files and then everything depends on the interface, rather than typing an implementation and using that as argument types, etc. This is the approach taken by Store in ipfs-interfaces
.
This way at compile time TS compares the interfaces to see if there is overlap instead of checking all the fields etc of the implementation, which may be concrete types with complex field hierarchies that are unlikely to be compatible across versions.
from js-libp2p-gossipsub.
N.b. floodsub has a similar problem but IPFS still compiles by coincidence as the default code path finds gossipsub and not floodsub.
Anyway, the patch has fixed it, thanks!
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.