Aug 18, 2020, 2:55:54 PM8/18/20
to Ripple Project
Bidirectional query flooding seems ideal for payment routing. It reduces queried nodes down to on average sqrt(unidirectionalQueryFlooding).
This puts the upper bound to maximum nodes to ever have to be queried by a node to sqrt(population).
If payment routing requests costs IOU, nodes require a payment to pass on a query, spam is prevented.
The exact cost to keep spam down can self-regulate depending on how big a problem spam is. Nodes can choose to reject query requests unless they are paid min_gas. The initial query payment by node sending request then has to be enough so that the leaves on the last hop get min_gas. The number of leaves approximate number of total nodes queried, so total payment is approximately roughly nodesQueried*min_gas.