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.2
edited by Robert Schaub
on 2025/12/16 20:25
Change comment: Update document after refactoring.

Summary

Details

Page properties
Parent
... ... @@ -1,1 +1,1 @@
1 -FactHarbor.Specification.WebHome
1 +FactHarbor.Archive.FactHarbor.Specification.WebHome
Content
... ... @@ -1,58 +1,431 @@
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:
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.)
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).
12 +FactHarbor draws inspiration from the Fediverse but uses stronger structure, versioning, and integrity guarantees.
13 13  
14 -== Federated Node Model ==
14 +----
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.
16 +== Federated FactHarbor Nodes ==
20 20  
21 -Nodes exchange structured objects (Claims, Scenarios, Evidence metadata, Verdicts) via signed bundles.
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
22 22  
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 +
23 23  == Global Identifiers ==
24 24  
25 -Format: ``factharbor://<node>/<type>/<local_id>``
37 +Every entity receives a globally unique, linkable identifier.
26 26  
27 -Example: ``factharbor://factharbor.energy/claim/CLM-55812``
39 +**Format**:
40 +`factharbor://node_url/type/local_id`
28 28  
29 -Identifiers are globally consistent, human-readable, and hash-derived.
42 +**Example**:
43 +`factharbor://factharbor.energy/claim/CLM-55812`
30 30  
31 -== Data Sharing Model ==
45 +**Supported types**:
46 +* `claim`
47 +* `scenario`
48 +* `evidence`
49 +* `verdict`
50 +* `user` (optional)
51 +* `cluster`
32 32  
33 -* **Shared**: Claims, Scenario structures, Evidence metadata, Verdicts, Integrity hashes.
34 -* **Not Shared**: Local users, Review discussions, Internal notes, Private evidence.
53 +**Properties**:
54 +* Globally consistent
55 +* Human-readable
56 +* Hash-derived
57 +* Independent of database internals
58 +* URL-resolvable (future enhancement)
35 35  
60 +This allows cross-node references and prevents identifier collisions in federated environments.
61 +
62 +----
63 +
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.
66 +Each node maintains a **trust table** defining relationships with other nodes:
39 39  
40 -== Decentralized Processing ==
68 +=== 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).
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
43 43  
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 +
44 44  == Synchronization Protocol ==
45 45  
46 -Nodes exchange **Version Bundles** containing:
47 -* Claims, Scenarios, Metadata.
48 -* Merkle-tree lineage.
49 -* Cryptographic signatures.
148 +Nodes exchange data using multiple synchronization methods:
50 50  
51 -Methods: Push (Webhook), Pull (Cron), Subscription.
150 +=== Push-Based Synchronization ===
52 52  
53 -== Scaling ==
152 +**Mechanism**: Webhooks
54 54  
55 -* **Vertical**: API servers, Workers, Caching.
56 -* **Horizontal**: Adding more nodes to the federation.
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
57 57  
58 -{{include reference="FactHarbor.Specification.Diagrams.Federation Architecture.WebHome"/}}
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 +