Proyek Internet Tak Terlihat (I2P, proyek Internet tak terlihat) adalah pemimpin di antara teknologi untuk transfer informasi pribadi. Desentralisasi dan independensi penuh membuat jaringan I2P secara arsitektural kompleks, tetapi unik dalam jenisnya. Artikel ini dikhususkan untuk pertanyaan: dapatkah seorang programmer, yang tidak mengetahui kriptografi dan jaringan, menulis aplikasi yang bekerja melalui I2P.
Implementasi modern dari router I2P mendukung Simple Anonymous Messaging (SAM) API, yang memungkinkan aplikasi eksternal untuk berkomunikasi melalui I2P hanya dengan menggunakan beberapa perintah sederhana. Dalam kerangka artikel ini, kami akan mempertimbangkan minimum yang diperlukan untuk memulai eksperimen Anda sendiri.
Retrospektif kecil
I2P 2000-. . (API) .
. , - , , , , «example.i2p», . , .
, « – »! – - : , IRC- . peer-to-peer , ?
I2P- I2CP (I2P Control Protocol), . , : I2CP . - , . , - !
I2P Java- BitTorrent Email, I2P- .
API- SAM BOB (Basic Open Bridge). I2P ( SHA1), Java- . , .
, , C++ (i2pd) BOB SAM. PurpleI2P , ( ) . , .
SAM – . netcat i2pd (Java- ). telnet , (\n\r
), SAM \n
.
i2pd SAM , , . , - (http://127.0.0.1:7070
), . SAM - , sam.enabled = true
. 127.0.0.1:7656
.
Hello hidden world
, SAM, (handshake). HELLO VERSION
. SAM. RESULT=OK
, . HELLO VERSION
: HELLO VERSION MIN=3.0 MAX=3.3
. , . , 3.0 .
(id), , , (destination). – , . TRANSIENT
, , ( base64), . , (, ). , SAM , .
DEST GENERATE
, (SIGNATURE_TYPE=7
). , , . I2P.
, (PUB) (PRIV). .
. SAM : STREAM ( TCP), DATAGRAM ( UDP) RAW ( UDP). TCP. , STREAM-.
SESSION CREATE STYLE=STREAM ID=HabraHabr DESTINATION=__
STYLE
( STREAM
), DESTINATION
– ( PRIV
), ID
– , ( : HabraHabr
).
. , , . . , , , .
. «HabraHabr»: , , . , , STREAM ACCEPT ID=HabraHabr
.
. , «Novosibirsk» , , TRANSIENT
DESTINATION
. .
«HabraHabr», , :
STREAM CONNECT ID=Novosibirsk DESTINATION=___HabraHabr
, , ( ). , , .
. , I2P-, , . .
, , , . P2P (--) - .
, . , , . , . , .
: , . , , .
, , . , SAM .
- ITSOFT.