谁在以太坊区块链上循环交易?TuGraph + Kafka 的0元流图解决方案

21. Fabric2.2 基于Kafka共识算法部署区块链集群 基于Kafka共识算法 部署Fabric2.2 集群 阅读详情

都在说数据已经成为新时代的生产资料。

但随着大数据和人工智能等技术的发展,即便人们都知道数据的价值日益凸显,却无法凭借一己之力获取和分析如此大规模的数据。

要想富,先修路。要想利用新时代的数据致富,也必须要有趁手的工具。只有合适的工具才能完成大规模数据的采集、清洗、存储、处理和可视化等各个环节。只有具备这样的工具,才能更好地利用数据来推动经济社会发展,并为人类创造更多的价值。

现如今,免费的,蚂蚁集团图计算团队开源的超大规模流图处理系统——TuGraph-Analytics,正成为一款专注于图计算领域的开源数据处理工具。我们从一个简单的问题开始,让你体会TuGraph-Analytics的强大之处。

“谁在以太坊的区块链上进行循环交易?”

如何回答这个问题?

大数据领域的同学可能会立即举手,Kafka给我上,Flink给我上,实在不行Spark... 这些系统在处理大规模数据时,工作流程通常非常长,开发效率较低,无法迅速地响应用户的需求。各有各的长处,各有各的毛病。因此,我们需要寻找全新的数据分析工具,以提高大数据领域的工作效率,并更好地应对日益复杂和多变的数据处理挑战。

新的工具?那么试试GPT?

Q:“谁在以太坊的区块链上进行循环交易?”

GPT:“这个问题需要进行数据分析,涉及到大量的以太坊交易数据。如果要确定谁在以太坊的区块链上进行循环交易,可以通过以下步骤:

获取以太坊的交易数据,包括交易哈希、发送方地址、接收方地址、交易类型和交易金额等信息。
对交易数据进行清洗和处理,去掉无效数据和重复数据等。
利用图计算等技术,构建以太坊交易网络,并对交易网络进行分析,识别出交易中的循环交易。
进一步分析循环交易的发送方地址和接收方地址,识别出谁在以太坊的区块链上进行循环交易。

需要注意的是,由于以太坊区块链的去中心化特性,交易数据的获取和分析可能存在一定的难度和挑战。”

姿势不对,再来一次。

Q:“谁在以太坊的区块链上进行循环交易?一句话回答。”

GPT:“无法通过一句话回答,需要进行数据分析。”

可见,虽然GPT等人工智能在自然语言处理和图像识别等方面已经取得了显著进展,但在数据洞察方面仍然存在挑战。因为数据洞察往往需要结合具体的业务背景和领域知识,而这些人类经验和智慧难以完全被机器模拟和替代。此外,在数据清洗、数据预处理、特征提取和建模等关键步骤上,仍需要人类专家进行干预和优化。

今天,我们使用开源的TuGraph-Analytics与流式消息系统Kafka,不仅能够很好回答谁在以太坊的区块链上进行循环交易,而且能够搭建秒级实时的金融级解决方案,客官且看——

何为循环交易?

来看这个例子

图中有7个不同颜色的点代表交易账户,每个账户对应以太坊上的一个钱包地址。一个账户转出到另一个账户的过程,表示为图中有方向的边,这个图中共有8笔交易构成一个交易网络。

将交易头尾相连,能够找到返回起点的循环,就可以视为循环交易。

循环交易通常是指通过多个交易步骤,从而实现利用价格差异来获取利润的一种交易方式。其过程包括在不同的市场或不同的时间段内进行买卖行为,从而获得利润。在交易网络图中,可以使用环路检测算法来发现潜在的循环交易路径,并检索这条路径上的账户就能够知道哪些账户可能参与了循环交易。

可是,当一笔新的交易发生时——

可见,环路检测并不是一劳永逸的静态图算法。随着消息实时不断到来,交易网络图中的最新环路不断发生变化。如果关心每一笔交易产生的交易环路,这将成为一个极其复杂的问题。

以太坊是基于区块链技术的智能合约平台,其交易速度取决于众多的参与者。交易成交速度通常在15秒到1分钟之间,交易吞吐量可以达到每秒数十到数百笔交易。但别忘了,以太坊还有海量的历史交易数据,相当于存在一个相当复杂的”底图“,循环交易问题不仅需要考虑新的交易,还必须综合分析历史上所有的交易!

这就是为什么强如GPT也无法一句话回答这个问题的原因。

那么真的能够在每笔交易发生时实时地检测循环交易的产生吗?

实际上,使用专业的图计算系统TuGraph-Analytics,这个问题只需要几十行代码即可解决,还能够迅速结合Kafka搭建起交易听单->交易网络生成->实时循环交易检出->给下游发送消息完整的金融级实时解决方案。更关键的是,这一切都是免费的~ 感谢开源!

我们在TuGraph-Analytics新建一个图计算作业,只需大约40行代码,即可完成整个端到端流程。

代码描述如下,需要自取。

在这短短40行中,我们创建了以太坊交易的整个底图,命名为ethereum_transaction_network。把来自Kafka的实时交易流table_new_trade不断添加到命名为ethereum_transaction_network的图中。

接下来,每当有新的交易到达的时刻,都将触发一次3跳循环交易模式的检查,把更新的结果存入位于Kafka的外部表tbl_circular_trade,可以很方便地分发给下游组件。

实时交易数据我们采用了XBlock-ETH: Extracting and exploring blockchain data from Ethereum这篇论文整理的真实的以太坊区块数据,在这个Demo中把以太坊地址隐去,以一个数字替代,即每个数字代表以太坊的一个钱包地址,相同的数字表示相同的地址。生成的循环路径结果我们拼接成一个字符串,方便观察。

set geaflow.dsl.window.size = 200;
-- 以太坊交易的底图
CREATE GRAPH IF NOT EXISTS ethereum_transaction_network (
  Vertex address (id bigint ID),
  Edge trade (srcId bigint SOURCE ID, targetId bigint DESTINATION ID, mount double)
) WITH (
  storeType='rocksdb'
);

-- 从Kafka监听最新的交易
CREATE TABLE IF NOT EXISTS table_new_trade (
  srcId bigint, targetId bigint, mount double
) WITH (
  type='kafka',
  geaflow.dsl.kafka.servers = '{your.kafka.server.ip}:9092',
  geaflow.dsl.kafka.topic = 'tbl-trade'
);

-- 将新的交易添加到底图
INSERT INTO ethereum_transaction_network.address SELECT srcId FROM table_new_trade;
INSERT INTO ethereum_transaction_network.address SELECT targetId FROM table_new_trade;
INSERT INTO ethereum_transaction_network.trade SELECT srcId, targetId, mount FROM table_new_trade;

-- 一张外部表连接Kafka以输出检出的循环交易结果
CREATE TABLE IF NOT EXISTS tbl_circular_trade (
    circular VARCHAR
) WITH (
  type='kafka',
  geaflow.dsl.kafka.servers = '{your.kafka.server.ip}:9092',
  geaflow.dsl.kafka.topic = 'tbl-circular-trade'
);

-- 使用以太坊交易图进行实时查询
USE GRAPH ethereum_transaction_network;

-- 查询3跳循环交易模式存入位于Kafka的外部表
INSERT INTO tbl_circular_trade
MATCH (v1)-[:trade]->(v2)-[:trade]->(v3)-[:trade]->(v4)
WHERE v1.id = v4.id AND v1.id != v2.id AND v1.id != v3.id AND v2.id != v3.id
RETURN concat(CAST(v1.id as VARCHAR), '->', CAST(v2.id as VARCHAR),
       '->', CAST(v3.id as VARCHAR), '->', CAST(v4.id as VARCHAR)) AS circular
;

实机演示!

打开一个Kafka Producer,产生消息流,将交易不断发送给Kafka,如左侧终端窗口所示。平均1秒左右,最新的图中循环交易检出结果就打印在右侧的Kafka Consumer窗口中。

当添加一些新的交易日志时,右侧的Kafka Consumer窗口中也实时更新了新的循环交易检出结果,响应十分迅速。

以上便是开源图计算平台TuGraph Analytics结合Kafka,快速搭建的以太坊循环交易检出解决方案。虽然这只是一个小小的demo,但实机演示中强大的图计算语法和系统性能可见一斑,大大较低了我们普通人搭建图计算应用的难度和成本。

说多不如现在开始行动,TuGraph Analytics是你不容错过的利器。现在就赶快访问https://github.com/TuGraph-family/tugraph-analytics,亲自体验TuGraph Analytics的魅力吧!此外,我们欢迎各位参与到开源贡献中来,为社区贡献自己的智慧和代码,共同促进国产图计算系统的发展。

[参考文献]
P. Zheng, Z. Zheng, J. Wu, and H.-N. Dai, “XBlock-ETH: Extracting and exploring blockchain data from Ethereum,” IEEE Open J. Comput. Soc., vol. 1, pp. 95–106, May 2020, doi: 10.1109/OJCS.2020.2990458.

欢迎关注 TuGraph 代码仓库

https://github.com/tugraph-family/tugraph-db

https://github.com/tugraph-family/tugraph-analytics

AI大模型与碳足迹评估结合模式及示范案例 AI大模型与碳足迹评估相结合,可以提供更精确、更快速的碳排放量计算,优化减排策略,并促进可持续发展目标的实现。 阅读详情

相关推荐

EWF写保护功能详解:从安装到实战操作指南

本文详细介绍了EWF写保护功能的安装与实战操作指南。EWF(Enhanced Write Filter)通过重定向写入操作保护硬盘分区,特别适合需要长期稳定运行的系统场景。文章涵盖从安装准备、图形界面操作到命令行高级管理的全流程,并提供了常见问题的解决方案,帮助用户轻松掌握这一实用工具。

weixin_28710999的博客 448

Kafka和消息队列之间的超快速比较

原文:A super quick comparison between Kafka and Message Queues 作者:Hendrik Swanepoel 翻译:Vincent 译者注:本文的目的是让读者快速了解Kafka与消息队列之间的关系,告诉读者为什么会考虑使用它的原因。以下为译文。 Kafka最初是由Linkedin社区开发的一项技术。简而言之,它有点像消息...

博客 2366

EtherCAT丢包问题深度解析:从原理到实战排查指南

在工业自动化与运动控制领域,实时通讯网络的稳定性是系统可靠运行的基石。EtherCAT(以太网控制自动化技术)作为一种高性能工业以太网协议,其核心在于独特的“飞读飞写”机制和纳秒级的分布时钟同步,以实现多设备间的精准协同。然而,物理链路干扰、配置不当或硬件性能瓶颈都可能导致数据帧丢失,破坏时钟同步,进而引发伺服抖动、定位精度下降乃至生产线停机。本文聚焦于EtherCAT丢包这一典型故障,结合SSC(Slave Stack Code Tool)从站协议栈开发与实时系统调优等工程实践,系统阐述其成因、影响及一套

weixin_32050773的博客 341

Apache Kafka的区块链实验

区块链技术和Apache Kafka具有共同的特征,这暗示了自然的亲和力。 例如,两者共享“不可变的仅追加日志”的概念。 如果是Kafka分区: 每个分区都是有序的,不可变的记录序列,这些记录连续地附加到结构化的提交日志中。 分区中的每个记录均分配有一个顺序ID号,称为偏移量,该ID唯一地标识分区中的每个记录[ Apache Kafka ] 而区块链可以描述为: 不断增长的记录列表(称为块...

编程故事的地方 369

Aras Innovator生命周期图实战:从配置到权限管理的全流程解析

本文详细解析了Aras Innovator生命周期图的全流程配置与权限管理,从基础概念到实战应用,涵盖状态设置、路径配置、权限控制等核心功能。通过实际案例和代码示例,帮助用户掌握如何高效管理数据生命周期,提升业务流程的规范性和效率。

ee345的博客 168

【即插即用模块】卷积篇 | TCSVT 2025 | MFACB:多尺度膨胀融合,快速扩大感受野,多尺度特征精准捕捉!

本文提出了一种新型多尺度融合膨胀卷积模块MFACB,用于增强语义分割任务中的特征表达能力。该模块通过三分支串联膨胀卷积结构快速扩大感受野,采用双路径融合机制(基础信息路径+多尺度信息路径)实现高效上下文聚合。相比传统卷积块,MFACB在保持轻量化的同时显著提升了多尺度特征捕捉能力,实验表明其性能优于基础残差块。该模块支持自定义膨胀率和步长调整,可灵活嵌入不同网络阶段,适用于需要特征增强的视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 311

开启EOS区块链技术探索之旅,简单研究ETH和EOS的区别

EOS目前还在开发中,正式版本推出,可能与目前了解的内容有差异。然而,我是带领团队成功开发过太坊项目,我对hyperledger fabric基本理论也非常清晰,更是一个喜欢区块链的爱好者。下面我会对我了解的内容做一些比较。 EOS以及ETH和Hyperledger fabric的对比及探讨。 比特币发布之后不久,很多有远见的人就意识到,比特币背后的技术会有更大的潜能,而不只是作为电子货币的

jambeau的博客 6623

「深度学习之优化算法」笔记(二)优化算法的分类

但是由于生物的局限性,人们所创造出的算法也会有局限性:我们所熟知的生物都生存在三维空间,在这些环境中,影响生物生存的条件比较有限,反应到算法中就是这些算法在解决较低维度的问题时效果很好,当遇到超高维(维度>500)问题时,结果可能不容乐观,没做过实验,我也不敢乱说。当然,他们的目的不是在最佳狩猎位置集合,他们的目的是在过去的途中看是否能发现更加好的狩猎位置,去往已经到过的狩猎地点再次狩猎是没有意义的,因为每个位置获取食物的难易程度是固定的。如果他们的策略是“不跟随最优解”,那么他们的策略是什么呢?

quanzhan_King的博客 1371

kafka的高可用和一致性探究

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34144450的博客 256

Python控制TEMI1000/TEMI1500测试温箱

该温箱是我司从昆山振弘检测设备有限公司采购的TEMI 1000,但是控制器用的是韩国的,关于控温箱这个项目,可参考的资料仅有一份官方的manual,里面包含一些命令格式。只要你有温箱,就应该可以向厂家索取该文档。该温箱的通讯接口只有一个RS232接口,要想实现远程控制,需要有串口转USB的线;类似于下图所以,想依靠python来与之进行通信,还是要通过python 的pyserial库,关于怎么安装pyserial,过于简单,这里不做赘述,可自行百度。

xgh1951的博客 1万+

【LDPC-7】LLR量化位宽对LDPC译码性能的影响分析——以最小和译码算法为例进行matlab仿真

最小和译码算法的步骤如下:最后译码结果如果满足或者完成所有迭代次数,则译码算法停止迭代,否则继续进行译码迭代操作。

FPGA/MATLAB学习教程/源码/项目合作开发 1471

kafka 中相关组件topic、broker、producer、consumer原理及负载均衡策略

目录 1.kafka 2.topic 3.broker 4.producer 5.consumergroup 6.负载均衡策略 1.kafka kafka是类jms消息队列,与jms不同的是,kafka可以有多个消费者consumer主动拉取数据。 2.topic topic是逻辑上:一个目标发送目的地,物理上:一个磁盘上的partition的目录。 一个topic可以对应多个...

py_tamir的博客 6800

短信验证码逻辑漏洞学习——各种绕过姿势技巧

短信验证码逻辑漏洞学习——各种绕过姿势技巧

记录并分享学习安全的知识点.. 2557

kafka应用于区块链_Apache Kafka的区块链实验

kafka应用于区块链by Luc Russell 卢克·罗素(Luc Russell) Apache Kafka的区块链实验 (A blockchain experiment with Apache Kafka) Blockchain technology and Apache Kafka share characteristics which suggest a natural affin...

cumi7754的博客 560

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

区块链研究实验室 | ethvm:第一个由Kafka支持的开源块资源管理器

自从比特币将世界引入加密货币之后的十年中,该行业的发展方式甚至可能是Satoshi无法想象的。以太坊区块链于2015年7月出现,借助于以太坊虚拟机(EVM)-开发和执行智能合约的环境,开启了一个新的可能性世界。 我们引入ethvm:基于Apache Kafka的以太坊的第一个开放源代码块资源管理器和数据处理引擎。 ethvm的起源:evm的指南针 区块浏览器是区块链审计和决策不可或缺的工具,...

willam1的专栏 624

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

很到位!原来这才是Kafka的“真面目”

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34366546的博客 1129

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Kafka学习之:Kafka背景及架构介绍

转载自:http://www.infoq.com/cn/articles/kafka-analysis-part-1 Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。InfoQ一直在紧密关注Kafka的

不积跬步,无以至千里;不积小流,无以成江海! 3757

分布式消息系统:Kafka

Kafka是分布式发布-订阅消息系统。 它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。 原文:http://blog.jobbole.com/75328/ 在大数据系统中,常常会碰到一个问题,整个大数据是由各个子系统组成,数据需要在各个子系统中高性能,低

burpee的博客 5367

Apache顶级项目介绍2-Kafka

Apache顶级项目介绍系列-1,我们从Kafka说起。why?流行 + 名字cool。 Kafka官网是见过比较简单,直叙的网站,“kafka是一个高吞吐的分布式的消息系统”。 Kafka最初起家于LinkedIn,当时原本作为linkedin用来管理活动流(PV,用户行为分析,搜索情况)和运营数据处理的pipline的基础。 因为其分布式以及高吞吐被广泛使用,如与Clo

ErixHao的专栏 3390

人才稀缺的区块链,程序员转型入门必看这四项技能

本文着重从区块链的基本概念、运行机制、相关技术和开源项目及工具四个方面进行介绍。 作者 | 卿苏德 区块链(BlockChain),是区块(Block)和链(Chain)的直译,其数据结构如图1所示,即每个区块保存规定时间段内的数据记录,并通过密码学的方式,构建一条安全可信的链条,形成一个不可篡改、全员共有的分布式账本。 比特币的区块分为区块头和区块体两部分。区块头的大小为80字节,包

区块链大本营 8415

深入理解 Leaf-Spine:从网络拓扑到 AI 数据中心 Fabric

传统数据中心网络以树形三层架构为主,但随着东西向流量激增,其层级多、路径长、扩展难等问题凸显。为此,Leaf-Spine叶脊架构应运而生,通过全互联的扁平化设计,实现多路径转发、高带宽、低时延与灵活横向扩展。结合ECMP负载分担、Underlay/Overlay分离架构及VXLAN/EVPN技术,该架构有效支撑云计算、AI训练等高密度内部通信需求。其核心价值在于:网络设计需匹配业务流量模型,强调可预测性、可靠性与可扩展性。未来,叶脊架构将持续演进,成为高性能数据中心的基石。

一名热爱技术、专注实践的工程师,拥有一项实用新型专利及一项软件著作权。曾获国家级奖项7项、省级奖项30余项。专注网络技术与 AI Infra 领域,持续探索技术创新与工程实践,记录学习成长,分享技术经验,在探索中突破,在实践中精进。 293

高可用分布式存储架构设计及其应用

节点间维持秒级心跳,同时引入Phi accrual failure detector:当某节点心跳间隔的分布偏离历史基线超过阈值时,判定为“疑似故障”,提前触发副本状态检查,而非被动等待固定超时。同城双AZ部署,指令通道的Raft副本组跨AZ分布,AZ间RTT控制在1.5 ms以内,确保多数派写入的延迟增量可接受。这一取舍的直接后果是:同城单AZ故障时,指令通道经历约2—5 s的写入暂停,遥测通道保持可用但可能出现秒级的数据空洞,由车端缓冲补齐。,使异地副本常态化接近同步状态,压缩故障切换时的数据差距。

jcgu的专栏 175

期货保证金占用变多,怎样找出哪张合约增得最多?

盘中看了两次期货账户,第二次发现保证金占用多了。眼下占用最大的合约很显眼,但它不一定是这段时间增得最多的。如果复盘想知道“先查哪张”,要按前后差额排,不是按第二次的金额排。

weixin_49134609的博客 218

空圈容错・优快云 站点技术架构信任链诊断

本文为基于公开故障现象的黑箱架构推演报告,聚焦“监控健康但用户访问异常”共性问题。提出C/M/V/P四层可达性分析框架,强调V层需满足数据源、方法、环境三异才具仲裁能力。通过R1–R10探针识别架构风险,揭示同源校验、配置共担、降级粗放等隐患。诊断指出:进程存活≠链路通畅,200状态码≠内容正确。配套8问自测清单与∅_safe分级降级方案,推动从“全好/全崩”到“半坏可控”的可观测跃迁。所有推断假说需依赖图谱与压测验证,不构成线上定论。

Liaiyang66的博客 387

FPGA 与加密行业:从算法加速到可信硬件的完整技术图谱

本文系统探讨FPGA与密码学的深度交叉,揭示其在加密加速、区块链基础设施、零知识证明及后量子密码中的关键作用。从底层硬件特性到工程实践,分析对称加密、公钥算法、零知识证明等负载的FPGA加速优势,强调其高能效、低延迟与灵活可重构的特性。结合当前密码学复杂度上升与硬件竞争加剧的趋势,指出FPGA是算法验证与高性能实现的理想载体,为安全计算提供高效硬件支撑。

weixin_49780322的博客 255

想调用证券公司 API 做股票数据分析,Python 应该如何接入行情?

想通过证券公司 API 做股票数据分析,首先需要区分交易接口和行情接口:交易接口负责委托、撤单和账户查询,行情接口负责提供股票价格、成交量等市场数据。对于历史行情研究,真正影响结果可靠性的,不只是能否拿到收盘价,还包括复权方式、交易日期排序、字段类型以及数据完整性。如果只需要历史行情、技术指标和基础选股研究,可以先使用合适的行情数据 API。A:取决于分析目的。A:可以作为研究程序的基础,但还需要补充数据时效性检查、交易日历管理、指标有效性验证、策略回测和风险控制,不能仅凭一个均线条件直接进行实盘决策。

2601_96694965的博客 195
上一篇: 论文解读|EuroSys 2023《GPC: 基于编译器的面向图神经网络稀疏计算优化》
下一篇: GeaFlow任务能力增强:通过API定制流图计算逻辑
TuGraph
博客等级 码龄4年 183粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值