Wiki source code of Federation & Decentralization
Version 3.1 by Robert Schaub on 2025/12/12 09:32
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | = Federation & Decentralization = | ||
| 2 | |||
| 3 | FactHarbor is designed as a network of independent nodes rather than a single centralized service. | ||
| 4 | This provides resilience, local autonomy, and virtually unlimited scalability. | ||
| 5 | |||
| 6 | == Purpose of Federation == | ||
| 7 | |||
| 8 | * **Resilience**: Against censorship or political pressure. | ||
| 9 | * **Autonomy**: Local governance and moderation. | ||
| 10 | * **Scalability**: Adding more nodes, not bigger servers. | ||
| 11 | * **Shared Knowledge**: Distributed structures without central authority. | ||
| 12 | * **Specialization**: Domain-specific nodes (e.g., Health, Climate). | ||
| 13 | |||
| 14 | == Federated Node Model == | ||
| 15 | |||
| 16 | Each FactHarbor node maintains: | ||
| 17 | * Local PostgreSQL database, Vector DB, and Object Storage. | ||
| 18 | * Local AKEL instance. | ||
| 19 | * Local Reviewers and Governance policies. | ||
| 20 | |||
| 21 | Nodes exchange structured objects (Claims, Scenarios, Evidence metadata, Verdicts) via signed bundles. | ||
| 22 | |||
| 23 | == Global Identifiers == | ||
| 24 | |||
| 25 | Format: ``factharbor://<node>/<type>/<local_id>`` | ||
| 26 | |||
| 27 | Example: ``factharbor://factharbor.energy/claim/CLM-55812`` | ||
| 28 | |||
| 29 | Identifiers are globally consistent, human-readable, and hash-derived. | ||
| 30 | |||
| 31 | == Data Sharing Model == | ||
| 32 | |||
| 33 | * **Shared**: Claims, Scenario structures, Evidence metadata, Verdicts, Integrity hashes. | ||
| 34 | * **Not Shared**: Local users, Review discussions, Internal notes, Private evidence. | ||
| 35 | |||
| 36 | == Trust Model == | ||
| 37 | |||
| 38 | Nodes maintain a **trust table** (Trusted, Neutral, Untrusted). This influences auto-import rules, re-review requirements, and visibility. | ||
| 39 | |||
| 40 | == Decentralized Processing == | ||
| 41 | |||
| 42 | Each node performs its own AKEL processing, drafting, and verdict calculation. Nodes may specialize in specific domains (e.g., Medical Node). | ||
| 43 | |||
| 44 | == Synchronization Protocol == | ||
| 45 | |||
| 46 | Nodes exchange **Version Bundles** containing: | ||
| 47 | * Claims, Scenarios, Metadata. | ||
| 48 | * Merkle-tree lineage. | ||
| 49 | * Cryptographic signatures. | ||
| 50 | |||
| 51 | Methods: Push (Webhook), Pull (Cron), Subscription. | ||
| 52 | |||
| 53 | == Scaling == | ||
| 54 | |||
| 55 | * **Vertical**: API servers, Workers, Caching. | ||
| 56 | * **Horizontal**: Adding more nodes to the federation. | ||
| 57 | |||
| 58 | {{include reference="FactHarbor.Specification.Diagrams.Federation Architecture.WebHome"/}} |