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

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

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии:

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π²Π½Π΅ΡˆΠ½ΠΈΡ… сСрвисов для закрСплСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (pinning — привязка Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ ΡƒΠ·Π»Ρƒ, для гарантирования, Ρ‡Ρ‚ΠΎ Π²Π°ΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ сохранСны). Π—Π°ΠΊΡ€Π΅ΠΏΠ»Ρ‘Π½Π½Ρ‹Π΅ Π·Π° сСрвисом Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° содСрТимого (CID). Π’ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ поиск Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ CID. Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов ΠΏΠΎ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ API IPFS Pinning Service, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ нСпосрСдствСнно Π² go-ipfs. Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС для прикрСплСния ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° «ipfs pin remote»: ipfs pin remote service add mysrv https://my-service.example.com/api-endpoint myAccessToken ipfs pin remote add /ipfs/bafymydata —service=mysrv —name=myfile ipfs pin remote ls —service=mysrv —name=myfile ipfs pin remote rm —service=mysrv —name=myfile
  • УскорСны ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ привязки (pinning) ΠΈ отвязки (unpinning) Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° локальном ΡƒΠ·Π»Π΅. Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ сокращСниС потрСбляСмой памяти особСнно Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ измСнСния Π½Π° систСмах с большим числом привязок.
  • ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ссылок «https://» для шлюзов Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠΌΡ‘Π½ DNSLink с использованиСм ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². НапримСр, для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠΌΠ΅Π½ΠΈ «ipns://en.wikipedia-on-ipfs.org» ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ссылок «https://dweb.link/ipns/en.wikipedia-on-ipfs.org» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ссылки «https://en-wikipedia—on—ipfs-org.ipns.dweb.link», Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠΈ Π² ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠΌΠ΅Π½Π°Ρ… Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° символ «-«, Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ символы «-» ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ символом.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° QUIC. Для увСличСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ увСличСния ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ… Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² для UDP.

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

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

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

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


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