“CarrIOTA Hercules是打了兴奋剂的IRI,更轻、更快、更智能。” —
Roman Semko
这是应社区的请求而发布的关于Hercules开发详情的一次小更新。尽管我们的主要项目占用了大部分时间,但在过去几周中我们还是取得了相当大的进展。
我们正在研究四个方面的内容,并希望在发布预览版之前在这些方面做好准备(除了清理代码和编写文档之外,d’oh!)
核心
最重要的是,核心必须是稳定的。这包括tangle数据库管理,节点之间的通信,交易确认,tip选择,里程碑检测以及所有相关内容。
我们的大部分时间都是为了实现与IRI的功能对等,它基本上是完成了。我们目前的测试表明,Hercules的速度比IRI快大约10-25%,使用的驱动器空间减少了大约10%,并且在某些条件下可以减少很多内存。
除此之外,数据库结构也与IRI略有不同,它允许以前不可能的某些事情。例如,不必在快照之后重新附加地址。
既然提到了快照……
快照
这就是我们正在做的事情。Hercules可以成功导入IRI快照,在给定的时间内加载并保存自己的快照,同时检查它的完整性。
现在,我正在处理交易修整,这需要更多的时间,因为我们在从badger数据库批量删除项目时遇到了特殊的问题。不过,我相信这个问题会在合理的时间范围内得到解决。
下一步是添加自动快照(定时任务)、智能快照(基于可用内存),甚至是一个API来触发快照、列出和下载可用快照。
快照API可以公开,以便外部工具、服务和节点可以使用它来比较来自多个节点的快照(如果这些节点具有相同的时间戳),生成Tangle的统计信息,跟踪地址余额,加速节点同步和无数其他用例。这一点不应被低估。
API
与快照和核心相比,API本身很简单,可以在4-6天内完成。它将模仿IRI的大部分命令和行为,并添加一些额外的东西,比如快照API。
考虑到不同的数据库结构,API响应应该比IRI更快、占用更少的资源。这是纯粹的直觉,因为还没有办法测试它。
由于我们的焦点一直在核心和快照上,所以现在除了“获取节点信息”和邻居管理命令之外,还没有可用的API。这也是阻止我们发布Hercules预览版本的主要原因,因为没有强大的API,任何人都无法使用它。
支持低端设备
这是我们为Hercules所承诺的杀手级功能,我们正在进行大量的核心工作来优化内存的使用和性能。我希望当Hercules出现时,社区的go-lang大师们可以帮助我们进一步优化它。
我今天在PI3上启用了最新版本的Hercules。它可以很好地同步并且每秒处理高达100-120个交易。当我首次尝试运行Hercules时,它的最大值是每秒30-60个交易。
如果网络快速增长,在没有最新的快照的情况下,就没有其他方法完全同步一个子节点。这就是为什么快照是Hercules重要组成部分的原因,也是它在恶劣环境中使用的原因。
今天,我设法在单核512MB的Beaglebone Black上运行Hercules,每秒可执行15-30次交易。没有什么改变世界的东西,但是如果提供快照的话,它或许是能用的。
CarrIOTA Hercules在Beaglebone Black上害羞地跑着。
单核,512MB,我们可以走多远?其主要规格与Pi Zero的相同,然而,Pi Zero的内存更慢。真的很兴奋,看看我们是否也能在这个上得到一个像样的速度!
让我们看看我们是否可以在不久的将来在卡西欧手表上管理和运行Hercules。:)
预计推出时间
鉴于我们目前的工作量,无法提供准确的时间。如果一切顺利,它可能会在几周内准备好公开Alpha,但也不要把我的话太当真。
感谢您的阅读和支持!
捐赠作者IOTA: