bloXroute任務(wù)是支持和開放每一個(gè)想要擴(kuò)展的區(qū)塊鏈項(xiàng)目。雖然區(qū)塊鏈發(fā)行網(wǎng)絡(luò)(BDN)的第一個(gè)版本將支持比特幣、比特幣現(xiàn)金和以太坊。
bloXroute的發(fā)展速度正在加快——我們將很快部署系統(tǒng)的第1版,這只是使所有區(qū)塊鏈社區(qū)都可以使用bloXroute的第一步。bloXroute是一個(gè)對所有區(qū)塊鏈開放的中立平臺(tái),我們的目標(biāo)是不斷增加對新的區(qū)塊鏈項(xiàng)目的支持。我們意識(shí)到每個(gè)項(xiàng)目都想要擴(kuò)展,我們不太可能跟上對可擴(kuò)展性區(qū)塊鏈的需求。因此,我們將集成API設(shè)計(jì)得盡可能簡單,以便任何社區(qū)都可以實(shí)現(xiàn)網(wǎng)關(guān)邏輯,并確保BDN是可證明中立的。
背景
在深入討論細(xì)節(jié)之前,我們先簡要回顧一下bloXroute體系結(jié)構(gòu)。bloXroute部署了一個(gè)區(qū)塊鏈分發(fā)網(wǎng)絡(luò)(BDN),幫助區(qū)塊鏈節(jié)點(diǎn)傳播事交易,并更快、更有效地阻塞交易,最重要的是,它具有擴(kuò)展性,即實(shí)現(xiàn)每秒數(shù)千個(gè)交易(TPS)。BDN的架構(gòu)、中立性和性能在以前的媒體文章中討論過。
BDN由兩種類型的節(jié)點(diǎn)組成: Relay和 網(wǎng)關(guān)。Relay是相互連接的高端服務(wù)器,以形成全局bloXroute主干,以高效的方式快速傳輸區(qū)塊鏈消息(交易和塊)。網(wǎng)關(guān)是一個(gè)小型的開源軟件,并排部署在區(qū)塊鏈節(jié)點(diǎn)上,因此兩者運(yùn)行在同一臺(tái)機(jī)器上。網(wǎng)關(guān)的一端使用區(qū)塊鏈節(jié)點(diǎn)說區(qū)塊鏈“語言”,另一端使用RelaybloXroute語言。 它有許多功能;最值得注意的是,它將塊從節(jié)點(diǎn)壓縮和加密到Relay,并將塊從Relay解密和解壓縮到區(qū)塊鏈節(jié)點(diǎn)。
實(shí)現(xiàn)您自己的網(wǎng)關(guān)
bloXroute 網(wǎng)關(guān)將是開源的,因此您可以調(diào)整網(wǎng)關(guān)代碼,使其支持任何區(qū)塊鏈協(xié)議。在高層次上,這包括三項(xiàng)任務(wù):
1. 實(shí)現(xiàn)區(qū)塊鏈消息(即交易和塊),以便bloXroute 網(wǎng)關(guān)能夠理解它們
2. 實(shí)現(xiàn)消息轉(zhuǎn)換(即,編寫接受本地區(qū)塊鏈消息并將其轉(zhuǎn)換為bloXroute消息的代碼,反之亦然)。
3. 定義特定于您的區(qū)塊鏈的協(xié)議(即,編寫協(xié)議處理程序。例如,比特幣和以太坊的常見處理程序有a) handshake, (b) ping和 pong, inv, (d) transaction message, (e) block message, 等。)
將網(wǎng)關(guān)與bloXroute集成
雖然任何人都可以實(shí)現(xiàn)bloXroute網(wǎng)關(guān),但是繼續(xù)前進(jìn)需要與bloXroute團(tuán)隊(duì)進(jìn)行協(xié)調(diào)。需要進(jìn)行協(xié)調(diào)的理由如下。
首先,我們需要知道bloXroute中當(dāng)前是否支持協(xié)議所需的消息類型。例如,bloXroute已經(jīng)支持諸如交易和塊之類的通用消息。但是,如果您需要支持其他消息類型,我們必須首先在bloXroute中實(shí)現(xiàn)它。接下來,是您的區(qū)塊鏈節(jié)點(diǎn)發(fā)送的所有消息在自然界中廣播,即,需要到達(dá)所有其他區(qū)塊鏈節(jié)點(diǎn)。如果是這樣,廣播原語已經(jīng)部署在bloXroute中。但是,如果您需要支持其他通信類型,例如單播或多播,我們必須首先理解并實(shí)現(xiàn)這部分。隨著BDN的成熟,我們越來越擅長處理各種消息類型和通信模式,這種討論將會(huì)減少。
其次,出于純粹的操作原因,我們需要了解您的區(qū)塊鏈網(wǎng)絡(luò)的預(yù)期統(tǒng)計(jì)數(shù)據(jù),以便為部署做好適當(dāng)?shù)臏?zhǔn)備。例如,交易在您的網(wǎng)絡(luò)中保持多長時(shí)間有效?積木有多大?預(yù)期的TPS率是多少?你目前有多少礦工或驗(yàn)證者?您希望您的網(wǎng)絡(luò)擁有多少節(jié)點(diǎn)(不一定是礦化器或驗(yàn)證器)?節(jié)點(diǎn)的地理分布如何?所有這些信息將幫助我們調(diào)整我們的系統(tǒng),例如,在一個(gè)新的區(qū)域添加一個(gè)BDN節(jié)點(diǎn)(Relay),以最好地服務(wù)于這個(gè)項(xiàng)目。
第三,我們將為您的項(xiàng)目分配一個(gè)惟一的網(wǎng)絡(luò)ID,它將部署在Relay和 網(wǎng)關(guān)上。由您的網(wǎng)關(guān)生成的所有消息都將包含此網(wǎng)絡(luò)ID,該ID有助于我們的BDN識(shí)別和將消息優(yōu)化路由到屬于您的網(wǎng)絡(luò)的其他網(wǎng)關(guān)。
最后,在轉(zhuǎn)入生產(chǎn)模式之前,有必要測試整個(gè)系統(tǒng)的功能。為此,我們將配置一個(gè)測試環(huán)境來支持您所分配的網(wǎng)絡(luò)ID。我們還將提供非常強(qiáng)大的調(diào)試支持,使您能夠了解潛在的問題所在以及如何消除它們。
或者,您可以選擇將您自己的網(wǎng)關(guān)實(shí)現(xiàn)到您的區(qū)塊鏈代碼中,并直接連接到我們的Relay網(wǎng)絡(luò)。選擇讓您的節(jié)點(diǎn)本機(jī)使用bloXroute協(xié)議將會(huì)提高性能,因?yàn)槟^了網(wǎng)關(guān)將區(qū)塊鏈協(xié)議“轉(zhuǎn)換”為bloXroute協(xié)議的過程。網(wǎng)關(guān)協(xié)議最初很可能會(huì)發(fā)生更改,所以請確保您的代碼考慮到了這一點(diǎn)。
最好的開始方式是什么?
在開始上述任何步驟之前,了解單個(gè)區(qū)塊鏈節(jié)點(diǎn)能夠獨(dú)立維持的最大TPS速率是很有幫助的。如果您不知道,您應(yīng)該測試它,因?yàn)檫@是您系統(tǒng)可以達(dá)到的性能上限。在比特幣中,這可以通過觀察一個(gè)只有一家礦工組成的網(wǎng)絡(luò)可以處理多少筆交易來驗(yàn)證。bloXroute是一個(gè)很好的資產(chǎn),可以幫助促進(jìn)任何項(xiàng)目,但是bloXroute不能改善您的區(qū)塊鏈節(jié)點(diǎn)可能遇到的潛在端點(diǎn)瓶頸。我們可以根據(jù)解決此類瓶頸的經(jīng)驗(yàn)提供指導(dǎo)。
結(jié)論
在這篇博客文章中,我們概述了將區(qū)塊鏈項(xiàng)目與bloXroute集成以實(shí)現(xiàn)規(guī)模的高級(jí)流程。bloXroute對單個(gè)區(qū)塊鏈網(wǎng)絡(luò)中的所有實(shí)體都是中立的,同樣,它對不同的區(qū)塊鏈項(xiàng)目也是中立的。
評論
查看更多