前言
隨著區塊鏈技術的不斷發展和應用落地,大眾逐步加深了對區塊鏈技術的認識。我們都知道,區塊鏈具有可追溯、不可篡改等技術特點,那么鏈上的數據如何查詢、溯源呢?這就是我們今天要分享的主角—區塊鏈瀏覽器。
區塊鏈瀏覽器:是鏈上數據可視化的主要窗口,是提供用戶瀏覽與查詢區塊鏈所有信息的工具。借助這一窗口,如區塊信息、交易信息、賬戶信息等重要的加密數據得以直觀呈現。因此,區塊鏈瀏覽器對于區塊鏈使用者而言至關重要。以目前國外開源區塊鏈項目以太坊為例,其社區開源瀏覽器Etherscan承載大量用戶流量,是分析鏈上行為最便捷的工具。
本文將從區塊鏈瀏覽器研發實操經驗切入,與大家交流如何快速構建一個區塊鏈瀏覽器。
瀏覽器可以呈現什么?
通過分析一些開源瀏覽器,我們總結出區塊鏈瀏覽器展示的典型區塊鏈信息如下幾類:
-區塊高度
-交易數
-交易趨勢
-區塊列表
-最近交易列表等
瀏覽器數據可以直接獲取嗎?
通常,區塊鏈提供必要的鏈SDK信息,用以幫助開發者獲取鏈上區塊和交易數據,但是其提供的接口往往是基礎性的,例如如何獲取區塊高度、獲取某個區塊詳情、獲取某個交易詳情等,這些數據直接對應了頁面上的區塊列表、區塊詳情、交易詳情等基礎數據,無法直接通過鏈SDK獲取瀏覽器所需的的全量信息。
Kannagi Rug Pull地址收到匿名溝通信息,限盜取者48小時退還資金:7月31日消息,鏈上數據顯示,zkSync Era 上 DeFi 項目 Kannagi Finance Rug Pull 地址于約 3 小時前收到匿名溝通信息,具體內容如下:
你好,Kannagi 項目負責人。關于你 rug 事件,我們代表 60 萬美元的國內受害團體與你溝通。
1.你所 rug 的資金是很多人一生的積蓄,毀掉許多家庭,相關的國內受害者已經組織了一個強大和齊心協力的社群。
2.我們已經采集取證了許多 KOL 及知名平臺推廣這個項目的信息及相關人士助查,并且梳理了你過往多個項目操作以及所有關聯錢包的操作痕跡及路徑。
3.我們同時聯系了國內外的安全公司介入追蹤;與相關中心化交易所取得聯系,還有你項目所做的審計公司及相關合作的鏈上平臺都在全力配合調查。
4.目前,我們已經梳理出案件的全部資料,并掌握了你明顯的操作痕跡漏洞。我們社群成員將在全國各地報警立案,屆時這將是一個在全國多地多部門聯合并案處理的集體案件。
5.我們給予你 48 小時的時間聯系,商討退還你不法盜取的資金,否則一旦執法機構接手,將后無退路。如果期限過后無任何回復,我們還將設立 20% 涉案資金的賞金池,獎賞提供線索讓你落網或追回所有資金的舉報者。
6.你真的確信你多年來做的所有操作行為沒有任何的漏洞么?
此前報道,7 月 29 日,zkSync Era 上 DeFi 項目 Kannagi Finance 發生 Rug Pull,截止發稿時 TVL 僅剩 24 美元(昨日為 213 萬美元),其官方推特賬戶已注銷。[2023/7/31 16:08:36]
為此,一個好的區塊瀏覽器是需要支持在本地進行鏈上數據的加工與處理。
美CFTC內部的技術咨詢委員會將在7月討論DeFi、DAO等:金色財經報道,美國商品期貨交易委員會(CFTC)內部的一個技術問題咨詢機構將討論去中心化的金融(DeFi)和最近監管機構對Ooki DAO案件的勝利。CFTC的技術咨詢委員會計劃于7月18日在其華盛頓特區總部舉行會議。委員會的發起人、CFTC專員在周三的聲明中說,“將討論去中心化金融(DeFi)模式,如去中心化自治組織(DAO)和委員會最近的Ooki DAO案件,以及其他DeFi問題。”
Ooki DAO案件開創了一個先例,即其他去中心化自治組織可以作為“個人”對違法行為承擔責任。該委員會還計劃設立三個小組委員會,其中一個專門負責數字資產和區塊鏈技術。[2023/6/29 22:06:52]
首先,通過對不同區塊鏈底層的區塊和交易數據等進行監聽,當鏈上產生新區塊時,監聽系統可通過鏈SDK第一時間獲取該區塊的信息;隨后,系統將相關數據進行緩存入庫,按需設計多種統計邏輯以完成數據的加工統計。因此,區塊鏈瀏覽器頁面上的數據并非直接通過鏈上SDK直接請求獲取,而是源于本地的列表數據和統計數據。
較于通用的直接通過鏈SDK獲取的模式,我們更需要的是一個通過本地緩存區塊數據并且加工鏈上數據的方式來顯著提升前端對區塊鏈瀏覽器數據獲取速度,但對于這一方案讀者可能會產生兩個質疑:
組件是定時獲取鏈上SDK數據的,那就意味著本地數據與鏈上數據存在時差,這會影響使用體驗么?
由于不是鏈上直接獲取,那如何保障本地緩存內的數據真實有效性呢?
3000萬枚MATIC從Polygon Staking地址轉至未知錢包地址:5月12日消息,據Whale Alert監測,北京時間12:58:59,3000萬枚MATIC(價值24946877美元)從Polygon Staking地址轉至未知錢包地址。[2023/5/12 14:59:15]
針對質疑一,顯然這個時差主要源于本地定時獲取鏈上數據的頻率,因此通過控制頻率范圍在合理范圍內,就可以實現極短的延時,基本不會影響用戶使用瀏覽器的性能體驗。而針對質疑二是本方案中研發設計人員需要重點關注并解決的。
如何保障數據真實有效?
實際上,為了確保數據瀏覽器數據的真實性,區塊瀏覽器需要增加數據校驗模塊,即用戶可以通過簡單的接口調用與區塊鏈進行交互,快速驗證數據的真實性。例如,上述校驗模塊中接口主要包括如下功能:
??區塊證明:用于證明特定區塊是否在區塊鏈的賬本數據中存在;
??交易證明:用于證明特定交易或者交易執行結果是否在區塊鏈賬本數據中存在;
??賬戶證明:用于證明特定賬戶數據是否在區塊鏈賬本數據中存在;
因此通過上述分解,我們可以將整個瀏覽器的數據獲取、加工、校驗的流程理解如下:
區塊鏈瀏覽器設計實操
前面已初步介紹了區塊鏈瀏覽器的設計思路以及整體運作流程。下面我們以趣鏈BaaS區塊鏈瀏覽器為例,詳細介紹該區塊瀏覽器的具體設計,如何實現不同區塊鏈的區塊及交易數據采集和存儲。如下所示,整個自研瀏覽器組件整體架構如下:
DeFi借貸平臺Polytrade完成380萬美元種子輪融資:金色財經報道,DeFi借貸平臺Polytrade完成380萬美元種子輪融資,由 Alpha Wave、Matrix Partners、Polygon Ventures 和 CoinSwitch Ventures 領投,其他投資者包括 Singularity Ventures 和 GTM Ventures。[2023/3/30 13:36:05]
自研瀏覽器組件架構圖
為便于大家理解,我們首先對架構圖中的各模塊功能進行簡單描述:
???數據公共處理層:負責數據存儲優化等功能,將在下一篇推文中著重介紹相關的功能設計;
???采集適配層:負責不同區塊鏈數據的采集適配;
???定時服務:負責定時觸發采集和統計邏輯,采集器主要通過趣鏈BaaS的自研鏈驅動功能實現與不同的區塊鏈底層進行交互并且獲取最新的區塊和交易數據。其中:
???■采集模塊:負責定時主動觸發采集邏輯,包括數據處理等功能;
????■統計模塊:
??????1)統計模塊也是定時服務,定時判斷是否有新數據入庫;
??????2)若產生新數據則會觸發統計邏輯,如區塊數、交易數、合約數、合約調用數等指標統計;
??????3)統計數據將直接入庫或者更新已有數據;
現在有了這些介紹,我們就可以將目光聚焦在趣鏈自研瀏覽器組件是如何在一個服務里面獲取不同區塊鏈的數據。首先,我們對其設計了一個抽象采集層,在具體調用時只需傳入趣鏈BaaS自研的鏈驅動即可。
Web3加密社交平臺Calaxy完成2600萬美元融資,NBA球星丁威迪升任執行主席:金色財經報道,Web3加密社交平臺Calaxy宣布已完成2600萬美元融資,本輪融資的聯合領投方為HBAR 基金會和 Animoca Brands,參投方為Polygon。此外,作為公司聯合創始人的NBA達拉斯獨行俠隊后衛丁威迪升任執行主席,另一位聯合創始人、前華爾街投資銀行家 Solo Ceesay 從首席運營官晉升為首席執行官。Calaxy支持創作者和名人用代幣籌集資金,允許粉絲通過視頻消息、在線課程、視頻通話和粉絲俱樂部訂閱與他們互動,該公司曾在2021年7月募集到一筆750萬美元的投資。(sporttechie)[2022/6/7 4:07:14]
例如,以下示例展示了如何獲取最新區塊接口:
//?Collector?collector?definitiontype?Collector?interface?{??//?GetLatestBlock?獲取最新的區塊??GetLatestBlock()?(*Block,?error。
隨后,通過如何實現趣鏈區塊鏈平臺的區塊數據采集代碼來實際演示如何運作,
*自建項目`hpc`,創建目錄
*進入hpc目錄
cd?hpcgo?mod?init?hpctouch?main.go
*成功目錄結構如下
.├──?go.mod└──?main.go
*go.mod引入依賴
module?hpc?go?1.17?require?(????git.hyperchain.cn/blocface/chainsdk?v0.0.1)
*main.go編輯,可關注代碼注釋的補充描述:首先,將自定義實現接口Collector的對象注冊進執行器,引入采集器執行器,執行即可;
*注意:若鏈上沒有區塊,此方法返回&bs.Block{},nil,各種不同的區塊鏈可通過自定義實現方式來達到采集效果;
package?main?import?(????bs?"git.hyperchain.cn/blocface/chainsdk/pkg/collect/base"??????"git.hyperchain.cn/blocface/chainsdk/pkg/collect/collectinter")?func?main()?{????err?:=?collectinter.Register(mockImp{})????if?err?!=?nil?{????????panic(err)????}????collectinter.Execute(。?type?mockImp?struct?{}??func?(m?mockImp)?GetLatestBlock()?(*bs.Block,?error)?{????panic("自定義實現獲取最新區塊"。
*工具包中提供信息對象,如提供節點或者鏈的相關信息
type?Base?struct?{????node?string?????Node?struct?{????????Name?????????????string?????????Type?????????????string?????????Host?????????????string????????Ports????????????string?????????UniqueName???????string?????}??????????????????????????Channel????????string??}
*編譯打包(平臺GOOS=linux架構GOARCH=amd64)
??GOOS=linux?GOARCH=amd64?go?build?-ldflags="-w?-s"?-gcflags="all=-N?-l"?-o?hpc?.
通過上述步驟,我們實現了趣鏈區塊鏈平臺的區塊數據采集,隨后,我們只需在趣鏈自研瀏覽器組件中調用引入相關的客戶端包,根據驅動二進制的路徑新建客戶端即可。
//NewChainClientnewchainclientfuncNewChainClient(tool,channel,cfgRootPathstring,nodebase.Node,opts...ClientOpt)(*ChainClient,error){?abs,err:=filepath.Abs(tool)?iferr!=nil{??returnnil,errors.Wrap(err,"getabsolutepath")?}?marshal,err:=json.Marshal(node)?iferr!=nil{??returnnil,errors.Wrap(err,"marshalnode")?}?c:=&ChainClient{??tool:?????abs,??node:?????string(marshal),??channel:????channel,??configRootPath:cfgRootPath,??timeout:????10*time.Second,?}?for_,opt:=rangeopts{??opt(c)?}?returnc,nil}
調用邏輯獲取最新區塊示例
func?(c?ChainClient)?GetLatestBlock()?(*base.Block,?error)?{??command?:=?fmt.Sprintf("%s?-p?'%s'??-m?GetLatestBlock?",?c.tool,?c.configRootPath)??out,?err?:=?util.NewDefaultCMD(command,?string{},?util.WithTimeout(int(c.timeout.Seconds())),?util.WithForceKill(true),?util.WithErrPrint(false)).Run()??if?err?!=?nil?{????return?nil,?errors.Wrap(err,?"call?GetLatestBlock")??}??out?=?strings.TrimSuffix(out,?"n")??var?b?=?base.Block{}??err?=?deocde(byte(out),?&b)??if?err?!=?nil?{????return?nil,?errors.Wrapf(err,?"decode?resp?",?out)??}??return?&b,?nil}
以下是趣鏈BaaS的區塊鏈瀏覽器前端頁面,只需調取內部接口就可以直接從數據庫中獲取所需的信息,我們從區塊、交易、合約、賬戶等多個維度為用戶提供直觀的鏈上數據呈現,便于用戶更好的洞悉鏈上業務運行全貌。
總結
趣鏈自研瀏覽器組件通過上述模式實現無差異化的調用邏輯,達到對不同區塊鏈底層數據的統一支持,并充分預留了新區塊鏈底層的靈活擴展性。通過上述核心功能模塊設計,基本實現了區塊鏈瀏覽器的最小化產品MVP。
當然,實際在搭建區塊鏈瀏覽器時,還有很多挑戰,最典型的挑戰之一就是如何應對大數據量,相信細心的讀者已經看到前面的架構介紹中提到了數據公共處理層,這一模塊主要就是進行數據存儲相關的優化,保證數據存儲不會隨時間的增加而不斷增加,充分減輕服務器存儲部分的壓力,我們將在后續推文中著重介紹~
來源:金色財經
Tags:區塊鏈AINCHALOC有人靠區塊鏈4天就掙了30萬嗎Chain Estate DAOblockchain安卓XTblock Token
Polygon旗下零知識技術開發商PolygonZero在其社交平臺宣布其零知識驗證系統Plonky2已開源.
1900/1/1 0:00:00NFT的實用表現的是現實世界的價值,它將我們的代幣從「漂亮」的圖片變成有價值和有用的東西。原文標題:《NFT:可增加粉絲粘性的10個NFT實用案例》 撰文:去中心化金融社區 想讓NFT持有者更有.
1900/1/1 0:00:00ShibaInu(SHIB)價格飆升超過30%,預示牛市可能不會太遠。8月14日SHIB價格暴漲超30%柴犬成交量昨日達到700%的峰值;4月12日以來最高SHIB注冊MDIA的延長期限,這意味.
1900/1/1 0:00:00面對新一代互聯網的浪潮,品牌紛紛下場,開始嘗試使用Web3.0的方式進行品牌營銷。同時,數字藏品也已經成為實現品牌創新營銷的新路徑.
1900/1/1 0:00:00基本面很重要,代幣模型僅僅是引擎蓋下的一種助力。原文:《Bankless丨最佳DeFi代幣模型:治理代幣or生產性代幣orveToken?》byLucasCampbell 編譯:Yangz 代幣.
1900/1/1 0:00:00在GameFi興起之后,游戲這一加密世界曾經小眾的賽道正愈發變得火熱起來。當StepN?為首的一系列模式創新席卷加密世界之后,GameFi賽道距離Game已經越來越遠了,而Fi的比重不斷增加.
1900/1/1 0:00:00