@f2a/network 0.1.3 → 0.2.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.
- package/README.md +278 -63
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +29 -2
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/config.d.ts +176 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +386 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/daemon.d.ts +54 -0
- package/dist/cli/daemon.d.ts.map +1 -0
- package/dist/cli/daemon.js +572 -0
- package/dist/cli/daemon.js.map +1 -0
- package/dist/cli/index.js +90 -16
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +13 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +352 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/core/e2ee-crypto.d.ts +127 -1
- package/dist/core/e2ee-crypto.d.ts.map +1 -1
- package/dist/core/e2ee-crypto.js +446 -12
- package/dist/core/e2ee-crypto.js.map +1 -1
- package/dist/core/f2a.d.ts +2 -1
- package/dist/core/f2a.d.ts.map +1 -1
- package/dist/core/f2a.js +6 -2
- package/dist/core/f2a.js.map +1 -1
- package/dist/core/identity/encrypted-key-store.d.ts +19 -0
- package/dist/core/identity/encrypted-key-store.d.ts.map +1 -0
- package/dist/core/identity/encrypted-key-store.js +72 -0
- package/dist/core/identity/encrypted-key-store.js.map +1 -0
- package/dist/core/identity/identity-manager.d.ts +133 -0
- package/dist/core/identity/identity-manager.d.ts.map +1 -0
- package/dist/core/identity/identity-manager.js +454 -0
- package/dist/core/identity/identity-manager.js.map +1 -0
- package/dist/core/identity/index.d.ts +8 -0
- package/dist/core/identity/index.d.ts.map +1 -0
- package/dist/core/identity/index.js +7 -0
- package/dist/core/identity/index.js.map +1 -0
- package/dist/core/identity/types.d.ts +70 -0
- package/dist/core/identity/types.d.ts.map +1 -0
- package/dist/core/identity/types.js +17 -0
- package/dist/core/identity/types.js.map +1 -0
- package/dist/core/p2p-network.d.ts +26 -0
- package/dist/core/p2p-network.d.ts.map +1 -1
- package/dist/core/p2p-network.js +434 -105
- package/dist/core/p2p-network.js.map +1 -1
- package/dist/core/reputation-security.d.ts +15 -0
- package/dist/core/reputation-security.d.ts.map +1 -1
- package/dist/core/reputation-security.js +73 -3
- package/dist/core/reputation-security.js.map +1 -1
- package/dist/core/reputation.d.ts +129 -4
- package/dist/core/reputation.d.ts.map +1 -1
- package/dist/core/reputation.js +294 -1
- package/dist/core/reputation.js.map +1 -1
- package/dist/core/review-committee.d.ts +2 -2
- package/dist/core/review-committee.d.ts.map +1 -1
- package/dist/core/review-committee.js +17 -0
- package/dist/core/review-committee.js.map +1 -1
- package/dist/daemon/control-server.d.ts.map +1 -1
- package/dist/daemon/control-server.js +44 -1
- package/dist/daemon/control-server.js.map +1 -1
- package/dist/daemon/webhook.d.ts +3 -0
- package/dist/daemon/webhook.d.ts.map +1 -1
- package/dist/daemon/webhook.js +318 -6
- package/dist/daemon/webhook.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/result.d.ts +1 -1
- package/dist/types/result.d.ts.map +1 -1
- package/dist/types/result.js.map +1 -1
- package/dist/utils/crypto-utils.d.ts +17 -0
- package/dist/utils/crypto-utils.d.ts.map +1 -0
- package/dist/utils/crypto-utils.js +28 -0
- package/dist/utils/crypto-utils.js.map +1 -0
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +9 -3
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/rate-limiter.d.ts.map +1 -1
- package/dist/utils/rate-limiter.js +3 -1
- package/dist/utils/rate-limiter.js.map +1 -1
- package/dist/utils/signature.d.ts +47 -1
- package/dist/utils/signature.d.ts.map +1 -1
- package/dist/utils/signature.js +166 -11
- package/dist/utils/signature.js.map +1 -1
- package/package.json +2 -1
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { EventEmitter } from 'eventemitter3';
|
|
6
6
|
import { P2PNetworkConfig, AgentInfo, F2AMessage, PeerInfo, PeerDiscoveredEvent, PeerConnectedEvent, PeerDisconnectedEvent, Result } from '../types/index.js';
|
|
7
|
+
import { IdentityManager } from './identity/index.js';
|
|
7
8
|
import { Middleware } from '../utils/middleware.js';
|
|
8
9
|
export interface P2PNetworkEvents {
|
|
9
10
|
'peer:discovered': (event: PeerDiscoveredEvent) => void;
|
|
@@ -23,17 +24,31 @@ export declare class P2PNetwork extends EventEmitter<P2PNetworkEvents> {
|
|
|
23
24
|
private node;
|
|
24
25
|
private config;
|
|
25
26
|
private peerTable;
|
|
27
|
+
/** P2.4 修复:已连接 Peer 索引,用于 O(1) 查询 */
|
|
28
|
+
private connectedPeers;
|
|
29
|
+
/** P1 修复:信任的 Peer 白名单,不会被清理 */
|
|
30
|
+
private trustedPeers;
|
|
26
31
|
/** 用于保护 peerTable 并发访问的锁 */
|
|
27
32
|
private peerTableLock;
|
|
33
|
+
/** P2-4 修复:DISCOVER 消息速率限制器(每个 peer) */
|
|
34
|
+
private discoverRateLimiter;
|
|
35
|
+
/** P1 修复:保存事件监听器引用,用于 stop() 中移除 */
|
|
36
|
+
private boundEventHandlers;
|
|
28
37
|
private agentInfo;
|
|
29
38
|
private pendingTasks;
|
|
30
39
|
private cleanupInterval?;
|
|
31
40
|
private discoveryInterval?;
|
|
32
41
|
private e2eeCrypto;
|
|
33
42
|
private enableE2EE;
|
|
43
|
+
private identityManager?;
|
|
34
44
|
private logger;
|
|
35
45
|
private middlewareManager;
|
|
36
46
|
constructor(agentInfo: AgentInfo, config?: P2PNetworkConfig);
|
|
47
|
+
/**
|
|
48
|
+
* 设置 IdentityManager(用于持久化身份)
|
|
49
|
+
* 必须在 start() 之前调用
|
|
50
|
+
*/
|
|
51
|
+
setIdentityManager(identityManager: IdentityManager): void;
|
|
37
52
|
/**
|
|
38
53
|
* 启动 P2P 网络
|
|
39
54
|
*/
|
|
@@ -78,6 +93,13 @@ export declare class P2PNetwork extends EventEmitter<P2PNetworkEvents> {
|
|
|
78
93
|
* 设置 libp2p 事件处理
|
|
79
94
|
*/
|
|
80
95
|
private setupEventHandlers;
|
|
96
|
+
/**
|
|
97
|
+
* 建议-2 修复:提取 mDNS 发现后的连接和 DISCOVER 发送逻辑
|
|
98
|
+
* 减少嵌套深度,提高可读性
|
|
99
|
+
* @param peerId 发现的 Peer ID
|
|
100
|
+
* @param multiaddrs 发现的 multiaddr 列表
|
|
101
|
+
*/
|
|
102
|
+
private initiateDiscovery;
|
|
81
103
|
/**
|
|
82
104
|
* 处理收到的消息
|
|
83
105
|
*/
|
|
@@ -101,6 +123,7 @@ export declare class P2PNetwork extends EventEmitter<P2PNetworkEvents> {
|
|
|
101
123
|
private dispatchMessage;
|
|
102
124
|
/**
|
|
103
125
|
* 处理发现消息
|
|
126
|
+
* P2-4 修复:添加速率限制,防止恶意节点大量发送 DISCOVER 消息
|
|
104
127
|
*/
|
|
105
128
|
private handleDiscoverMessage;
|
|
106
129
|
/**
|
|
@@ -128,6 +151,7 @@ export declare class P2PNetwork extends EventEmitter<P2PNetworkEvents> {
|
|
|
128
151
|
private handleDiscover;
|
|
129
152
|
/**
|
|
130
153
|
* 将发现到的 Agent 信息更新到 Peer 表
|
|
154
|
+
* P2-5 修复:改为 async/await 模式,确保锁正确等待
|
|
131
155
|
*/
|
|
132
156
|
private upsertPeerFromAgentInfo;
|
|
133
157
|
/**
|
|
@@ -140,6 +164,7 @@ export declare class P2PNetwork extends EventEmitter<P2PNetworkEvents> {
|
|
|
140
164
|
private handleTaskResponse;
|
|
141
165
|
/**
|
|
142
166
|
* 连接引导节点
|
|
167
|
+
* 支持指纹验证,防止中间人攻击
|
|
143
168
|
*/
|
|
144
169
|
private connectToBootstrapPeers;
|
|
145
170
|
/**
|
|
@@ -192,6 +217,7 @@ export declare class P2PNetwork extends EventEmitter<P2PNetworkEvents> {
|
|
|
192
217
|
private hasCapability;
|
|
193
218
|
/**
|
|
194
219
|
* 获取已连接的 Peers
|
|
220
|
+
* P2.4 修复:使用 connectedPeers Set 索引,O(1) 查询复杂度
|
|
195
221
|
*/
|
|
196
222
|
getConnectedPeers(): PeerInfo[];
|
|
197
223
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p-network.d.ts","sourceRoot":"","sources":["../../src/core/p2p-network.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"p2p-network.d.ts","sourceRoot":"","sources":["../../src/core/p2p-network.ts"],"names":[],"mappings":"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"}
|