SYN Flooding on Blockstack Core

This topic is here to discuss the issue of SYN flooding on deployed blockstack-core instances and how to implement auto recovery when the node stalls from too many open connections.

cc @jude @muneeb

You can easily check to see if the node is down because the kernel has decided someone is SYN-flooding it simply by pinging it. If it times out, it’s likely due to a SYN flood and the node should be restarted.

You can mitigate SYN-flooding by standing up an nginx instance (or equivalent) in front of it as a transparent proxy, and limiting its request rate.

Since this issue is a wont-fix, we should automate this detection and restarting process and ship it with Blockstack Core.

Other users might be having this issue as well and they’ll need to setup their own monitoring and/or scripts for restarting.

Basically, we need some external watch-dog / monitor.

One way to do this would be with docker. Another way could be with a python process that gets started by the blockstack-core daemon and periodically checks to see if its reachable. If not, it would restart the process. This sounds like I should open an issue on blockstack-core