
網狀是基於密碼學的網絡堆棧,用於構建具有可用硬件的本地和廣闊網絡網絡。即使具有很高的延遲和極低的帶寬也可以運行。網狀允許您使用現成的工具構建廣闊的區域網絡,並提供端到端的加密和連接性,啟動器匿名性,自動配置具有密碼支持的多跳運輸,高效的地址,不可遺忘的交付確認等。
網狀的願景是允許任何人成為自己的網絡運營商,並使其廉價且易於使用無數獨立,可連接和自動的網絡覆蓋廣闊地區。網狀不是一個網絡。它是建立數千個網絡的工具。沒有殺戮轉換,監視,審查和控制的網絡。可以自由互操作,關聯和分離的網絡,並且不需要中央監督。人類的網絡。人民的網絡。
網狀是一個完整的網絡堆棧,不依賴於IP或更高層,而是可以將IP用作網狀載體。因此,通過Internet或專用IP網絡的網狀網站是微不足道的。
對傳統網絡堆棧的不依賴性釋放了上空開銷,該堆棧被用來實現直接基於加密原理建立的網絡堆棧,即使在開放且無信任的網絡中也可以彈性和穩定的功能。
無需內核模塊或驅動程序。網狀在Userland中完全運行,並且幾乎可以在運行Python 3的任何系統上運行。
網狀文檔的完整文檔可在Markqvist.github.io/reticulum/manual/上找到。
您還可以將網狀手冊作為PDF或EPUB格式的電子書下載。
有關更多信息,請參閱Wiki的網絡和FAQ部分。
儘管網狀已經是一個完整的功能性網絡堆棧,但正在積極進行許多改進和補充,併計劃未來。
要了解有關網狀的方向和未來的更多信息,請參閱開發路線圖。
如果您想快速了解網狀可以做什麼,請查看以下資源。
實際上,任何介質都可以支持至少一個半雙鏈通道,其吞吐量大於每秒5位,而MTU為500個字節。數據收音機,調製解調器,LORA收音機,串行線,AX.25 TNC,業餘無線電數字模式,WiFi和以太網設備,自由空間光學鏈接以及類似的系統都是物理設備網狀設備類型的示例。
一個名為RNode的開源洛拉界面是專門用於與網狀使用的。可以自行建立自己,也可以作為完整的收發器購買,只需要與主機連接USB。
網狀網絡也可以通過現有的IP網絡封裝,因此沒有什麼可以阻止您在有線以太網,您的本地WiFi網絡或Internet上使用它,在此也可以正常工作。實際上,網狀的優勢之一是,它可以使用任何可用的基礎架構混合物輕鬆地將不同的介質連接到自我配置,彈性和加密的網格中。
例如,可以設置連接到Lora Radio,Packet Radio TNC和WiFi網絡的Raspberry Pi。一旦配置了接口,網絡將負責其餘部分,並且WiFi網絡上的任何設備都可以與網絡的LORA和數據包無線電側面的節點進行通信,反之亦然。
開始使用網絡網絡堆棧的最佳方法取決於您想做什麼。有關完整的詳細信息和示例,請查看網狀手冊的快速入門部分。
要簡單地在系統上安裝網狀和相關的實用程序,最簡單的方法是通過pip 。然後,您可以啟動任何使用網狀的程序,也可以使用RNSD實用程序開始網狀作為系統服務。
pip install rns如果您使用的是通過pip封鎖正常用戶軟件包安裝的操作系統,則可以通過編輯~/.config/pip/pip.conf文件來返回pip到正常行為,並在[global]部分中添加以下指令:
[global]
break-system-packages = true
另外,您可以使用pipx工具在孤立的環境中安裝網狀:
pipx install rns剛開始時,網狀會創建一個默認的配置文件,從而提供與可能在本地可訪問的其他網狀同行的基本連接。默認配置文件包含一些示例,以及創建更複雜配置的引用。
如果您的系統上有舊版本的pip版本,則可能需要首先使用pip install pip --upgrade升級它。如果尚未安裝pip ,則可以使用系統的軟件包管理器使用sudo apt install python3-pip或類似系統安裝它。
有關如何使用UDP和TCP接口等許多媒體擴展諸如數據包無線電或快速IP鏈接以及Internet等許多媒體上的通信的詳細示例,請查看網狀手冊的支持接口部分。
網狀包括一系列有用的實用程序,用於管理網絡,查看狀態和信息以及其他任務。您可以在網狀手冊的“隨附的公用事業計劃”部分中閱讀有關這些程序的更多信息。
rnsd作為始終可用的服務rnstatus ,顯示有關接口的信息rnpath可讓您查看和修改路徑表rnprobe的診斷工具,用於檢查與目的地的連接rncp的簡單文件傳輸程序,使其易於在系統之間傳輸文件rnid讓您管理身份和加密/解密文件rnx讓我們運行命令和程序,然後從遠程系統檢索輸出包括rnx和rncp在內的所有工具都可以在非常低的帶寬鏈接(如Lora或Packet Radio)上可靠地工作。有關網狀上功能全面的遠程外殼,也可以查看RNSH程序。
網狀實現了一系列廣義界麵類型,這些類型涵蓋了網狀可以運行的大多數通信硬件。如果不支持硬件,則實現自定義接口模塊很容易。
請感激自定義接口的拉動請求,只要它們通常在現實世界中有用且經過良好的測試。
當前,支持以下內置接口:
網狀具有非常廣泛的可用性能包膜,但優先於低型帶寬介質的功能和性能。目的是在普通硬件上提供一個動態性能信封,從每秒250位到每秒1千兆位。
目前,可用的性能包絡線每秒約150位至40兆位,其物理介質比未飽和的速度快。超出當前水平的性能旨在將來升級,但在此時間點尚未得到高度優先級。
目前應將網狀視為β軟件。所有核心協議功能均已實現並運行,但是隨著現實世界的使用探索,可能會發生添加。會有錯誤。目前可以將API和電線格式視為相對穩定,但是如果有必要,可以改變。
默認rns軟件包的安裝需要以下列出的依賴項。幾乎所有的系統和分佈都易於使用這些依賴項,並且在使用pip安裝rns軟件包時,也將下載並安裝它們。
在更不尋常的系統,在某些極少數情況下,可能無法安裝甚至編譯上述模塊。在這種情況下,您可以使用rnspure軟件包,而RNSpure軟件包無需安裝外部依賴項。請注意, rns和rnspure軟件包的內容是相同的。唯一的區別是rnspure軟件包列出了安裝不需要的依賴項。
無論是安裝和啟動的網狀,它都只有在需要和可用時才加載外部依賴。例如,如果您想在無法支持培訓的系統上使用網狀,則使用rnspure軟件包是完全有可能的,但是Enticulum將無法使用基於序列的接口。所有其他可用的模塊仍將在需要時加載。
請注意!如果您使用rnspure軟件包在不支持Pyca/Cryptography的系統上運行網狀,那麼您必須閱讀和了解本文檔的加密原語部分。
如果您只想在不建立任何物理網絡的情況下開始進行實驗,歡迎您加入RNS開發測試網。
測試網就是一個非正式的測試和實驗網絡。大多數情況下,這都會加入,任何人都可以加入,但這也意味著無法保證服務可用性。
它可能不用說,但是不要將TestNet入口點作為您運送給用戶的任何應用程序中的硬編碼或默認接口。當運輸應用程序時,最好的做法是提供您自己的默認連接解決方案(如果需要和適用),或者在大多數情況下,只需將其保留給網絡連接的用戶以及如何連接。
TestNet運行了最新版本的網狀版(甚至在公開發布之前就很短的時間)。有時,可能會將網狀的實驗版本部署到測試網上的節點上,這意味著可能會發生奇怪的行為。如果這些都不嚇到您,則可以通過TCP或I2P加入TestNet。只需將以下接口之一添加到網狀配置文件中:
# TCP/IP interface to the RNS Amsterdam Hub
[[RNS Testnet Amsterdam]]
type = TCPClientInterface
enabled = yes
target_host = amsterdam.connect.reticulum.network
target_port = 4965
# TCP/IP interface to the BetweenTheBorders Hub (community-provided)
[[RNS Testnet BetweenTheBorders]]
type = TCPClientInterface
enabled = yes
target_host = reticulum.betweentheborders.com
target_port = 4242
# Interface to Testnet I2P Hub
[[RNS Testnet I2P Hub]]
type = I2PInterface
enabled = yes
peers = g3br23bvx3lq5uddcsjii74xgmn6y5q325ovrkq2zw2wbzbqgbuq.b32.i2p
測試網還包含許多游牧網絡節點和LXMF傳播節點。
您可以通過以下一個渠道之一捐贈:
84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
0xFDabC71AC4c0C78C95aDDDe3B4FA19d6273c5E73
35G9uWVzrpJJibzUwpNUQGQNFzLirhrYAH
開發路線圖中的某些功能對您或您的組織很重要嗎?通過贊助他們的實施來迅速使他們成為現實。
網狀使用一套簡單的有效,強和經過良好測試的加密原始圖,並具有廣泛可用的實現,可以在通用CPU和微控制器上使用。使用的原始劑是:
在默認安裝配置中,OpenSSL(通過PYCA/Cryptography軟件包)提供了X25519 , Ed25519和AES-128-CBC原始圖。 Hashing函數SHA-256和SHA-512由標準的Python Hashlib提供。 HKDF , HMAC , Token原始詞和PKCS7填充功能始終由以下內部實現提供:
網狀物還包括純Python中所有必要原語的完整實現。如果在啟動網狀時,系統上沒有OpenSSL&Pyca,則網狀會使用內部純Python原語。這種瑣碎的後果是性能,OpenSSL後端更快。然而,最重要的結果是,使用原始詞可能沒有看到與OpenSSL相同數量的審查,測試和審查的原始損失。
如果您想使用內部純淨的python原語,強烈建議您很好地了解這種構成的風險,並就這些風險是否可以接受,做出明智的決定。
網狀是相對年輕的軟件,應視為這樣。儘管它是用密碼學最佳實踐來構建的,但最重要的是,它尚未經過外部安全審核,而且很可能存在隱私或安全破壞錯誤。如果您想提供幫助,或幫助贊助審核,請聯繫。
網狀會僅是因為它建立在基礎上的開源工作,參與其中的每個人的貢獻以及多年來支持該項目的每個人的貢獻之上才能存在。對於所有幫助的人,非常感謝。
許多其他模塊和項目是網狀的一部分或使用。衷心感謝以下項目的作者和貢獻者: