panurus

Panurus

Panurus is a comprehensive framework for building token-based decentralized applications. It provides a modular, extensible, and privacy-preserving architecture that abstracts the complexities of the underlying blockchain platform.


Key Concepts & Terminology


Architectural Layers

Panurus is organized into a vertical stack of layers, each providing a specific level of abstraction. A key design principle is the isolation of the Network Service to handle backend-specific complexities, allowing drivers to remain entirely ledger-agnostic.

graph TD
    subgraph "Application Layer"
        UserApp[User Application / View]
    end

    subgraph "Services Layer"
        TTX[TTX: Transaction Orchestration]
        Selector[Selector: UTXO Selection]
        Auditor[Auditor: Compliance Service]
        Identity[Identity: Panurus Identity Service]
    end

    subgraph "Token API"
        TMS[Token Management Service]
        WalletAPI[Wallet API]
        VaultAPI[Vault API]
    end

    subgraph "Driver Layer (Backend Agnostic)"
        DriverAPI[Driver API Interface]
        Drivers[Drivers: FabToken / ZKAT-DLOG]
    end

    subgraph "Network Service Layer"
        NetService[Network Service: Translation & Submission]
    end

    subgraph "Infrastructure"
        DLT[Blockchain Ledger: Fabric, FabricX]
    end

    UserApp --> TTX
    UserApp --> TMS
    UserApp --> NetService
    
    TTX --> Selector
    TTX --> TMS
    TTX --> NetService
    
    TMS --> DriverAPI
    TMS --> Identity
    DriverAPI --> Drivers
    
    NetService --> DLT

Key Components


Integration with Fabric Smart Client (FSC)

Panurus is built atop the Fabric Smart Client, leveraging its foundational platform services for workflow orchestration and infrastructure. Notably, Panurus manages its own identities and does not rely on the FSC identity service. However, the entire SDK consistently uses FSC’s cross-cutting facilities for error handling, logging, and system monitoring.

graph LR
    subgraph Panurus [Panurus]
        PanurusCore[SDK]
    end

    subgraph FSC Services
        Network[Network: Event Listening & Broadcast]
        Storage[Storage: SQL Vault & DB]
        Workflow[Workflow: View System]
        Errors[Errors: Project-wide handling]
        Logging[Logging: Unified infrastructure]
        Monitoring[Monitoring: Metrics & Traces]
    end

    PanurusCore -.-> Network
    PanurusCore -.-> Storage
    PanurusCore -.-> Workflow
    PanurusCore -.-> Errors
    PanurusCore -.-> Logging
    PanurusCore -.-> Monitoring

Token Lifecycle

The lifecycle of a token (UTXO) is governed by state transitions from creation to consumption.

graph LR
    Issued[Issued] --> Unspent[Unspent / Available]
    Unspent --> Locked[Locked / Pending]
    Locked -->|Commit Success| Spent[Spent]
    Locked -->|Abort / Timeout| Unspent
    Unspent -->|Driver Upgrade| UpgradeRequired[Upgrade Required]
    UpgradeUpgradeRequired -->|Upgrade Tx| Unspent
  1. Issuance: An authorized issuer creates a new token output on the ledger. See Issuance Details.
  2. Discovery: Panurus registers a listener to the Network Service to learn when transactions assembled by the node (and therefore registered in the local Transaction DB) are confirmed or rejected on the ledger. Upon notification, Panurus updates the local Token Store to make the tokens available in the Vault.
  3. Selection & Locking: When an owner wants to spend tokens, the Selector picks available UTXOs and locks them locally to prevent double-spending. See Transfer Operation.
  4. Spending (Assembly & Signing): The initiator assembles a Token Request and collects the necessary signatures. See Collecting Endorsements.
  5. Commitment & Finality: The transaction is submitted to the Ordering Service. The Network Service monitors its status until it reaches Finality.
  6. Upgradability: If the network transitions to a new driver version, existing tokens may be marked as “Upgrade Required” until a migration transaction is performed. See Upgradability Guide.

Developer Experience


Operation & Maintenance


Platform Support