在以太坊区块链上执行循环交易的是谁?TuGraph+Kafka提供了零成本的流图解决方案
GeaFlow(中文品牌名TuGraph-Analytics)已正式开源化。大家务必关注!
请不要忘记在GitHub上给我们一个Star?https://github.com/TuGraph-family/tugraph-analytics
请关注我的博客,了解更令人兴奋的内容https://geaflow.github.io/。
提示:本文是由ChatGPT 3.5将中文翻译成日语的。如果有不准确的地方,我们深表歉意。
合著者:ChatGPT 3.5
引言
数据被称为新时代的生产资源。
尽管随着大数据和人工智能等技术的发展,数据的价值越来越受到关注,但光凭个人力量无法获取和分析如此庞大规模的数据。
为了获得财富,必须开辟道路。为了利用新时代的数据建立财富,需要获得易得的工具。如果没有合适的工具,将无法实现大规模的数据收集、清洗、存储、处理和可视化等各个阶段。拥有这样的工具可以更有效地利用数据,推动经济社会的发展,创造更多的价值给人类。

现在,一种由阿里巴巴集团图计算团队开源的超大规模流图处理系统TuGraph受到了图计算领域的关注,它是一种专注于图计算领域的开源数据处理工具。为了体验TuGraph的强大功能,让我们从一个简单的问题开始。
“谁在进行循环交易?”
在以太坊区块链上进行循环交易的是谁?
你会如何回答这个问题?
如果你是一个大数据专家,你可能会立即举手。使用Kafka,使用Flink,如果还不行就使用Spark… 这些系统通常在大规模数据处理时非常耗时,开发效率低下,无法迅速满足用户需求。
每个人都有自己擅长的事情,同时也都有自己的缺点。因此,我们需要寻找新的数据分析工具,提高在大数据领域的工作效率,以便更好地应对日益复杂多样化的数据处理挑战。
要试试新工具吗?那我们来试试GPT吧。
Q: 在以太坊区块链上进行循环交易的人是谁?
批评: 针对这个问题需要进行数据分析,并且需要涉及大量的以太坊交易数据。要确定在以太坊区块链上进行循环交易的人,可以执行以下步骤:
获取以太坊的交易数据,包括交易哈希、发送地址、接收地址、交易类型、交易金额等信息。
清理和处理交易数据,删除无效数据和重复数据等。
使用图计算等技术构建以太坊的交易网络,并识别交易内的循环交易。
进一步分析循环交易的发送地址和接收地址,以识别在以太坊区块链上进行循环交易的人。
需要注意的是,以太坊的区块链具有分散化特性,因此获取和分析交易数据可能存在一定的困难和挑战。
姿势不正确,请再次尝试。
谁在以太坊区块链上进行循环交易?需要进行数据分析才能回答这个问题。
正如明显可见的那样,人工智能(如GPT)在自然语言处理和图像识别等领域取得了巨大进步,但在数据洞察方面仍存在挑战。这是因为数据洞察往往与具体的业务背景和领域知识相关联,而这些人类的经验和智慧很难完全模仿或替代机器。此外,在数据清洗、预处理、特征提取和建模等重要步骤中,人类专家的介入和优化仍然是必要的。
今天,我们可以使用开源的TuGraph和流媒体消息系统Kafka,在以太坊区块链上精确地识别进行循环交易的人,并构建金融级别的实时解决方案。欢迎客户们前来参观。
循環交易是指什么?
让我们来看一个具体的例子吧。


如果能够将交易的首尾连起来并找到一个可以回到起点的循环,那么可以将其视为循环交易。
循環交易通常指的是利用价格差异来获取利润的交易方式,需要经过多个交易步骤。在这个过程中,我们通过在不同的市场或不同的时间进行买入和卖出来获取利润。通过使用循环检测算法,在交易网络图中可以找到潜在的循环交易路径,并通过获取该路径上的账户,可以了解哪些账户有参与循环交易的可能性。
当有新的交易发生时

理解できるように、ループ検出は一度行うだけでは終わりません。それは静的なグラフアルゴリズムではありません。メッセージがリアルタイムに届くたびに、取引ネットワークグラフ内の最新のループが変化し続けます。もし各取引が生成する取引ループに興味がある場合、非常に複雑な問題が生じます。
以太坊是一个基于区块链技术的智能合约平台,交易速度取决于参与者的数量。交易成交速度通常在15秒到1分钟之间,交易吞吐量可以达到每秒几十到几百笔。然而,以太坊拥有庞大的历史交易数据,并且存在相当复杂的“基础结构”。在循环交易的问题上,需要综合分析不仅是新交易,还包括过去的所有交易!
这是为什么即使是像GPT这样强大的模型也无法用一句话回答这个问题的原因。
途图
在每次交易中实时检测循环交易真的可能吗?
实际上,通过使用专业的图计算系统TuGraph,可以在几十行代码中解决该问题,结合Kafka可构建交易监视列表、生成交易网络、实时检测循环交易并向下游发送消息等,快速构建完全金融级的实时解决方案。而且,这些功能全部免费使用~感谢开源!
在TuGraph中创建图计算作业后,您可以通过大约40行代码完成端到端的流程。

下面是代码的说明,请自行获取。
我仅用40行代码创建了一个名为“ethereum_transaction_network”的以太坊交易完整图。我将持续将来自Kafka的实时交易流“table_new_trade”添加到名为“ethereum_transaction_network”的图中。
接下来,每当有新的交易到达时,将触发检查3跳循环交易模式,并将更新的结果保存在Kafka上的外部表”tbl_circular_trade”中。这样一来,就可以轻松地将结果分发到下游组件中。
在这个演示中,我们使用了XBlock-ETH论文中整理的实际以太坊区块数据,通过数字代替以太坊地址来隐藏以太坊地址。也就是说,每个数字代表一个以太坊钱包地址,并且相同的数字代表相同的地址。生成的循环路径结果被连接成字符串形式,以便易于观察。
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的生产者,并生成消息流,持续将交易发送到Kafka。它将在左侧的终端窗口中显示。最新的循环交易检测结果将在右侧的Kafka消费者窗口中以平均1秒的速度显示出来。

当有新的交易日志添加时,右侧的Kafka消费者窗口将实时更新新的循环交易检测结果,从而获得非常迅速的响应。

上述的方法是将开源图计算平台TuGraph和Kafka相结合,快速构建以太坊循环交易检测解决方案的方式。虽然这只是一个小型演示,但可以在实际演示中观察到图计算语法和系统性能的强大。这样一来,普通用户在构建图计算应用时可以大大降低难度和成本。
行动胜过言辞。TuGraph是一个不容忽视的工具。请访问https://github.com/TuGraph-family/tugraph-analytics,亲身体验TuGraph的魅力!同时,我们欢迎为开源项目做出贡献,期待您能贡献知识和代码,推动社区的发展。
参考资料
郑P,郑Z,吴J,戴H-N.“XBlock-ETH: 从以太坊中提取和探索区块链数据”,IEEE开放计算机学会期刊,第1卷,第95-106页,2020年5月,doi: 10.1109/OJCS.2020.2990458.
GeaFlow(品牌名称TuGraph-Analytics)已正式成为开源项目。
谢谢你给我星星!
GitHub链接?https://github.com/TuGraph-family/tugraph-analytics
请关注我们的博客,以获取更加精彩的内容。https://geaflow.github.io/