Выпуск глобальной Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы IPFS 0.6

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ выпуск Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы IPFS 0.6 (InterPlanetary File System), ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰Π΅ΠΉ глобальноС вСрсионированноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ€Π°Π·Π²Ρ‘Ρ€Π½ΡƒΡ‚ΠΎΠ΅ Π² Ρ„ΠΎΡ€ΠΌΠ΅ P2P-сСти, ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ· систСм участников. IPFS ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ΄Π΅ΠΈ, Ρ€Π°Π½Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Ρ‚Π°ΠΊΠΈΡ… систСмах, ΠΊΠ°ΠΊ Git, BitTorrent, Kademlia, SFS ΠΈ Web, ΠΈ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ «Ρ€ΠΎΠΉ» BitTorrent (ΠΏΠΈΡ€Ρ‹, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² Ρ€Π°Π·Π΄Π°Ρ‡Π΅), ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ Git-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. IPFS отличаСтся адрСсациСй ΠΏΠΎ содСрТимому, Π° Π½Π΅ мСсту размСщСния ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ. Код эталонной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ написан Π½Π° языкС Go ΠΈ распространяСтся ΠΏΠΎΠ΄ лицСнзиями Apache 2.0 ΠΈ MIT.

Новая вСрсия ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ транспорта Π½Π° Π±Π°Π·Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° QUIC, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой надстройку Π½Π°Π΄ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ UDP, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… соСдинСний ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, эквивалСнтныС TLS/SSL. Π’ IPFS сокСт для ΠΏΡ€ΠΈΡ‘ΠΌΠ° UDP-соСдинСний автоматичСски запускаСтся Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ адрСсС ΠΈ сСтСвом ΠΏΠΎΡ€Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ транспорта Π½Π° Π±Π°Π·Π΅ TCP. QUIC примСняСтся ΠΊΠ°ΠΊ для входящих, Ρ‚Π°ΠΊ ΠΈ для исходящих соСдинСний, ΠΏΡ€ΠΈ этом ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ ΡƒΠ·Π»Π°ΠΌ Π² случаС нСдоступности QUIC осущСствляСтся ΠΎΡ‚ΠΊΠ°Ρ‚ Π½Π° использованиС TCP.

Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ Π²Π°ΠΆΠ½Ρ‹ΠΌ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²ΠΎΠΌ стала ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½ΠΎΠ³ΠΎ транспорта NOISE, основанного Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ Noise ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… libp2p, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ сСтСвого стСка для P2P-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ПослС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ согласования соСдинСния вСсь ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ участниками ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ΡΡ ΠΈ защищаСтся ΠΎΡ‚ ΠΏΠΎΠ΄ΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ.
NOISE ΠΏΡ€ΠΈΡˆΡ‘Π» Π½Π° смСну транспорту SECIO, Π½ΠΎ Π² качСствС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ соСдинСний ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ TLS 1.3. NOISE достаточно прост Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ позиционируСтся ΠΊΠ°ΠΊ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ транспорт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках программирования.

Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС Ρ‚Π°ΠΊΠΆΠ΅ прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ добавлСния собствСнных страниц «404 Not Found» ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° кодирования Base36, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π΅Π½ для Π±ΡƒΠΊΠ²Π΅Π½Π½ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² рСгистрС символов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² (ΠΏΡ€ΠΈ использовании Base32 ΠΊΠ»ΡŽΡ‡ΠΈ Ed25519 IPNS Π½Π° Π΄Π²Π° Π±Π°ΠΉΡ‚Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‚ Π»ΠΈΠΌΠΈΡ‚ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Π°, Π° ΠΏΡ€ΠΈ Base36 Π²ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π»ΠΈΠΌΠΈΡ‚). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² настройки Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция
«peering«, которая опрСдСляСт список ΡƒΠ·Π»ΠΎΠ² для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, поддСрТания соСдинСния ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ с Ρ†Π΅Π»ΡŒΡŽ опрСдСлСния «Π»ΠΈΠΏΠΊΠΈΡ…» связСй ΠΌΠ΅ΠΆΠ΄Ρƒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΏΠΈΡ€Π°ΠΌΠΈ.

Напомним, Ρ‡Ρ‚ΠΎ Π² IPFS ссылка для доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ нСпосрСдствСнно связана с Π΅Π³ΠΎ содСрТимым ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ криптографичСский Ρ…ΡΡˆ содСрТимого. АдрСс Ρ„Π°ΠΉΠ»Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС измСнСния содСрТимого. Аналогично Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ внСсти ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Ρ„Π°ΠΉΠ» Π±Π΅Π· измСнСния адрСса (старый Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ останСтся Π½Π° ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌ адрСсС, Π° Π½ΠΎΠ²Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ доступСн Ρ‡Π΅Ρ€Π΅Π· Π΄Ρ€ΡƒΠ³ΠΎΠΉ адрСс, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ…ΡΡˆ ΠΎΡ‚ содСрТимого Ρ„Π°ΠΉΠ»Π° измСнится). Учитывая Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ„Π°ΠΉΠ»Π° мСняСтся ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ссылки ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ сСрвисы для привязки постоянных адрСсов, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π½Ρ‹Π΅ вСрсии Ρ„Π°ΠΉΠ»Π° (IPNS), ΠΈΠ»ΠΈ закрСплСния псСвдонима ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ Π€Π‘ ΠΈ DNS (MFS (Mutable File System) ΠΈ DNSLink).

По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с BitTorrent Π΄Π°Π½Π½Ρ‹Π΅ нСпосрСдствСнно хранятся Π½Π° систСмах участников, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ P2P, Π±Π΅Π· привязки ΠΊ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΡƒΠ·Π»Π°ΠΌ. ΠŸΡ€ΠΈ нСобходимости ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ содСрТимым систСма Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ участников, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… имССтся Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ ΠΎΡ‚Π΄Π°Ρ‘Ρ‚ Π΅Π³ΠΎ с ΠΈΡ… систСм частями Π² нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° Π½Π° свою систСму участник автоматичСски становится ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΏΠΎ Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π°Ρ‡Π΅. Для опрСдСлСния участников сСти Π½Π° ΡƒΠ·Π»Π°Ρ… ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… присутствуСт ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ распрСдСлённая Ρ…ΡΡˆ Ρ‚Π°Π±Π»ΠΈΡ†Π° (DHT). Для доступа ΠΊ глобальной Π€Π‘ IPFS ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» HTTP ΠΈΠ»ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ Π€Π‘ /ipfs ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ модуля FUSE.

IPFS ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΊΠ°ΠΊ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ хранСния (Ссли исходноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ ΠΈΠ· строя, Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ с систСм Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ), противостояниС Ρ†Π΅Π½Π·ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° (для Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ потрСбуСтся Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС систСмы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… имССтся копия Π΄Π°Π½Π½Ρ‹Ρ…) ΠΈ организация доступа ΠΏΡ€ΠΈ отсутствии прямого соСдинСния ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠ»ΠΎΡ…ΠΎΠΌ качСствС ΠΊΠ°Π½Π°Π»Π° связи (ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΡ… участников Π² локальной сСти). ΠšΡ€ΠΎΠΌΠ΅ хранСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ IPFS ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ основа для создания Π½ΠΎΠ²Ρ‹Ρ… сСрвисов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сайтов, Π½Π΅ привязанных ΠΊ сСрвСрам, ΠΈΠ»ΠΈ для создания распрСдСлённых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Выпуск глобальной Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы IPFS 0.6

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ