society-protocol 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/benchmark/collector.d.ts +17 -0
  2. package/dist/benchmark/collector.d.ts.map +1 -0
  3. package/dist/benchmark/collector.js +36 -0
  4. package/dist/benchmark/collector.js.map +1 -0
  5. package/dist/benchmark/reporter.d.ts +17 -0
  6. package/dist/benchmark/reporter.d.ts.map +1 -0
  7. package/dist/benchmark/reporter.js +140 -0
  8. package/dist/benchmark/reporter.js.map +1 -0
  9. package/dist/benchmark/types.d.ts +63 -0
  10. package/dist/benchmark/types.d.ts.map +1 -0
  11. package/dist/benchmark/types.js +6 -0
  12. package/dist/benchmark/types.js.map +1 -0
  13. package/dist/bootstrap.d.ts +8 -3
  14. package/dist/bootstrap.d.ts.map +1 -1
  15. package/dist/bootstrap.js +52 -9
  16. package/dist/bootstrap.js.map +1 -1
  17. package/dist/content-store.d.ts +77 -0
  18. package/dist/content-store.d.ts.map +1 -0
  19. package/dist/content-store.js +178 -0
  20. package/dist/content-store.js.map +1 -0
  21. package/dist/identity-proof.d.ts +43 -0
  22. package/dist/identity-proof.d.ts.map +1 -0
  23. package/dist/identity-proof.js +98 -0
  24. package/dist/identity-proof.js.map +1 -0
  25. package/dist/index.js +174 -39
  26. package/dist/index.js.map +1 -1
  27. package/dist/knowledge.d.ts +100 -1
  28. package/dist/knowledge.d.ts.map +1 -1
  29. package/dist/knowledge.js +437 -2
  30. package/dist/knowledge.js.map +1 -1
  31. package/dist/lib.d.ts +8 -2
  32. package/dist/lib.d.ts.map +1 -1
  33. package/dist/lib.js +6 -1
  34. package/dist/lib.js.map +1 -1
  35. package/dist/p2p.d.ts +25 -0
  36. package/dist/p2p.d.ts.map +1 -1
  37. package/dist/p2p.js +159 -69
  38. package/dist/p2p.js.map +1 -1
  39. package/dist/persona/types.d.ts +1 -1
  40. package/dist/persona/types.d.ts.map +1 -1
  41. package/dist/persona/zkp/engine.d.ts.map +1 -1
  42. package/dist/persona/zkp/engine.js +8 -0
  43. package/dist/persona/zkp/engine.js.map +1 -1
  44. package/dist/planner.d.ts +1 -0
  45. package/dist/planner.d.ts.map +1 -1
  46. package/dist/planner.js +26 -4
  47. package/dist/planner.js.map +1 -1
  48. package/dist/proactive/watcher.d.ts +76 -0
  49. package/dist/proactive/watcher.d.ts.map +1 -0
  50. package/dist/proactive/watcher.js +246 -0
  51. package/dist/proactive/watcher.js.map +1 -0
  52. package/dist/registry.d.ts +4 -0
  53. package/dist/registry.d.ts.map +1 -1
  54. package/dist/registry.js +21 -0
  55. package/dist/registry.js.map +1 -1
  56. package/dist/reputation.d.ts +10 -0
  57. package/dist/reputation.d.ts.map +1 -1
  58. package/dist/reputation.js +23 -4
  59. package/dist/reputation.js.map +1 -1
  60. package/dist/rooms.d.ts +35 -0
  61. package/dist/rooms.d.ts.map +1 -1
  62. package/dist/rooms.js +128 -0
  63. package/dist/rooms.js.map +1 -1
  64. package/dist/sdk/index.d.ts +1 -1
  65. package/dist/sdk/index.js +1 -1
  66. package/dist/swp.d.ts +1 -1
  67. package/dist/swp.d.ts.map +1 -1
  68. package/dist/swp.js.map +1 -1
  69. package/package.json +2 -1
@@ -0,0 +1,17 @@
1
+ /**
2
+ * ProtocolBench — In-memory metrics collector.
3
+ */
4
+ import type { MetricsCollector, CollectedMetrics } from './types.js';
5
+ export declare class InMemoryMetricsCollector implements MetricsCollector {
6
+ private messages;
7
+ private tasks;
8
+ private faults;
9
+ private recoveries;
10
+ recordMessage(type: string, sizeBytes: number, latencyMs: number): void;
11
+ recordTaskCompletion(success: boolean, qualityScore?: number): void;
12
+ recordFault(type: string): void;
13
+ recordRecovery(type: string, recoveryMs: number): void;
14
+ snapshot(): CollectedMetrics;
15
+ reset(): void;
16
+ }
17
+ //# sourceMappingURL=collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/benchmark/collector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAErE,qBAAa,wBAAyB,YAAW,gBAAgB;IAC7D,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,UAAU,CAAsC;IAExD,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIvE,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,GAAE,MAA4B,GAAG,IAAI;IAIxF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAItD,QAAQ,IAAI,gBAAgB;IAS5B,KAAK,IAAI,IAAI;CAMhB"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * ProtocolBench — In-memory metrics collector.
3
+ */
4
+ export class InMemoryMetricsCollector {
5
+ messages = [];
6
+ tasks = [];
7
+ faults = [];
8
+ recoveries = [];
9
+ recordMessage(type, sizeBytes, latencyMs) {
10
+ this.messages.push({ type, sizeBytes, latencyMs, timestamp: Date.now() });
11
+ }
12
+ recordTaskCompletion(success, qualityScore = success ? 1.0 : 0.0) {
13
+ this.tasks.push({ success, qualityScore, timestamp: Date.now() });
14
+ }
15
+ recordFault(type) {
16
+ this.faults.push({ type, timestamp: Date.now() });
17
+ }
18
+ recordRecovery(type, recoveryMs) {
19
+ this.recoveries.push({ type, recoveryMs, timestamp: Date.now() });
20
+ }
21
+ snapshot() {
22
+ return {
23
+ messages: [...this.messages],
24
+ tasks: [...this.tasks],
25
+ faults: [...this.faults],
26
+ recoveries: [...this.recoveries],
27
+ };
28
+ }
29
+ reset() {
30
+ this.messages = [];
31
+ this.tasks = [];
32
+ this.faults = [];
33
+ this.recoveries = [];
34
+ }
35
+ }
36
+ //# sourceMappingURL=collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/benchmark/collector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,OAAO,wBAAwB;IACzB,QAAQ,GAAiC,EAAE,CAAC;IAC5C,KAAK,GAA8B,EAAE,CAAC;IACtC,MAAM,GAA+B,EAAE,CAAC;IACxC,UAAU,GAAmC,EAAE,CAAC;IAExD,aAAa,CAAC,IAAY,EAAE,SAAiB,EAAE,SAAiB;QAC5D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,oBAAoB,CAAC,OAAgB,EAAE,eAAuB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;QAC7E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,cAAc,CAAC,IAAY,EAAE,UAAkB;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,QAAQ;QACJ,OAAO;YACH,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC5B,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACtB,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACxB,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;SACnC,CAAC;IACN,CAAC;IAED,KAAK;QACD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,CAAC;CACJ"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * ProtocolBench — Markdown report formatter.
3
+ */
4
+ import type { ProtocolBenchReport, CollectedMetrics, BenchmarkScenarioResult } from './types.js';
5
+ /**
6
+ * Evaluate collected metrics into a 4-axis scenario result.
7
+ */
8
+ export declare function evaluateScenario(scenario: string, metrics: CollectedMetrics, durationMs: number): BenchmarkScenarioResult;
9
+ /**
10
+ * Format a ProtocolBench report as markdown for console output.
11
+ */
12
+ export declare function formatBenchmarkReport(report: ProtocolBenchReport): string;
13
+ /**
14
+ * Compute aggregate scores from scenario results.
15
+ */
16
+ export declare function aggregateScenarios(scenarios: BenchmarkScenarioResult[]): ProtocolBenchReport['aggregate'];
17
+ //# sourceMappingURL=reporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/benchmark/reporter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAiB,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAWhH;;GAEG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,MAAM,GACnB,uBAAuB,CA6FzB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CA+BzE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,uBAAuB,EAAE,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAWzG"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * ProtocolBench — Markdown report formatter.
3
+ */
4
+ /**
5
+ * Compute percentile from a sorted array of numbers.
6
+ */
7
+ function percentile(sorted, p) {
8
+ if (sorted.length === 0)
9
+ return 0;
10
+ const idx = Math.ceil((p / 100) * sorted.length) - 1;
11
+ return sorted[Math.max(0, idx)];
12
+ }
13
+ /**
14
+ * Evaluate collected metrics into a 4-axis scenario result.
15
+ */
16
+ export function evaluateScenario(scenario, metrics, durationMs) {
17
+ // Task Success
18
+ const totalTasks = metrics.tasks.length;
19
+ const successRate = totalTasks > 0
20
+ ? metrics.tasks.filter(t => t.success).length / totalTasks
21
+ : 1.0;
22
+ const avgQuality = totalTasks > 0
23
+ ? metrics.tasks.reduce((s, t) => s + t.qualityScore, 0) / totalTasks
24
+ : 1.0;
25
+ const taskSuccess = {
26
+ name: 'Task Success',
27
+ score: (successRate * 0.6 + avgQuality * 0.4),
28
+ metrics: {
29
+ success_rate: successRate,
30
+ avg_quality: avgQuality,
31
+ total_tasks: totalTasks,
32
+ },
33
+ };
34
+ // Latency & Throughput
35
+ const latencies = metrics.messages.map(m => m.latencyMs).sort((a, b) => a - b);
36
+ const p50 = percentile(latencies, 50);
37
+ const p95 = percentile(latencies, 95);
38
+ const p99 = percentile(latencies, 99);
39
+ const throughput = durationMs > 0 ? (metrics.messages.length / (durationMs / 1000)) : 0;
40
+ // Score: p95 < 100ms → 1.0, > 1000ms → 0.0 (log scale)
41
+ const latencyScore = p95 > 0
42
+ ? Math.max(0, Math.min(1, 1 - (Math.log10(p95) - 2) / 1))
43
+ : 1.0;
44
+ const throughputScore = Math.min(1, throughput / 1000); // 1000 msgs/sec = 1.0
45
+ const latencyThroughput = {
46
+ name: 'Latency & Throughput',
47
+ score: latencyScore * 0.6 + throughputScore * 0.4,
48
+ metrics: {
49
+ p50_ms: p50,
50
+ p95_ms: p95,
51
+ p99_ms: p99,
52
+ throughput_msgs_sec: Math.round(throughput * 100) / 100,
53
+ },
54
+ };
55
+ // Message Overhead
56
+ const totalMessages = metrics.messages.length;
57
+ const totalBytes = metrics.messages.reduce((s, m) => s + m.sizeBytes, 0);
58
+ const msgsPerTask = totalTasks > 0 ? totalMessages / totalTasks : totalMessages;
59
+ // Score: fewer msgs per task is better; < 5 → 1.0, > 50 → 0.0
60
+ const overheadScore = msgsPerTask > 0
61
+ ? Math.max(0, Math.min(1, 1 - (msgsPerTask - 5) / 45))
62
+ : 1.0;
63
+ const messageOverhead = {
64
+ name: 'Message Overhead',
65
+ score: overheadScore,
66
+ metrics: {
67
+ total_messages: totalMessages,
68
+ total_bytes: totalBytes,
69
+ msgs_per_task: Math.round(msgsPerTask * 100) / 100,
70
+ },
71
+ };
72
+ // Robustness
73
+ const totalFaults = metrics.faults.length;
74
+ const totalRecoveries = metrics.recoveries.length;
75
+ const recoveryRate = totalFaults > 0 ? totalRecoveries / totalFaults : 1.0;
76
+ const avgRecoveryMs = totalRecoveries > 0
77
+ ? metrics.recoveries.reduce((s, r) => s + r.recoveryMs, 0) / totalRecoveries
78
+ : 0;
79
+ // Score: recovery rate * recovery speed factor
80
+ const recoverySpeed = avgRecoveryMs > 0
81
+ ? Math.max(0, Math.min(1, 1 - (avgRecoveryMs - 100) / 900))
82
+ : 1.0;
83
+ const robustness = {
84
+ name: 'Robustness',
85
+ score: Math.min(recoveryRate, recoverySpeed),
86
+ metrics: {
87
+ total_faults: totalFaults,
88
+ total_recoveries: totalRecoveries,
89
+ recovery_rate: recoveryRate,
90
+ avg_recovery_ms: Math.round(avgRecoveryMs * 100) / 100,
91
+ },
92
+ };
93
+ return {
94
+ scenario,
95
+ duration_ms: durationMs,
96
+ axes: { taskSuccess, latencyThroughput, messageOverhead, robustness },
97
+ };
98
+ }
99
+ /**
100
+ * Format a ProtocolBench report as markdown for console output.
101
+ */
102
+ export function formatBenchmarkReport(report) {
103
+ const lines = [];
104
+ lines.push(`# ProtocolBench Report — Society Protocol v${report.version}`);
105
+ lines.push(`Date: ${new Date(report.timestamp).toISOString()} | Platform: ${report.platform}`);
106
+ lines.push('');
107
+ lines.push('## Scenarios');
108
+ lines.push('| Scenario | Success | Latency | Overhead | Robustness | Duration |');
109
+ lines.push('|----------|---------|---------|----------|------------|----------|');
110
+ for (const s of report.scenarios) {
111
+ lines.push(`| ${s.scenario} ` +
112
+ `| ${(s.axes.taskSuccess.score * 100).toFixed(0)}% ` +
113
+ `| ${(s.axes.latencyThroughput.score * 100).toFixed(0)}% ` +
114
+ `| ${(s.axes.messageOverhead.score * 100).toFixed(0)}% ` +
115
+ `| ${(s.axes.robustness.score * 100).toFixed(0)}% ` +
116
+ `| ${s.duration_ms}ms |`);
117
+ }
118
+ lines.push('');
119
+ lines.push('## Aggregate Scores');
120
+ lines.push(`Task Success: ${(report.aggregate.taskSuccess * 100).toFixed(0)}% | ` +
121
+ `Latency: ${(report.aggregate.latencyThroughput * 100).toFixed(0)}% | ` +
122
+ `Overhead: ${(report.aggregate.messageOverhead * 100).toFixed(0)}% | ` +
123
+ `Robustness: ${(report.aggregate.robustness * 100).toFixed(0)}%`);
124
+ lines.push(`**Overall: ${(report.aggregate.overall * 100).toFixed(0)}%**`);
125
+ return lines.join('\n');
126
+ }
127
+ /**
128
+ * Compute aggregate scores from scenario results.
129
+ */
130
+ export function aggregateScenarios(scenarios) {
131
+ const n = scenarios.length || 1;
132
+ const taskSuccess = scenarios.reduce((s, r) => s + r.axes.taskSuccess.score, 0) / n;
133
+ const latencyThroughput = scenarios.reduce((s, r) => s + r.axes.latencyThroughput.score, 0) / n;
134
+ const messageOverhead = scenarios.reduce((s, r) => s + r.axes.messageOverhead.score, 0) / n;
135
+ const robustness = scenarios.reduce((s, r) => s + r.axes.robustness.score, 0) / n;
136
+ // Weighted overall: success 35%, latency 25%, overhead 20%, robustness 20%
137
+ const overall = taskSuccess * 0.35 + latencyThroughput * 0.25 + messageOverhead * 0.20 + robustness * 0.20;
138
+ return { overall, taskSuccess, latencyThroughput, messageOverhead, robustness };
139
+ }
140
+ //# sourceMappingURL=reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/benchmark/reporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * ProtocolBench — Types for multi-axis protocol evaluation.
3
+ * Based on: ProtocolBench (arxiv 2504.14476)
4
+ */
5
+ export interface BenchmarkAxis {
6
+ name: string;
7
+ score: number;
8
+ metrics: Record<string, number>;
9
+ }
10
+ export interface BenchmarkScenarioResult {
11
+ scenario: string;
12
+ duration_ms: number;
13
+ axes: {
14
+ taskSuccess: BenchmarkAxis;
15
+ latencyThroughput: BenchmarkAxis;
16
+ messageOverhead: BenchmarkAxis;
17
+ robustness: BenchmarkAxis;
18
+ };
19
+ }
20
+ export interface ProtocolBenchReport {
21
+ version: string;
22
+ timestamp: number;
23
+ platform: string;
24
+ scenarios: BenchmarkScenarioResult[];
25
+ aggregate: {
26
+ overall: number;
27
+ taskSuccess: number;
28
+ latencyThroughput: number;
29
+ messageOverhead: number;
30
+ robustness: number;
31
+ };
32
+ }
33
+ export interface CollectedMetrics {
34
+ messages: {
35
+ type: string;
36
+ sizeBytes: number;
37
+ latencyMs: number;
38
+ timestamp: number;
39
+ }[];
40
+ tasks: {
41
+ success: boolean;
42
+ qualityScore: number;
43
+ timestamp: number;
44
+ }[];
45
+ faults: {
46
+ type: string;
47
+ timestamp: number;
48
+ }[];
49
+ recoveries: {
50
+ type: string;
51
+ recoveryMs: number;
52
+ timestamp: number;
53
+ }[];
54
+ }
55
+ export interface MetricsCollector {
56
+ recordMessage(type: string, sizeBytes: number, latencyMs: number): void;
57
+ recordTaskCompletion(success: boolean, qualityScore?: number): void;
58
+ recordFault(type: string): void;
59
+ recordRecovery(type: string, recoveryMs: number): void;
60
+ snapshot(): CollectedMetrics;
61
+ reset(): void;
62
+ }
63
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/benchmark/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,uBAAuB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE;QACF,WAAW,EAAE,aAAa,CAAC;QAC3B,iBAAiB,EAAE,aAAa,CAAC;QACjC,eAAe,EAAE,aAAa,CAAC;QAC/B,UAAU,EAAE,aAAa,CAAC;KAC7B,CAAC;CACL;AAED,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,uBAAuB,EAAE,CAAC;IACrC,SAAS,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;CACL;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtF,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACzE;AAED,MAAM,WAAW,gBAAgB;IAC7B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACxE,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACvD,QAAQ,IAAI,gBAAgB,CAAC;IAC7B,KAAK,IAAI,IAAI,CAAC;CACjB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ProtocolBench — Types for multi-axis protocol evaluation.
3
+ * Based on: ProtocolBench (arxiv 2504.14476)
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/benchmark/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -2,10 +2,11 @@
2
2
  * Zero-Config Bootstrap Module
3
3
  *
4
4
  * Auto-discovery de peers via:
5
- * 1. DNS TXT records (bootstrap.society.dev)
6
- * 2. Hardcoded fallback list
5
+ * 1. Registry API (api.society.computer)
6
+ * 2. DNS TXT records (bootstrap.society.dev)
7
7
  * 3. Cache local de peers funcionais
8
- * 4. mDNS para LAN discovery
8
+ * 4. Hardcoded fallback list
9
+ * 5. mDNS para LAN discovery
9
10
  */
10
11
  export interface BootstrapPeer {
11
12
  id: string;
@@ -33,6 +34,10 @@ export declare class BootstrapManager {
33
34
  * Query DNS TXT records for peer lists
34
35
  */
35
36
  private queryDnsPeers;
37
+ /**
38
+ * Query the registry API for registered nodes
39
+ */
40
+ private queryRegistryPeers;
36
41
  /**
37
42
  * Test connectivity to a peer
38
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AA8BD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,YAAY,CAAuB;gBAE/B,YAAY,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAenD,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,SAAS;IAYjB;;OAEG;YACW,aAAa;IA8D3B;;OAEG;YACW,QAAQ;IAuBtB;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IA2E1C;;OAEG;IACH,eAAe,IAAI,aAAa,EAAE;IAIlC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAKlC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;CAK1C;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAG/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,cAAc,GAAG,OAAO,CA6B3F"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AA8BD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,YAAY,CAAuB;gBAE/B,YAAY,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAenD,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,SAAS;IAYjB;;OAEG;YACW,aAAa;IA8D3B;;OAEG;YACW,kBAAkB;IAmChC;;OAEG;YACW,QAAQ;IAuBtB;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAqF1C;;OAEG;IACH,eAAe,IAAI,aAAa,EAAE;IAIlC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAKlC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;CAK1C;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAG/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,cAAc,GAAG,OAAO,CA6B3F"}
package/dist/bootstrap.js CHANGED
@@ -2,10 +2,11 @@
2
2
  * Zero-Config Bootstrap Module
3
3
  *
4
4
  * Auto-discovery de peers via:
5
- * 1. DNS TXT records (bootstrap.society.dev)
6
- * 2. Hardcoded fallback list
5
+ * 1. Registry API (api.society.computer)
6
+ * 2. DNS TXT records (bootstrap.society.dev)
7
7
  * 3. Cache local de peers funcionais
8
- * 4. mDNS para LAN discovery
8
+ * 4. Hardcoded fallback list
9
+ * 5. mDNS para LAN discovery
9
10
  */
10
11
  import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';
11
12
  import { join } from 'path';
@@ -13,6 +14,7 @@ import { homedir } from 'os';
13
14
  import { promisify } from 'util';
14
15
  import { exec } from 'child_process';
15
16
  const execAsync = promisify(exec);
17
+ const REGISTRY_URL = process.env.SOCIETY_REGISTRY_URL || 'https://api.society.computer';
16
18
  // Default bootstrap domain
17
19
  const SOCIETY_DOMAIN = 'society.computer';
18
20
  function parseFallbackPeersFromEnv() {
@@ -149,6 +151,37 @@ export class BootstrapManager {
149
151
  }
150
152
  return peers;
151
153
  }
154
+ /**
155
+ * Query the registry API for registered nodes
156
+ */
157
+ async queryRegistryPeers() {
158
+ const peers = [];
159
+ try {
160
+ const res = await fetch(`${REGISTRY_URL}/v1/nodes`, {
161
+ method: 'GET',
162
+ headers: { 'Accept': 'application/json' },
163
+ signal: AbortSignal.timeout(5_000),
164
+ });
165
+ if (!res.ok)
166
+ return peers;
167
+ const data = await res.json();
168
+ for (const node of data.nodes || []) {
169
+ if (node.data?.multiaddr) {
170
+ peers.push({
171
+ id: `registry_${node.name}`,
172
+ addrs: [node.data.multiaddr],
173
+ lastSeen: Date.now(),
174
+ latency: 0,
175
+ reliability: 0.8,
176
+ });
177
+ }
178
+ }
179
+ }
180
+ catch (err) {
181
+ console.warn('[bootstrap] Registry query failed:', err?.message);
182
+ }
183
+ return peers;
184
+ }
152
185
  /**
153
186
  * Test connectivity to a peer
154
187
  */
@@ -179,7 +212,17 @@ export class BootstrapManager {
179
212
  const allPeers = [];
180
213
  const testedPeers = new Set();
181
214
  const working = [];
182
- // 1. Try DNS first (most up-to-date)
215
+ // 1. Try registry API first (fastest, most reliable)
216
+ console.log('[bootstrap] Querying registry...');
217
+ try {
218
+ const registryPeers = await this.queryRegistryPeers();
219
+ allPeers.push(...registryPeers);
220
+ console.log(`[bootstrap] Registry returned ${registryPeers.length} peers`);
221
+ }
222
+ catch (err) {
223
+ console.warn('[bootstrap] Registry query failed:', err);
224
+ }
225
+ // 2. Try DNS (fallback)
183
226
  console.log('[bootstrap] Querying DNS...');
184
227
  try {
185
228
  const dnsPeers = await this.queryDnsPeers();
@@ -189,14 +232,14 @@ export class BootstrapManager {
189
232
  catch (err) {
190
233
  console.warn('[bootstrap] DNS discovery failed:', err);
191
234
  }
192
- // 2. Try cached peers
235
+ // 3. Try cached peers
193
236
  console.log('[bootstrap] Checking cache...');
194
237
  const cachedPeers = Array.from(this.cache.values());
195
238
  allPeers.push(...cachedPeers);
196
- // 3. Add fallback peers
239
+ // 4. Add fallback peers (env var)
197
240
  console.log('[bootstrap] Adding fallback peers...');
198
241
  allPeers.push(...this.config.fallbackPeers);
199
- // 4. Test peers in parallel (with concurrency limit)
242
+ // 5. Test peers in parallel (with concurrency limit)
200
243
  console.log(`[bootstrap] Testing ${allPeers.length} unique peers...`);
201
244
  const batchSize = 5;
202
245
  for (let i = 0; i < allPeers.length; i += batchSize) {
@@ -216,13 +259,13 @@ export class BootstrapManager {
216
259
  if (working.length >= 3)
217
260
  break;
218
261
  }
219
- // 5. Sort by reliability and latency
262
+ // 6. Sort by reliability and latency
220
263
  working.sort((a, b) => {
221
264
  const scoreA = a.reliability * 1000 - a.latency;
222
265
  const scoreB = b.reliability * 1000 - b.latency;
223
266
  return scoreB - scoreA;
224
267
  });
225
- // 6. Update cache with working peers
268
+ // 7. Update cache with working peers
226
269
  for (const peer of working) {
227
270
  this.cache.set(peer.id, peer);
228
271
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Content-Addressed Block Store
3
+ *
4
+ * IPFS-inspired content-addressed storage for Society Protocol.
5
+ * Uses blake3 hashing for CIDs and SQLite for block persistence.
6
+ * Supports chunked file storage with Merkle-like manifests.
7
+ *
8
+ * Based on: IPFS (arXiv:1407.3561) — content-addressed blocks with CID-based retrieval
9
+ */
10
+ import { type Storage } from './storage.js';
11
+ export interface FileManifest {
12
+ rootCid: string;
13
+ fileName: string;
14
+ totalSize: number;
15
+ blockSize: number;
16
+ blocks: Array<{
17
+ cid: string;
18
+ offset: number;
19
+ size: number;
20
+ }>;
21
+ mimeType?: string;
22
+ createdAt: number;
23
+ author: string;
24
+ }
25
+ export declare class ContentStore {
26
+ private storage;
27
+ private manifests;
28
+ constructor(storage: Storage);
29
+ private ensureTable;
30
+ /**
31
+ * Store a data block, returning its CID (blake3 hash).
32
+ */
33
+ put(data: Uint8Array): Promise<string>;
34
+ /**
35
+ * Retrieve a block by CID.
36
+ */
37
+ get(cid: string): Promise<Uint8Array | null>;
38
+ /**
39
+ * Check if a block exists locally.
40
+ */
41
+ has(cid: string): boolean;
42
+ /**
43
+ * Store a file from disk, chunking into blocks.
44
+ * Returns a manifest describing all blocks.
45
+ */
46
+ storeFile(filePath: string, author: string): Promise<FileManifest>;
47
+ /**
48
+ * Store raw buffer data, chunking into blocks.
49
+ */
50
+ storeBuffer(data: Buffer | Uint8Array, fileName: string, author: string): Promise<FileManifest>;
51
+ /**
52
+ * Reassemble a file from its manifest.
53
+ * All blocks must be locally available.
54
+ */
55
+ retrieveFile(manifest: FileManifest): Promise<Uint8Array>;
56
+ /**
57
+ * Save reassembled file to disk.
58
+ */
59
+ saveFile(manifest: FileManifest, outputPath: string): Promise<void>;
60
+ /**
61
+ * Get a manifest by root CID.
62
+ */
63
+ getManifest(rootCid: string): FileManifest | null;
64
+ /**
65
+ * List all stored file manifests.
66
+ */
67
+ listFiles(): FileManifest[];
68
+ /**
69
+ * List missing blocks for a manifest (for fetching from peers).
70
+ */
71
+ getMissingBlocks(manifest: FileManifest): string[];
72
+ /**
73
+ * Store a manifest received from a peer (without blocks).
74
+ */
75
+ addRemoteManifest(manifest: FileManifest): void;
76
+ }
77
+ //# sourceMappingURL=content-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-store.d.ts","sourceRoot":"","sources":["../src/content-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAQ5C,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAID,qBAAa,YAAY;IACrB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAmC;gBAExC,OAAO,EAAE,OAAO;IAK5B,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB5C;;OAEG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAQlD;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAOzB;;;OAGG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAKxE;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAkCrG;;;OAGG;IACG,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAc/D;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzE;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAkBjD;;OAEG;IACH,SAAS,IAAI,YAAY,EAAE;IAQ3B;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,EAAE;IAMlD;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;CAMlD"}