The purpose of the Gateway Protocol is to provide a connection-independent way to communicate with "Gateways", which are similar to routers.
This is nice for the following scenarios:
-
You have a closed network and want to provide a way to communicate with it from the outside. You can create a publicly accessible Gateway and then set up very dynamic firewall rules.
-
You want to protect your network from (D)DoS attacks. Since this is designed with "Gateway dies first" in mind, you can simply make the Gateway limited in resources and have it stop or throttle connections if it gets too much.
-
Apocalyptic scenario: the internet, which is centralized, gets blocked/censored. This protocol can be applied with radio or light signals.
-
Push towards decentralization: currently, there is no way for "normies" to actually host any content, so they will always be dependent on big platforms. The goal of this protocol is to stop this and make apps able to communicate with other clients semi-independently (You can’t remove ISPs and centralized IP lists)
This protocol is currently in v0.1. It is not recommended for production use, and there is still some features that need to be implemented. Sample features include:
-
Continuous connection streams
-
Error correction
-
Push towards own network implementation instead of being on top of TCP or UDP
If you like the idea of this protocol, please consider contributing to it. You don’t have to be a genius to write a few changes to the text, and if you don’t/can’t do that you can also create an issue or discussion. Writing your own implementation or making your apps compatible with it will also help a lot to get this into the mainstream.