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

From version 5.1
edited by Robert Schaub
on 2025/12/12 19:37
Change comment: Imported from XAR
To version 7.4
edited by Robert Schaub
on 2025/12/16 21:39
Change comment: Renamed back-links.

Summary

Details

Page properties
Parent
... ... @@ -1,1 +1,1 @@
1 -FactHarbor.Specification.WebHome
1 +FactHarbor.Archive.FactHarbor V0\.9\.18.Specification.WebHome
Content
... ... @@ -1,58 +1,472 @@
1 1  = Federation & Decentralization =
2 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.
3 +FactHarbor is designed to operate as a **federated network of nodes** rather than a single central server.
5 5  
6 -== Purpose of Federation ==
5 +Decentralization provides:
7 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).
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.)
13 13  
14 -== Federated Node Model ==
13 +FactHarbor draws inspiration from the Fediverse but uses stronger structure, versioning, and integrity guarantees.
15 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.
15 +----
20 20  
21 -Nodes exchange structured objects (Claims, Scenarios, Evidence metadata, Verdicts) via signed bundles.
17 +== Federated FactHarbor Nodes ==
22 22  
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 +
23 23  == Global Identifiers ==
24 24  
25 -Format: ``factharbor://<node>/<type>/<local_id>``
40 +Every entity receives a globally unique, linkable identifier.
26 26  
27 -Example: ``factharbor://factharbor.energy/claim/CLM-55812``
42 +**Format**:
43 +`factharbor://node_url/type/local_id`
28 28  
29 -Identifiers are globally consistent, human-readable, and hash-derived.
45 +**Example**:
46 +`factharbor://factharbor.energy/claim/CLM-55812`
30 30  
31 -== Data Sharing Model ==
48 +**Supported types**:
32 32  
33 -* **Shared**: Claims, Scenario structures, Evidence metadata, Verdicts, Integrity hashes.
34 -* **Not Shared**: Local users, Review discussions, Internal notes, Private evidence.
50 +* `claim`
51 +* `scenario`
52 +* `evidence`
53 +* `verdict`
54 +* `user` (optional)
55 +* `cluster`
35 35  
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 +
36 36  == Trust Model ==
37 37  
38 -Nodes maintain a **trust table** (Trusted, Neutral, Untrusted). This influences auto-import rules, re-review requirements, and visibility.
71 +Each node maintains a **trust table** defining relationships with other nodes:
39 39  
40 -== Decentralized Processing ==
73 +=== Trust Levels ===
41 41  
42 -Each node performs its own AKEL processing, drafting, and verdict calculation. Nodes may specialize in specific domains (e.g., Medical Node).
75 +**Trusted Nodes**:
43 43  
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 +
44 44  == Synchronization Protocol ==
45 45  
46 -Nodes exchange **Version Bundles** containing:
47 -* Claims, Scenarios, Metadata.
48 -* Merkle-tree lineage.
49 -* Cryptographic signatures.
161 +Nodes exchange data using multiple synchronization methods:
50 50  
51 -Methods: Push (Webhook), Pull (Cron), Subscription.
163 +=== Push-Based Synchronization ===
52 52  
53 -== Scaling ==
165 +**Mechanism**: Webhooks
54 54  
55 -* **Vertical**: API servers, Workers, Caching.
56 -* **Horizontal**: Adding more nodes to the federation.
167 +When local content changes:
57 57  
58 -{{include reference="FactHarbor.Specification.Diagrams.Federation Architecture.WebHome"/}}
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.Data Model.WebHome]]
471 +* [[Architecture>>FactHarbor.Specification.Architecture.WebHome]]
472 +* [[Workflows>>FactHarbor.Specification.Workflows.WebHome]]