近日,BCH社區(qū)開發(fā)商Bchd發(fā)布了一款用go語言編寫的可替代BCH全節(jié)點的gRPC API。據(jù)開發(fā)者介紹稱,這是一個具備高性能且可靠的服務(wù)器,它的出
近日,BCH社區(qū)開發(fā)商Bchd發(fā)布了一款用go語言編寫的可替代BCH全節(jié)點的gRPC API。據(jù)開發(fā)者介紹稱,這是一個具備高性能且可靠的服務(wù)器,它的出現(xiàn)會使bchd成為比特幣現(xiàn)金生態(tài)系統(tǒng)中最頂級的索引區(qū)塊鏈服務(wù)器之一。
gRPC開發(fā)背景
大多數(shù)的完整節(jié)點,比如Bitcoin core、BCH ABC或BU等,它們的全節(jié)點客戶端計算和存儲的數(shù)據(jù)非常少,這樣雖然對于節(jié)點運行商沒什么影響,但對于一些錢包、區(qū)塊瀏覽器等生態(tài)基礎(chǔ)設(shè)施卻不是很友好,因為客戶端沒有足夠預(yù)留的數(shù)據(jù)空間為這些基礎(chǔ)設(shè)施服務(wù)。
在完整節(jié)點預(yù)留空間不足的情況下,基礎(chǔ)設(shè)施商的開發(fā)人員通常會尋求第三方索引服務(wù)器的幫助,比如Bitpay的Insight服務(wù)器,這些服務(wù)器一般是額外的軟件,需要安裝在整個節(jié)點上,而且它計算所需的索引需要通過公共API獲取。
索引服務(wù)器大多難以安裝和在生產(chǎn)環(huán)境中運行,比如Insight服務(wù)器對某些類型的數(shù)據(jù)需要做重置API處理,隨后還需要使用WebSockets和socket.io。另外,Electrum服務(wù)器使用的stratum API過于笨重和繁瑣。
基于上述現(xiàn)象,Bchd開發(fā)商提供了一個“開箱即用”的解決方案,它只需要使用者下載二進制文件并運行就可以了。
gRPC是什么,它有什么用處和優(yōu)點?
gRPC API是用go語言編寫的一個新的服務(wù)器,可以替代BCH全節(jié)點(比如ABC和BU),幫助基礎(chǔ)設(shè)施開發(fā)者們解決全節(jié)點數(shù)據(jù)不足的問題。
它擁有許多優(yōu)于原系統(tǒng)遺留JSON-RPC以及各種REST / WebSocket API的優(yōu)勢,它為用戶提供了一個高性能且可靠的服務(wù)器,具有快速同步模式等功能,允許客戶端的初始鏈在記錄時間內(nèi)同步下載。該節(jié)點還包括BIP113,157,158等屬性和可調(diào)整區(qū)塊大小上限。使用gRPC,可以非常輕松地構(gòu)建定義明確、易于推理的API。
前端開發(fā)的具體表現(xiàn):
· 不再需要查找API文檔 – proto是API契約的規(guī)范格式。
· 不再需要手動編寫JSON調(diào)用對象——所有請求和響應(yīng)都是強類型和代碼生成的,IDE中提供了提示。
· 不再處理方法、標(biāo)題、正文和低級網(wǎng)絡(luò) – 一切都由gRPC處理。
· 不再猜測錯誤代碼的含義 – gRPC狀態(tài)代碼是表示API中問題的規(guī)范格式。
· 不再需要一次性從服務(wù)器端請求處理程序來避免并發(fā)連接 –gRPC基于HTTP2,在同一連接上多路復(fù)用多個數(shù)據(jù)流。
· 從服務(wù)器傳輸數(shù)據(jù)不再有問題 - gRPC-Web支持1:1RPC和1:多個數(shù)據(jù)流請求。
· 在推出新二進制文件時,不再有數(shù)據(jù)解析錯誤 - 請求和響應(yīng)的向后和向前兼容性。
BCH基礎(chǔ)設(shè)施開發(fā)者的又一福利
相較于傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用開發(fā)來說,在現(xiàn)階段基于區(qū)塊鏈底層協(xié)議的開發(fā)難度要更高一些,而區(qū)塊鏈行業(yè)的技術(shù)從業(yè)人員又非常有限,在這種情況下,如果想要加快某條公鏈應(yīng)用的開發(fā)進度,那么完善其開發(fā)配套設(shè)施就顯得非常重要了。
gRPC API無疑是非常優(yōu)秀的一項基礎(chǔ)服務(wù),它可以有效減輕BCH相關(guān)應(yīng)用的開發(fā)難度,加快應(yīng)用的落地速度,進而完善整個BCH生態(tài)體系。
類似于gRPC這樣的輔助工具在BCH社區(qū)還有一些其它的,比如Bitcoin.com推出的開發(fā)者平臺,在4月11日,還平臺的REST服務(wù)層一天甚至收到了超過500萬個請求,這表明BCH開發(fā)人員正在使用這些輔助工具構(gòu)建一些新型應(yīng)用。
相信未來還會有更多的輔助開發(fā)工具被構(gòu)建和分享,而基于BCH的相關(guān)應(yīng)用和配套的基礎(chǔ)設(shè)施也能夠從中受益。