Ukukhishwa kwe-Node-to-Node CoPy (NNCP), isethi yezinsiza zokudlulisa ngokuphephile amafayela, i-imeyili, nemiyalo ukuze isetshenziswe kumodi yesitolo nokudlulisela phambili. Isekela ukusebenza kumasistimu wokusebenza ahambisana ne-POSIX. Izinsiza zibhalwe ku-Go futhi zisatshalaliswa ngaphansi kwelayisensi ye-GPLv3.
Lezi zinsiza zenzelwe ukusiza ekwakheni amanethiwekhi amancane omngane nomngane (ama-node amaningi) anomzila oqhubekayo wokudlulisa amafayela ngokuphepha, izicelo zamafayela, i-imeyili, kanye nezicelo zokusebenzisa umyalo. Wonke amaphakethe adluliselwe abethelwe kusukela ekuqaleni kuya ekugcineni futhi aqinisekiswe ngokusobala kusetshenziswa okhiye bomphakathi abaziwayo bontanga. Ukubethela u-anyanisi (njenge-Tor) kusetshenziswa kuwo wonke amaphakethe aphakathi. I-node ngayinye ingasebenza njengeklayenti noma i-host. iseva futhi sebenzisa kokubili amamodeli okuziphatha kwe-push kanye ne-poll.
I-NNCP ihlukile kwizixazululo ze-UUCP kanye ne-FTN (FidoNet Technology Network), ngaphezu kokubethela kanye nokuqinisekisa okukhulunywe ngakho ngenhla, ngokunikeza ukwesekwa okungaphandle kwebhokisi kwamanethiwekhi e-floppy kanye namakhompyutha ahlukaniswe ngokomzimba (afakwe umoya) kumanethiwekhi endawo nawomphakathi angavikelekile. I-NNCP iphinde ibe nokuhlanganiswa okulula (njenge-UUCP) nezinsizakalo ze-imeyili zamanje. amaseva, njenge-Postfix kanye ne-Exim.
Izindawo ezingase zifakwe kuzo isicelo se-NNCP zihlanganisa ukuhlela ukuthumela/ukwamukela i-imeyili kumadivayisi angenawo uxhumano lwe-inthanethi unomphela, ukudlulisa amafayela ngaphansi kwezimo zoxhumano lwenethiwekhi olungazinzile, ukudlulisa ngokuphephile inani elikhulu kakhulu ledatha emithonjeni yezokuxhumana, ukudala amanethiwekhi okudlulisela idatha angawodwa avikelwe kuwo. Ukuhlaselwa kwe-MitM, ukweqa ukucwaninga kwenethiwekhi nokugadwa. Njengoba ukhiye wokukhipha ukubethela usezandleni zomamukeli kuphela, kungakhathaliseki ukuthi iphakethe lilethwa ngenethiwekhi noma ngemidiya ebonakalayo, inkampani yangaphandle ayikwazi ukufunda okuqukethwe, ngisho noma iphakeji ivinjiwe. Ngokulandelayo, ukufakazela ubuqiniso kwesiginesha yedijithali akukuvumeli ukudala umlayezo oqanjiwe ngokucasha omunye umthumeli.
Phakathi kokuqanjwe kabusha kwe-NNCP 8.8.0, uma kuqhathaniswa nezindaba zangaphambilini (inguqulo 5.0.0):
- Esikhundleni se-BLAKE2b hash, lokho okubizwa nge-MTH: Merkle-based Hashing, esebenzisa i-BLAKE3 hashi, isetshenziselwa ukuhlola ubuqotho bamafayela. Lokhu kukuvumela ukuthi ubale ubuqotho bengxenye ebethelwe yephakethe ngesikhathi sokulandwa, ngaphandle kokudinga ukuthi ifundwe ngokuzayo. Lokhu futhi kuvumela ukufana okungenamkhawulo kokuhlolwa kobuqotho.
- Ifomethi entsha yephakethe elibethelwe ilungele ukusakaza-bukhoma ngokuphelele lapho usayizi wedatha ungaziwa kusengaphambili. Ukusayinda kokuqedwa kokudlulisa, ngosayizi oqinisekisiwe, kungena ngokuqondile ngaphakathi kokusakaza okubethelwe. Ngaphambilini, ukuthola ubukhulu bedatha edlulisiwe, kwakudingeka ukuyigcina efayeleni lesikhashana. Ngakho umyalo othi “nncp-exec” ulahlekelwe inketho ethi “-use-tmp” njengoba kungenasidingo ngokuphelele.
- Imisebenzi ye-BLAKE2b KDF kanye ne-XOF ithathelwe indawo yi-BLAKE3 ukuze kwehliswe inani lezinto zokuqala ezisetshenziswayo futhi kwenziwe lula ikhodi.
- Manje sekungenzeka ukuthola amanye ama-node kunethiwekhi yendawo ngokusakaza okuningi ekhelini elithi “ff02::4e4e:4350”.
- Amaqembu e-Multicast avele (afana nezingqungquthela ze-FidoNet echo noma amaqembu ezindaba e-Usenet), okuvumela iphakethe elilodwa ukuthi lithumele idatha kumalungu eqembu amaningi, lapho ngalinye liphinde lidlulisele iphakethe kwabanye abasayinayo. Ukufunda iphakethe le-multicast kudinga ulwazi ngababili okhiye (kufanele ube yilungu leqembu ngokusobala), kodwa ukudlulisa kungenziwa nganoma iyiphi indawo.
- Manje sekunosekelo lokuqinisekiswa okusobala kwerisidi yephakethe. Umthumeli angase angalisusi iphakethe ngemva kokulithumela, alinde aze athole iphakethe le-ACK elikhethekile kumamukeli.
- Usekelo olwakhelwe ngaphakathi lwenethiwekhi yokumbondelana ye-Yggdrasil: ama-daemoni aku-inthanethi angasebenza njengabahlanganyeli benethiwekhi abazimele abagcwele ngokugcwele, ngaphandle kokusebenzisa ukuqaliswa kwe-Yggdrasil yenkampani yangaphandle nangaphandle kokusebenza ngokugcwele nesitaki se-IP kusixhumanisi esibonakalayo senethiwekhi.
- Esikhundleni samayunithi ezinhlamvu ahleliwe (RFC 3339), ilogi isebenzisa okufakiwe kwe-recfile, okungasetshenziswa nezinsiza ze-GNU Recutils.
- Uma uthanda, izihloko zephakethe ezibethelwe zingagcinwa kumafayela ahlukene ohlwini olungaphansi lwe-"hdr/", okusheshisa ngokuphawulekayo imisebenzi yokubuyiswa kohlu lwamaphakethe ezinhlelweni zamafayela ezinosayizi abakhulu bebhulokhi, njenge-ZFS. Ngaphambilini, ukubuyisa inhlokweni yephakethe kwakudinga ukufunda kuphela ibhulokhi engu-128KiB kudiski ngokuzenzakalelayo.
- Ukuhlola amafayela amasha kungasebenzisa ngokuzikhethela i-kqueue kanye ne- inotify kernel subsystems, ukwenza izingcingo zesistimu ezimbalwa.
- Izinsiza zigcina amafayela ambalwa avuliwe futhi ziwavale futhi ziwavule kabusha kancane. Ngenani elikhulu lamaphakheji, ngaphambili kwakungenzeka ukuthi kufinyelele umkhawulo enanini eliphezulu lamafayela avuliwe.
- Amaqembu amaningi aqala ukukhombisa inqubekelaphambili kanye nesivinini sokusebenza njengokulanda/ukulayisha, ukukopisha nokucubungula (ukuphonsa) amaphakheji.
- Umyalo "we-nncp-file" awukwazi ukuthumela amafayela owodwa kuphela, kodwa futhi nezinkomba, udale i-pax archive enokuqukethwe kwawo ekuhambeni.
- Izinsiza eziku-inthanethi zingashayela ngokushesha i-tossing ngemva kokuthi iphakheji ilandwe ngempumelelo, ngaphandle kokusebenzisa i-daemon ye-nncp-toss ehlukile.
- Ucingo oluku-inthanethi oluya komunye umhlanganyeli lungakhethwa kuphela uma kubalwa isibali sikhathi, kodwa futhi nalapho iphakethe eliphumayo livela kuhla lwemibhalo lwe-spool.
- Iqinisekisa ukusebenza ngaphansi kwe-NetBSD ne-OpenBSD OS, ngaphezu kwe-FreeBSD ne-GNU/Linux eyayisekelwe ngaphambilini.
- I-"nncp-daemon" ihambisana ngokugcwele ne-UCSPI-TCP interface. Ngokuhambisana nekhono lokungena kusichazi sefayela esicacisiwe (isibonelo ngokusetha okuthi "NNCPLOG=FD:4"), kuwubungane ngokuphelele ukusebenza ngaphansi kwezinsiza ezifana ne-daemontools.
- Umhlangano wephrojekthi udluliselwe ngokuphelele ohlelweni lokwenza kabusha.
Source: opennet.ru
