8.5 KiB
8.5 KiB
GSS Settlement Flow
Overview
The Global Settlement System (GSS) implements a four-layer architecture for sovereign-grade settlement: Layer 1 (Sovereign), Layer 2 (DBIS Master), Layer 3 (Smart Clearing Fabric), and Layer 4 (Finality & Irreversibility). This flow documents the dual-ledger synchronization process.
Prerequisites
- Source and destination banks are registered SCBs
- Valid sovereign settlement node (SSN) configuration
- Source and destination accounts exist
- Sufficient balance in source account
- Sovereign signature available (if required)
Visual Flow Diagram
┌─────────────┐
│ Settlement │
│ Request │
└──────┬──────┘
│
│ 1. Settlement Entry
▼
┌─────────────────────────┐
│ Layer 1: Sovereign │
│ Ledger Posting │
│ - Account lookup │
│ - Debit/Credit entries │
│ - Generate hash │
└──────┬──────────────────┘
│
│ 2. Sovereign Hash
▼
┌─────────────────────────┐
│ Layer 2: DBIS Master │
│ Ledger Posting │
│ - Master ledger entry │
│ - Generate hash │
└──────┬──────────────────┘
│
│ 3. DBIS Hash
▼
┌─────────────────────────┐
│ Layer 3: Signature │
│ Validation (if provided) │
│ - HSM verification │
│ - Identity check │
└──────┬──────────────────┘
│
│ 4. Validated
▼
┌─────────────────────────┐
│ Layer 4: Master Entry │
│ Creation │
│ - Dual-ledger commit │
│ - Status: settled │
└──────┬──────────────────┘
│
│ 5. Finality
▼
┌─────────────┐
│ Settlement │
│ Complete │
└─────────────┘
Step-by-Step Process
Step 1: Settlement Entry Creation
- Receive settlement request with:
- Source bank ID
- Destination bank ID
- Amount and currency
- Asset type
- Optional sovereign signature
- Generate unique entry ID:
GSS-ENTRY-{uuid} - Validate node configuration for source bank
- Verify both banks are active SCBs
Code Reference: src/core/settlement/gss/gss-master-ledger.service.ts:35-38
Step 2: Layer 1 - Sovereign Ledger Posting
- Lookup source accounts:
- Filter by sovereign bank ID
- Match currency code and asset type
- Select active account
- Lookup destination accounts:
- Filter by sovereign bank ID
- Match currency code and asset type
- Select active account
- Post double-entry to sovereign ledger:
- Debit source account
- Credit destination account
- Use ledger ID:
Sovereign_{sourceBankId} - Transaction type:
Type_A
- Retrieve ledger entry and extract block hash
- Store sovereign ledger hash
Code Reference: src/core/settlement/gss/gss-master-ledger.service.ts:101-150
Step 3: Layer 2 - DBIS Master Ledger Posting
- Lookup source accounts (same as Step 2)
- Lookup destination accounts (same as Step 2)
- Post double-entry to DBIS master ledger:
- Debit source account
- Credit destination account
- Use ledger ID:
Master - Transaction type:
Type_A - Metadata:
{ gssEntry: true, masterLedger: true }
- Retrieve ledger entry and extract block hash
- Store DBIS ledger hash
Code Reference: src/core/settlement/gss/gss-master-ledger.service.ts:155-203
Step 4: Layer 3 - Sovereign Signature Validation (if provided)
- Check if sovereign signature is provided
- If provided:
- Lookup sovereign identity by bank ID
- Verify identity type is 'Settlement'
- Validate signature using HSM (in production)
- Verify signature matches entry data
- If validation fails, throw error and rollback
Code Reference: src/core/settlement/gss/gss-master-ledger.service.ts:208-232
Step 5: Layer 4 - Master Entry Creation & Finality
- Create GSS master ledger entry with:
- Entry ID
- Node ID
- Source and destination bank IDs
- Amount, currency, asset type
- Sovereign signature (if provided)
- Dual-ledger commit flag:
true - Sovereign ledger hash
- DBIS ledger hash
- Status:
settled - Committed and settled timestamps
- Verify dual-ledger synchronization:
- Both hashes exist
- Both ledger entries exist
- Dual-commit flag is true
- Return dual-ledger result
Code Reference: src/core/settlement/gss/gss-master-ledger.service.ts:52-77
Step 6: Error Handling (if any step fails)
- If error occurs after Step 1:
- Create failed entry record
- Set dual-ledger commit:
false - Set status:
failed - Log error details
- Rollback any partial ledger entries
- Throw error to caller
Code Reference: src/core/settlement/gss/gss-master-ledger.service.ts:78-95
Error Handling
Error: Accounts Not Found
- Detection: Account lookup returns empty array
- Action: Throw error "Accounts not found for sovereign ledger posting"
- Recovery: Verify account configuration, retry with correct parameters
Error: Sovereign Signature Invalid
- Detection: Signature validation fails
- Action: Throw error "Sovereign identity not found" or "Signature invalid"
- Recovery: Request new signature, verify HSM configuration
Error: Dual-Ledger Mismatch
- Detection: Hashes don't match or entries missing
- Action: Mark entry as failed, create reconciliation record
- Recovery: Manual reconciliation process, verify ledger integrity
Error: Node Configuration Missing
- Detection: SSN not configured for source bank
- Action: Return error, prevent settlement
- Recovery: Configure SSN, retry settlement
Integration Points
Related Services
- GSS Master Ledger Service:
src/core/settlement/gss/gss-master-ledger.service.ts - Ledger Service:
src/core/ledger/ledger.service.ts - Account Service:
src/core/accounts/account.service.ts - GSS Architecture Service:
src/core/settlement/gss/gss-architecture.service.ts
API Endpoints
POST /api/v1/gss/settlement/execute- Execute GSS settlementGET /api/v1/gss/master-ledger/entries- Query master ledger entriesGET /api/v1/gss/master-ledger/entries/:entryId- Get specific entryPOST /api/v1/gss/master-ledger/verify- Verify dual-ledger sync
Database Models
GssMasterLedger- Master ledger entriesSovereignSettlementNode- SSN configurationLedgerEntry- Individual ledger entries
Performance Metrics
- Layer 1 (Sovereign Posting): < 100ms target
- Layer 2 (DBIS Posting): < 100ms target
- Layer 3 (Signature Validation): < 50ms target (if required)
- Layer 4 (Master Entry): < 50ms target
- Total End-to-End: < 300ms target
- Throughput: 5,000+ settlements/second
- Availability: 99.99% uptime target
Security Considerations
Authentication
- Sovereign bank must be registered and active
- Node ID must match configured SSN
Authorization
- Source bank must have settlement permissions
- Accounts must be active and accessible
Data Integrity
- Dual-ledger commit ensures consistency
- Hash verification prevents tampering
- Sovereign signatures provide non-repudiation
Audit Trail
- All entries logged with timestamps
- Dual-ledger hashes provide proof
- Failed entries tracked for reconciliation
Testing Scenarios
Happy Path
- Valid settlement request
- Successful sovereign ledger posting
- Successful DBIS master ledger posting
- Valid sovereign signature (if provided)
- Successful master entry creation
- Dual-ledger verification passes
Error Scenarios
- Accounts not found
- Sovereign signature invalid
- Dual-ledger mismatch
- Node configuration missing
- Network timeout during posting
Edge Cases
- Concurrent settlements to same account
- Maximum settlement amount
- Settlement with missing signature
- Settlement during ledger maintenance
- Cross-currency settlements
Related Flows: