Æternity 开发工具更新:Middleware(中间件)

​​对于æternity æpps团队和开发工具团队来说,我们的首要任务是良好的用户和开发人员体验。对于开发工具,我们的用户也是开发人员。

自从主网Roma版本发布后,我们的重点不仅在于优化、监控和改进主网性能,还在于以多种方式发展生态系统。其中一种方法是构建工具,帮助每个人可以与主网进行交互。

æternity节点的主要目的是维护主链并与其他节点建立共识。但我们可能还需要以不那么简单的方式进行链上查询。如果节点需要提供我们的所有查询,则会干扰此主要目的。

例如,Blockchain Explorer需要查询关键块、微块和转账交易。假如有一个关键块,包含50个微块和1000个转账情况下,这意味着为了显示一个关键块的细节,我们可能需要进行超过一千次查询。我们可以避免对全节点施加压力,并通过在SQL数据库中缓存区块链并从那里提供更简单的查询来为我们的用户提供更快的交互性能。

建立在必要之上

中间件就是这样一个缓存层,它允许我们更有效地与æternity主网进行交互。构建它有三个主要原因:

  • 我们希望更快地访问节点信息,以便æternity explorer更顺畅地工作;
  • 中间件可以轻松查询节点并添加其他查询,这些查询返回非常有用的信息;
  • 我们可以将区块链历史存储在PostgreSQL数据库中,以便于转储/导入到其他系统中。

如何使用中间件

Middleware(中间件)位于客户端和节点之间。在最初运行时,它通过从节点中提取所有关键块和微块以及所有转账交易来填充其数据库,并将它们存储在其数据库中。当它是最新时,它会定期更新节点以查找新块,然后返回链中检查其数据库是否正确。通过这种方式,它可以适应硬分叉。

中间件是用Rust编写的,速度快,安全性高。

查询

下面您可以看到直接查询节点时可用的查询,但通过中间件可以更快地提供服务。

/key-blocks/height/<height>/transactions/<hash>/generations/current/micro-blocks/hash/<hash>/transactions/micro-blocks/hash/<hash>/header/key-blocks/current/height/micro-blocks/hash/<hash>/transactions/count

除了上面的查询之外,中间件还提供以下查询,这些查询整合来自全节点的信息,并且在其他任何地方都不可用。

/transactions/account/<account>/transactions/interval/<from>/<to>/key-blocks/height/<height>/gas-price

随着我们添加新功能,此集合将随着时间的推移而增长。

如何使用它

要使用中间件,您可以克隆存储库并在本地运行它。您也可以通过http://mdw.aepps.com:8080连接到它。

虽然我们非常清楚它需要改进,但GitHub存储库中已有初步文档。此外,如果您是开发人员并且您有中间件可以满足的要求,我们建议您在GitHub中提出问题。

有问题吗?

如果您对中间件有任何疑问,请随时在论坛的发展类别下发布。

走向未来

我们还有来自æpps和开发工具团队的更多令人兴奋的更新。与往常一样,欢迎随时与我们联系!

原文链接:https://blog.aeternity.com/æternity-dev-tools-update-middleware-42b541acd383 翻译:金刚狼