Anoma Developer Documentation
  • Overview
  • Build
    • Getting Started
    • Your First Anoma App
      • Define a Resource
      • Write a Transaction Function
      • Write a Projection Function
      • Run your App
    • Anoma App Examples
  • LEARN
    • Overview
    • State Model
      • Model Comparison
    • Resource Machine
      • Information Flow Control
    • Resources
      • State
      • Logic
      • Kind
      • Lifecycle
    • Transactions
      • Delta
      • Actions
      • Balanced Transactions
      • Intents
    • Applications
      • Backend
      • Interface
    • Services
      • Indexing
      • Solving
Powered by GitBook
On this page
  1. LEARN
  2. Services

Solving

This page explains solving and counterparty discovery.

PreviousIndexing

Last updated 5 months ago

Solving is the process of finding optimal composition of matching , which is also commonly referred to as counterparty discovery. This involves finding matching intents in an intent pool (also referred to as the intent gossip network).

In mathematical terms, solving is a constraint satisfaction problem (see the ). Algorithm libraries, such as the and the solver algorithm within, can be used to find solutions to these problems.

Simple intents can often be directly solved by the users themselves, i.e., by gossiping and listening to intents of connected peers and running standard solving algorithms on consumer hardware (e.g., your mobile phone). For example, swapping Pokémon or playing rock paper scissors with your friends does not require an external solver.

Advanced intents can involve multiple parties, oracles, and/or specific constraints. Accordingly, finding an optimal solution is much more difficult and will usually require specialized solvers.

We expect the solver landscape to consist of:

  • Specialized solvers focussing on specific applications.

  • General-purpose solvers being able to match intents across applications.

Furthermore, we expect standardized intent formats to emerge that solvers can interpret easily.

Current private devnet A central Anoma node runs a brute-force solver. The solver tries to find matching intents in the intent pool by composing them. If the composed transaction is balanced, it gets executed.

intents
related ART report
Google OR-Tools library
SCIP