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