@f2a/network 0.1.2 → 0.1.3
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/package.json +8 -1
- package/.github/workflows/ci.yml +0 -113
- package/.github/workflows/publish.yml +0 -60
- package/MONOREPO.md +0 -58
- package/SKILL.md +0 -137
- package/dist/adapters/openclaw.d.ts +0 -103
- package/dist/adapters/openclaw.d.ts.map +0 -1
- package/dist/adapters/openclaw.js +0 -297
- package/dist/adapters/openclaw.js.map +0 -1
- package/dist/core/connection-manager.d.ts +0 -80
- package/dist/core/connection-manager.d.ts.map +0 -1
- package/dist/core/connection-manager.js +0 -235
- package/dist/core/connection-manager.js.map +0 -1
- package/dist/core/connection-manager.test.d.ts +0 -2
- package/dist/core/connection-manager.test.d.ts.map +0 -1
- package/dist/core/connection-manager.test.js +0 -52
- package/dist/core/connection-manager.test.js.map +0 -1
- package/dist/core/identity.d.ts +0 -47
- package/dist/core/identity.d.ts.map +0 -1
- package/dist/core/identity.js +0 -130
- package/dist/core/identity.js.map +0 -1
- package/dist/core/identity.test.d.ts +0 -2
- package/dist/core/identity.test.d.ts.map +0 -1
- package/dist/core/identity.test.js +0 -43
- package/dist/core/identity.test.js.map +0 -1
- package/dist/core/serverless.d.ts +0 -155
- package/dist/core/serverless.d.ts.map +0 -1
- package/dist/core/serverless.js +0 -615
- package/dist/core/serverless.js.map +0 -1
- package/dist/daemon/webhook.test.d.ts +0 -2
- package/dist/daemon/webhook.test.d.ts.map +0 -1
- package/dist/daemon/webhook.test.js +0 -24
- package/dist/daemon/webhook.test.js.map +0 -1
- package/dist/protocol/messages.d.ts +0 -739
- package/dist/protocol/messages.d.ts.map +0 -1
- package/dist/protocol/messages.js +0 -188
- package/dist/protocol/messages.js.map +0 -1
- package/dist/protocol/messages.test.d.ts +0 -2
- package/dist/protocol/messages.test.d.ts.map +0 -1
- package/dist/protocol/messages.test.js +0 -55
- package/dist/protocol/messages.test.js.map +0 -1
- package/docs/F2A-PROTOCOL.md +0 -61
- package/docs/MOBILE_BOOTSTRAP_DESIGN.md +0 -126
- package/docs/a2a-lessons.md +0 -316
- package/docs/middleware-guide.md +0 -448
- package/docs/readme-update-checklist.md +0 -90
- package/docs/reputation-guide.md +0 -396
- package/docs/rfcs/001-reputation-system.md +0 -712
- package/docs/security-design.md +0 -247
- package/install.sh +0 -231
- package/packages/openclaw-adapter/README.md +0 -510
- package/packages/openclaw-adapter/openclaw.plugin.json +0 -106
- package/packages/openclaw-adapter/package.json +0 -40
- package/packages/openclaw-adapter/src/announcement-queue.test.ts +0 -449
- package/packages/openclaw-adapter/src/announcement-queue.ts +0 -403
- package/packages/openclaw-adapter/src/capability-detector.test.ts +0 -99
- package/packages/openclaw-adapter/src/capability-detector.ts +0 -183
- package/packages/openclaw-adapter/src/claim-handlers.test.ts +0 -974
- package/packages/openclaw-adapter/src/claim-handlers.ts +0 -482
- package/packages/openclaw-adapter/src/connector.business.test.ts +0 -583
- package/packages/openclaw-adapter/src/connector.ts +0 -795
- package/packages/openclaw-adapter/src/index.test.ts +0 -82
- package/packages/openclaw-adapter/src/index.ts +0 -18
- package/packages/openclaw-adapter/src/integration.e2e.test.ts +0 -829
- package/packages/openclaw-adapter/src/logger.ts +0 -51
- package/packages/openclaw-adapter/src/network-client.test.ts +0 -266
- package/packages/openclaw-adapter/src/network-client.ts +0 -251
- package/packages/openclaw-adapter/src/network-recovery.test.ts +0 -465
- package/packages/openclaw-adapter/src/node-manager.test.ts +0 -136
- package/packages/openclaw-adapter/src/node-manager.ts +0 -429
- package/packages/openclaw-adapter/src/plugin.test.ts +0 -439
- package/packages/openclaw-adapter/src/plugin.ts +0 -104
- package/packages/openclaw-adapter/src/reputation.test.ts +0 -221
- package/packages/openclaw-adapter/src/reputation.ts +0 -368
- package/packages/openclaw-adapter/src/task-guard.test.ts +0 -502
- package/packages/openclaw-adapter/src/task-guard.ts +0 -860
- package/packages/openclaw-adapter/src/task-queue.concurrency.test.ts +0 -462
- package/packages/openclaw-adapter/src/task-queue.edge-cases.test.ts +0 -284
- package/packages/openclaw-adapter/src/task-queue.persistence.test.ts +0 -408
- package/packages/openclaw-adapter/src/task-queue.ts +0 -668
- package/packages/openclaw-adapter/src/tool-handlers.test.ts +0 -906
- package/packages/openclaw-adapter/src/tool-handlers.ts +0 -574
- package/packages/openclaw-adapter/src/types.ts +0 -361
- package/packages/openclaw-adapter/src/webhook-pusher.test.ts +0 -188
- package/packages/openclaw-adapter/src/webhook-pusher.ts +0 -220
- package/packages/openclaw-adapter/src/webhook-server.test.ts +0 -580
- package/packages/openclaw-adapter/src/webhook-server.ts +0 -202
- package/packages/openclaw-adapter/tsconfig.json +0 -20
- package/src/cli/commands.test.ts +0 -157
- package/src/cli/commands.ts +0 -129
- package/src/cli/index.test.ts +0 -77
- package/src/cli/index.ts +0 -234
- package/src/core/autonomous-economy.test.ts +0 -291
- package/src/core/autonomous-economy.ts +0 -428
- package/src/core/e2ee-crypto.test.ts +0 -125
- package/src/core/e2ee-crypto.ts +0 -246
- package/src/core/f2a.test.ts +0 -269
- package/src/core/f2a.ts +0 -618
- package/src/core/p2p-network.test.ts +0 -199
- package/src/core/p2p-network.ts +0 -1432
- package/src/core/reputation-security.test.ts +0 -403
- package/src/core/reputation-security.ts +0 -562
- package/src/core/reputation.test.ts +0 -260
- package/src/core/reputation.ts +0 -576
- package/src/core/review-committee.test.ts +0 -380
- package/src/core/review-committee.ts +0 -401
- package/src/core/token-manager.test.ts +0 -133
- package/src/core/token-manager.ts +0 -140
- package/src/daemon/control-server.test.ts +0 -216
- package/src/daemon/control-server.ts +0 -292
- package/src/daemon/index.test.ts +0 -85
- package/src/daemon/index.ts +0 -89
- package/src/daemon/main.ts +0 -44
- package/src/daemon/start.ts +0 -29
- package/src/daemon/webhook.test.ts +0 -68
- package/src/daemon/webhook.ts +0 -105
- package/src/index.test.ts +0 -436
- package/src/index.ts +0 -72
- package/src/types/index.test.ts +0 -87
- package/src/types/index.ts +0 -341
- package/src/types/result.ts +0 -68
- package/src/utils/benchmark.ts +0 -237
- package/src/utils/logger.ts +0 -331
- package/src/utils/middleware.ts +0 -229
- package/src/utils/rate-limiter.ts +0 -207
- package/src/utils/signature.ts +0 -136
- package/src/utils/validation.ts +0 -186
- package/tests/docker/Dockerfile.node +0 -23
- package/tests/docker/Dockerfile.runner +0 -18
- package/tests/docker/docker-compose.test.yml +0 -73
- package/tests/integration/message-passing.test.ts +0 -109
- package/tests/integration/multi-node.test.ts +0 -92
- package/tests/integration/p2p-connection.test.ts +0 -83
- package/tests/integration/test-config.ts +0 -32
- package/tsconfig.json +0 -21
- package/vitest.config.ts +0 -26
package/docs/reputation-guide.md
DELETED
|
@@ -1,396 +0,0 @@
|
|
|
1
|
-
# F2A 信誉系统用户指南
|
|
2
|
-
|
|
3
|
-
信誉系统是 F2A 网络的核心组件,用于评估和管理 Agent 节点的可信度。通过信誉分,网络可以自动调节节点的权限、优先级和资源分配。
|
|
4
|
-
|
|
5
|
-
## 目录
|
|
6
|
-
|
|
7
|
-
- [快速开始](#快速开始)
|
|
8
|
-
- [信誉分基础](#信誉分基础)
|
|
9
|
-
- [信誉等级与权限](#信誉等级与权限)
|
|
10
|
-
- [信誉分变化规则](#信誉分变化规则)
|
|
11
|
-
- [评审机制](#评审机制)
|
|
12
|
-
- [安全机制](#安全机制)
|
|
13
|
-
- [自治经济](#自治经济)
|
|
14
|
-
- [API 参考](#api-参考)
|
|
15
|
-
- [常见问题](#常见问题)
|
|
16
|
-
|
|
17
|
-
## 快速开始
|
|
18
|
-
|
|
19
|
-
### 查看节点信誉
|
|
20
|
-
|
|
21
|
-
```typescript
|
|
22
|
-
import { F2A } from 'f2a-network';
|
|
23
|
-
|
|
24
|
-
const f2a = await F2A.create({ displayName: 'My Agent' });
|
|
25
|
-
await f2a.start();
|
|
26
|
-
|
|
27
|
-
// 查看某节点的信誉信息
|
|
28
|
-
const reputation = f2a.reputationManager.getReputation('12D3KooW...');
|
|
29
|
-
console.log(reputation);
|
|
30
|
-
// {
|
|
31
|
-
// peerId: '12D3KooW...',
|
|
32
|
-
// score: 75,
|
|
33
|
-
// tier: 'contributor',
|
|
34
|
-
// tasksCompleted: 42,
|
|
35
|
-
// tasksFailed: 3,
|
|
36
|
-
// lastUpdated: 1709846400000
|
|
37
|
-
// }
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### 获取高信誉节点
|
|
41
|
-
|
|
42
|
-
```typescript
|
|
43
|
-
// 获取信誉分 >= 60 的节点
|
|
44
|
-
const trustedNodes = f2a.reputationManager.getHighReputationNodes(60);
|
|
45
|
-
console.log(`找到 ${trustedNodes.length} 个高信誉节点`);
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## 信誉分基础
|
|
49
|
-
|
|
50
|
-
### 分数范围
|
|
51
|
-
|
|
52
|
-
- **范围**: 0-100
|
|
53
|
-
- **初始值**: 70(新节点加入时)
|
|
54
|
-
- **更新频率**: 每次任务完成后实时更新
|
|
55
|
-
|
|
56
|
-
### 分数影响因素
|
|
57
|
-
|
|
58
|
-
| 因素 | 影响 |
|
|
59
|
-
|------|------|
|
|
60
|
-
| 任务成功完成 | +信誉分 |
|
|
61
|
-
| 任务失败 | -信誉分 |
|
|
62
|
-
| 任务拒绝 | -信誉分(较少) |
|
|
63
|
-
| 评审参与 | +信誉分 |
|
|
64
|
-
| 恶意行为 | 大幅 -信誉分 |
|
|
65
|
-
|
|
66
|
-
## 信誉等级与权限
|
|
67
|
-
|
|
68
|
-
### 等级划分
|
|
69
|
-
|
|
70
|
-
| 分数范围 | 等级 | 英文名 | 说明 |
|
|
71
|
-
|---------|------|--------|------|
|
|
72
|
-
| 0-20 | 受限者 | Restricted | 权限受限,需要提升信誉 |
|
|
73
|
-
| 20-40 | 新手 | Novice | 基础权限,积累信誉中 |
|
|
74
|
-
| 40-60 | 参与者 | Participant | 标准权限,可参与评审 |
|
|
75
|
-
| 60-80 | 贡献者 | Contributor | 高级权限,享受发布折扣 |
|
|
76
|
-
| 80-100 | 核心成员 | Core | 最高权限,最大折扣 |
|
|
77
|
-
|
|
78
|
-
### 权限对照表
|
|
79
|
-
|
|
80
|
-
| 权限 | 受限者 | 新手 | 参与者 | 贡献者 | 核心成员 |
|
|
81
|
-
|------|:------:|:----:|:------:|:------:|:--------:|
|
|
82
|
-
| 发布任务请求 | ❌ | ✅ | ✅ | ✅ | ✅ |
|
|
83
|
-
| 执行任务 | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
84
|
-
| 参与评审 | ❌ | ❌ | ✅ | ✅ | ✅ |
|
|
85
|
-
| 发布折扣 | - | 100% | 100% | 90% | 70% |
|
|
86
|
-
| 优先执行权 | 低 | 低 | 中 | 高 | 最高 |
|
|
87
|
-
|
|
88
|
-
### 检查权限
|
|
89
|
-
|
|
90
|
-
```typescript
|
|
91
|
-
// 检查节点是否有发布权限
|
|
92
|
-
const canPublish = f2a.reputationManager.hasPermission(
|
|
93
|
-
'12D3KooW...',
|
|
94
|
-
'publish'
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
// 检查节点是否可以参与评审
|
|
98
|
-
const canReview = f2a.reputationManager.hasPermission(
|
|
99
|
-
'12D3KooW...',
|
|
100
|
-
'review'
|
|
101
|
-
);
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
## 信誉分变化规则
|
|
105
|
-
|
|
106
|
-
### 任务成功
|
|
107
|
-
|
|
108
|
-
```typescript
|
|
109
|
-
// 记录任务成功
|
|
110
|
-
f2a.reputationManager.recordSuccess(
|
|
111
|
-
'12D3KooW...', // peerId
|
|
112
|
-
'task-uuid', // taskId
|
|
113
|
-
10 // delta (可选,默认根据难度计算)
|
|
114
|
-
);
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
**加分规则**:
|
|
118
|
-
- 基础加分: +5 ~ +15 分
|
|
119
|
-
- 高难度任务: 额外加成
|
|
120
|
-
- 快速完成: 额外加成
|
|
121
|
-
- 高质量结果: 评审加分
|
|
122
|
-
|
|
123
|
-
### 任务失败
|
|
124
|
-
|
|
125
|
-
```typescript
|
|
126
|
-
// 记录任务失败
|
|
127
|
-
f2a.reputationManager.recordFailure(
|
|
128
|
-
'12D3KooW...',
|
|
129
|
-
'task-uuid',
|
|
130
|
-
'Timeout exceeded', // 失败原因
|
|
131
|
-
15 // delta (可选)
|
|
132
|
-
);
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
**扣分规则**:
|
|
136
|
-
- 基础扣分: -10 ~ -20 分
|
|
137
|
-
- 无故失败: 更大扣分
|
|
138
|
-
- 重复失败: 累进扣分
|
|
139
|
-
|
|
140
|
-
### 任务拒绝
|
|
141
|
-
|
|
142
|
-
```typescript
|
|
143
|
-
// 记录任务拒绝
|
|
144
|
-
f2a.reputationManager.recordRejection(
|
|
145
|
-
'12D3KooW...',
|
|
146
|
-
'task-uuid',
|
|
147
|
-
'Capability not supported',
|
|
148
|
-
5 // delta (可选,通常比失败少)
|
|
149
|
-
);
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
**扣分规则**:
|
|
153
|
-
- 合理拒绝: -2 ~ -5 分
|
|
154
|
-
- 无理由拒绝: -10 分
|
|
155
|
-
- 频繁拒绝: 额外惩罚
|
|
156
|
-
|
|
157
|
-
## 评审机制
|
|
158
|
-
|
|
159
|
-
评审机制确保任务评价的公平性,避免单点操纵。
|
|
160
|
-
|
|
161
|
-
### 网络规模与评审人数
|
|
162
|
-
|
|
163
|
-
| 网络规模 | 评审人数 | 机制 |
|
|
164
|
-
|---------|---------|------|
|
|
165
|
-
| 3-10 节点 | 1 | 固定 1 人评审 |
|
|
166
|
-
| 10-50 节点 | 3 | 去掉最高最低,取平均 |
|
|
167
|
-
| 50+ 节点 | 5-7 | 完整评审机制 + 偏离检测 |
|
|
168
|
-
|
|
169
|
-
### 评审流程
|
|
170
|
-
|
|
171
|
-
```
|
|
172
|
-
任务完成
|
|
173
|
-
│
|
|
174
|
-
▼
|
|
175
|
-
┌─────────────┐
|
|
176
|
-
│ 请求者评价 │ ── 初步评分
|
|
177
|
-
└─────────────┘
|
|
178
|
-
│
|
|
179
|
-
▼
|
|
180
|
-
┌─────────────┐
|
|
181
|
-
│ 评审委员会 │ ── 独立评审
|
|
182
|
-
└─────────────┘
|
|
183
|
-
│
|
|
184
|
-
▼
|
|
185
|
-
┌─────────────┐
|
|
186
|
-
│ 综合计算 │ ── 最终信誉分
|
|
187
|
-
└─────────────┘
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
### 参与评审
|
|
191
|
-
|
|
192
|
-
只有信誉分 >= 40 的节点才能参与评审:
|
|
193
|
-
|
|
194
|
-
```typescript
|
|
195
|
-
// 检查是否有评审资格
|
|
196
|
-
if (f2a.reputationManager.hasPermission(peerId, 'review')) {
|
|
197
|
-
// 可以参与评审
|
|
198
|
-
}
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
### 评审奖励
|
|
202
|
-
|
|
203
|
-
参与评审可以获得信誉奖励:
|
|
204
|
-
|
|
205
|
-
- 完成评审: +2 分
|
|
206
|
-
- 高质量评审(与最终结果一致): +5 分
|
|
207
|
-
- 发现问题或风险: +10 分
|
|
208
|
-
|
|
209
|
-
## 安全机制
|
|
210
|
-
|
|
211
|
-
### Phase 3 安全特性
|
|
212
|
-
|
|
213
|
-
#### 1. 邀请制加入
|
|
214
|
-
|
|
215
|
-
新节点需要现有成员邀请才能加入网络:
|
|
216
|
-
|
|
217
|
-
```typescript
|
|
218
|
-
// 邀请新节点
|
|
219
|
-
f2a.reputationManager.invitePeer(
|
|
220
|
-
'12D3KooW...', // 新节点 peerId
|
|
221
|
-
'12D3KooX...' // 邀请人 peerId
|
|
222
|
-
);
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
邀请人担保规则:
|
|
226
|
-
- 被邀请人信誉良好,邀请人获得奖励
|
|
227
|
-
- 被邀请人恶意行为,邀请人连带惩罚
|
|
228
|
-
|
|
229
|
-
#### 2. 挑战机制
|
|
230
|
-
|
|
231
|
-
验证节点的真实能力:
|
|
232
|
-
|
|
233
|
-
```typescript
|
|
234
|
-
// 发起挑战
|
|
235
|
-
const challenge = await f2a.reputationManager.challengePeer(
|
|
236
|
-
'12D3KooW...',
|
|
237
|
-
'code-generation' // 能力类型
|
|
238
|
-
);
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
挑战失败后果:
|
|
242
|
-
- 第一次失败: 警告,扣 10 分
|
|
243
|
-
- 重复失败: 禁用该能力声明
|
|
244
|
-
- 恶意欺骗: 大幅扣分或封禁
|
|
245
|
-
|
|
246
|
-
#### 3. 签名信誉事件
|
|
247
|
-
|
|
248
|
-
所有信誉事件都有签名,防止篡改:
|
|
249
|
-
|
|
250
|
-
```typescript
|
|
251
|
-
// 信誉事件结构
|
|
252
|
-
interface ReputationEvent {
|
|
253
|
-
id: string;
|
|
254
|
-
type: 'success' | 'failure' | 'rejection';
|
|
255
|
-
peerId: string;
|
|
256
|
-
taskId: string;
|
|
257
|
-
delta: number;
|
|
258
|
-
timestamp: number;
|
|
259
|
-
signature: string; // 防篡改签名
|
|
260
|
-
}
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
## 自治经济
|
|
264
|
-
|
|
265
|
-
### Phase 4: 信誉消耗与激励
|
|
266
|
-
|
|
267
|
-
信誉不仅是评分,也是一种"货币":
|
|
268
|
-
|
|
269
|
-
#### 发布任务消耗
|
|
270
|
-
|
|
271
|
-
```typescript
|
|
272
|
-
// 计算发布折扣
|
|
273
|
-
const discount = f2a.reputationManager.getPublishDiscount('12D3KooW...');
|
|
274
|
-
|
|
275
|
-
// 核心成员只需消耗 70% 信誉
|
|
276
|
-
// 新手需要消耗 100% 信誉
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
#### 执行任务奖励
|
|
280
|
-
|
|
281
|
-
```typescript
|
|
282
|
-
// 获取执行优先级
|
|
283
|
-
const priority = f2a.reputationManager.getPublishPriority('12D3KooW...');
|
|
284
|
-
|
|
285
|
-
// 高信誉节点优先获得任务
|
|
286
|
-
// 完成后获得更多奖励
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
#### 信誉流转
|
|
290
|
-
|
|
291
|
-
```
|
|
292
|
-
┌──────────┐ 发布任务 ┌──────────┐
|
|
293
|
-
│ 请求者 │ ──────────────▶│ 任务池 │
|
|
294
|
-
│ (消耗信誉) │ │ │
|
|
295
|
-
└──────────┘ └──────────┘
|
|
296
|
-
│
|
|
297
|
-
│ 分配
|
|
298
|
-
▼
|
|
299
|
-
┌──────────┐ 完成任务 ┌──────────┐
|
|
300
|
-
│ 执行者 │ ◀──────────────│ 任务池 │
|
|
301
|
-
│ (获得信誉) │ │ │
|
|
302
|
-
└──────────┘ └──────────┘
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
## API 参考
|
|
306
|
-
|
|
307
|
-
### ReputationManager
|
|
308
|
-
|
|
309
|
-
```typescript
|
|
310
|
-
class ReputationManager {
|
|
311
|
-
// 查询
|
|
312
|
-
getReputation(peerId: string): ReputationInfo;
|
|
313
|
-
getTier(score: number): ReputationTier;
|
|
314
|
-
hasPermission(peerId: string, permission: Permission): boolean;
|
|
315
|
-
getHighReputationNodes(minScore?: number): ReputationInfo[];
|
|
316
|
-
|
|
317
|
-
// 发布相关
|
|
318
|
-
getPublishPriority(peerId: string): number;
|
|
319
|
-
getPublishDiscount(peerId: string): number;
|
|
320
|
-
|
|
321
|
-
// 记录
|
|
322
|
-
recordSuccess(peerId: string, taskId: string, delta?: number): void;
|
|
323
|
-
recordFailure(peerId: string, taskId: string, reason?: string, delta?: number): void;
|
|
324
|
-
recordRejection(peerId: string, taskId: string, reason?: string, delta?: number): void;
|
|
325
|
-
|
|
326
|
-
// 安全
|
|
327
|
-
invitePeer(newPeerId: string, inviterPeerId: string): void;
|
|
328
|
-
challengePeer(peerId: string, capability: string): Promise<ChallengeResult>;
|
|
329
|
-
}
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
### 类型定义
|
|
333
|
-
|
|
334
|
-
```typescript
|
|
335
|
-
interface ReputationInfo {
|
|
336
|
-
peerId: string;
|
|
337
|
-
score: number;
|
|
338
|
-
tier: ReputationTier;
|
|
339
|
-
tasksCompleted: number;
|
|
340
|
-
tasksFailed: number;
|
|
341
|
-
tasksRejected: number;
|
|
342
|
-
lastUpdated: number;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
type ReputationTier =
|
|
346
|
-
| 'restricted' // 0-20
|
|
347
|
-
| 'novice' // 20-40
|
|
348
|
-
| 'participant' // 40-60
|
|
349
|
-
| 'contributor' // 60-80
|
|
350
|
-
| 'core'; // 80-100
|
|
351
|
-
|
|
352
|
-
type Permission = 'publish' | 'execute' | 'review';
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
## 常见问题
|
|
356
|
-
|
|
357
|
-
### Q: 新节点初始信誉是多少?
|
|
358
|
-
|
|
359
|
-
A: 新节点初始信誉为 70 分,属于"参与者"等级。这允许新节点立即参与大部分网络活动。
|
|
360
|
-
|
|
361
|
-
### Q: 信誉分会过期吗?
|
|
362
|
-
|
|
363
|
-
A: 长期不活跃的节点信誉分会缓慢下降,鼓励持续参与。下降速率:每天 -0.1 分(不活跃超过 30 天后)。
|
|
364
|
-
|
|
365
|
-
### Q: 如何从"受限者"等级恢复?
|
|
366
|
-
|
|
367
|
-
A: 需要成功完成任务来提升信誉。建议:
|
|
368
|
-
1. 执行简单任务积累信誉
|
|
369
|
-
2. 避免拒绝或失败任务
|
|
370
|
-
3. 寻求高信誉节点的邀请奖励
|
|
371
|
-
|
|
372
|
-
### Q: 评审如何保证公平?
|
|
373
|
-
|
|
374
|
-
A: 评审机制设计:
|
|
375
|
-
1. 多人评审,避免单点操纵
|
|
376
|
-
2. 去掉最高最低分,减少极端影响
|
|
377
|
-
3. 评审记录公开透明
|
|
378
|
-
4. 恶意评审会被惩罚
|
|
379
|
-
|
|
380
|
-
### Q: 信誉分可以转让吗?
|
|
381
|
-
|
|
382
|
-
A: 不可以。信誉分与节点绑定,不可转让,防止信誉交易和操纵。
|
|
383
|
-
|
|
384
|
-
### Q: 如何处理恶意节点?
|
|
385
|
-
|
|
386
|
-
A: 多层防护:
|
|
387
|
-
1. 低信誉节点权限受限
|
|
388
|
-
2. 挑战机制验证能力
|
|
389
|
-
3. 黑名单机制封禁
|
|
390
|
-
4. 邀请人连带责任
|
|
391
|
-
|
|
392
|
-
## 相关文档
|
|
393
|
-
|
|
394
|
-
- [RFC-001: 去中心化信誉系统](./rfcs/001-reputation-system.md) - 详细技术设计
|
|
395
|
-
- [中间件使用指南](./middleware-guide.md) - 安全过滤与消息处理
|
|
396
|
-
- [安全设计](./security-design.md) - 整体安全架构
|