T-FI, 新一代经济模型 交易替换及监视工具的改进(下)
正在进行的验证器开发:
- #1645 将两种密钥对类型合并为一种
- #1619 Flash: 如果可以回收HTLC,可监视块的高度及触发更新
- #1550 与验证相关的程序应从Ledger中移出
- #246 定义并实施块奖励
- #1512 重新启动后,Agora节点无法赶上
- #1480 Agora最终会阻塞,耗尽内存并在负载下死亡
- #1528 Flash层:实现寻路算法
- #93 向钱包添加“过渡”页面的要求
- #1663 getRandomSeed()需要断言而不是返回init
- #27 倾听HTTP请求
- #1331 数组散列漏洞
- #1527 Flash层:确定费率算法
- #1463 获得智能合约的背景知识
- #1683 Flash Layer 使用加密的数据包参数验证HTLC
- #1684 为序列化器创建子模块
- #1546 在追赶过程中消除不必要的注册请求。
- #239 简化支付验证(SPV)
- #1613 应删除有关集成测试中slashing的不必要的日
- #1655 将地址格式从Stellar样式切换为bech32
- #1552 在docker上运行时,不会建高于19 高度的块。
- #1717 集成Flash节点并添加系统集成测试
Flash Layer 1.0 Alpha
#1717 集成Flash节点, 并添加系统集成测试 (付款渠道,增强功能)
我们已经有足够的代码来支持实现这一项目。 而第一步是将项目移出测试/ Flash并移入基类。 然后,将Flash节点集成到FullNode / Validator中。
#1618 Flash:必须先验证新的余额是否不同,然后才能尝试更新频道
(付款渠道,功能)
两者都在这里:
agora/source/agora/flash/Channel.d
Line 638 in 8c61fa5
auto new_balance = this.foldHTLCs(this.cur_balance, secrets, height);
和这里:
agora/source/agora/flash/Channel.d
Line 698 in 8c61fa5
auto new_balance = this.foldHTLCs(this.cur_balace, secrets, height); 尤其是,反方可以发送与任何预映射(preimage)哈希不匹配的无效秘密。如果方块的高度不会导致任何 HTC 超时,那么新余额与旧余额会保持相同。 这可能只是DDOS的某种形态,除此之外这并没有太大的损伤。
#1644 Flash:更换冻结资付/以接受/拒绝API更新API, 以及不再到处产生纤维 (付款渠道,增强功能)
以前,我们到处都会纤维生成。 所以, 我们决定将其替换为每通道一根光纤。 这並非無道理的,因为每一次只能更新一次频道。 换句话,我们能够一次性将多个HTLC分组。
#1619 Flash: 如果可以回收HTLC,则监视块的高度并触发更新 (付款渠道,增强功能)
我们检查了是否能回收任何HTLC並向proposeNewUpdate()请求。因为以前我们仅在对方要求付款或更新时才折叠。
#1614 Flash:固定洋葱包大小 (支付渠道, 功能)
在#1529中,实施了洋葱加密数据包。 不過它们的大小根据跳数而变化。
在 LN 中,洋葱包經常固定了大小。这样可以确保没有节点能够知道数据包经过了多少跳或仍需要经过多少跳。跃点只知道前一跳和下一跳。 而这是一项重要的隐私功能。#1331 数组散列漏洞 (Bug)
在默认情况下,如果数组的长度为零,则不会对其进行哈希处理。这可能导致以下情况:两个内容完全不同的结构可能最终会散列为相同的内容。 问题可能比这更不可思議
,尤其是当该结构嵌入可能本身包含数组的其他结构时。
#1615 将块的时间戳, 更改为与Genesis的偏移量 (区块创建,增强功能)
我们需要能够配置Genesis时间以进行测试。而目前的方案则不允许这样做。 为了保留当前功能并简化部署,我们应该将戳记时间的值, 从绝对值(UNIX时间戳记)更改为相对值(与Genesis的偏移量)。最后,我们也得将“Genesis开始时间”移至ConsensusConfig, 并在部署时进行设置。
#27 倾听HTTP请求 (Faucet)
已实现一些API端点,并已分配端口号。现在,水龙头(faucet)需要侦听HTTP请求,以便可以调用端点。 例如 http://127.0.0.1:2766/utxos