如何設(shè)計(jì)一個(gè)完備的區(qū)塊鏈瀏覽器
編輯導(dǎo)語:區(qū)塊鏈瀏覽器,是一種搜索工具,也是一個(gè)網(wǎng)站,專門為用戶提供瀏覽和查詢區(qū)塊鏈上信息。因?yàn)閰^(qū)塊鏈公開透明的特質(zhì),它需要一個(gè)媒介讓用戶看到鏈上的情況,區(qū)塊鏈瀏覽器就是這個(gè)媒介。在區(qū)塊鏈瀏覽器中,只需要輸入某筆交易的ID等等,即可查詢它們的詳細(xì)信息。今天,本文作者就分享了如何設(shè)計(jì)一個(gè)完備的區(qū)塊鏈瀏覽器。
最近在跟進(jìn)一個(gè)區(qū)塊鏈項(xiàng)目,其中涉及到了區(qū)塊鏈瀏覽器的部分,就調(diào)研整理了一下應(yīng)該如何設(shè)計(jì)一個(gè)區(qū)塊鏈瀏覽器。
一、什么是區(qū)塊鏈瀏覽器
在聊到這個(gè)項(xiàng)目需要做一個(gè)「區(qū)塊鏈瀏覽器」的時(shí)候,一個(gè)小哥很嚴(yán)肅的對我說:要搞一個(gè)瀏覽器?
其實(shí),區(qū)塊鏈瀏覽器和傳統(tǒng)的 IE、Firefox、Chrome、Safari 還是有點(diǎn)不同的,我更愿意將其定義為區(qū)塊鏈網(wǎng)絡(luò)上的數(shù)據(jù)可視化工具。
區(qū)塊鏈作為一種數(shù)據(jù)的存儲和處理方式,本身并不是以可視化的形式存在,通過可視化的方式來為方便用戶獲取區(qū)塊鏈上數(shù)據(jù)信息的一種工具,目前大多是以 web 形式存在。
用戶不需要了解區(qū)塊鏈的底層技術(shù),通過web頁面,直接在區(qū)塊鏈瀏覽器上查看該區(qū)塊鏈上的節(jié)點(diǎn)、區(qū)塊和交易信息,不需要通過接口查看日志的方式去查詢數(shù)據(jù)。
目前看來,區(qū)塊鏈瀏覽器是一個(gè)區(qū)塊鏈項(xiàng)目必不可少的基礎(chǔ)設(shè)施,一個(gè)產(chǎn)品經(jīng)理在設(shè)計(jì)完整的區(qū)塊鏈產(chǎn)品時(shí)必然不能繞過區(qū)塊鏈瀏覽器這一環(huán)。
二、區(qū)塊鏈瀏覽器都應(yīng)該包括什么
在這里,我們要首先明確一點(diǎn),不同區(qū)塊鏈項(xiàng)目的區(qū)塊鏈瀏覽器都不是完全一致的,一般都會根據(jù)區(qū)塊鏈底層技術(shù)選項(xiàng)和項(xiàng)目需求進(jìn)行調(diào)整,不過拋棄繁雜的表面,我們還是可以總結(jié)出一些核心要素的。
我主要調(diào)研了以下幾個(gè)區(qū)塊鏈瀏覽器:
- 以太坊上的Etherscan[1]
- HyperLedger Fabric Blockchain-Explorer (超級賬本的區(qū)塊鏈瀏覽器項(xiàng)目)[2]
- FISCO-BCOS[3]
- 螞蟻區(qū)塊鏈[4]
- 布比區(qū)塊鏈瀏覽器[5]
認(rèn)真分析下,它們都包含了以下元素:
1. 鏈概覽(Chain)信息
一般是這條區(qū)塊鏈的總體性概述,用以描述該區(qū)塊鏈的整體運(yùn)行結(jié)構(gòu),一般包括當(dāng)前的當(dāng)前區(qū)塊高度、交易總量、節(jié)點(diǎn)概況、最新(若干條)的出塊信息、最新(若干條)的交易信息等。
一般都在首頁展示,放上幾個(gè)比較有代表性區(qū)塊鏈瀏覽器首頁截圖:
以太坊上的 Etherscan:
HyperLedger Fabric Blockchain-Explorer:
FISCO-BCOS 瀏覽器:
布比區(qū)塊鏈瀏覽器:
2. 區(qū)塊(Block)信息
區(qū)塊鏈?zhǔn)怯梢粋€(gè)個(gè)區(qū)塊組成的,區(qū)塊類似于 MySQL 中的記錄,每次向鏈上寫入數(shù)據(jù),就是在創(chuàng)建一個(gè)區(qū)塊。
區(qū)塊信息的展示是根據(jù)區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu)決定的,不同的區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu)都是不同的,不過一般都可以分為區(qū)塊頭(Head)以及區(qū)塊體(Body)。
- 區(qū)塊頭一般包含當(dāng)前區(qū)塊的特征值,比如生成時(shí)間、實(shí)際數(shù)據(jù)(即區(qū)塊體)的哈希、上一個(gè)區(qū)塊的哈希等等;
- 區(qū)塊體一般包含本區(qū)塊所包含的實(shí)際交易信息。這里要注意的是受限制與區(qū)塊鏈處理能力,一般交易會定期打包上鏈,而不是每一條交易都上鏈。
在區(qū)塊鏈瀏覽器中,區(qū)塊信息展示一般包括區(qū)塊列表和單一區(qū)塊的詳情。
via:布比區(qū)塊鏈瀏覽器的區(qū)塊信息
via:Etherscan 瀏覽器的區(qū)塊信息
via:阿里云 Baas 平臺 HyperLedger Fabric 瀏覽器的區(qū)塊信息
3. 交易(Transaction)信息
在區(qū)塊鏈里,Transaction 代表的交易,單指的是轉(zhuǎn)賬交易。主要包含交易時(shí)間、所屬區(qū)塊、交易狀態(tài)、交易費(fèi)用、發(fā)起賬戶、目標(biāo)賬戶等信息,還有的會包括背書信息、鏈碼等。
via:布比區(qū)塊鏈瀏覽器的區(qū)塊信息
via:阿里云 Baas 平臺 HyperLedger Fabric 瀏覽器的區(qū)塊信息
via:FISCO-BCOS 瀏覽器
4. 智能合約(Contract)信息
在具備圖靈完備的區(qū)塊鏈上,還有一種交易——基于智能合約(Contract)的交易,本質(zhì)上是一種特殊的交易,但是其內(nèi)容要比交易(Transaction)復(fù)雜的多。
合約信息的展示主要包括合約的名字、合約所用語言的版本以及代碼內(nèi)容等。不過就我調(diào)研的結(jié)果來看,這幾個(gè)區(qū)塊鏈瀏覽器上除了 Etherscan 外都沒有公開該信息。
以 Etherscan 上的穩(wěn)定幣 USDT(炒過幣的小伙伴一定都知道這個(gè)號稱「和美元掛鉤」的穩(wěn)定幣項(xiàng)目,它就是運(yùn)行在以太坊上基于智能合約實(shí)現(xiàn)的 ERC20 Token 之一,還有當(dāng)年的 EOS ,別說了都是淚……)
我們進(jìn)入 USDT 項(xiàng)目的頁面,會看到 Profile Summary 下有一個(gè) Contract。
點(diǎn)擊進(jìn)入,就能看到本 Contract 的一些信息,其中還包括了 USDT 項(xiàng)目使用 Solidity 語言編寫的智能合約版本、源碼、該合約的 ABI[6]等信息。
5. 地址(Address)信息
Address 的存在主要是給用戶和普通互聯(lián)網(wǎng)產(chǎn)品類似的「賬戶」體驗(yàn),通過匯集該地址/賬戶項(xiàng)下的所有交易進(jìn)行展示,一般包括基本信息和交易信息。
via:布比區(qū)塊鏈瀏覽器的區(qū)塊信息
via:Etherscan 瀏覽器的區(qū)塊信息
區(qū)塊鏈瀏覽器的基本架構(gòu)基本就介紹完了,不過在實(shí)際設(shè)計(jì)中還需要我們根據(jù)自身需求做出取舍、或根據(jù)區(qū)塊鏈數(shù)據(jù)進(jìn)行衍生加工和挖掘。
瀏覽器是給人來用的,不是把所有的數(shù)據(jù)無規(guī)則的堆積上去、內(nèi)容越多越好,而是能夠最快且盡量完整的給到使用者想找的信息才是產(chǎn)品設(shè)計(jì)的目標(biāo)。
References:
[1]以太坊上的Etherscan: https://etherscan.io/
[2]HyperLedger Fabric Blockchain-Explorer (超級賬本的區(qū)塊鏈瀏覽器項(xiàng)目): https://github.com/hyperledger/blockchain-explorer
[3]FISCO-BCOS: https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/browser/browser.html
[4]螞蟻區(qū)塊鏈: https://antchain.antgroup.com/
[5]布比區(qū)塊鏈瀏覽器: https://explorer.bubi.cn/
[6]ABI: 全稱 Application Binary Interface,字面意思是應(yīng)用程序二進(jìn)制接口,可以通俗的理解為合約的接口說明,當(dāng)合約被編譯后,它對應(yīng)的abi也就確定了。ABI有點(diǎn)類似于程序中的接口文檔,描述了字段名稱、字段類型、方法名稱、參數(shù)名稱、參數(shù)類型、方法返回值類型等
#專欄作家#
張小璋,公眾號:張小璋碎碎念(ID:SylvainZhang),人人都是產(chǎn)品經(jīng)理專欄作家。野蠻生長的產(chǎn)品經(jīng)理,專注于互聯(lián)網(wǎng)金融領(lǐng)域。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash,基于 CC0 協(xié)議
- 目前還沒評論,等你發(fā)揮!