LeonHartley / Coerce-rs

Actor runtime and distributed systems framework for Rust
713 stars 23 forks source link

[Devops] Can Coerce-rs support 10000 node(remote actor) network? #14

Closed lshoo closed 1 year ago

lshoo commented 1 year ago

Hi,

I am developing a blockchain layer2 network. The network nodes are permissionless, and the number of nodes may reach 10,000. Each node is a proxy (gateway) using the remote actor in Coerce-rs, and nodes communicate through remote actors。 The network between nodes is not high-speed network, does Coerce-rs support such a network?

Regards by lshoo

LeonHartley commented 1 year ago

Hi @lshoo!

At the moment, Coerce cluster peer discovery works by connecting to all other known peers, and every known peer will send a heartbeat at a configurable interval. So let's say there were 10,000 nodes in the cluster, and you wanted to use the default Coerce cluster system, then you'd end up with 100,000,000 TCP connections in total - every node would have an open TCP connection to every other peer.

I would say it's definitely possible to create a cluster system that is more suited for a zero-trust, peer-to-peer network, but at the moment it's just not something that would be offered by the Coerce library itself. It would be possible to implement a new transport layer to support this, but just isn't something in the scope of the library, at least for now.

If you'd like to talk more about this, feel free to drop me an email.

Leon