Skip to content

[feature] Delay Outbound Transactions

Son of Odin requested to merge txout-rate-limit into develop

In an effort to place blanketed protections of the network from malicious actors, this change delays outbound transactions, giving the community time to analyze and halt if there is a malicious attacker.

In addition, this PR includes a change to the /thorchain/queue endpoint, to include value in future blocks. This can be used to monitor the network for unusual or suspicious activity. In addition, /thorchain/scheduled is also added to list all future scheduled outbound transactions.

This change ensures that the community has "lead time" to stop malicious activity in its tracks and reduce exposure to any hack or exploit. At the same time, it delays transactions, which is bad UX and may be a problem for arbitrage bots.

How It Works

For each outbound txn, the value is divided by TxOutDelayRate (mimir) to determine how many blocks the transaction will be delayed. This number can be reduced further by the total scheduled outbound value, divided by MinTxOutVolumeThreshold, which in times of high volume throughput, slows down the network's outbound transactions.

At max, txns can be delayed up to 1 hour MaxTxOutOffset (mimir).

Each block has a "soft limit" on the amount of funds to be sent out, which is set by MinTxOutVolumeThreshold. If an outbound has enough remaining space in it to fit under this value, OR the block is empty, the transaction is scheduled there.

Edited by Son of Odin

Merge request reports