当前位置:首页 > 物联网 > 区块链
[导读] 自从比特币将世界引入加密货币之后的十年中,该行业的发展方式甚至可能是Satoshi无法想象的。以太坊区块链于2015年7月出现,借助于以太坊虚拟机(EVM)-开发和执行智能合约的环境,开启了一个

自从比特币将世界引入加密货币之后的十年中,该行业的发展方式甚至可能是Satoshi无法想象的。以太坊区块链于2015年7月出现,借助于以太坊虚拟机(EVM)-开发和执行智能合约的环境,开启了一个新的可能性世界。

我们引入ethvm:基于Apache Kafka的以太坊的第一个开放源代码块资源管理器和数据处理引擎。

ethvm的起源:evm的指南针

浏览器帮助用户验证交易和智能合约的执行情况,检查余额,并监控天然气价格。

对于开发者来说,区块浏览器为DAPPs和开源钱包检索区块链数据的新可能性,在不断增长的以太坊生态系统中激励创新,同时提供分散网络中至关重要的透明度。

当我们的团队第一次开始开发ethvm alpha时,最初的想法是创建一个易于使用的区块链浏览器,前端由Vuejs构建,后端由RethinkDB提供支持的实时更新。

作为一个开发人员,您只需要三个基本的东西来构建一个浏览器,这就是我们开始使用的:

1. 与网络同步的以太坊节点;

2. 存储信息的数据库

3. 一个显示信息的网站;

然而,这些并不是唯一需要考虑的因素。通常,当区块链增长到一定规模时,您需要处理的信息量是非常巨大。不仅完全同步节点-还是一个复杂的过程。它需要大量的时间和资源,同时对CPU和磁盘也有相当大的需求。

满足对开源以太坊块资源管理器的需求

在我们致力于解决这些挑战的过程中,我们的团队意识到,现有的Block Explorer Options Limited-大多是闭源的,这意味着只有一小部分开发人员可以为这一重要工具的创新做出贡献。

在技术进步的协作性的另一个证明中,ethvm最重要特性的灵感来自一个意想不到的来源。Boerge Svingen在Confluent博客上写了一篇名为“在纽约时报上与Apache Kafka一起出版”的文章,描述了标志性的纽约时报如何从一大堆API、服务、生产者和消费者转变为Apache Kafka支持的基于日志的架构。

传统上,数据库已被用作许多系统的真实来源。尽管有很多明显的好处,但从长远来看,数据库很难管理。

基于日志的体系结构通过使日志成为事实的来源来解决这个问题。虽然数据库通常存储某些事件的结果,但日志存储事件本身,因此日志成为系统中发生的所有事件的有序表示。

使用日志存储,您可以创建任意数量的自定义数据存储空间。这些存储成为日志-的物化视图,它们包含派生的而不是原始的内容。如果您想更改数据存储中的模式,您可以创建一个新的模式,让它从一开始就使用日志模式,直到它恢复正常,然后扔掉旧的模式。

Boerge上面解释的意义非凡

如果体系结构是基于日志的,则可以使用和处理Kafka日志,并将信息输出到其他位置 - 例如,数据库或PDF报告。

另外,作为一个额外的好处,根据主题的建模和配置方式,您可以多次重放日志。这意味着您可以随时“返回”时间并重新处理数据。

EthVM和kafka生态系统

让我们看看这些工具是如何在ethvm环境中使用的:

官方项目将Kafka Connect描述为:

Apache Kafka和其他系统之间可伸缩且可靠地传输数据的工具。它使得快速定义将大量数据集合移入和移出Kafka的连接器变得简单。Kafka Connect可以接收整个数据库,或者将所有应用服务器的指标收集到Kafka主题中,从而使数据以较低的延迟用于流处理。导出作业可以将来自Kafka主题的数据传递到辅助存储和查询系统或批处理系统中进行脱机分析。

这就是我们捕获块的方法(为了本文的目的而简化)

对于ethvm,我们创建了一个paritysource连接器,它允许我们从rpc/websocket端点读取所有必需的信息,并将数据转储到特定的主题。

通过Kafka Connect,我们有一套标准化的API来向Kafka提取数据。这种方法的优点在于,将来我们将能够创建更多基于相同原理的连接器(以支持Geth和其他客户端)。

kafka stream

一旦重要数据在Kafka主题内,第二步是解释数据以获得有意义的信息。这就是Kafka Streams的用武之地:

Kafka Streams是一个用于构建应用程序和微服务的客户端库,其中输入和输出数据存储在Kafka集群中。它结合了在客户端编写和部署标准Java和Scala应用程序的简单性以及Kafka服务器端集群技术的优势。

在ethvm上,我们创建了专门的“处理器”,利用kafka streams实用程序执行聚合、缩减、过滤和其他有用的操作。

例如,一个专用处理器分析并提取可替换的令牌传输,如ETH或ERC20。另一个专门研究不可替代的产品,如ERC721上的产品。其他处理器关注有用的块指标-,其中包含与平均天然气价格、成功或失败交易数量-和交易费用相关的信息。事实上,我们可以创建尽可能多的处理器来“钩住”具体的主题,以便接收最相关的数据。

使用Kafka Connect创建一个接收器,用于存储处理器的数据输出。目前,我们正在转向Postgres / TImescale,但我们最初是从MongoDB开始的。

塑造ethvm的未来

我们很高兴地分享生态系统的Alpha版本目前正在使用 - 使用Mongo作为主存储数据库的初始处理器设置。继续进入Beta版本,我们希望使EthVM更加稳定并实现许多功能,包括:

· 迁移到NestJS API

· 从MongoDB迁移到Postgres/TImescale

· 对Kafka处理的改进(消除错误并提高速度)

· 让TerraForm提供程序在AWS上正确部署代码

我们的首要目标是尽可能快速地同时处理以太坊链,最终在混合中添加更多链。有了一个好的Kafka集群,我们将能够同时处理多个链。此外,块浏览器只是查看区块链数据的众多方法之一!

EthVM由MyEtherWallet提供支持 - 该公司致力于开发有利于以太坊生态系统整体的开源项目。我们共同构想了一个全球金融未来,加密将在为已经建立的市场带来新机遇方面发挥重要作用。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭