[ADD] THORNode Network Timeouts
Current
It takes a public announcement from dev leads + 1/3rd of nodes to shut down critical services to thwart attacks.
Desired
Much faster reaction times, and via a decentralised way: each node has a "big red button".
Nodes (via a thorcli tx) can call to globally halt for 300 blocks. Each subsequent call of the halt by a new node will add 300 blocks until 1/3rd have called it, which flips PauseBifrostGlobal mimir setting permanently. At that point it needs to be reset by 2/3rds node-mimir or admin-mimir
Implementation
-
The thorcli tx can also have a memo which nodes would use to dump a transaction/pastebin link of what they saw (tx or logs). This can be scanned by bots to rapidly report and spread the awareness of why the halt was called
-
Nodes can only call the halt once per churn cycle (3 days).
-
Add
requestedPauseOnHeightonto the/nodeendpoint, and give the blockheight it was last called on by that node -
Nodes have the ability to "resume" the network, which a single node(s) trying to pause for reasons that don't protect or benefit the network.
Abuse
For now, it is assumed that Nodes will not abuse this feature, since it is expected halts will over time erode user confidence and UX. This will adversely affect the value of RUNE bonded by Nodes. An irrational node that is halting once per cycle for 30 mins continually can be easily cornered and existing nodes can ban if clearly a griefing attack.