去中心化應用程序(Dapp)被廣泛認為是可以為像銀行業(Di-Fi)和游戲業等領域帶來顛覆性創新的。但是,即使是最有創新性的解決方案,如果不能滿足消費者的期望,也不會被認可。
消費者需要的是流暢和成熟的用戶體驗,而實現這個目標對以太坊的 Dapp 開發者來說又是一個重大挑戰。
本文將概述典型的 Dapp 架構,并指出當今標準以太坊堆棧的一些固有局限性,正是這些局限性導致開發者難以打造出能有說服力用戶體驗。接著會介紹下以太坊基礎設施領域中的一些能幫助開發者克服這些挑戰的創新。
經典的以太坊 Dapp 架構
一般來說,以太坊上的 Dapp 包含三個主要部分:
智能合約,通常以 Solidity 編寫,使用 Truffle Suite 等框架構建并部署在以太坊區塊鏈上。
前端代碼,用 Java 編寫的。
后端——一般是用標準的以太坊區塊鏈節點。前端與后端的通信一般是使用節點提供的 JSON-RPC 或 GraphQL API。
金色財經行情播報丨BTC晚間小幅震蕩整理 回調區間被逐步收復:據火幣行情顯示,比特幣昨日晚間持續在11,550USDT一線橫盤整理,早間突破了11,600USDT。比特幣近期在高位出現了幾次波動整理,逐步釋放了前期快速拉升帶來的短期回調壓力。昨夜黃金市場仍然出現了一些波動,但是比特幣市場并沒有出現很相關的行情,市場內的短期避險資金可能已經離場,中長期上市趨勢仍在持續。短期內市場驅動力可能會逐步回歸加密數字市場本身的熱點,因此需要關注BTC和ETH可能形成的關聯走勢。短期內比特幣震蕩區間在11,200-11,700USDT。截至10:00,主流幣的具體表現如下:[2020/8/13]
還有各種促進前端與 Eth 節點的通信的庫,其中最受歡迎的是 web3.js 和 ethers.js。也還有許多其他語言(Java,Python,Rust…)的 web3 庫。
自建后端節點
在以太坊的早期,開發者必須運營自己的以太坊節點。Dapp 發布了以后,他們還必須運營生產級別的節點(或節點集群)。運營區塊鏈節點這項工作繁重,也會對開發者的效率造成負擔。
節點服務(NaaS)提供商
上述的這個挑戰促成了一些例如 Infura,以及相對新的 Nodesmith、Quiknode、Blockdaemon、Ethernode、Chainstack、Alchemy、CloudFlare 等公司的 “節點服務” 平臺的興起。
金色晚報 | 4月17日晚間重要動態一覽:12:00-21:00關鍵詞:數字人民幣、外匯局、Libra、芝商所、Bakkt
1. 央行數字貨幣研究所:網傳DC/EP信息為測試內容并不意味數字人民幣正式落地發行。
2. 外匯局:跨境金融區塊鏈服務平臺完成應收賬款融資放款金額227億美元。
3. 中國銀行前副行長:Libra注定要做出重大調整 但實際運用空間和價值依然存疑。
4. 數據:芝商所比特幣期貨未平倉合約增長70%,機構開始重返市場。
5. 解放日報:上海已經成為國內區塊鏈技術落地最豐富的地區之一。
6. 觀點:美國人正在通過購買比特幣將政府刺激支票發揮作用。
7. 數據:目前約有30億美元穩定幣存儲在交易平臺內。
8. Bakkt前CEO被任命為白宮重啟經濟特別工作組成員。
9. OKChain首批生態伙伴公布:30家知名企業,覆蓋5大領域。[2020/4/17]
這些平臺為開發者提供了基于云端的以太坊節點,從而節省了開發者運營節點的精力。用于開發和生產的解決方案。這些平臺可為開發者分擔基層操作系統和節點軟件本身的系統管理,例如補丁和更新。
以太坊節點的固有局限性
即使節點服務能成功地替代開發者擔任系統管理員的職責,它無法幫助開發者實現的用戶體驗去構建更好的 Dapp,這是因為來自節點服務的架構以及以太坊節點支持的 JSON-RPC 和 GraphQL 接口的固有局限性。
金色相對論丨火幣錢包:“312”大跌以來 用戶數量和主流資產數量不降反增:在今日舉行的金色相對論中,火幣集團副總裁、火幣錢包CEO Will Huang表示,“312”大跌行情至今,火幣錢包法幣本位的資產額度則出現跟大行情一致的下滑。但在用戶數量和主流資產的數量方面反而出現不同程度的增加,尤其像XRP、ETC資產數量將近翻倍,BTC、BCH、BSV、ETH、EOS等一些市值排名靠前的幣種數量也都有明顯提升。
Will Huang認為,在暴跌行情中,大部分礦工使用高杠桿服務的資產均被不同程度的強平,因此高杠桿下的資產安全尤為重要。火幣錢包在安全方面始終遵循“穩”字當頭,相對保守的策略在暴跌中獲得了部分高凈值用戶的更大信任,特別是礦工朋友的認可。[2020/4/7]
主要的局限性包括:
1、觀測到的 state 信息不一致
為了擴展到單個節點的容量之上同時提供更高的可靠性,作為服務平臺的節點是通過負載平衡器提供對節點池的訪問的。
由于這些節點中是都作為以太坊網絡中的對等節點自主運行的,因此當信息在通過網絡傳播的某一個時刻,不同的節點可能處于不同的區塊高度上,甚至處于不同的分叉上。這意味著 Dapp 可能收到區塊鏈狀態的信息是不一致的,因為它的請求獲得的結果是由負載均衡器背后的不同節點提供的。
節點服務平臺通常試圖通過負載平衡器上的會話粘性來解決此問題,總是會去嘗試將指定前端的查詢發送到同一個后端節點,但是這種方法在多種情況下會失敗:
金色相對論 | 陳昊芝:5G、云游戲、區塊鏈及數字貨幣技術的結合將推動游戲產業升級:在本期金色相對論中,針對“區塊鏈游戲”Cocos-BCX發起人陳昊芝發言指出:從根本原因來說,區塊鏈游戲還是技術和產品形式沒有完成自己的沉淀。我們可以暢想一下,5G、云游戲、區塊鏈及數字貨幣技術的結合,會帶來游戲產業的整體升級與進化。2025年我們預計游戲市場僅在中國新增規模就有2500億人民幣。我們相信那個時候多數游戲已經集成了區塊鏈技術和運營手段。[2020/2/13]
當前端產生的請求多于單個后端節點能負擔的處理量時;
當網絡問題導致前端與后端斷開連接時,而且必須重新連接;
多個節點服務平臺會將不同類型的前端請求(例如,發送交易或搜索鏈歷史記錄)路由到針對該查詢類型優化的不同后端節點組。
那么由于前端經常訪問多個后端節點,而這些后端節點獲取的區塊鏈狀態與彼此不一致,因此 Dapp 很難處理鏈重組。向后追溯鏈歷史的時候,Dapp 可能突然發現它想找的父區塊不存在了(原因是它現在正在與在不同分叉上的另一個節點交互)。那么 Dapp 開發者就不得不去專門寫代碼來解決這個問題(方法通常是通過反復地重連,直到它找到一個節點)。這樣給 Dapp 增加了不必要的復雜性,并且可能導致呈現給用戶的信息有出入。
2、在區塊鏈上搜索信息很慢、有局限性
獨家 | 金色財經2月11日挖礦收益播報:金色財經報道,據印比特數據顯示,按照BTC參考價格68100元、電價0.38元/kWh計算,當前在售主流BTC礦機的市場價格及回本周期為:神馬M20S-68T(二手機11560元,246天回本)、芯動T3+-57T(全新現貨9300元,287天回本)、阿瓦隆1066-50T(全新現貨6300元,231天回本)、螞蟻T17e-50T(準現貨7100元,227天回本)。[2020/2/11]
Dapp 搜索交易或鏈上歷史的能力受限,因為標準以太坊節點不適合支持精確搜索或執行實時數據的篩選式監聽。想要以高性能的方式進行操作,我們需要對數百萬個區塊和交易做大量的索引,但是:
以太坊節點僅索引交易執行發出的日志中的某些字段(要索引的字段必須在部署合約時由開發者標記出來)
以太坊節點不索引內部交易(當智能合約調用另一合約的方法時發生)的數據
開發者不愿意添加額外的索引字段,因為每多一個索引字段每個交易的成本都會相對增加,會給合約的用戶帶來額外的費用
以太坊節點使用 Bloom 過濾器執行搜索,因此它始終是模糊搜索,并且會產生偽陽性的匹配。精確匹配需要前端進行額外的處理,前端必須獲取模糊匹配的整個區塊或交易,對其再次檢索而找到精確匹配的結果。這不僅需要開發者的精力,而且浪費了前端和節點之間的帶寬
可用的搜索語法非常有限——僅支持基本的選擇以及簡單的替換
獲取搜索結果的速度很慢——在大范圍的區塊中執行搜索可能需要幾個小時
JSON-RPC 非常浪費帶寬——返回的數據遠遠超出你所真正所需。GraphQL 接口使用的帶寬較少,但不提供串流傳輸功能(前端必須進行輪詢更新)
3、缺乏原子性
在大多數現代環境中,例如關系數據庫,交易一般是原子操作,但在以太坊(或其他區塊鏈)上不是。每個交易都會經過一系列狀態的轉換,在這個過程中可能遇到多種問題或失敗。Dapp 必須調用多個 API,查詢許多不同的數據源(區塊、mempool、網絡狀態)以便跟蹤交易的生命周期,直至其完成。
同樣,這個負擔就落在了前端代碼上,通過重復輪詢來弄清楚具體發生了什么,而 Dapp 的用戶會因為 Dapp 執行所有這些額外的工作而經歷延遲和需要刷新。
4、節點是被動的
以太坊節點是被動的,這意味著它們無法生成事件或回調和調用 Webhooks。所有操作必須由前端來啟動,而前端還必須輪詢節點以獲得更新的信息。以太坊節點的事件串流讀取功能太有限,無法滿足大多數 Dapp 的需求,并且僅在 JSON-RPC 接口中可用,在 GraphQL 接口上不可用。
重新思考 Dapp 的基礎架構
dfuse 提供的是一個更高級別的區塊鏈 API 的平臺,與區塊鏈節點提供的原生 API 相比,它們可以更輕松地完成更多的工作。是為了賦予 Dapp 開發者所需的功能,使其能夠通過快速、流暢的界面構建現代區塊鏈應用程序,從而提供出色的用戶體驗的基礎上而設計的。
希望能通過平臺,解決上述所有限制,打破傳統以太坊節點的局限性。
1、有一致性的視圖
dfuse 是一個集成的超大規模數據平臺,而不是在負載均衡器上的多個以太坊節點合集。dfuse 平臺在所有連接上、所有時間點上提供鏈的 state 信息。要么是看到一個區塊(同時偵測到鏈的分叉和重組),要么根本不去報告該區塊(在區塊經歷迅速重組并傳播不遠的情況下)。
這樣 Dapp 永遠不會面對一個不一致的鏈狀態視圖,并且可以專注在它的主要功能上,不是去忙著驗證區塊鏈的細節。
2、高速、細粒化的搜索
使 Dapp 開發者能夠以極細化的顆粒度、非凡的速度和效率來搜索區塊鏈的歷史記錄,還能通過GraphQL、gRPC 和 Websocket 界面實現實時篩選,串流讀取。
完全索引所有的 Log 字段——每個交易在 Log 中發出的所有數據都直接適用于高精度搜索。
完全索引所有內部交易(發送者、接收者、值、方法、輸入參數),從而在整個調用的樹型結構中全面跟蹤合約的操作
索引不會給你的用戶帶來任何額外的 gas 費用——dfuse 的索引是 dfuse 平臺的一項集成功能,不會增加合約執行的資源成本
搜索找到的是完全匹配的結果,而不是模糊搜索的結果。無需編寫額外的前端代碼來重復檢驗搜索結果,也不用浪費帶寬去批量獲取不需要的數據
提供了一種結構化的查詢語言,類似于 Kibana 或 GitHub 的查詢語言,具有完整的 boolean 操作和直接深入你想找的具體交易或命令的能力
提供出色的性能——可以在不到一秒鐘的時間,按照指定的搜索條件,搜索全鏈歷史記錄,找到一組完全匹配的項
通過 GraphQL 能提供簡潔的響應,但又不犧牲串流功能,兩全其美——我們的 GraphQL 界面提供了完整的實時過濾搜索,可為用戶有效地提供動態更新
無論以太坊網絡上的流量如何,性能都是保持一致的
3、原子操作
提供了一個串流讀取端點,該端點了解交易可能進入的所有復雜狀態,并在其滿足最終性時通知你。無需去費力地通過重復輪詢或檢查多個數據源去跟蹤交易的狀態,你只需要把交易推送上去并保持連接即可接收實時狀態更新,從而也可以向你的用戶提供交易的實時狀態。
4、有主動性的后端
一個好的平臺會為您提供了一個可以啟動事件的主動后端。比如,可以根據你指定的精確標準(通過上述的搜索以及其他功能)調用你所選擇的 lambda 函數(或云函數)。這讓 Dapp 實現了異步的體系結構,數據更新可以通過多個通信渠道流暢、實時地發布給用戶。
5、一個為尖端 Dapp 打造的現代平臺
dfuse 為你的 Dapp 提供了一個現代化的基礎架構層,即:
快速
可擴展
提供對區塊鏈事件的高精度,細粒化的實時訪問
支持主動的 Webhook 形式的回調
支持原子操作
具有業內最高的可靠性
所以,在以太坊上開發 Dapp遇到以上問題時,可以嘗試用不同的工具解決問題,只有在經歷了產品打磨和用戶培養后,才能促使更多精致、實用、成熟的 Dapps 面世。
專家簡介 劉盟先生負責領導Forrester中國地區金融領域數字化策略研究。他精通區塊鏈、金融機構數字化轉型戰略、新興科技賦能傳統金融行業的發展趨勢以及最新案例,主要研究方向為:金融科技對金融行.
1900/1/1 0:00:00金色財經 區塊鏈1月3日訊 過去的五年,其實可以算作是比特幣衍生品的測試期,這段時期應該從2014年BitMEX退出衍生品市場開始算起.
1900/1/1 0:00:002019年發生了十二件重要的加密貨幣交易所黑客事件。其中,有11個黑客事件導致了加密貨幣被盜,而其中一個僅涉及交易所用戶數據被盜.
1900/1/1 0:00:00金色財經近期推出Hardcore欄目,為讀者提供熱門項目介紹或者深度解讀。以太坊上的應用程序管理財務價值,使安全性變得絕對重要。作為一種新興的、實驗性的技術,智能合約當然也受到了相當多的攻擊.
1900/1/1 0:00:0012月30日,在2019年新經濟年會上,同濟大學區塊鏈研究院院長馬小峰分享了對“區塊鏈創新模式與應用案例”的思考,他認為,基于解決數據隱私保護等痛點,區塊鏈將成為數字經濟的基礎設施.
1900/1/1 0:00:00作為某全國知名醫院的小型醫療器械供應商,幾年前很難想象,以區塊鏈技術為依托現在可以憑著真實的業務流和資金流數據,既不需要抵押也不需要擔保,更不需要醫院確權,就能直接從金融機構拿到貸款了.
1900/1/1 0:00:00