MAP Protocol技術概述 區塊鏈節點通用通訊協議
區塊鏈節點常規通訊現有區塊鏈中的大多數基本節點發現和資料傳輸演算法不可互操作。例如,比特幣節點無法透過P2P協議直接找到以太坊節點,因此必須建立TCP連線才能實現。但是,MAP Protocol要求所有區塊鏈P2P網路相互通訊。因此,我們需要一個統一和標準化的P2P通訊協議。協議實驗室的LibP2P協議完全可以滿足我們的需求。LibP2P是為P2P網路構建的基本模組。它高度抽象了主流傳輸協議,因此應用層無需擔心特定的底層實現,從而實現了跨環境和跨協議的P2P節點通訊。當前,以太坊2.0,Polkadot和其他專案已經宣佈,他們將使用LibP2P作為其底層節點
通訊演算法。MAP還選擇了LibP2P演算法作為我們的節點通訊演算法。
LibP2P
過去,在開發Internet應用程式時,只需要關注應用程式的上層邏輯,而無需重新實現底層的通訊協議(TCP / IP)。LibP2P設計的初衷是支援未來的分散網路協議。其目的是允許開發人員開發分散的應用程式,而不必注意底層的特定實現。最後,實現了跨環境和跨協議的節點通訊。
在分散式對等網路中,節點之間的關係不再是傳統的伺服器-客戶端模型,它要求每個節點都可以充當伺服器的角色來處理響應,但也要充當客戶端的角色來發送請求。在這種複雜的情況下,我們需要一個通用的通訊協議,該協議可以支援多種通訊協議,以支援任意節點之間的相互通訊。
通訊協議需要支援傳統的未加密TCP / IP通訊以及諸如TLS之類的加密通訊協議。該協議需要包括節點發現和長短連線的建立,以及一系列功能,例如加密的資料傳輸。LibP2P是滿足上述所有要求的通用協議。在基於MAP協議的多鏈互操作性生態系統中,將涉及不同鏈中的節點發現和通訊。因此,必須在所有鏈節點之間支援通用通訊協議,其中所有節點都在大型P2P網路中。同時,用於不同鏈的特定節點需要位於不同的子網結構下。因此,網路結構應為多層結構化的網路拓撲。LibP2P支援結構化,非結構化,混合和集中式網路拓撲,這也恰好滿足了我們的需求。
一般的ChainID規格
在MAP的監管下,必須制定一套統一的ChainID規則來識別不同的區塊鏈。每個鏈將被分配一個唯一的ChainID。此ChainID的功能類似於今天的IP地址和埠,以便在MAP生態系統中定位和標識一條鏈。在傳輸需要簽名的資訊時,需要在簽名資料中包含ChainID,以防止重複傳輸攻擊。還需要在基礎公共鏈上實時更新ChainID的分發資訊,以便其他鏈可以獲得相關資訊。當前的解決方案是部署一個智慧指令碼來管理MarcoPolo標準鏈上ChainID的分發資訊,並且將有一個委員會來管理該智慧指令碼。委員會需要審查適用於加入該生態系統的公共鏈專案,並且透過審查的公共鏈將被分配一個標準化的ChainID並更新到指令碼中。該指令碼僅具有分配標準化ChainID的功能,而沒有其他集中管理功能。同時,未分配標準化ChainID的公共鏈也可以與協議中的其他公共鏈進行通訊,但是,不能保證其安全性。在這種情況下,我們不建議與沒有標準化ChainID的公共鏈進行互操作。
ChainID的規格
MAP Protocol技術概述 區塊鏈節點通用通訊協議
區塊鏈節點常規通訊現有區塊鏈中的大多數基本節點發現和資料傳輸演算法不可互操作。例如,比特幣節點無法透過P2P協議直接找到以太坊節點,因此必須建立TCP連線才能實現。但是,MAP Protocol要求所有區塊鏈P2P網路相互通訊。因此,我們需要一個統一和標準化的P2P通訊協議。協議實驗室的LibP2P協議完全可以滿足我們的需求。LibP2P是為P2P網路構建的基本模組。它高度抽象了主流傳輸協議,因此應用層無需擔心特定的底層實現,從而實現了跨環境和跨協議的P2P節點通訊。當前,以太坊2.0,Polkadot和其他專案已經宣佈,他們將使用LibP2P作為其底層節點
通訊演算法。MAP還選擇了LibP2P演算法作為我們的節點通訊演算法。
LibP2P
過去,在開發Internet應用程式時,只需要關注應用程式的上層邏輯,而無需重新實現底層的通訊協議(TCP / IP)。LibP2P設計的初衷是支援未來的分散網路協議。其目的是允許開發人員開發分散的應用程式,而不必注意底層的特定實現。最後,實現了跨環境和跨協議的節點通訊。
在分散式對等網路中,節點之間的關係不再是傳統的伺服器-客戶端模型,它要求每個節點都可以充當伺服器的角色來處理響應,但也要充當客戶端的角色來發送請求。在這種複雜的情況下,我們需要一個通用的通訊協議,該協議可以支援多種通訊協議,以支援任意節點之間的相互通訊。
通訊協議需要支援傳統的未加密TCP / IP通訊以及諸如TLS之類的加密通訊協議。該協議需要包括節點發現和長短連線的建立,以及一系列功能,例如加密的資料傳輸。LibP2P是滿足上述所有要求的通用協議。在基於MAP協議的多鏈互操作性生態系統中,將涉及不同鏈中的節點發現和通訊。因此,必須在所有鏈節點之間支援通用通訊協議,其中所有節點都在大型P2P網路中。同時,用於不同鏈的特定節點需要位於不同的子網結構下。因此,網路結構應為多層結構化的網路拓撲。LibP2P支援結構化,非結構化,混合和集中式網路拓撲,這也恰好滿足了我們的需求。
一般的ChainID規格
在MAP的監管下,必須制定一套統一的ChainID規則來識別不同的區塊鏈。每個鏈將被分配一個唯一的ChainID。此ChainID的功能類似於今天的IP地址和埠,以便在MAP生態系統中定位和標識一條鏈。在傳輸需要簽名的資訊時,需要在簽名資料中包含ChainID,以防止重複傳輸攻擊。還需要在基礎公共鏈上實時更新ChainID的分發資訊,以便其他鏈可以獲得相關資訊。當前的解決方案是部署一個智慧指令碼來管理MarcoPolo標準鏈上ChainID的分發資訊,並且將有一個委員會來管理該智慧指令碼。委員會需要審查適用於加入該生態系統的公共鏈專案,並且透過審查的公共鏈將被分配一個標準化的ChainID並更新到指令碼中。該指令碼僅具有分配標準化ChainID的功能,而沒有其他集中管理功能。同時,未分配標準化ChainID的公共鏈也可以與協議中的其他公共鏈進行通訊,但是,不能保證其安全性。在這種情況下,我們不建議與沒有標準化ChainID的公共鏈進行互操作。
ChainID的規格
在MAP的監管下,必須制定一套統一的ChainID規則來識別不同的區塊鏈。每個鏈將被分配一個唯一的ChainID。此ChainID的功能類似於今天的IP地址和埠,以便在MAP生態系統中定位和標識一條鏈。在傳輸需要簽名的資訊時,需要在簽名資料中包含ChainID,以防止重複傳輸攻擊。還需要在基礎公共鏈上實時更新ChainID的分發資訊,以便其他鏈可以獲得相關資訊。當前的解決方案是部署一個智慧指令碼來管理MarcoPolo標準鏈上ChainID的分發資訊,並且將有一個委員會來管理該智慧指令碼。委員會需要審查適用於加入該生態系統的公共鏈專案,並且透過審查的公共鏈將被分配一個標準化的ChainID並更新到指令碼中。該指令碼僅具有分配標準化ChainID的功能,而沒有其他集中管理功能。同時,未分配標準化ChainID的公共鏈也可以與協議中的其他公共鏈進行通訊,但是,不能保證其安全性。在這種情況下,我們不建議與沒有標準化ChainID的公共鏈進行互操作。