Paglabas ng ZeroNet 0.7, isang platform para sa paglikha ng mga desentralisadong website

Pagkatapos ng isang taon ng pag-unlad, ang pagpapalabas ng isang desentralisadong web platform ay inilabas ZeroNet 0.7, na nagmumungkahi ng paggamit ng mga mekanismo ng pagtugon at pag-verify ng Bitcoin kasama ng mga ipinamamahaging teknolohiya sa paghahatid ng BitTorrent upang lumikha ng mga site na hindi ma-censor, mapeke, o ma-block. Ang nilalaman ng mga site ay naka-imbak sa isang P2P network sa mga makina ng mga bisita at na-verify gamit ang digital signature ng may-ari. Ang isang sistema ng mga alternatibong root DNS server ay ginagamit para sa pagtugon Namecoin. Ang proyekto ay nakasulat sa Python at ipinamahagi ni lisensyado sa ilalim ng GPLv2.

Ang data na nai-post sa site ay na-verify at naka-link sa account ng may-ari ng site, katulad ng pag-link ng Bitcoin wallet, na ginagawang posible na kontrolin ang kaugnayan ng impormasyon at i-update ang nilalaman sa real time. Upang itago ang mga IP address, maaaring gamitin ang hindi kilalang Tor network, suporta para sa kung saan ay binuo sa ZeroNet. Nakikilahok ang user sa pamamahagi ng lahat ng mga site na na-access niya. Kapag na-download na sa lokal na sistema, ang mga file ay naka-cache at ginawang magagamit para sa pamamahagi mula sa kasalukuyang makina gamit ang mga pamamaraan na nakapagpapaalaala sa BitTorrent.

Upang tingnan ang mga site ng ZeroNet, patakbuhin lamang ang script na zeronet.py, pagkatapos nito ay maaari mong buksan ang mga site sa browser sa pamamagitan ng URL na “http://127.0.0.1:43110/zeronet_address” (halimbawa, “http://127.0.0.1 :43110/1HeLLo4uzjaLetFx6NMN3PMwF5qbebTf1D”) . Kapag nagbubukas ng isang website, hinahanap ng programa ang mga kalapit na kapantay at nagda-download ng mga file na nauugnay sa hiniling na pahina (html, css, mga larawan, atbp.).
Upang gawin ang iyong site, patakbuhin lang ang command na “zeronet.py siteCreate”, pagkatapos ay bubuo ng isang site identifier at isang pribadong key upang kumpirmahin ang pagiging may-akda gamit ang isang digital na lagda.

Para sa ginawang site, isang walang laman na direktoryo ng form na “data/1HeLLo4usjaLetFx6NMH5PMwF3qbebTf1D” ang gagawin. Pagkatapos baguhin ang mga nilalaman ng direktoryo na ito, dapat na ma-certify ang bagong bersyon gamit ang command na “zeronet.py siteSign site_identifier” at ilagay ang pribadong key. Kapag na-verify na ang bagong nilalaman, kailangan itong ipahayag gamit ang command na “zeronet.py sitePublish site_id” upang ang binagong bersyon ay maging available sa mga kapantay (ang WebSocket API ay ginagamit upang ipahayag ang mga pagbabago). Sa kahabaan ng chain, susuriin ng mga kapantay ang integridad ng bagong bersyon gamit ang isang digital na lagda, i-download ang bagong nilalaman at ililipat ito sa iba pang mga kapantay.

Ang pangunahing pagkakataon:

  • Walang iisang punto ng pagkabigo - ang site ay nananatiling naa-access kung mayroong hindi bababa sa isang peer sa pamamahagi;
  • Kakulangan ng reference na imbakan para sa site - ang site ay hindi maaaring isara sa pamamagitan ng pagdiskonekta sa pagho-host, dahil ang data ay matatagpuan sa lahat ng mga makina ng mga bisita;
  • Ang lahat ng naunang tiningnan na impormasyon ay nasa cache at naa-access mula sa kasalukuyang makina sa offline mode, nang walang access sa pandaigdigang network.
  • Suportahan ang real-time na pag-update ng nilalaman;
  • Posibilidad ng pagtugon sa pamamagitan ng pagpaparehistro ng domain sa ".bit" zone;
  • Magtrabaho nang walang paunang pag-setup - i-unpack lang ang archive gamit ang software at magpatakbo ng isang script;
  • Kakayahang i-clone ang mga website sa isang click;
  • Format-based na pagpapatunay na walang password BIP32: ang account ay protektado ng parehong cryptographic na paraan tulad ng Bitcoin cryptocurrency;
  • Built-in na SQL server na may P2P data synchronization function;
  • Ang kakayahang gumamit ng Tor para sa pagkawala ng lagda at buong suporta para sa paggamit ng Tor hidden services (.onion) sa halip na mga IPv4 address;
  • Suporta sa pag-encrypt ng TLS;
  • Awtomatikong accessibility sa pamamagitan ng uPnP;
  • Posibilidad ng paglakip ng ilang mga may-akda na may iba't ibang mga digital na lagda sa site;
  • Availability ng isang plugin para sa paglikha ng mga pagsasaayos ng maraming gumagamit (openproxy);
  • Suporta para sa pagsasahimpapawid ng mga feed ng balita;
  • Gumagana sa anumang mga browser at operating system.

Mga pangunahing pagbabago sa ZeroNet 0.7

  • Ang code ay muling ginawa upang suportahan ang Python3, na tinitiyak ang pagiging tugma sa Python 3.4-3.8;
  • Ang isang protektadong database synchronization mode ay ipinatupad;
  • Kung saan posible, ang pangunahing pamamahagi ng mga third-party na aklatan ay itinigil bilang pabor sa mga panlabas na dependency;
  • Ang code para sa pag-verify ng mga digital na lagda ay pinabilis ng 5-10 beses (ginagamit ang libsecp256k1 library;
  • Idinagdag ang randomization ng mga nabuo nang certificate para i-bypass ang mga filter;
  • Ang P2P code ay na-update upang magamit ang ZeroNet protocol;
  • Idinagdag Offline mode;
  • Nagdagdag ng UiPluginManager plugin para sa pag-install at pamamahala ng mga third-party na plugin;
  • Ang buong suporta para sa OpenSSL 1.1 ay ibinigay;
  • Kapag kumokonekta sa mga kapantay, ginagamit ang dummy na SNI at ALPN record upang gumawa ng mga koneksyon na mas katulad ng mga tawag sa mga regular na site sa HTTPS;

Parehong araw ng paglabas ng ZeroNet 0.7.0 nabuo i-update ang 0.7.1, na nag-aalis ng isang mapanganib na kahinaan na potensyal na nagpapahintulot sa pagpapatupad ng code sa panig ng kliyente. Dahil sa isang error sa code para sa pag-render ng mga variable ng template, ang isang bukas na panlabas na site ay maaaring magtatag ng isang koneksyon sa client system sa pamamagitan ng WebSocket na may walang limitasyong mga karapatan ng ADMIN/NOSANDBOX, na ginagawang posible na baguhin ang mga parameter ng configuration at isagawa ang code nito sa computer ng user sa pamamagitan ng mga manipulasyon gamit ang parameter na open_browser.
Lumilitaw ang kahinaan sa branch 0.7, pati na rin sa mga pang-eksperimentong build simula sa rebisyon 4188 (ginawa ang pagbabago 20 araw ang nakalipas).

Pinagmulan: opennet.ru

Magdagdag ng komento