For payments, CirclesUBI heavily relies on “transitive trust”, ie. transitive multi-hops for payments between Circles users who do not trust directly, but via a intermediate users. So if Bob trusts Alice and Carol trusts Bob, Alice can pay Carol with a multi-hop payment of 2 (Alice → Bob → Carol). If Alice sends the payment, her Circle Coins (CRC) are swapped with Bobs and then Bobs are swapped with Carols, so Carol never has to trust Alice directly.
The tool Pathfinder helps finding a shortest path between Alice and Carol if it exists and checks if the amount trusted is enough for Alice to pay Carol.
Calculating transitive trustlines is not an easy tasks and at least requires to know in realtime about the current trust relationsships of all participants.
I created a prototype with an actual Graph-Database, Neo4j, which is perfectly suited for this specific task, but also supports a query language (Cypher) to generate other interesting queries for the trustgraph of Circles.
This is super helpful and maybe also a a solution to revive our trust network explorer and transfer simulator in the Circles Dashboard. It used to have a very nice visualization plus some helpful tooling but crashed with the amounts of data being rendered directly in the browser.
Sure, though this is honestly all about ideas and feasibility - for a production grade service a lot has to be done, including a decent and fail-over-capable operation mode. Right now, it’s my private server and is not fail-safe at all
But I certainly would be interested to evaluate options, feel free to DM me.