Denumirea și agenda

Notă: Motivația sistemului de numire I2P, argumentele generale împotriva acestuia și posibilele alternative pot fi văzute în pagina de discuții cu numele

Componente ale sistemului de nume

Sistemul de nume este destul de simplu și în cea mai mare parte reprezentat de aplicații externe relative la router, dar furnizat cu distribuția I2P. Aceste componente sunt:







Servicii de sistem de nume

Toate destinațiile din I2P sunt chei de 516-byte (sau mai mult). (Pentru a fi mai precis, este cheia publică 256 bytes, plus cheie semnătura de 128 biți, plus certificatul de zero, lungimea care, în forma de Base64 este 516 bytes. Certificarea nu este utilizat, în caz afirmativ, lungimea cheii va fi mai mare. Certificatele pot fi folosite pentru confirmarea muncii.)

Numele serviciului hosts.txt

Serviciul de nume hosts.txt produce o căutare simplă liniară în fișierele text. Acest serviciu de nume a fost folosit în mod implicit la versiunea 0.8.8, când a fost înlocuită de serviciul Blockfile. Formatul hosts.txt a devenit foarte lent când fișierul sa extins la mii de înregistrări.

  1. privatehosts.txt
  2. userhosts.txt
  3. hosts.txt

Serviciu de numire bloccenți

Serviciul de blocare a fișierelor de blocare stochează mai multe "agende de adrese" într-un singur fișier de bază de date numit hostsdb.blockfile. Acest serviciu de numire este implicit de la lansarea 0.8.8.

La creație, serviciul de numire. Blocul de fișiere imită implementarea anterioară prin menținerea a trei hărți care sunt căutate în ordine, numite privatehosts.txt, userhosts.txt și hosts.txt. De asemenea, menține o hartă de căutare inversă pentru a implementa căutări inverse rapide.

Alte servicii de numire a serviciilor

Căutarea este insensibilă pentru majuscule. Se folosește primul meci. Nu există nicio aplicare a regulilor de numire în căutări. Căutările sunt memorate în cache pentru câteva minute. Rezoluția bazei 32 este descrisă mai jos. Pentru o descriere completă a API-ului Serviciilor de denumire, consultați Serviciul de numire Javadocs. Acest API a fost extins semnificativ în versiunea 0.8.7 pentru a furniza adăugări și eliminați, stocarea proprietăților cu numele de gazdă și alte caracteristici.

Alternative și servicii de denumire experimentală

Serviciul de denumire este specificat cu proprietatea de configurare i2p.naming.impl = clasa. Alte implementări sunt posibile. De exemplu, există o facilitate experimentală pentru căutările în timp real (a la DNS) în rețeaua din cadrul routerului. Pentru mai multe informații, consultați alternativele de pe pagina de discuții.







Proxy-ul HTTP caută prin router-ul pentru toate numele de gazdă care se termină în '.i2p'. Fie redirecționează cererea către un proxy extern HTTP configurat. astfel în practică, toate numele nodurilor HTTP (eepsite) trebuie să se încheie cu domeniul pseudo-top nivel ".i2p".

Abonamente și combinații primite

Regulile numelui

  • Când importați numele sunt reduse la litere mici.
  • După litere mici, numele sunt verificate pentru conflicte cu numele disponibile în userhosts.txt și hosts.txt (dar nu în privatehosts.txt).
  • După turnarea în litere mici, ele trebuie să conțină numai [a-z] [0-9] "." și "-".
  • Nu trebuie să începi cu "." sau "-".
  • Trebuie să se termine cu ".i2p".
  • Un maxim de 67 de caractere, inclusiv ".i2p".
  • Nu trebuie să conțină "..".
  • Nu trebuie să conțină ".-" sau "-". (ca în 0.6.1.33).
  • Nu trebuie să conțină "-", cu excepția "xn--" pentru IDN.
  • Numerele de bază ale bazei (* .b32.i2p) sunt rezervate pentru utilizarea de bază 32 și nu sunt permise să fie importate.
  • Anumite Nume de gazdă rezervat pentru utilizare de proiect, nu sunt permise (proxy.i2p, router.i2p, console.i2p, * .proxy.i2p, * .router.i2p, * .console.i2p, și altele)
  • Cheile sunt verificate față de base64.
  • Cheile sunt verificate pentru conflictele cu cheile existente în hosts.txt (dar nu în privatehosts.txt).
  • Dimensiunea minimă a cheii este de 516 octeți.
  • Dimensiunea maximă a cheii este de 616 octeți (pentru certificate de până la 100 de octeți).

Orice nume primit prin abonamentul care transmite toate cecurile se adaugă prin serviciul de numire locală.

Format avansat de abonament

Abonamente la ieșire

Gazduire si probleme de transport HTTP

Cu toate acestea, conținutul hosts.txt este încărcat dacă a fost modificat. Pentru o discuție despre acest subiect, vedeți mai jos.

Nodul care deservesc hosts.txt statică sau echivalent cu aplicația CGI este recomandat pentru a trimite antetul Content-Length, sau ETAG sau antet Last-Modified. De asemenea, asigurați-vă că serverul emite "304 Not Modified" după cum este necesar. Acest lucru va reduce în mod semnificativ lățimea de bandă a rețelei și va reduce probabilitatea de avarie.

Serviciul de adăugare a nodurilor

Serviciul Add Node este o aplicație CGI simplă care ia ca parametru numele gazdei și baza Base64 și le adaugă la hosts.txt local. Dacă alte routere sunt abonate la acest hosts.txt, atunci noul nod / pereche de chei va fi transmis prin rețea.

Servicii de tranziție

Serviciul de tranziție este o aplicație CGI simplu, care devine numele de gazdă ca parametru și returnează o redirecționare 301 de la adresa URL corectă prin adăugarea șirului? I2paddresshelper = cheie. Proxy-ul HTTP interpretează șirul adăugat și utilizează această cheie ca destinație curentă. În plus, proxy-ul cache-uri această cheie, astfel încât ajutor helper nu este necesar înainte de repornire.

Pentru a oferi un nivel mai bun de serviciu, serviciul de tranziție trebuie să fie abonat la mai mulți furnizori hosts.txt, adică. lista locală a nodurilor va fi relevantă.

Nume de bază32

Denumirea și agenda

Denumirea și agenda







Trimiteți-le prietenilor: