主頁 > 資料庫 > 誰在以太坊區塊鏈上回圈交易?TuGraph+Kafka的0元流圖解決方案

誰在以太坊區塊鏈上回圈交易?TuGraph+Kafka的0元流圖解決方案

2023-07-01 08:48:13 資料庫

都在說資料已經成為新時代的生產資料,

但隨著大資料和人工智能等技術的發展,即便人們都知道資料的價值日益凸顯,卻無法憑借一己之力獲取和分析如此大規模的資料,

要想富,先修路,要想利用新時代的資料致富,也必須要有趁手的工具,只有合適的工具才能完成大規模資料的采集、清洗、存盤、處理和可視化等各個環節,只有具備這樣的工具,才能更好地利用資料來推動經濟社會發展,并為人類創造更多的價值,

undefined

現如今,免費的,螞蟻集團圖計算團隊開源的超大規模流圖處理系統——TuGraph-Analytics,正成為一款專注于圖計算領域的開源資料處理工具,我們從一個簡單的問題開始,讓你體會TuGraph-Analytics的強大之處,

“誰在以太坊的區塊鏈上進行回圈交易?”

如何回答這個問題?

大資料領域的同學可能會立即舉手,Kafka給我上,Flink給我上,實在不行Spark... 這些系統在處理大規模資料時,作業流程通常非常長,開發效率較低,無法迅速地回應用戶的需求,各有各的長處,各有各的毛病,因此,我們需要尋找全新的資料分析工具,以提高大資料領域的作業效率,并更好地應對日益復雜和多變的資料處理挑戰,

新的工具?那么試試GPT?

Q:誰在以太坊的區塊鏈上進行回圈交易?

GPT:這個問題需要進行資料分析,涉及到大量的以太坊交易資料,如果要確定誰在以太坊的區塊鏈上進行回圈交易,可以通過以下步驟:

獲取以太坊的交易資料,包括交易哈希、發送方地址、接收方地址、交易型別和交易金額等資訊,
對交易資料進行清洗和處理,去掉無效資料和重復資料等,
利用圖計算等技術,構建以太坊交易網路,并對交易網路進行分析,識別出交易中的回圈交易,
進一步分析回圈交易的發送方地址和接收方地址,識別出誰在以太坊的區塊鏈上進行回圈交易,

需要注意的是,由于以太坊區塊鏈的去中心化特性,交易資料的獲取和分析可能存在一定的難度和挑戰,

姿勢不對,再來一次,

Q:誰在以太坊的區塊鏈上進行回圈交易?一句話回答

GPT:無法通過一句話回答,需要進行資料分析,

可見,雖然GPT等人工智能在自然語言處理和影像識別等方面已經取得了顯著進展,但在資料洞察方面仍然存在挑戰,因為資料洞察往往需要結合具體的業務背景和領域知識,而這些人類經驗和智慧難以完全被機器模擬和替代,此外,在資料清洗、資料預處理、特征提取和建模等關鍵步驟上,仍需要人類專家進行干預和優化,

今天,我們使用開源的TuGraph-Analytics與流式訊息系統Kafka,不僅能夠很好回答誰在以太坊的區塊鏈上進行回圈交易,而且能夠搭建秒級實時的金融級解決方案,客官且看----

何為回圈交易?

來看這個例子

undefined

圖中有7個不同顏色的點代表交易賬戶,每個賬戶對應以太坊上的一個錢包地址,一個賬戶轉出到另一個賬戶的程序,表示為圖中有方向的邊,這個圖中共有8筆交易構成一個交易網路,

undefined

將交易頭尾相連,能夠找到回傳起點的回圈,就可以視為回圈交易,

回圈交易通常是指通過多個交易步驟,從而實作利用價格差異來獲取利潤的一種交易方式,其程序包括在不同的市場或不同的時間段內進行買賣行為,從而獲得利潤,在交易網路圖中,可以使用環路檢測演算法來發現潛在的回圈交易路徑,并檢索這條路徑上的賬戶就能夠知道哪些賬戶可能參與了回圈交易,

可是,當一筆新的交易發生時——
undefined

可見,環路檢測并不是一勞永逸的靜態圖演算法,隨著訊息實時不斷到來,交易網路圖中的最新環路不斷發生變化,如果關心每一筆交易產生的交易環路,這將成為一個極其復雜的問題,

以太坊是基于區塊鏈技術的智能合約平臺,其交易速度取決于眾多的參與者,交易成交速度通常在15秒到1分鐘之間,交易吞吐量可以達到每秒數十到數百筆交易,但別忘了,以太坊還有海量的歷史交易資料,相當于存在一個相當復雜的”底圖“,回圈交易問題不僅需要考慮新的交易,還必須綜合分析歷史上所有的交易!

這就是為什么強如GPT也無法一句話回答這個問題的原因,

那么真的能夠在每筆交易發生時實時地檢測回圈交易的產生嗎?

實際上,使用專業的圖計算系統TuGraph-Analytics,這個問題只需要幾十行代碼即可解決,還能夠迅速結合Kafka搭建起交易聽單->交易網路生成->實時回圈交易檢出->給下游發送訊息完整的金融級實時解決方案,更關鍵的是,這一切都是免費的~ 感謝開源!

我們在TuGraph-Analytics新建一個圖計算作業,只需大約40行代碼,即可完成整個端到端流程,
undefined

代碼描述如下,需要自取,

在這短短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視窗中,
undefined

當添加一些新的交易日志時,右側的Kafka Consumer視窗中也實時更新了新的回圈交易檢出結果,回應十分迅速,

截屏2023-06-15 23.48.46的副本.png

以上便是開源圖計算平臺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.

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/556448.html

標籤:大數據

上一篇:干貨|三個維度詳解 Taier 本地除錯原理和實踐

下一篇:返回列表

標籤雲
其他(161957) Python(38266) JavaScript(25519) Java(18286) C(15238) 區塊鏈(8275) C#(7972) AI(7469) 爪哇(7425) MySQL(7278) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5876) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4609) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2438) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1985) HtmlCss(1982) 功能(1967) Web開發(1951) C++(1942) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • 誰在以太坊區塊鏈上回圈交易?TuGraph+Kafka的0元流圖解決方案

    都在說資料已經成為新時代的生產資料。 但隨著大資料和人工智能等技術的發展,即便人們都知道資料的價值日益凸顯,卻無法憑借一己之力獲取和分析如此大規模的資料。 要想富,先修路。要想利用新時代的資料致富,也必須要有趁手的工具。只有合適的工具才能完成大規模資料的采集、清洗、存盤、處理和可視化等各個環節。只有 ......

    uj5u.com 2023-07-01 08:48:13 more
  • 干貨|三個維度詳解 Taier 本地除錯原理和實踐

    在平時和開發者們交流的程序中,發現許多開發朋友尤其是新入門 [Taier](https://github.com/DTStack/Taier) 的開發者,對于本地除錯都有著諸多的不理解和問題。本文就大家平時問的最多的三個問題,服務編譯,配置&本地運行,如何在 Taier 運行 [Flink-stan ......

    uj5u.com 2023-07-01 08:47:41 more
  • Spark使用Python開發和RDD

    # 使用PySpark ## 配置python環境 在所有節點上按照python3,版本必須是python3.6及以上版本 ```Shell yum install -y python3 ``` 修改所有節點的環境變數 ```Shell export JAVA_HOME=/usr/local/jdk ......

    uj5u.com 2023-06-30 08:39:37 more
  • MySQL學習2--資料查詢

    一、基礎資料查詢 select陳述句用于從表中選取資料,結果被存盤在一個結果表中(稱為結果集)。 語法:select * from 表名稱 #查詢指定表中的所有資料 *為模糊匹配所有列 例: mysql> select * from person; + + + + + + + | id | name ......

    uj5u.com 2023-06-30 08:39:32 more
  • 拈花云科基于 Apache DolphinScheduler 在文旅業態下的實踐

    ![file](https://img2023.cnblogs.com/other/2685289/202306/2685289-20230629181452343-550852462.png) 作者|云科NearFar X Lab團隊 左益、周志銀、洪守偉、陳超、武超 ## 一、導讀 無錫拈花云科 ......

    uj5u.com 2023-06-30 08:39:16 more
  • 什么是hive的高級分組聚合,它的用法和注意事項以及性能分析

    hive的高級分組聚合是指在聚合時使用GROUPING SETS、CUBE和ROLLUP的分組聚合。 高級分組聚合在很多資料庫類SQL中都有出現,并非hive獨有,這里只說明hive中的情況。 使用高級分組聚合不僅可以簡化SQL陳述句,而且通常情況下會提升SQL陳述句的性能。 ## 1.Grouping ......

    uj5u.com 2023-06-30 08:39:05 more
  • 高可用只讀,讓RDS for MySQL更穩定

    摘要:業務應用對資料庫的資料請求分寫請求(增刪改)和讀請求(查)。當存在大量讀請求時,為避免讀請求阻塞寫請求,資料庫會提供只讀實體方案。通過主實體+N只讀實體的方式,實作讀寫分離,滿足大量的資料庫讀取需求,增加應用的吞吐量。 業務應用對資料庫的資料請求分寫請求(增刪改)和讀請求(查)。當存在大量讀請 ......

    uj5u.com 2023-06-30 08:38:47 more
  • 構建數字工廠丨資料分析與圖表視圖模型的配置用法

    摘要:本期結合示例,詳細介紹華為云數字工廠平臺的資料分析模型和資料圖表視圖模型的配置用法。 本文分享自華為云社區《數字工廠深入淺出系列(六):資料分析與圖表視圖模型的配置用法》,作者:云起MAE 。 華為云數字工廠平臺基于“資料與業務一體化”理念,提供統一的制造全域資料平臺底座,內置輕量級制造資料分 ......

    uj5u.com 2023-06-30 08:38:06 more
  • 券商數字化創新場景資料中臺實踐

    時下,眾多金融機構在積極推行數字化改革,以適應時代高速革新。為回應市場對資訊即時生效的迫切需求,各家[券商機構](https://www.dtstack.com/solution/securities?src=https://www.cnblogs.com/DTinsight/archive/2023/06/29/szsm)都需要更具競爭力的資訊服務。 本次方案結合券商場景與業務實踐,圍繞客戶實際面臨的 ......

    uj5u.com 2023-06-30 08:37:39 more
  • 數字先鋒|云上醫院長什么樣?寧夏固原中醫醫院帶你一探究竟!

    衛健行業是關乎國家和民生安全的關鍵行業。近年來,云計算、大資料、人工智能等技術不斷發展,并與醫療行業深入融合。同時,相關部門相繼頒發一系列政策,進一步推動醫療行業數字化、智慧化轉型,促進探索健康中國高質量發展道路。 ......

    uj5u.com 2023-06-30 08:37:16 more