Kas yra Reticulum?

Reticulum — tai kriptografinis tinklo stekas, skirtas kurti tiek vietinius, tiek plačiojo masto tinklus naudojant lengvai prieinamą aparatinę įrangą. Jis gali veikti net itin nepalankiomis sąlygomis — esant labai mažam pralaidumui ir dideliam delsimui.

Reticulum leidžia kurti plataus masto tinklus su paprastais įrankiais, siūlydamas end-to-end šifravimą, persiuntimo paslaptį (forward secrecy), automatiškai konfigūruojamą kriptografinį daugiašūolį transportavimą, efektyvų adresavimą ir nepaneigiamus paketų patvirtinimus.

Reticulum yra pilnas tinklo stekas. Jam nereikia IP protokolo, nors per IP (TCP arba UDP) jis gali būti lengvai tuneliuojamas. Reticulum pastatytas tiesiogiai ant kriptografinių principų, užtikrinant atsparumą ir stabilumą atviruose, nepasitikimuose tinkluose.

Nereikia jokių branduolio modulių ar tvarkyklių. Reticulum pilnai veikia vartotojo erdvėje ir gali būti paleistas bet kurioje sistemoje su Python 3 — net mažuose vienos plokštės kompiuteriuose, tokiuose kaip Raspberry Pi Zero.

Pagrindinės galimybės

  • Globaliai unikalus adresavimas ir identifikavimas be koordinacijos
  • Automatinis daugiašūolis maršrutizavimas per heterogeninius nešiklius
  • Lankstus mastelio keitimas per skirtingas topologijas
  • Iniciatoriaus anonimiškumas — šaltinio adresai neįtraukiami į paketus
  • Asimetrinis X25519 šifravimas ir Ed25519 parašai visam ryšiui
  • 512 bitų elipsinių kreivių raktų rinkiniai
  • Persiuntimo paslaptis (forward secrecy) visiems ryšio tipams
  • Efemeriniai paketų ir ryšio raktai per ECDH Curve25519
  • AES-256 CBC režimas su PKCS7 užpildymu
  • HMAC autentifikavimas naudojant SHA256
  • Nepaneigiami paketų pristatymo patvirtinimai
  • Lanksti ir išplečiama sąsajų sistema
  • Paprastas ir galingas API — lengvesnis nei socket'ai
  • Patikimas ir efektyvus bet kokio dydžio duomenų perdavimas

Palaikomi ryšio tipai

Reticulum veikia per praktiškai bet kokią terpę, galinčią palaikyti bent pusiau dupleksinį kanalą su didesniu nei 5 bitų per sekundę pralaidumu. Šiuo metu palaikomi:

Tinklo sąsajos

  • Ethernet (laidinis ir WiFi)
  • TCP per IP tinklus
  • UDP per IP tinklus
  • I2P (Invisible Internet Protocol)
  • Šviesolaidiniai siųstuvai-imtuvai

Radijo sąsajos

  • LoRa per RNode
  • Paketiniai radijo modemų TNC
  • AX.25 KISS sąsajos
  • Bet koks nuoseklusis prievadas
  • Vamzdžiai (pipe) ir stdio

Programos ir įrankiai

Reticulum ekosistemoje yra daugybė programų, sukurtų ant šio tinklo steko:

Sideband

Šifruota pranešimų programa su LoRa palaikymu. Veikia Android, Linux, macOS ir Windows sistemose.

Nomad Network

Terminalo pagrindo tinklo komunikacijos įrankis su pranešimais, failų dalinimusi ir mazgų valdymu.

MeshChat / MeshChatX

Grupinių pokalbių programos, veikiančios per Reticulum mesh tinklus net be interneto ryšio.

LXMF protokolas

Lengvas, išplečiamas pranešimų formatas — pagrindas daugeliui Reticulum komunikacijos programų.

RNode

Atviro kodo LoRa siųstuvas-imtuvas. Galima pasidaryti pačiam arba įsigyti paruoštą — idealus Reticulum radijo sąsajoms.

rnsd, rnstatus, rnpath

Įtrauktos sistemos priemonės: tinklo tarnyba, būsenos tikrinimas, maršruto paieška ir diagnostika.

Reticulum filosofija

Reticulum skatina organišką augimą. Vietoj priklausomybės nuo kelių centralizuotų serverių, sistema leidžia automatiškai atrasti ir formuoti tiesioginius ryšius su artimais mazgais. Rezultatas — geografiškai tinkamas, atsparus ir efektyvus ryšių tinklas.

Kiekvienas tinklas yra svarbus — ypač tie, kurie aptarnauja pavienius žmones ir šeimas. Kai pakankamai asmeninės infrastruktūros egzistuoja, tiesioginis jų sujungimas be viešojo interneto tampa neišvengiamas.

Viešo domeno protokolas. Reticulum protokolas buvo perduotas viešajam domenui 2016 metais. Tai reiškia, kad bet kas gali laisvai naudoti, modifikuoti ir platinti Reticulum be jokių apribojimų.

Reticulum autorius — Mark Qvist. Referencinė implementacija parašyta Python kalba ir yra autoritatyvus protokolo apibrėžimas.

Kaip pradėti?

Paprasčiausias būdas įdiegti Reticulum — naudoti Python paketų tvarkyklę:

pip install rns

Įdiegus, galite paleisti rnsd kaip tinklo tarnybą ir naudoti rnstatus, rnpath bei rnprobe diagnostikai.

Reticulum veikia Linux, macOS, Windows, Android, Raspberry Pi, ARM64, RISC-V ir daugelyje kitų platformų.

Oficiali dokumentacija GitHub repozitorija

Kontaktai

Klausimai, pasiūlymai ar noras prisidėti prie lietuviškos Reticulum bendruomenės?

info@reticulum.lt