You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, Sealer heavily relies on SFTP to distribute resources. This leads to several potential issues:
High resource usage
Slow network speed
Complex protocol (SSH, compared with HTTP or other common protocols)
Difficult to scale up
Hard to manage (SSH authentication)
Therefore, giving Sealer a fundamentally new method of distributing resources should be considered.
Additional context
Here are several common methods with their pros and cons:
P2P (BitTorrent or IPFS-like)
Pros:
Highly mature, there are already large-scale deployment examples
Extremely fast (from the perspective of the entire network)
Easy to configure
Cons:
It's necessary to re-design the entire distribution system
High resource consumption (when the number of peers is large)
Distributed Storage
Pros:
Possible to save a decent amount of disk space
Cons:
Relatively difficult to implement
IP Multicast
Pros:
Possible to save bandwidth
Cons:
Reliant on IP networks that fully support multicast
Need to completely get rid of SSH (it is only possible to use UDP when multicasting)
After all the considerations, I believe P2P is the most feasible approach. This is due to the fact that there are many fully tested P2P network implementations, among which some have already served the public for two decades. Distributed storage is a possible way, but implementing it with fault-tolerant replicas is harder, and there will be fundamental changes to the end-user experience. As for IP multicast, it shouldn't be taken for granted that the network fully supports multicasting.
To implement P2P resource distribution, there are two possible ways:
Completely replace the current SSH-based system
Build it as a plugin or add-on based on SSH
I personally prefer the second way since it requires minimal modification to the current codebase and is possible to maintain backward compatibility.
The text was updated successfully, but these errors were encountered:
Thanks, I’ll take this information as reference. It might be possible to add multicasting when the network (esp. the router) has proper support for multicasting, and fall back to P2P otherwise.
Issue Description
Type: feature request
Describe what feature you want
Currently, Sealer heavily relies on SFTP to distribute resources. This leads to several potential issues:
Therefore, giving Sealer a fundamentally new method of distributing resources should be considered.
Additional context
Here are several common methods with their pros and cons:
P2P (BitTorrent or IPFS-like)
Pros:
Cons:
Distributed Storage
Pros:
Cons:
IP Multicast
Pros:
Cons:
After all the considerations, I believe P2P is the most feasible approach. This is due to the fact that there are many fully tested P2P network implementations, among which some have already served the public for two decades. Distributed storage is a possible way, but implementing it with fault-tolerant replicas is harder, and there will be fundamental changes to the end-user experience. As for IP multicast, it shouldn't be taken for granted that the network fully supports multicasting.
To implement P2P resource distribution, there are two possible ways:
I personally prefer the second way since it requires minimal modification to the current codebase and is possible to maintain backward compatibility.
The text was updated successfully, but these errors were encountered: