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

From version 7.3
edited by Robert Schaub
on 2025/12/16 20:27
Change comment: Update document after refactoring.
To version 5.1
edited by Robert Schaub
on 2025/12/12 19:37
Change comment: Imported from XAR

Summary

Details

Page properties
Parent
... ... @@ -1,1 +1,1 @@
1 -FactHarbor.Archive.FactHarbor V0\.9\.18.Specification.WebHome
1 +FactHarbor.Specification.WebHome
Content
... ... @@ -1,431 +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 -* **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.)
6 +== Purpose of Federation ==
11 11  
12 -FactHarbor draws inspiration from the Fediverse but uses stronger structure, versioning, and integrity guarantees.
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 13  
14 -----
14 +== Federated Node Model ==
15 15  
16 -== Federated FactHarbor Nodes ==
16 +Each FactHarbor node maintains:
17 +* Local PostgreSQL database, Vector DB, and Object Storage.
18 +* Local AKEL instance.
19 +* Local Reviewers and Governance policies.
17 17  
18 -Each FactHarbor instance ("node") maintains:
19 -* Its own database
20 -* Its own AKEL instance
21 -* Its own reviewers, experts, and contributors
22 -* Its own governance rules
21 +Nodes exchange structured objects (Claims, Scenarios, Evidence metadata, Verdicts) via signed bundles.
23 23  
24 -Nodes exchange structured information:
25 -* Claims
26 -* Scenarios
27 -* Evidence metadata (not necessarily full files)
28 -* Verdicts (optional)
29 -* Hashes and signatures for integrity
30 -
31 -Nodes choose which external nodes they trust.
32 -
33 -----
34 -
35 35  == Global Identifiers ==
36 36  
37 -Every entity receives a globally unique, linkable identifier.
25 +Format: ``factharbor://<node>/<type>/<local_id>``
38 38  
39 -**Format**:
40 -`factharbor://node_url/type/local_id`
27 +Example: ``factharbor://factharbor.energy/claim/CLM-55812``
41 41  
42 -**Example**:
43 -`factharbor://factharbor.energy/claim/CLM-55812`
29 +Identifiers are globally consistent, human-readable, and hash-derived.
44 44  
45 -**Supported types**:
46 -* `claim`
47 -* `scenario`
48 -* `evidence`
49 -* `verdict`
50 -* `user` (optional)
51 -* `cluster`
31 +== Data Sharing Model ==
52 52  
53 -**Properties**:
54 -* Globally consistent
55 -* Human-readable
56 -* Hash-derived
57 -* Independent of database internals
58 -* URL-resolvable (future enhancement)
33 +* **Shared**: Claims, Scenario structures, Evidence metadata, Verdicts, Integrity hashes.
34 +* **Not Shared**: Local users, Review discussions, Internal notes, Private evidence.
59 59  
60 -This allows cross-node references and prevents identifier collisions in federated environments.
61 -
62 -----
63 -
64 64  == Trust Model ==
65 65  
66 -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.
67 67  
68 -=== Trust Levels ===
40 +== Decentralized Processing ==
69 69  
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
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 -**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
83 -
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
90 -
91 -=== Trust Affects ===
92 -
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 -
109 -----
110 -
111 -== Data Sharing Model ==
112 -
113 -=== What Nodes Share ===
114 -
115 -**Always shared** (if federation enabled):
116 -* Claims and claim clusters
117 -* Scenario structures
118 -* Evidence metadata and content hashes
119 -* Integrity signatures
120 -
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
127 -
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
134 -
135 -=== Large Evidence Files ===
136 -
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 -
144 -----
145 -
146 146  == Synchronization Protocol ==
147 147  
148 -Nodes exchange data using multiple synchronization methods:
46 +Nodes exchange **Version Bundles** containing:
47 +* Claims, Scenarios, Metadata.
48 +* Merkle-tree lineage.
49 +* Cryptographic signatures.
149 149  
150 -=== Push-Based Synchronization ===
51 +Methods: Push (Webhook), Pull (Cron), Subscription.
151 151  
152 -**Mechanism**: Webhooks
53 +== Scaling ==
153 153  
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
55 +* **Vertical**: API servers, Workers, Caching.
56 +* **Horizontal**: Adding more nodes to the federation.
159 159  
160 -**Use case**: Real-time updates for trusted partners
161 -
162 -=== Pull-Based Synchronization ===
163 -
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 -
196 -----
197 -
198 -== Federation Sync Workflow ==
199 -
200 -Complete synchronization sequence for creating and sharing new content:
201 -
202 -=== Step 1: Local Node Creates New Versions ===
203 -
204 -User or AKEL creates:
205 -* New claim version
206 -* New scenario version
207 -* New evidence version
208 -* New verdict version
209 -
210 -All changes tracked with:
211 -* VersionID
212 -* ParentVersionID
213 -* AuthorType
214 -* Timestamp
215 -* JustificationText
216 -
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 -
296 -----
297 -
298 -== Cross-Node AI Knowledge Exchange ==
299 -
300 -Each node runs its own AKEL instance and may exchange AI-derived knowledge:
301 -
302 -=== What Can Be Shared ===
303 -
304 -**Vector embeddings**:
305 -* For cross-node claim clustering
306 -* For semantic search alignment
307 -* Never includes training data
308 -
309 -**Canonical claim forms**:
310 -* Normalized claim text
311 -* Standard phrasing templates
312 -* Domain-specific formulations
313 -
314 -**Scenario templates**:
315 -* Reusable scenario structures
316 -* Common assumption patterns
317 -* Evaluation method templates
318 -
319 -**Contradiction alerts**:
320 -* Detected conflicts between claims
321 -* Evidence conflicts across nodes
322 -* Scenario incompatibilities
323 -
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 -
357 -----
358 -
359 -== Decentralized Processing ==
360 -
361 -Each node independently performs:
362 -* AKEL processing
363 -* Scenario drafting and validation
364 -* Evidence review
365 -* Verdict calculation
366 -* Truth landscape summarization
367 -
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
373 -
374 -Optional data sharing includes:
375 -* Embeddings for clustering
376 -* Claim clusters for alignment
377 -* Scenario templates for efficiency
378 -* Verdict comparison metadata
379 -
380 -----
381 -
382 -== Scaling to Thousands of Users ==
383 -
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 -
400 -Nodes cooperate through:
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
406 -
407 -----
408 -
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 -
423 -----
424 -
425 -== Related Pages ==
426 -
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 -
58 +{{include reference="FactHarbor.Specification.Diagrams.Federation Architecture.WebHome"/}}