Π‘ΡΡΡΠΎΡ ΡΠ΅ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° Node-to-Node CoPy (NNCP), ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½ ΡΡΠ°Π½ΡΡΠ΅Ρ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π΅Π»Π΅ΠΊΡΡΠΎΠ½Π½Π° ΠΏΠΎΡΠ° ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌ store-and-forward. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°Π±ΠΎΡΠ° Π½Π° POSIX-ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Go ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Ρ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ GPLv3.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ ΡΠ° Π½Π°ΡΠΎΡΠ΅Π½ΠΈ ΠΊΡΠΌ ΠΏΠΎΠΌΠΎΡ ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠ°Π»ΠΊΠΈ P2P friend-to-friend ΠΌΡΠ΅ΠΆΠΈ (Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΡΠ·Π»ΠΈ) ΡΡΡ ΡΡΠ°ΡΠΈΡΠ½ΠΎ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½ ΡΡΠ°Π½ΡΡΠ΅Ρ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΡΠ΅ΠΆΠΈΠΌ fire-and-forget, Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π΅Π»Π΅ΠΊΡΡΠΎΠ½Π½Π° ΠΏΠΎΡΠ° ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. ΠΡΠΈΡΠΊΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠ° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈ (end-to-end) ΠΈ ΡΠ²Π½ΠΎ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π· ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ Π½Π° ΠΏΠΎΠ·Π½Π°ΡΠΈ. ΠΡΠΊΠΎΠ²ΠΎ (ΠΊΠ°ΠΊΡΠΎ Π² Tor) ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ. ΠΡΠ΅ΠΊΠΈ ΡΠ·Π΅Π» ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ³ΡΠ°Π΅ ΡΠΎΠ»Ρ ΠΊΠ°ΠΊΡΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ, ΡΠ°ΠΊΠ° ΠΈ ΡΡΡΠ²ΡΡ ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡΠΎ push, ΡΠ°ΠΊΠ° ΠΈ poll ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
Π Π°Π·Π»ΠΈΠΊΠ°ΡΠ° Π½Π° NNCP ΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° UUCP ΠΈ FTN (FidoNet Technology Network), ΠΎΡΠ²Π΅Π½ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΎΡΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° ΠΎΡ ΡΠ°ΠΌΠΎΡΠΎ Π½Π°ΡΠ°Π»ΠΎ Π½Π° ΠΌΡΠ΅ΠΆΠΈ ΡΠ»ΠΎΠΏΠΏΠΈΠ½Π΅Ρ ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠΈ, ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ (air-gapped) ΠΎΡ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΠΌΡΠ΅ΠΆΠΈ. ΠΡΠΎΠ±Π΅Π½ΠΎΡΡ Π½Π° NNCP Π΅ ΠΈ Π»Π΅ΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ (Π·Π°Π΅Π΄Π½ΠΎ Ρ UUCP) Ρ ΡΠ΅ΠΊΡΡΠΈΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΊΠΈ ΡΡΡΠ²ΡΡΠΈ, ΠΊΠ°ΡΠΎ Postfix ΠΈ Exim.
ΠΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° NNCP ΡΠ΅ ΠΎΡΠ±Π΅Π»ΡΠ·Π²Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅/ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π±Π΅Π· ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π° Π½Π΅ΡΡΠ°Π±ΠΈΠ»Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π° Π²ΡΡΠ·ΠΊΠ°, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½ ΡΡΠ°Π½ΡΡΠ΅Ρ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ, ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π·Π°ΡΠΈΡΠ΅Π½ΠΈ ΠΎΡ MitM-Π°ΡΠ°ΠΊΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΠΌΡΠ΅ΠΆΠΈ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠ½Π΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π° ΡΠ΅Π½Π·ΡΡΠ° ΠΈ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΊΠ»ΡΡΡΡ Π·Π° Π΄Π΅ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° ΡΠ°ΠΌΠΎ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΡΡΠΈΡΠ°ΡΠ° Π½Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΏΡΠ΅Π· ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈΠ»ΠΈ ΡΡΠ΅Π· ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ, ΡΡΠ΅ΡΠΎ Π»ΠΈΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ, Π΄ΠΎΡΠΈ Π΄Π° ΠΏΡΠΈΡ Π²Π°Π½Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ. ΠΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π°, Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° ΡΡΠ΅Π· ΡΠΈΡΡΠΎΠ² ΠΏΠΎΠ΄ΠΏΠΈΡ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΡΠΎΡΠΌΠΈΡΠ° ΡΠ°Π»ΡΠΈΠ²ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄ΡΡΠ³ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ.
Π‘ΡΠ΅Π΄ Π½ΠΎΠ²ΠΎΡΡΠΈΡΠ΅ Π½Π° NNCP 8.8.0, Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ (5.0.0):
- ΠΠΌΠ΅ΡΡΠΎ Ρ Π΅ΡΠ° BLAKE2b Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Ρ.Π½Π°Ρ. MTH: Merkle Tree-based Hashing, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ Π΅Ρ BLAKE3. Π’ΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΠΈ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π°ΡΠ° ΡΠ°ΡΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ΡΠΎ, Π±Π΅Π· Π΄Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π΅ΠΉΠ½ΠΎΡΠΎ ΠΏΡΠΎΡΠΈΡΠ°Π½Π΅ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, ΡΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡΠ°.
- ΠΠΎΠ²ΠΈΡΡ ΡΠΎΡΠΌΠ°Ρ Π½Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ΄ΠΎΠ±Π΅Π½ Π·Π° ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π΅ Π΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½. Π‘ΠΈΠ³Π½Π°Π»ΡΡ Π·Π° ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ΡΠΎ, Ρ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠ΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ, ΠΈΠ΄Π²Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊ. ΠΠΎΡΠ°Π½ΠΎ, Π·Π° Π΄Π° ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠ°Π·ΡΡ Π²ΡΠ² Π²ΡΠ΅ΠΌΠ΅Π½Π΅Π½ ΡΠ°ΠΉΠ». Π’Π°ΠΊΠ° Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ° ΠΎΠΏΡΠΈΡΡΠ° β-use-tmpβ ΠΎΡ Π΅ΠΊΠΈΠΏΠ° Π½Π° βnncp-execβ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΡΠ»Π½Π° Π½Π΅Π½ΡΠΆΠ½ΠΎΡΡ.
- Π€ΡΠ½ΠΊΡΠΈΠΈΡΠ΅ BLAKE2b KDF ΠΈ XOF ΡΠ° Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ Ρ BLAKE3, Π·Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ ΠΈ Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°.
- ΠΠΎΡΠ²ΠΈ ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ Π² Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° ΡΡΠ΅Π· ΠΌΡΠ»ΡΠΈ-ΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΎ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π°Π΄ΡΠ΅Ρ βff02::4e4e:4350β.
- ΠΠΎΡΠ²ΠΈΡ Π° ΡΠ΅ ΠΌΡΠ»ΡΠΈ-ΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈ Π³ΡΡΠΏΠΈ (Π°Π½Π°Π»ΠΎΠ³ Π½Π° Π΅Ρ ΠΎΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ FidoNet ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΈΠ½Π°ΡΡΠΊΠΈ Π³ΡΡΠΏΠΈ Usenet), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ Ρ Π΅Π΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΡΡ Π΄Π°Π½Π½ΠΈ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ Π² Π³ΡΡΠΏΠ°ΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ Π²ΡΠ΅ΠΊΠΈ ΡΡΡΠΎ ΡΠ΅ΡΡΠ°Π½ΡΠ»ΠΈΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π° ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ Π°Π±ΠΎΠ½Π°ΡΠΈ. Π§Π΅ΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΠΌΡΠ»ΡΠΈ-ΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π°ΡΠ° Π΄Π²ΠΎΠΉΠΊΠ° (Π½ΡΠΆΠ½ΠΎ Π΅ ΡΠ²Π½ΠΎ Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊ Π² Π³ΡΡΠΏΠ°ΡΠ°), Π½ΠΎ ΡΠ΅ΡΡΠ°Π½ΡΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΎΡ Π²ΡΡΠΊΠ° Π²ΡΠ·Π΅Π».
- ΠΠΎΡΠ²ΠΈ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠ·ΠΏΡΠ°ΡΠ°ΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΠΈΠ·ΡΡΠΈΠ²Π° ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΠ»Π΅Π΄ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅, ΠΈΠ·ΡΠ°ΠΊΠ²Π°ΠΉΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ACK-ΠΏΠ°ΠΊΠ΅Ρ ΠΎΡ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ.
- ΠΠ³ΡΠ°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° overlay-ΠΌΡΠ΅ΠΆΠ°ΡΠ° Yggdrasil: ΠΎΠ½Π»Π°ΠΉΠ½ Π΄Π΅ΠΌΠΎΠ½ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΈ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ°, Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΡΠ½ΡΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Yggdrasil ΠΈ Ρ ΠΏΡΠ»Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ IP ΡΡΠ΅ΠΊΠ° Π½Π° Π²ΠΈΡΡΡΠ°Π»Π΅Π½ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
- ΠΠΌΠ΅ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ Π½ΠΈΠ·ΠΎΠ²Π΅ (RFC 3339), ΠΆΡΡΠ½Π°Π»ΡΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° recfile-Π·Π°ΠΏΠΈΡΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΎΡ GNU Recutils.
- ΠΠΏΡΠΈΠΎΠ½Π°Π»Π½ΠΎ Π·Π°Π³Π»Π°Π²ΠΈΡΡΠ° Π½Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ βhdr/β, Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΊΠΎΡΡΠ²Π°ΠΉΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΏΠΈΡΡΠΊΠ° Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ Π³ΠΎΠ»ΡΠΌ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π±Π»ΠΎΠΊΠ°, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ZFS. ΠΡΠ΅Π΄ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΏΡΠΎΡΠΈΡΠ°Π½Π΅ ΠΎΡ Π΄ΠΈΡΠΊΠ° Π½Π° ΡΠ΅Π»ΠΈΡ 128KiB Π±Π»ΠΎΠΊ.
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠΆΠ΅ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ kqueue ΠΈ inotify, Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΠΉΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ.
- Π£ΡΠΈΠ»ΠΈΡΠΈΡΠ΅ Π΄ΡΡΠΆΠ°Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΏΠΎ-ΡΡΠ΄ΠΊΠΎ ΡΠ΅ Π·Π°ΠΊΡΠΈΠ²Π°Ρ ΠΈ ΠΎΡΠ²Π°ΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎ. ΠΡΠΈ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π΅ Π±ΠΈΠ»ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ°ΡΠ΅ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π΅Π½ Π±ΡΠΎΠΉ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
- ΠΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π°ΠΏΠΎΡΠ½Π°Ρ Π° Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΏΡΠΎΠ³ΡΠ΅Ρ ΠΈ ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅/ΠΈΠ·Ρ Π²ΡΡΠ»ΡΠ½Π΅, ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° (toss) Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ.
- ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βnncp-fileβ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° Π½Π΅ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π½ΠΎ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΡΠ·Π΄Π°Π²Π°ΠΉΠΊΠΈ Π½Π° Π»Π΅ΡΡ pax-Π°ΡΡ ΠΈΠ² Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΡ.
- ΠΠ½Π»Π°ΠΉΠ½ ΡΡΠΈΠ»ΠΈΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»Π½ΠΎ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ (tossing) ΡΠ»Π΅Π΄ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ°, Π±Π΅Π· Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΎΡΠ΄Π΅Π»Π΅Π½ Π΄Π΅ΠΌΠΎΠ½ βnncp-tossβ.
- ΠΠ½Π»Π°ΠΉΠ½ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΡΡΠ³ ΡΡΠ°ΡΡΠ½ΠΈΠΊ ΠΌΠΎΠΆΠ΅ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»Π½ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ ΠΏΡΠΈ ΡΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠΌΠ΅ΡΠ°, Π½ΠΎ ΠΈ ΠΏΡΠΈ ΠΈΡΡΠΈΠ½ΡΠΊΠΎΡΠΎ ΠΏΠΎΡΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄ΡΡ ΠΏΠ°ΠΊΠ΅Ρ Π² spool-Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ°.
- ΠΠ±Π΅Π·ΠΏΠ΅ΡΠ΅Π½Π° Π΅ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° ΠΏΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ NetBSD ΠΈ OpenBSD, Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈΡΠ΅ FreeBSD ΠΈ GNU/Linux.
- βnncp-daemonβ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° UCSPI-TCP. Π ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π² ΡΠΊΠ°Π·Π°Π½ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΠΉΠΊΠΈ βNNCPLOG=FD:4β), ΡΠΎΠΉ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΡΠΈΡΡΠ΅Π»ΡΠΊΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° daemontools ΡΡΠΈΠ»ΠΈΡΠΈ.
- Π‘Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ΅Π½Π° ΠΊΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° redo.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
