libp2p / jvm-libp2p

a libp2p implementation for the JVM, written in Kotlin 🔥
https://libp2p.io
Apache License 2.0
276 stars 77 forks source link

Gossip interoperability between go-libp2p and jvm-libp2p #224

Open ShwetaTripathi05 opened 2 years ago

ShwetaTripathi05 commented 2 years ago

Hi,

As part of my exploration work, I am trying to communicate between jvm-libp2p and go-libp2p hosts using the gossip pubsub implementation. Unfortunately I am not able to achieve the desired results as I do not see the messages being received at the receiver's end. Can I please get any leads/references on how to communicate between the two libraries using gossip pubsub?

mriesen commented 2 years ago

Hi

I experienced something similar regarding the interoperability with libp2p-js using WS as transport #195 . As I can remember, I didn't use gossip pubsub by then, but I intended to. Now I'm using go-libp2p gossip pubsub via JNI (dropped libp2p-jvm entirely until stable).

Are you using WS transport as well or does this occur with the default transports (TCP)?

ShwetaTripathi05 commented 2 years ago

Hi @mriesen ,

This issue is occurring with the default TCP transports. As I read from the issue that you have posted, you were getting the error for js and jvm versions of libp2p. Now, are you able to communicate via gossip between go-libp2p and js-libp2p?

Also, can you give some detailed inputs based on your implementation regarding why did you stop using jvm-libp2p?

Your response will be highly appreciated!! Thanks

mriesen commented 2 years ago

Hi @ShwetaTripathi05

Okay, so this seems to be unrelated to my problem. Yes, I am now capable of communicating between go-libp2p and js-libp2p.

My primary problem was the incompatibility of jvm-libp2p and js-libp2p regarding WS transport. Moreover, I noticed the need of WebRTC transport as well as other features which are not provided by the jvm-libp2p version. I am planning to switch back to the jvm-libp2p version when a higher maturity is reached.

I leverage libp2p for a small PoC of a blockchain-based web-game, you can have a look at the network part here: https://github.com/riesenacht/biotopium/tree/develop-start/network/gop2p/src/jvmMain

Hope this is helpful