都在說數(shù)據(jù)已經(jīng)成為新時(shí)代的生產(chǎn)資料。
但隨著大數(shù)據(jù)和人工智能等技術(shù)的發(fā)展,即便人們都知道數(shù)據(jù)的價(jià)值日益凸顯,卻無法憑借一己之力獲取和分析如此大規(guī)模的數(shù)據(jù)。
要想富,先修路。要想利用新時(shí)代的數(shù)據(jù)致富,也必須要有趁手的工具。只有合適的工具才能完成大規(guī)模數(shù)據(jù)的采集、清洗、存儲(chǔ)、處理和可視化等各個(gè)環(huán)節(jié)。只有具備這樣的工具,才能更好地利用數(shù)據(jù)來推動(dòng)經(jīng)濟(jì)社會(huì)發(fā)展,并為人類創(chuàng)造更多的價(jià)值。
現(xiàn)如今,免費(fèi)的,螞蟻集團(tuán)圖計(jì)算團(tuán)隊(duì)開源的超大規(guī)模流圖處理系統(tǒng)——TuGraph-Analytics。正成為一款專注于圖計(jì)算領(lǐng)域的開源數(shù)據(jù)處理工具。我們從一個(gè)簡單的問題開始,讓你體會(huì)TuGraph-Analytics的強(qiáng)大之處。
“誰在以太坊的區(qū)塊鏈上進(jìn)行循環(huán)交易?”
如何回答這個(gè)問題?
大數(shù)據(jù)領(lǐng)域的同學(xué)可能會(huì)立即舉手,Kafka給我上,F(xiàn)link給我上,實(shí)在不行Spark... 這些系統(tǒng)在處理大規(guī)模數(shù)據(jù)時(shí),工作流程通常非常長,開發(fā)效率較低,無法迅速地響應(yīng)用戶的需求。各有各的長處,各有各的毛病。因此,我們需要尋找全新的數(shù)據(jù)分析工具,以提高大數(shù)據(jù)領(lǐng)域的工作效率,并更好地應(yīng)對(duì)日益復(fù)雜和多變的數(shù)據(jù)處理挑戰(zhàn)。
新的工具?那么試試GPT?
Q:誰在以太坊的區(qū)塊鏈上進(jìn)行循環(huán)交易?
GPT:這個(gè)問題需要進(jìn)行數(shù)據(jù)分析,涉及到大量的以太坊交易數(shù)據(jù)。如果要確定誰在以太坊的區(qū)塊鏈上進(jìn)行循環(huán)交易,可以通過以下步驟:
獲取以太坊的交易數(shù)據(jù),包括交易哈希、發(fā)送方地址、接收方地址、交易類型和交易金額等信息。
對(duì)交易數(shù)據(jù)進(jìn)行清洗和處理,去掉無效數(shù)據(jù)和重復(fù)數(shù)據(jù)等。
利用圖計(jì)算等技術(shù),構(gòu)建以太坊交易網(wǎng)絡(luò),并對(duì)交易網(wǎng)絡(luò)進(jìn)行分析,識(shí)別出交易中的循環(huán)交易。
進(jìn)一步分析循環(huán)交易的發(fā)送方地址和接收方地址,識(shí)別出誰在以太坊的區(qū)塊鏈上進(jìn)行循環(huán)交易。
需要注意的是,由于以太坊區(qū)塊鏈的去中心化特性,交易數(shù)據(jù)的獲取和分析可能存在一定的難度和挑戰(zhàn)。
姿勢不對(duì),再來一次。
Q:誰在以太坊的區(qū)塊鏈上進(jìn)行循環(huán)交易?一句話回答
GPT:無法通過一句話回答,需要進(jìn)行數(shù)據(jù)分析。
可見,雖然GPT等人工智能在自然語言處理和圖像識(shí)別等方面已經(jīng)取得了顯著進(jìn)展,但在數(shù)據(jù)洞察方面仍然存在挑戰(zhàn)。因?yàn)閿?shù)據(jù)洞察往往需要結(jié)合具體的業(yè)務(wù)背景和領(lǐng)域知識(shí),而這些人類經(jīng)驗(yàn)和智慧難以完全被機(jī)器模擬和替代。此外,在數(shù)據(jù)清洗、數(shù)據(jù)預(yù)處理、特征提取和建模等關(guān)鍵步驟上,仍需要人類專家進(jìn)行干預(yù)和優(yōu)化。
今天,我們使用開源的TuGraph-Analytics與流式消息系統(tǒng)Kafka,不僅能夠很好回答誰在以太坊的區(qū)塊鏈上進(jìn)行循環(huán)交易,而且能夠搭建秒級(jí)實(shí)時(shí)的金融級(jí)解決方案,客官且看----
何為循環(huán)交易?
來看這個(gè)例子
圖中有7個(gè)不同顏色的點(diǎn)代表交易賬戶,每個(gè)賬戶對(duì)應(yīng)以太坊上的一個(gè)錢包地址。一個(gè)賬戶轉(zhuǎn)出到另一個(gè)賬戶的過程,表示為圖中有方向的邊,這個(gè)圖中共有8筆交易構(gòu)成一個(gè)交易網(wǎng)絡(luò)。
將交易頭尾相連,能夠找到返回起點(diǎn)的循環(huán),就可以視為循環(huán)交易。
循環(huán)交易通常是指通過多個(gè)交易步驟,從而實(shí)現(xiàn)利用價(jià)格差異來獲取利潤的一種交易方式。其過程包括在不同的市場或不同的時(shí)間段內(nèi)進(jìn)行買賣行為,從而獲得利潤。在交易網(wǎng)絡(luò)圖中,可以使用環(huán)路檢測算法來發(fā)現(xiàn)潛在的循環(huán)交易路徑,并檢索這條路徑上的賬戶就能夠知道哪些賬戶可能參與了循環(huán)交易。
可是,當(dāng)一筆新的交易發(fā)生時(shí)——
可見,環(huán)路檢測并不是一勞永逸的靜態(tài)圖算法。隨著消息實(shí)時(shí)不斷到來,交易網(wǎng)絡(luò)圖中的最新環(huán)路不斷發(fā)生變化。如果關(guān)心每一筆交易產(chǎn)生的交易環(huán)路,這將成為一個(gè)極其復(fù)雜的問題。
以太坊是基于區(qū)塊鏈技術(shù)的智能合約平臺(tái),其交易速度取決于眾多的參與者。交易成交速度通常在15秒到1分鐘之間,交易吞吐量可以達(dá)到每秒數(shù)十到數(shù)百筆交易。但別忘了,以太坊還有海量的歷史交易數(shù)據(jù),相當(dāng)于存在一個(gè)相當(dāng)復(fù)雜的”底圖“,循環(huán)交易問題不僅需要考慮新的交易,還必須綜合分析歷史上所有的交易!
這就是為什么強(qiáng)如GPT也無法一句話回答這個(gè)問題的原因。
那么真的能夠在每筆交易發(fā)生時(shí)實(shí)時(shí)地檢測循環(huán)交易的產(chǎn)生嗎?
實(shí)際上,使用專業(yè)的圖計(jì)算系統(tǒng)TuGraph-Analytics,這個(gè)問題只需要幾十行代碼即可解決,還能夠迅速結(jié)合Kafka搭建起交易聽單->交易網(wǎng)絡(luò)生成->實(shí)時(shí)循環(huán)交易檢出->給下游發(fā)送消息完整的金融級(jí)實(shí)時(shí)解決方案。更關(guān)鍵的是,這一切都是免費(fèi)的~ 感謝開源!
我們?cè)赥uGraph-Analytics新建一個(gè)圖計(jì)算作業(yè),只需大約40行代碼,即可完成整個(gè)端到端流程。
代碼描述如下,需要自取。
在這短短40行中,我們創(chuàng)建了以太坊交易的整個(gè)底圖,命名為ethereum_transaction_network。把來自Kafka的實(shí)時(shí)交易流table_new_trade不斷添加到命名為ethereum_transaction_network的圖中。
接下來,每當(dāng)有新的交易到達(dá)的時(shí)刻,都將觸發(fā)一次3跳循環(huán)交易模式的檢查,把更新的結(jié)果存入位于Kafka的外部表tbl_circular_trade,可以很方便地分發(fā)給下游組件。
實(shí)時(shí)交易數(shù)據(jù)我們采用了XBlock-ETH: Extracting and exploring blockchain data from Ethereum這篇論文整理的真實(shí)的以太坊區(qū)塊數(shù)據(jù),在這個(gè)Demo中把以太坊地址隱去,以一個(gè)數(shù)字替代,即每個(gè)數(shù)字代表以太坊的一個(gè)錢包地址,相同的數(shù)字表示相同的地址。生成的循環(huán)路徑結(jié)果我們拼接成一個(gè)字符串,方便觀察。
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監(jiān)聽最新的交易
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以輸出檢出的循環(huán)交易結(jié)果
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'
);
-- 使用以太坊交易圖進(jìn)行實(shí)時(shí)查詢
USE GRAPH ethereum_transaction_network;
-- 查詢3跳循環(huán)交易模式存入位于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
;
實(shí)機(jī)演示!
打開一個(gè)Kafka Producer,產(chǎn)生消息流,將交易不斷發(fā)送給Kafka,如左側(cè)終端窗口所示。平均1秒左右,最新的圖中循環(huán)交易檢出結(jié)果就打印在右側(cè)的Kafka Consumer窗口中。
當(dāng)添加一些新的交易日志時(shí),右側(cè)的Kafka Consumer窗口中也實(shí)時(shí)更新了新的循環(huán)交易檢出結(jié)果,響應(yīng)十分迅速。
以上便是開源圖計(jì)算平臺(tái)TuGraph Analytics結(jié)合Kafka,快速搭建的以太坊循環(huán)交易檢出解決方案。雖然這只是一個(gè)小小的demo,但實(shí)機(jī)演示中強(qiáng)大的圖計(jì)算語法和系統(tǒng)性能可見一斑,大大較低了我們普通人搭建圖計(jì)算應(yīng)用的難度和成本。
說多不如現(xiàn)在開始行動(dòng),TuGraph Analytics是你不容錯(cuò)過的利器?,F(xiàn)在就趕快訪問https://github.com/TuGraph-family/tugraph-analytics,親自體驗(yàn)TuGraph Analytics的魅力吧!此外,我們歡迎各位參與到開源貢獻(xiàn)中來,為社區(qū)貢獻(xiàn)自己的智慧和代碼,共同促進(jìn)國產(chǎn)圖計(jì)算系統(tǒng)的發(fā)展。文章來源:http://www.zghlxwxcb.cn/news/detail-511351.html
[參考文獻(xiàn)]
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.文章來源地址http://www.zghlxwxcb.cn/news/detail-511351.html
到了這里,關(guān)于誰在以太坊區(qū)塊鏈上循環(huán)交易?TuGraph+Kafka的0元流圖解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!