perlin-network / noise

A decentralized P2P networking stack written in Go.
https://godoc.org/github.com/perlin-network/noise
MIT License
1.78k stars 213 forks source link

How well does it scale? #301

Open lonnietc opened 2 years ago

lonnietc commented 2 years ago

Hello,

I'm on the hunt for the best possible P2P library for Golang and have come across go-libp2p but it seems to have a number of issues with scaling and stability.

Can you please tell me how well Noise scales and if it is reasonably stable? Thanks in advance

ghost commented 2 years ago

It depends on what are you trying to make. P2P is usually not scalable The more peers there are, the slower the speed.

ghost commented 2 years ago

But noise is very stable

lonnietc commented 1 year ago

Thanks for the info on this.

I am building a P2P system that will use a small database to set up cluster using a DHT to track KV (key-value) data for testing.

I am interested to see how high this can scale since if it does then I have some ideas for much larger scales that could be in the tens of thousands of peers but that is much further down the line. I could envision a P2P eCommerce system with potentially thousands of concurrent merchants and users at any one time on different platforms.

For the time being, I am just trying to get noise to work.

I was able to compile Noise on Windows (Go v1.18.3) and it seems to run the benchmarks very well, but could not figure out how to test the "Basic.exe" or "Chat.exe" with multiple instances on the same Windows machine. I just keep getting that each instance could not find any peers.

Any thoughts on this?

lonnietc commented 1 year ago

Any update on this:

I was able to compile Noise on Windows (Go v1.18.3) and it seems to run the benchmarks very well but could not figure out how to test the "Basic.exe" or "Chat.exe" with multiple instances on the same Windows machine. I just keep getting that each instance could not find any peers.

Mostly just want to test some of the examples (cmd/basic, cmd/chat, etc.) on the same physical machine.

How can this be done?

Thanks in advance