Last modified by Robert Schaub on 2025/12/24 20:33

From version 7.6
edited by Robert Schaub
on 2025/12/16 21:40
Change comment: Renamed back-links.
To version 3.1
edited by Robert Schaub
on 2025/12/12 09:32
Change comment: Imported from XAR

Summary

Details

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