第十一阶段 stage 1:污点代替没收、模块不设上限、出块 ×10
- 预测市场内幕单改为确定性记污点:结算或卖出时照常兑付,内幕份额对应的兑付记收款钱包污点;删除 PredictInsiderShare、PredictInsiderCatch - 操纵检出被查后照常兑付,预测兑付记钱包污点、永续盈利记 Poinbase 账户污点;删除 ManipFreezeDays - Wallet.AddTaintCapped:污点不超过钱包当时的价值,超出部分按 PredictFraudShare / PredictFraudCap 记诈骗罪证(TaintCrime.Commit) - 模块效果不设上限,只留算力、耗电、损耗乘数的下限(ModuleHashFloor / ModuleKjFloor / ModuleWearFloor) - BlockReward 100 → 1000,NpcHash0 360 → 3600 - 修正内幕卖出日志"只退本金"的错误说法;8 种语言文字与手册更新 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
45a6ec2f77
commit
bc23ae056b
18 files changed
+248
-205
No files matched your search
@@ -118,6 +118,21 @@ namespace Decentralized.Domain
|
||||
|
||||
public double Value(Func<string, double> price) => Balances.Sum(kv => kv.Value * price(kv.Key));
|
||||
|
||||
/// <summary>
|
||||
/// 加污点,加完不超过钱包当时的价值(只在加的这一刻检查,之后币价涨跌不再调整)。
|
||||
/// 返回加不进去的部分(超出额),由调用方按 <see cref="OverflowFraud"/> 折成罪证。
|
||||
/// </summary>
|
||||
public double AddTaintCapped(double amount, Func<string, double> price)
|
||||
{
|
||||
if (amount <= 0) return 0;
|
||||
double add = Math.Min(amount, Math.Max(0, Value(price) - Taint));
|
||||
Taint += add;
|
||||
return amount - add;
|
||||
}
|
||||
|
||||
/// <summary>污点超出钱包价值的部分折成的诈骗罪证:超出额 × <see cref="Tuning.PredictFraudShare"/>,单次封顶 <see cref="Tuning.PredictFraudCap"/>。</summary>
|
||||
public static double OverflowFraud(double overflow) => Math.Min(Tuning.PredictFraudCap, Math.Max(0, overflow) * Tuning.PredictFraudShare);
|
||||
|
||||
/// <summary>
|
||||
/// 转出:taint 和 basis 按转出价值占地址总价值的比例带走;被标记的地址转出可追踪的币,收款地址也被标记。
|
||||
/// Ponero 等不可追踪资产转入时,污点和标记都不随之进入目标地址。
|
||||
|
||||
Reference in new issue
Block a user