原文作者:Tess Rinerson
翻译:SHOU
原文链接:https://medium.com/tendermint/tendermint-2020-roadmap-b4709134cff1
Tendermint 核心:https://github.com/tendermint/tendermint/
团队决定分享 2020 年的目标和路线图。下面列出的是我们今年以优先级排序的目标清单,总计围绕四个高层次的目标组织。当然,我们计划同时处理这些目标的各个部分:
https://tendermint.com/careers/
这份清单雄心勃勃:我们有希望完成它,这里列出的比我们一年能完成的要多。如果你有兴趣帮助我们实现这些目标,我们很快就会开放一些新的职位。
目标 1: 增加可以为 Tendermint 核心做出实质性贡献的人数
我们希望加快 Tendermint 的发展进程,首先我们希望增加能为 Tendermint Core 做出实质性贡献的人数。这个过程包括两方面:第一,我们计划增加潜在贡献者的数量;第
二,我们需要通过降低项目的 “进入成本” 使这些工程师尽可能容易地做出贡献。
Tendermint Core 是一个雄心勃勃的代码库。它也是一个具有挑战性的问题,它将一个新的安全模型与围绕吞吐量和性能的强烈需求结合起来。此外,Tendermint Core 已经积累了一些技术债务,因为它已经快存在六年了。
增加贡献者人数
这应该是一个招聘问题。一月份有两名新工程师加入我们个团队,今年一整年我们都将继续招聘。
降低项目的 “进入成本”
为了使 Tendermint Core 尽可能友好,我们计划重构和简化一些组件。我们还打算编制入职文档,帮助新员工和社区贡献者更快地了解 Tendermint Core 的架构和设计。
首先需要评估重构的候选对象:从测试性的角度来看,这个组件是否满足我们的需求?表现如何?从易理解和可维护性的角度来看如何?如果这些问题的答案是否定的,那么更好的设计会是什么样的呢?
一旦对候选组件进行了全面的评估(这个过程可能需要开发人员几个星期的时间),规范和实施步骤就可以更精确地规划出来。到那时,就可以实施计划了。
以下组件是重构的候选组件:
- 共识反应器
- P2P 模块
- RPC 模块
- 证明模块
有关这些重构阶段及其当前状态的详细信息,请参见 tendermint/4630:
除了提高这些模块和反应器的可理解性和易读性之外,这些重构程序还应该提高它们的可测试性和模块性。建议确保所有反应器接口都遵循一个定义明确的反应器,以便增加模块性并方便用户自己使用。
目标 2: 修复并改进功能帮助 Tendermint Core 保持市场领先地位
Tendermint 是 BFT 共识领域的先驱。然而,面对日益激烈的竞争,我们需要优先考虑有助于我们保持市场领先地位的功能和解决方案,这将有助于 Cosmos 网络实现其全部愿景:
这些功能的修复和改进包括:
- 轻型客户机(IBC 必需)
- 分叉责任修复:https://github.com/tendermint/tendermint/issues/4189
- 状态同步(同步应用程序状态而不重放每个事务)
- 证据处理(包含 “疯子验证器”):https://github.com/tendermint/tendermint/issues/4182
- “流水线”Tendermint 算法
- 将 DeliverBlock 添加到 ABCI:https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-037-deliver-block.md
目标3: 改善 Tendermint Core 的项目的开发人员和用户的使用体验
Tendermint 拥有大量用户,包括验证者和在 Cosmos 上工作的内部 “用户”。我们很幸运能得到他们的反馈,我们正在优先考虑一些能改善用户体验的功能。
这些功能包括:
- Amino/proto3 相容性
- 内存池改进
- Tendermint “Modes”:https://github.com/tendermint/tendermint/issues/2237
目标 4: 扩展筛选可与 Tendermint Core 集成的技术数量
最后,我们要深思熟虑地扩展和筛选可与 Tendermint Core 集成的技术的-主要是关于加密领域和数据库。这将拓宽 Tendermint Core 的潜在用例和用户基础。但是,这也会增加维护的负担,所以我们应该考虑一下我们要采用哪些技术。我们可能还需要审核我们已集成的,看是否有任何未使用(或未充分使用)的部分。
候选扩展的加密选项:
- 分离函数功能使用共识, 以便用户/运营可以选择自己的函数(使用 BLAKE 或代数哈希函数可以实现更快的轻量级客户端)
- 为区块/投票引入聚合签名 (BLS 的可能性):https://github.com/tendermint/tendermint/issues/1319
- 允许文门使用自己的曲线 (例如, 扩展到 ed25519 之外):https://github.com/tendermint/tendermint/issues/2358
如果你有问题,想法,或想贡献,请提出或加入我们的开发者论坛:
我们很高兴收到您的来信,我们期待着 Tendermint 有美好的一年!