Wiki source code of Federation & Decentralization

Version 7.1 by Robert Schaub on 2025/12/14 22:27

Hide last authors
Robert Schaub 1.1 1 = Federation & Decentralization =
2
Robert Schaub 7.1 3 FactHarbor is designed to operate as a **federated network of nodes** rather than a single central server.
Robert Schaub 1.1 4
Robert Schaub 7.1 5 Decentralization provides:
6 * **Resilience** against censorship or political pressure
7 * **Autonomy** for local governance and moderation
8 * **Scalability** across many independent communities
9 * **Trust** without centralized control
10 * **Domain specialization** (health-focused nodes, energy-focused nodes, etc.)
Robert Schaub 1.1 11
Robert Schaub 7.1 12 FactHarbor draws inspiration from the Fediverse but uses stronger structure, versioning, and integrity guarantees.
Robert Schaub 1.1 13
Robert Schaub 6.1 14 ----
15
Robert Schaub 7.1 16 == Federated FactHarbor Nodes ==
Robert Schaub 6.1 17
Robert Schaub 7.1 18 Each FactHarbor instance ("node") maintains:
19 * Its own database
Robert Schaub 6.1 20 * Its own AKEL instance
Robert Schaub 7.1 21 * Its own reviewers, experts, and contributors
22 * Its own governance rules
Robert Schaub 1.1 23
Robert Schaub 7.1 24 Nodes exchange structured information:
Robert Schaub 6.1 25 * Claims
26 * Scenarios
Robert Schaub 7.1 27 * Evidence metadata (not necessarily full files)
Robert Schaub 6.1 28 * Verdicts (optional)
Robert Schaub 7.1 29 * Hashes and signatures for integrity
Robert Schaub 1.1 30
Robert Schaub 7.1 31 Nodes choose which external nodes they trust.
Robert Schaub 1.1 32
Robert Schaub 6.1 33 ----
Robert Schaub 1.1 34
Robert Schaub 7.1 35 == Global Identifiers ==
Robert Schaub 1.1 36
Robert Schaub 7.1 37 Every entity receives a globally unique, linkable identifier.
Robert Schaub 1.1 38
Robert Schaub 7.1 39 **Format**:
40 `factharbor://node_url/type/local_id`
Robert Schaub 1.1 41
Robert Schaub 7.1 42 **Example**:
43 `factharbor://factharbor.energy/claim/CLM-55812`
Robert Schaub 1.1 44
Robert Schaub 7.1 45 **Supported types**:
46 * `claim`
47 * `scenario`
48 * `evidence`
49 * `verdict`
50 * `user` (optional)
51 * `cluster`
Robert Schaub 1.1 52
Robert Schaub 7.1 53 **Properties**:
Robert Schaub 6.1 54 * Globally consistent
55 * Human-readable
56 * Hash-derived
Robert Schaub 7.1 57 * Independent of database internals
58 * URL-resolvable (future enhancement)
Robert Schaub 1.1 59
Robert Schaub 7.1 60 This allows cross-node references and prevents identifier collisions in federated environments.
61
Robert Schaub 6.1 62 ----
Robert Schaub 1.1 63
Robert Schaub 7.1 64 == Trust Model ==
Robert Schaub 1.1 65
Robert Schaub 7.1 66 Each node maintains a **trust table** defining relationships with other nodes:
Robert Schaub 1.1 67
Robert Schaub 7.1 68 === Trust Levels ===
Robert Schaub 1.1 69
Robert Schaub 7.1 70 **Trusted Nodes**:
71 * Claims auto-imported
72 * Scenarios accepted without re-review
73 * Evidence considered valid
74 * Verdicts displayed to users
75 * High synchronization priority
Robert Schaub 1.1 76
Robert Schaub 7.1 77 **Neutral Nodes**:
78 * Claims imported but flagged for review
79 * Scenarios require local validation
80 * Evidence requires re-assessment
81 * Verdicts shown with "external node" disclaimer
82 * Normal synchronization priority
Robert Schaub 6.1 83
Robert Schaub 7.1 84 **Untrusted Nodes**:
85 * Claims quarantined, manual import only
86 * Scenarios rejected by default
87 * Evidence not accepted
88 * Verdicts not displayed
89 * No automatic synchronization
Robert Schaub 6.1 90
Robert Schaub 7.1 91 === Trust Affects ===
Robert Schaub 6.1 92
Robert Schaub 7.1 93 * **Auto-import**: Whether claims/scenarios are automatically added
94 * **Re-review requirements**: Whether local reviewers must validate
95 * **Verdict display**: Whether external verdicts are shown to users
96 * **Synchronization frequency**: How often data is exchanged
97 * **Reputation signals**: How external reputation is interpreted
98
99 === Local Trust Authority ===
100
101 Each node's governance team decides:
102 * Which nodes to trust
103 * Trust level criteria
104 * Trust escalation/degradation rules
105 * Dispute resolution with partner nodes
106
107 Trust is **local and autonomous** - no global trust registry exists.
108
Robert Schaub 6.1 109 ----
110
Robert Schaub 7.1 111 == Data Sharing Model ==
Robert Schaub 6.1 112
Robert Schaub 7.1 113 === What Nodes Share ===
Robert Schaub 6.1 114
Robert Schaub 7.1 115 **Always shared** (if federation enabled):
116 * Claims and claim clusters
117 * Scenario structures
118 * Evidence metadata and content hashes
119 * Integrity signatures
Robert Schaub 6.1 120
Robert Schaub 7.1 121 **Optionally shared**:
122 * Full evidence files (large documents)
123 * Verdicts (nodes may choose to keep verdicts local)
124 * Vector embeddings
125 * Scenario templates
126 * AKEL distilled knowledge
Robert Schaub 6.1 127
Robert Schaub 7.1 128 **Never shared**:
129 * Internal user lists
130 * Reviewer comments and internal discussions
131 * Governance decisions and meeting notes
132 * Access control data
133 * Private or sensitive content marked as local-only
Robert Schaub 6.1 134
Robert Schaub 7.1 135 === Large Evidence Files ===
Robert Schaub 6.1 136
Robert Schaub 7.1 137 Evidence files are:
138 * Stored locally by default
139 * Referenced via global content hash
140 * Optionally served through IPFS
141 * Accessible via direct peer-to-peer transfer
142 * Can be stored in S3-compatible object storage
143
Robert Schaub 6.1 144 ----
145
Robert Schaub 7.1 146 == Synchronization Protocol ==
Robert Schaub 6.1 147
Robert Schaub 7.1 148 Nodes exchange data using multiple synchronization methods:
Robert Schaub 6.1 149
Robert Schaub 7.1 150 === Push-Based Synchronization ===
Robert Schaub 6.1 151
Robert Schaub 7.1 152 **Mechanism**: Webhooks
Robert Schaub 6.1 153
Robert Schaub 7.1 154 When local content changes:
155 1. Node builds signed bundle
156 2. Sends webhook notification to subscribed nodes
157 3. Remote nodes fetch bundle
158 4. Remote nodes validate and import
Robert Schaub 6.1 159
Robert Schaub 7.1 160 **Use case**: Real-time updates for trusted partners
Robert Schaub 6.1 161
Robert Schaub 7.1 162 === Pull-Based Synchronization ===
Robert Schaub 6.1 163
Robert Schaub 7.1 164 **Mechanism**: Scheduled polling
165
166 Nodes periodically:
167 1. Query partner nodes for updates
168 2. Fetch changed entities since last sync
169 3. Validate and import
170 4. Store sync checkpoint
171
172 **Use case**: Regular batch updates, lower trust nodes
173
174 === Subscription-Based Synchronization ===
175
176 **Mechanism**: WebSub-like protocol
177
178 Nodes subscribe to:
179 * Specific claim clusters
180 * Specific domains (medical, energy, etc.)
181 * Specific scenario types
182 * Verdict updates
183
184 Publisher pushes updates only to subscribers.
185
186 **Use case**: Selective federation, domain specialization
187
188 === Large Asset Transfer ===
189
190 For files >10MB:
191 * S3-compatible object storage
192 * IPFS (content-addressed)
193 * Direct peer-to-peer transfer
194 * Chunked HTTP transfer with resume support
195
Robert Schaub 6.1 196 ----
197
Robert Schaub 7.1 198 == Federation Sync Workflow ==
Robert Schaub 6.1 199
Robert Schaub 7.1 200 Complete synchronization sequence for creating and sharing new content:
Robert Schaub 6.1 201
Robert Schaub 7.1 202 === Step 1: Local Node Creates New Versions ===
Robert Schaub 6.1 203
Robert Schaub 7.1 204 User or AKEL creates:
205 * New claim version
206 * New scenario version
207 * New evidence version
208 * New verdict version
Robert Schaub 6.1 209
Robert Schaub 7.1 210 All changes tracked with:
211 * VersionID
212 * ParentVersionID
213 * AuthorType
214 * Timestamp
215 * JustificationText
Robert Schaub 6.1 216
Robert Schaub 7.1 217 === Step 2: Federation Layer Builds Signed Bundle ===
218
219 Federation layer packages:
220 * Entity data (claim, scenario, evidence metadata, verdict)
221 * Version lineage (ParentVersionID chain)
222 * Cryptographic signatures
223 * Node provenance information
224 * Trust metadata
225
226 Bundle format:
227 * JSON-LD for structured data
228 * Content-addressed hashes
229 * Digital signatures for integrity
230
231 === Step 3: Bundle Includes Required Data ===
232
233 Each bundle contains:
234 * **Claims**: Full claim text, classification, domain
235 * **Scenarios**: Definitions, assumptions, boundaries
236 * **Evidence metadata**: Source URLs, hashes, reliability scores (not always full files)
237 * **Verdicts**: Likelihood ranges, uncertainty, reasoning chains
238 * **Lineage**: Version history, parent relationships
239 * **Signatures**: Cryptographic proof of origin
240
241 === Step 4: Bundle Pushed to Trusted Neighbor Nodes ===
242
243 Based on trust table:
244 * Push to **trusted nodes** immediately
245 * Queue for **neutral nodes** (batched)
246 * Skip **untrusted nodes**
247
248 Push methods:
249 * Webhook notification
250 * Direct API call
251 * Pub/Sub message queue
252
253 === Step 5: Remote Nodes Validate Lineage and Signatures ===
254
255 Receiving node:
256 1. Verifies cryptographic signatures
257 2. Validates version lineage (ParentVersionID chain)
258 3. Checks for conflicts with local data
259 4. Validates data structure and required fields
260 5. Applies local trust policies
261
262 Validation failures → reject or quarantine bundle
263
264 === Step 6: Accept or Branch Versions ===
265
266 **Accept** (if validation passes):
267 * Import new versions
268 * Maintain provenance metadata
269 * Link to local related entities
270 * Update local indices
271
272 **Branch** (if conflict detected):
273 * Create parallel version tree
274 * Mark as "external branch"
275 * Allow local reviewers to merge or reject
276 * Preserve both version histories
277
278 **Reject** (if validation fails):
279 * Log rejection reason
280 * Notify source node (optional)
281 * Quarantine for manual review (optional)
282
283 === Step 7: Local Re-evaluation Runs if Required ===
284
285 After import, local node checks:
286 * Does new evidence affect existing verdicts?
287 * Do new scenarios require re-assessment?
288 * Are there contradictions with local content?
289
290 If yes:
291 * Trigger AKEL re-evaluation
292 * Queue for reviewer attention
293 * Update affected verdicts
294 * Notify users following related content
295
Robert Schaub 6.1 296 ----
297
Robert Schaub 7.1 298 == Cross-Node AI Knowledge Exchange ==
Robert Schaub 6.1 299
Robert Schaub 7.1 300 Each node runs its own AKEL instance and may exchange AI-derived knowledge:
Robert Schaub 6.1 301
Robert Schaub 7.1 302 === What Can Be Shared ===
Robert Schaub 6.1 303
Robert Schaub 7.1 304 **Vector embeddings**:
305 * For cross-node claim clustering
306 * For semantic search alignment
307 * Never includes training data
Robert Schaub 6.1 308
Robert Schaub 7.1 309 **Canonical claim forms**:
310 * Normalized claim text
311 * Standard phrasing templates
312 * Domain-specific formulations
Robert Schaub 6.1 313
Robert Schaub 7.1 314 **Scenario templates**:
315 * Reusable scenario structures
316 * Common assumption patterns
317 * Evaluation method templates
Robert Schaub 6.1 318
Robert Schaub 7.1 319 **Contradiction alerts**:
320 * Detected conflicts between claims
321 * Evidence conflicts across nodes
322 * Scenario incompatibilities
Robert Schaub 6.1 323
Robert Schaub 7.1 324 **Metadata and insights**:
325 * Aggregate quality metrics
326 * Reliability signal extraction
327 * Bubble detection patterns
328
329 === What Can NEVER Be Shared ===
330
331 **Model weights**: No sharing of trained model parameters
332
333 **Training data**: No sharing of full training datasets
334
335 **Local governance overrides**: AKEL suggestions can be overridden locally
336
337 **User behavior data**: No cross-node tracking
338
339 **Internal review discussions**: Private content stays private
340
341 === Benefits of AI Knowledge Exchange ===
342
343 * Reduced duplication across nodes
344 * Improved claim clustering accuracy
345 * Faster contradiction detection
346 * Shared scenario libraries
347 * Cross-node quality improvements
348
349 === Local Control Maintained ===
350
351 * Nodes accept or reject shared AI knowledge
352 * Human reviewers can override any AKEL suggestion
353 * Local governance always has final authority
354 * No external AI control over local content
355 * Privacy-preserving knowledge exchange
356
Robert Schaub 6.1 357 ----
358
Robert Schaub 7.1 359 == Decentralized Processing ==
Robert Schaub 6.1 360
Robert Schaub 7.1 361 Each node independently performs:
362 * AKEL processing
363 * Scenario drafting and validation
364 * Evidence review
365 * Verdict calculation
366 * Truth landscape summarization
Robert Schaub 6.1 367
Robert Schaub 7.1 368 Nodes can specialize:
369 * Health-focused node with medical experts
370 * Energy-focused node with domain knowledge
371 * Small node delegating scenario libraries to partners
372 * Regional node with language/culture specialization
Robert Schaub 6.1 373
Robert Schaub 7.1 374 Optional data sharing includes:
375 * Embeddings for clustering
376 * Claim clusters for alignment
377 * Scenario templates for efficiency
378 * Verdict comparison metadata
Robert Schaub 6.1 379
Robert Schaub 7.1 380 ----
Robert Schaub 6.1 381
Robert Schaub 7.1 382 == Scaling to Thousands of Users ==
Robert Schaub 6.1 383
Robert Schaub 7.1 384 Nodes scale independently through:
385 * Horizontally scalable API servers
386 * Worker pools for AKEL tasks
387 * Hybrid storage (local + S3/IPFS)
388 * Redis caching for performance
389 * Sharded or partitioned databases
390
391 Federation allows effectively unlimited horizontal scaling by adding new nodes.
392
393 Communities may form:
394 * Domain-specific nodes (epidemiology, energy, climate)
395 * Language or region-based nodes
396 * NGO or institutional nodes
397 * Private organizational nodes
398 * Academic research nodes
399
Robert Schaub 6.1 400 Nodes cooperate through:
Robert Schaub 7.1 401 * Scenario library sharing
402 * Shared or overlapping claim clusters
403 * Expert delegation between nodes
404 * Distributed AKEL task support
405 * Cross-node quality audits
Robert Schaub 6.1 406
Robert Schaub 7.1 407 ----
Robert Schaub 6.1 408
Robert Schaub 7.1 409 == Federation and Release 1.0 ==
410
411 **POC**: Single node, optional federation experiments
412
413 **Beta 0**: 2-3 nodes, basic federation protocol
414
415 **Release 1.0**: Full federation support with:
416 * Robust synchronization protocol
417 * Trust model implementation
418 * Cross-node AI knowledge exchange
419 * Federated search and discovery
420 * Distributed audit collaboration
421 * Inter-node expert consultation
422
Robert Schaub 6.1 423 ----
424
Robert Schaub 7.1 425 == Related Pages ==
Robert Schaub 6.1 426
Robert Schaub 7.1 427 * [[AKEL (AI Knowledge Extraction Layer)>>FactHarbor.Specification.AI Knowledge Extraction Layer (AKEL).WebHome]]
428 * [[Data Model>>FactHarbor.Specification.Data Model.WebHome]]
429 * [[Architecture>>FactHarbor.Specification.Architecture.WebHome]]
430 * [[Workflows>>FactHarbor.Specification.Workflows.WebHome]]
431