ืงืจื™ื˜ื™ืง ืคื•ืŸ ื“ื™ ืคึผืจืึธื˜ืึธืงืึธืœ ืื•ืŸ ืึธืจื’ืึทื ืึทื–ื™ื™ืฉืึทื ืึทืœ ืึทืคึผืจืึธื•ื˜ืฉื™ื– ืคื•ืŸ ื˜ืขืœืขื’ืจืึทื. ื˜ื™ื™ืœ 1, ื˜ืขื›ื ื™ืฉ: ื“ืขืจืคืึทืจื•ื ื’ ืคื•ืŸ ืฉืจื™ื™ื‘ืŸ ืึท ืงืœื™ืขื ื˜ ืคึฟื•ืŸ ืงืจืึทืฆืŸ - TL, MT

ืœืขืฆื˜ื ืก, ื”ื•ื“ืขื•ืช ื”ืึธื‘ืŸ ืื ื’ืขื”ื•ื™ื‘ืŸ ืฆื• ื“ืขืจืฉื™ื™ึทื ืขืŸ ืื•ื™ืฃ Habrรฉ ืžืขืจ ืึธืคื˜ ื•ื•ืขื’ืŸ ื•ื•ื™ ื’ื•ื˜ ื˜ืขืœืขื’ืจืึทื ืื™ื–, ื•ื•ื™ ื‘ืจื™ืœื™ืึทื ื˜ ืื•ืŸ ื™ืงืกืคึผื™ืจื™ืึทื ืกื˜ ื“ื™ ื“ื•ืจืึธื•ื• ื‘ืจื™ื“ืขืจ ื–ืขื ืขืŸ ืื™ืŸ ื‘ื ื™ืŸ ื ืขืฅ ืกื™ืกื˜ืขืžืขืŸ, ืืื–"ื• ื•. ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ื–ื™ื™ืขืจ ื•ื•ื™ื™ื ื™ืง ืžืขื ื˜ืฉืŸ ื˜ืึทืงืข ื’ืขื˜ื•ื‘ืœื˜ ื–ื™ืš ืื™ืŸ ื“ื™ ื˜ืขื›ื ื™ืฉ ืžื™ื˜ืœ - ืื™ืŸ ืจื•ื‘ึฟ ื–ื™ื™ ื ื•ืฆืŸ ืึท ืคืขืจืœื™ ืคึผืฉื•ื˜ (ืื•ืŸ ื–ื™ื™ืขืจ ืึทื ื“ืขืจืฉ ืคื•ืŸ MTProto) JSON-ื‘ืื–ื™ืจื˜ Bot API, ืื•ืŸ ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ื ืึธืจ ืึธื ื ืขืžืขืŸ ืื•ื™ืฃ ืืžื•ื ื” ืึทืœืข ื“ื™ ืชื”ื™ืœื™ื ืื•ืŸ ืคึผืจ ื•ื•ืึธืก ื“ืจื™ื™ืขืŸ ื–ื™ืš ืึทืจื•ื ื“ืขื ืฉืœื™ื—. ืžื™ื˜ ื›ึผืžืขื˜ ืึท ื™ืึธืจ ืื•ืŸ ืึท ื”ืึทืœื‘ ืฆื•ืจื™ืง, ืžื™ื™ืŸ ืงืึธืœืขื’ืข ืื™ืŸ NPO Echelon Vasily (ืฆื•ื ื‘ืึทื“ื•ื™ืขืจืŸ, ื–ื™ื™ืŸ ื—ืฉื‘ื•ืŸ ืื•ื™ืฃ Habrรฉ ืื™ื– ืื•ื™ืกื’ืขืžืขืงื˜ ืฆื•ื–ืืžืขืŸ ืžื™ื˜ ื“ืขื ืคึผืœืึทืŸ) ืกื˜ืึทืจื˜ืขื“ ืฉืจื™ื™ื‘ืŸ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื˜ืขืœืขื’ืจืึทื ืงืœื™ืขื ื˜ ืคึฟื•ืŸ ืงืจืึทืฆืŸ ืื™ืŸ ืคึผืขืจืœ, ืื•ืŸ ืฉืคึผืขื˜ืขืจ ื“ืขืจ ืžื—ื‘ืจ ืคื•ืŸ ื“ื™ ืฉื•ืจื•ืช ื–ื™ืš ืื™ื™ื ื’ืขืฉืจื™ื‘ืŸ. ืคืึทืจื•ื•ืึธืก ืคึผืขืจืœ, ื•ื•ืขืœืŸ ืขื˜ืœืขื›ืข ืชื™ื›ืฃ ืคืจืขื’ืŸ? ื•ื•ื™ื™ืœ ืขืก ื–ืขื ืขืŸ ืฉื•ื™ืŸ ื“ื ืื–ืขืœื›ืข ืคืจืื™ืขืงื˜ืŸ ืื™ืŸ ืื ื“ืขืจืข ืฉืคืจืื›ืŸ, ืœืžืขืฉื” ืื™ื– ื“ืืก ื ื™ืฉื˜ ื“ื™ ื ืงื•ื“ื”, ืขืก ืงืขืŸ ื–ื™ื™ืŸ ืกื™ื™ ื•ื•ืขืœื›ืข ืื ื“ืขืจืข ืฉืคืจืืš ื•ื•ืื• ืคืึทืจื˜ื™ืง ื‘ื™ื‘ืœื™ืึธื˜ืขืง, ืื•ืŸ ื“ืขืจืคืืจ ืžื•ื– ื“ืขืจ ืžื—ื‘ืจ ื’ื™ื™ืŸ ื“ืขื ื’ืื ืฆืŸ ื•ื•ืขื’ from scratch. ื“ืขืจืฆื•, ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ ืื™ื– ืึทื–ืึท ืึท ื–ืึทืš - ืฆื•ื˜ืจื•ื™, ืึธื‘ืขืจ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ. ืžื™ื˜ ืึท ื–ื™ื›ืขืจื”ื™ื™ื˜-ืคืึธื•ืงื™ืกื˜ ืคึผืจืึธื“ื•ืงื˜, ืื™ืจ ืงืขื ืขืŸ ื ื™ื˜ ื ืึธืจ ืคืึทืจืœืึธื–ื  ื–ื™ืš ืื•ื™ืฃ ืึท ืคืึทืจืงื•ื™ืคืขืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื•ืŸ ื‘ืœื™ื ื“ ื’ืœื•ื™ื‘ืŸ ืขืก (ืึธื‘ืขืจ, ื“ืึธืก ืื™ื– ืึท ื˜ืขืžืข ืคึฟืึทืจ ืžืขืจ ืื™ืŸ ื“ื™ ืจื’ืข ื˜ื™ื™ืœ). ื“ืขืจื•ื•ื™ื™ึทืœ, ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืึทืจื‘ืขื˜ ื’ืึทื ืฅ ื’ื•ื˜ ืื™ืŸ ื“ื™ "ืžื™ื˜ืŸ" ืžื“ืจื’ื” (ืึทืœืึทื•ื™ื– ืื™ืจ ืฆื• ืžืึทื›ืŸ ืึทืคึผื™ ืจื™ืงื•ื•ืขืก).

ืึธื‘ืขืจ, ืขืก ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืคื™ืœ ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ ืื•ืŸ ืžืื˜ืขืžืื˜ื™ืง ืื™ืŸ ื“ืขื ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹ืึทืจื˜ื™ืงืœืขืŸ. ืื‘ืขืจ ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคื™ืœืข ืื ื“ืขืจืข ื˜ืขื›ื ื™ืฉ ื“ืขื˜ืึทื™ืœืก ืื•ืŸ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจืึทืœ ืงืจืึทื˜ืฉื™ื– (ืขืก ื•ื•ืขื˜ ืื•ื™ืš ื–ื™ื™ืŸ ื ื•ืฆื™ืง ืคึฟืึทืจ ื“ื™ ื•ื•ืืก ื•ื•ืขืœืŸ ื ื™ืฉื˜ ืฉืจื™ื™ึทื‘ืŸ ืคึฟื•ืŸ ืงืจืึทืฆืŸ, ืึธื‘ืขืจ ื ื•ืฆืŸ ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื™ืŸ ืงื™ื™ืŸ ืฉืคึผืจืึทืš). ืึทื–ื•ื™, ื“ืขืจ ื”ื•ื™ืคึผื˜ ืฆื™ืœ ืื™ื– ื’ืขื•ื•ืขืŸ ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ืขื ืงืœื™ืขื ื˜ ืคึฟื•ืŸ ืงืจืึทืฆืŸ ืœื•ื™ื˜ ืฆื• ื‘ืึทืึทืžื˜ืขืจ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ. ืึทื– ืื™ื–, ืจืขื›ืŸ ืึทื– ื“ืขืจ ืžืงื•ืจ ืงืึธื“ ืคื•ืŸ ื‘ืึทืึทืžื˜ืขืจ ืงืœื™ื™ืึทื ืฅ ืื™ื– ืคึฟืึทืจืžืึทื›ื˜ (ื•ื•ื™ื“ืขืจ, ืื™ืŸ ื“ื™ ืจื’ืข ื˜ื™ื™ืœ, ืžื™ืจ ื•ื•ืขืœืŸ ืึทื ื˜ื“ืขืงืŸ ืื™ืŸ ืžืขืจ ื“ืขื˜ืึทืœ ื“ื™ ื˜ืขืžืข ืคื•ืŸ โ€‹โ€‹ื•ื•ืึธืก ื“ืึธืก ืื™ื– ื˜ืึทืงืข. ื›ืึทืคึผืึทื ื– ืึทื–ื•ื™), ืึธื‘ืขืจ, ื•ื•ื™ ืื™ืŸ ื“ื™ ืึทืœื˜ ื˜ืขื’, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืขืก ืื™ื– ืึท ื ืึธืจืžืึทืœ ื•ื•ื™ RFC - ืื™ื– ืขืก ืžืขื’ืœืขืš ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึท ืงืœื™ืขื ื˜ ืœื•ื™ื˜ ื“ื™ ืกืคึผืขืกื™ืคื™ืงืึทื˜ื™ืึธืŸ ืึทืœื™ื™ืŸ, "ืึธืŸ ืคึผื™ืคึผื™ื ื’" ืื™ืŸ ื“ื™ ืžืงื•ืจ ืงืึธื“, ืืคื™ืœื• ื‘ืึทืึทืžื˜ืขืจ (ื˜ืขืœืขื’ืจืึทื ื“ืขืกืงื˜ืึธืคึผ, ืจื™ืจืขื•ื•ื“ื™ืง ), ืืคื™ืœื• ืึทื ืึทืคื™ืฉืึทืœ ื˜ืขืœืขื˜ื”ืึธืŸ?

ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ืื™ื ื”ืึทืœื˜:

ื“ืึธืงื•ืžืขื ื˜ืึทื˜ื™ืึธืŸ ... ืื™ื– ืขืก ื“ืึธืจื˜? ืื™ื– ืขืก ืืžืช?..

ืคืจืึทื’ืžืขื ื˜ืŸ ืคื•ืŸ ื”ืขืจื•ืช ืคึฟืึทืจ ื“ืขื ืึทืจื˜ื™ืงืœ ืื ื’ืขื”ื•ื™ื‘ืŸ ืฆื• ื–ื™ื™ืŸ ื’ืขื–ืืžืœื˜ ืœืขืฆื˜ืข ื–ื•ืžืขืจ. ืึทืœืข ื“ืขื ืžืึธืœ ืื•ื™ืฃ ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ืคึผืœืึทืฅ https://core.telegram.org ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ื•ื•ื™ ืคื•ืŸ ืฉื™ื›ื˜ืข 23, ื“.ื”. ืกื˜ืึทืง ืขืจื’ืขืฅ ืื™ืŸ 2014 (ื’ืขื“ืขื ืงืขืŸ, ื“ืขืžืึธืœื˜ ืขืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืืคื™ืœื• ื˜ืฉืึทื ืึทืœื– ื ืึธืš?). ืคื•ืŸ ืงื•ืจืก, ืื™ืŸ ื˜ืขืึธืจื™ืข, ื“ืึธืก ื–ืึธืœ ื”ืึธื‘ืŸ ื’ืขืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึท ืงืœื™ืขื ื˜ ืžื™ื˜ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืื™ืŸ 2014. ืื‘ืข ืจ ืืคื™ืœ ื• ืื™ ืŸ ื“ืข ืจ ืฆื•ืฉื˜ืื  ื“ ืื™ ื– ื“ ื™ ื“ืืงื•ืžืขื ื˜ืืฆื™ ืข ื’ืขืฐืข ืŸ ืขืจืฉื˜ื ืก , ืื•ืžืคื•ืœืฉื˜ืขื ื“ื™ืง , ืื• ืŸ ืฆืฐืฒื˜ ืŸ ืื™ ืŸ ืคืœืขืฆืขืจ , ื”ื ื˜ ื– ื™ ื–ื™ ืš ืฐื™ื“ืขืจื’ืขื–ืื’ื˜ . ื ื‘ื™ืกืœ ืžืขืจ ื•ื•ื™ ืึท ื—ื•ื“ืฉ ืฆื•ืจื™ืง, ืื™ืŸ ืกืขืคื˜ืขืžื‘ืขืจ 2019, ื“ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ืึทืงืกืึทื“ืขื ื˜ืึทืœื™ ืขืก ืื™ื– ื’ืขืคื•ื ืขืŸ ืึทื– ื“ื™ ืคึผืœืึทืฅ ื”ืื˜ ืึท ื’ืจื•ื™ืก ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืคื•ืŸ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ, ืคึฟืึทืจ ืึท ื’ืึธืจ ืคืจื™ืฉ ืฉื™ื›ื˜ืข 105, ืžื™ื˜ ืึท ื˜ืึธืŸ ืึทื– ืื™ืฆื˜ ืึทืœืฅ ื“ืึทืจืฃ ืฆื• ืœื™ื™ืขื ืขืŸ ื•ื•ื™ื“ืขืจ. ื˜ืืงืข ืืกืืš ืืจื˜ื™ืงืœืขืŸ ื–ืขื ืขืŸ ืจืขื•ื•ื™ื–ื™ืจื˜ ื’ืขื•ื•ืืจืŸ, ืื‘ืขืจ ืืกืืš ื–ืขื ืขืŸ ื’ืขื‘ืœื™ื‘ืŸ ืื•ืžืคืืจืขื ื“ืขืจื˜. ื“ืขืจื™ื‘ืขืจ, ื•ื•ืขืŸ ืื™ืจ ืœื™ื™ืขื ืขืŸ ื“ื™ ืงืจื™ื˜ื™ืง ืื•ื ื˜ืŸ ื•ื•ืขื’ืŸ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ, ืื™ืจ ื–ืึธืœ ื”ืึทืœื˜ืŸ ืื™ืŸ ื–ื™ื ืขืŸ ืึทื– ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ื–ืื›ืŸ ื–ืขื ืขืŸ ื ื™ื˜ ืžืขืจ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง, ืึธื‘ืขืจ ืขื˜ืœืขื›ืข ื–ืขื ืขืŸ ื ืึธืš ื’ืึทื ืฅ. ื ืึธืš ืึทืœืข, 5 ื™ืืจ ืื™ืŸ ื“ื™ ืžืึธื“ืขืจืŸ ื•ื•ืขืœื˜ ืื™ื– ื ื™ื˜ ื ืึธืจ ืึท ืคึผืœืึทืฅ, ืึธื‘ืขืจ ื–ื™ื™ืขืจ ืืกืืš. ื–ื™ื ื˜ ื“ืขืžืึธืœื˜ (ืกืคึผืขืฆื™ืขืœ ืื•ื™ื‘ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื ืขืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ ื“ื™ ื“ื™ืกืงืึทืจื“ื™ื“ ืื•ืŸ ืจืขื–ืขืจืขืงื˜ื™ื“ ื’ืขืึธื˜ืฉืึทืฅ ื–ื™ื ื˜ ื“ืขืžืึธืœื˜), ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืึทืคึผื™ ืžืขื˜ื”ืึธื“ืก ืื™ืŸ ื“ื™ ืกื›ืขืžืข ืื™ื– ื’ืขื•ื•ืืงืกืŸ ืคื•ืŸ ืึท ื”ื•ื ื“ืขืจื˜ ืฆื• ืžืขืจ ื•ื•ื™ ืฆื•ื•ื™ื™ ื”ื•ื ื“ืขืจื˜ ืื•ืŸ ืคื•ืคืฆื™ืง!

ื•ื•ืื• ื”ื™ื™ื‘ื˜ ืžืขืŸ ืืŸ ืืœืก ื™ื•ื ื’ืขืจ ืฉืจื™ื™ื‘ืขืจ?

ืขืก ื˜ื•ื˜ ื ื™ืฉื˜ ืขื ื™ืŸ ืื•ื™ื‘ ืื™ืจ ืฉืจื™ื™ึทื‘ืŸ ืคึฟื•ืŸ ืงืจืึทืฆืŸ ืึธื“ืขืจ ื ื•ืฆืŸ, ืœืžืฉืœ, ืคืึทืจื˜ื™ืง ืœื™ื™ื‘ืจืขืจื™ื– ื•ื•ื™ ื˜ืขืœืขื˜ืึธืŸ ืคึฟืึทืจ ืคึผื™ื˜ื”ืึธืŸ ืึธื“ืขืจ ืžืึทื“ืขืœื™ื ืข ืคึฟืึทืจ PHP, ืื™ืŸ ืงื™ื™ืŸ ืคืึทืœ, ืื™ืจ ื•ื•ืขื˜ ืขืจืฉื˜ืขืจ ื“ืึทืจืคึฟืŸ ืคืึทืจืฉืจื™ื™ึทื‘ืŸ ื“ื™ื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ - ื‘ืึทืงื•ืžืขืŸ ืคึผืึทืจืึทืžืขื˜ืขืจืก api_id ะธ api_hash (ื“ื™ ื•ื•ืึธืก ื”ืึธื‘ืŸ ื’ืขืืจื‘ืขื˜ ืžื™ื˜ ื“ื™ VKontakte API ืžื™ื“ ืคึฟืึทืจืฉื˜ื™ื™ืŸ) ื“ื•ืจืš ื•ื•ืึธืก ื“ื™ ืกืขืจื•ื•ืขืจ ื•ื•ืขื˜ ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ื“ืืก ื“ืืจืฃ ืคึฟืึทืจ ืœืขื’ืึทืœ ืกื™ื‘ื•ืช, ืึธื‘ืขืจ ืžื™ืจ ื•ื•ืขืœืŸ ืจืขื“ืŸ ืžืขืจ ื•ื•ืขื’ืŸ ื•ื•ืึธืก ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืžื—ื‘ืจื™ื ืงืขื ืขืŸ ื ื™ืฉื˜ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืขืก ืื™ืŸ ื“ื™ ืฆื•ื•ื™ื™ื˜ืข ื˜ื™ื™ืœ. ื˜ืึธืžืขืจ ืื™ืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืฆื•ืคึฟืจื™ื“ืŸ ืžื™ื˜ ื“ื™ ืคึผืจืึธื‘ืข ื•ื•ืึทืœื•ืขืก, ื›ืึธื˜ืฉ ื–ื™ื™ ื–ืขื ืขืŸ ื–ื™ื™ืขืจ ืœื™ืžื™ื˜ืขื“ - ื“ืขืจ ืคืึทืงื˜ ืื™ื– ืึทื– ืื™ืฆื˜ ืื™ืจ ืงืขื ืขืŸ ืจืขื’ื™ืกื˜ืจื™ืจืŸ ืื•ื™ืฃ ื“ื™ื™ืŸ ื ื•ืžืขืจ ื ืืจ ืื™ื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ืึทื–ื•ื™ ื˜ืึธืŸ ื ื™ื˜ ืงืึทืžื™ืฉ ื›ืขื“ืœืึธื ื’.

ืื™ืฆื˜, ืคึฟื•ืŸ ืึท ื˜ืขื›ื ื™ืฉ ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’, ืžื™ืจ ื–ืึธืœ ื”ืึธื‘ืŸ ื’ืขื•ื•ืขืŸ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ื“ืขื ืคืึทืงื˜ ืึทื– ื ืึธืš ืจืขื’ื™ืกื˜ืจืึทืฆื™ืข ืžื™ืจ ื–ืึธืœ ื‘ืึทืงื•ืžืขืŸ ื ืึธื•ื˜ืึทืคืึทืงื™ื™ืฉืึทื ื– ืคื•ืŸ ื˜ืขืœืขื’ืจืึทื ื•ื•ืขื’ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ืฆื• ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ, ืคึผืจืึธื˜ืึธืงืึธืœ, ืืื–"ื• ื•. ืึทื– ืื™ื–, ืžืขืŸ ืงืขืŸ ื™ื‘ืขืจื ืขืžืขืŸ ืึทื– ื“ื™ ืคึผืœืึทืฅ ืžื™ื˜ ื“ื™ ื“ืึทืงืก ืื™ื– ื’ืขื•ื•ืขืŸ ืคืฉื•ื˜ "ืกืงืึธืจืขื“" ืื•ืŸ ื’ืขืฆื•ื™ื’ืŸ ืฆื• ืึทืจื‘ืขื˜ืŸ ืกืคึผืึทืกื™ืคื™ืงืœื™ ืžื™ื˜ ื“ื™ ื•ื•ืืก ืื ื’ืขื”ื•ื™ื‘ืŸ ืฆื• ืžืึทื›ืŸ ืงืœื™ื™ืึทื ืฅ, ื•ื•ื™ื™ึทืœ. ืขืก ืื™ื– ื’ืจื™ื ื’ืขืจ. ืึธื‘ืขืจ ื ื™ื™ืŸ, ื’ืึธืจื ื™ืฉื˜ ืึทื–ืึท ืื™ื– ื‘ืืžืขืจืงื˜, ืงื™ื™ืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื’ืขืงื•ืžืขืŸ.

ืื•ืŸ ืื•ื™ื‘ ืื™ืจ ืฉืจื™ื™ึทื‘ืŸ ืคึฟื•ืŸ ืงืจืึทืฆืŸ, ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ ื‘ืืงื•ืžืขืŸ ืคึผืึทืจืึทืžืขื˜ืขืจืก ืื™ื– ื ืึธืš ื•ื•ื™ื™ึทื˜ ืึทื•ื•ืขืง. ื›ืึธื˜ืฉ https://core.telegram.org/ ืื•ืŸ ืจืขื“ื˜ ื•ื•ืขื’ืŸ ื–ื™ื™ ืขืจืฉื˜ืขืจ ืื™ืŸ ื’ืขื˜ื™ื ื’ ืกื˜ืึทืจื˜ืขื“, ืื™ืŸ ืคืึทืงื˜, ืื™ืจ ืขืจืฉื˜ืขืจ ื”ืึธื‘ืŸ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ MTProto ืคึผืจืึธื˜ืึธืงืึธืœ - ืึธื‘ืขืจ ืื•ื™ื‘ ืื™ืจ ื’ืœื•ื™ื‘ืŸ ืื•ื™ืกืœื™ื™ื’ ืœื•ื™ื˜ ื“ื™ OSI ืžืึธื“ืขืœ ืื™ืŸ ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ื™ ื‘ืœืึทื˜ ืคื•ืŸ ื“ื™ ืึทืœื’ืขืžื™ื™ื ืข ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ื™ ืคึผืจืึธื˜ืึธืงืึธืœ, ื“ืขืžืึธืœื˜ ื’ืึธืจ ืื•ืžื–ื™ืกื˜.

ืื™ืŸ ืคืึทืงื˜, ื‘ื™ื™ื“ืข ืื™ื™ื“ืขืจ MTProto ืื•ืŸ ื ืึธืš, ืื™ืŸ ืขื˜ืœืขื›ืข ืœืขื•ื•ืขืœืก ืื™ืŸ ืึทืžืึธืœ (ื•ื•ื™ ืคืจืขืžื“ ื ืขื˜ื•ื•ืึธืจืงืก ืืจื‘ืขื˜ืŸ ืื™ืŸ ื“ื™ ืึทืก ืงืขืจืŸ ื–ืึธื’ืŸ, ืฉื™ื›ื˜ืข ื”ื™ืœืขืœ), ืึท ื’ืจื•ื™ืก, ื•ื•ื™ื™ื˜ื™ืงื“ื™ืง ืื•ืŸ ืฉืจืขืงืœืขืš ื˜ืขืžืข ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ืื™ืŸ ื“ื™ ื•ื•ืขื’ ...

ื‘ื™ื™ื ืขืจื™ ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ: TL (ื˜ื™ืคึผ ืฉืคึผืจืึทืš) ืื•ืŸ ื–ื™ื™ึทืŸ ืกื›ืขืžืข, ืื•ืŸ ืœื™ื™ึทืขืจืก, ืื•ืŸ ืคื™ืœืข ืื ื“ืขืจืข ืกืงืขืจื™ ื•ื•ืขืจื˜ืขืจ

ื“ืขืจ ื˜ืขืžืข, ืื™ืŸ ืคืึทืงื˜, ืื™ื– ื“ืขืจ ืฉืœื™ืกืœ ืฆื• ื˜ืขืœืขื’ืจืึทื ืก ืคึผืจืึธื‘ืœืขืžืก. ืื•ืŸ ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคื™ืœืข ืฉืจืขืงืœืขืš ื•ื•ืขืจื˜ืขืจ ืื•ื™ื‘ ืื™ืจ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ื“ืขืœื•ื• ืื™ืŸ ืขืก.

ืึทื–ื•ื™, ืกื›ืขืžืข. ืื•ื™ื‘ ืื™ืจ ื’ืขื“ืขื ืงื˜ ื“ืึธืก ื•ื•ืึธืจื˜, ื–ืึธื’ืŸ, JSON ืกื›ืขืžืขืื™ืจ ื’ืขื“ืึทื ืง ืจืขื›ื˜. ื“ืขืจ ืฆื™ืœ ืื™ื– ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ: ืขื˜ืœืขื›ืข ืฉืคึผืจืึทืš ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืึท ืžืขื’ืœืขืš ื’ืึทื ื’ ืคื•ืŸ ื˜ืจืึทื ืกืžื™ื˜ื˜ืขื“ ื“ืึทื˜ืŸ. ื“ืึธืก, ืื™ืŸ ืคืึทืงื˜, ืื™ื– ื•ื•ื• ื“ื™ ืขื ืœืขื›ืงื™ื™ื˜ ืขื ื“ืก. ืื•ื™ื‘ ืคื•ืŸ ื“ื™ ื‘ืœืึทื˜ MTProto ืคึผืจืึธื˜ืึธืงืึธืœ, ืึธื“ืขืจ ืคึฟื•ืŸ ื“ืขืจ ืžืงื•ืจ ื‘ื•ื™ื ืคื•ืŸ ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ืงืœื™ืขื ื˜, ืžื™ืจ ื•ื•ืขืœืŸ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืขืคืขื ืขืŸ ืขื˜ืœืขื›ืข ืกื›ืขืžืข, ืžื™ืจ ื•ื•ืขืœืŸ ื–ืขืŸ ืขืคึผืขืก ื•ื•ื™:

int ? = Int;
long ? = Long;
double ? = Double;
string ? = String;

vector#1cb5c415 {t:Type} # [ t ] = Vector t;

rpc_error#2144ca19 error_code:int error_message:string = RpcError;

rpc_answer_unknown#5e2ad36e = RpcDropAnswer;
rpc_answer_dropped_running#cd78e586 = RpcDropAnswer;
rpc_answer_dropped#a43ad8b7 msg_id:long seq_no:int bytes:int = RpcDropAnswer;

msg_container#73f1f8dc messages:vector<%Message> = MessageContainer;

---functions---

set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:bytes = Set_client_DH_params_answer;

ping#7abe77ec ping_id:long = Pong;
ping_delay_disconnect#f3427b8c ping_id:long disconnect_delay:int = Pong;

invokeAfterMsg#cb9f372d msg_id:long query:!X = X;
invokeAfterMsgs#3dc4b4f0 msg_ids:Vector<long> query:!X = X;

account.updateProfile#78515775 flags:# first_name:flags.0?string last_name:flags.1?string about:flags.2?string = User;
account.sendChangePhoneCode#8e57deb flags:# allow_flashcall:flags.0?true phone_number:string current_number:flags.0?Bool = auth.SentCode;

ื ืžืขื ื˜ืฉ ื•ื•ืืก ื–ืขื˜ ื“ืืก ืฆื•ื ืขืจืฉื˜ืŸ ืžืืœ ื•ื•ืขื˜ ืื™ื ื˜ื•ืื™ื˜ื™ื•ื• ื“ืขืจืงืขื ืขืŸ ื ืืจ ื ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขื ื’ืขืฉืจื™ื‘ืŸ - ื ื•, ื“ืืก ื–ืขื ืขืŸ ืœื›ืื•ืจื” ืกื˜ืจื•ืงื˜ื•ืจืŸ (ื›ืื˜ืฉ ื•ื•ืื• ืื™ื– ื“ืขืจ ื ืืžืขืŸ, ืื•ื™ืฃ ืœื™ื ืงืก ืื“ืขืจ ืจืขื›ื˜ืก?), ืขืก ื–ืขื ืขืŸ ื“ื ืคืขืœื“ืขืจ ืื™ืŸ ื–ื™ื™, ื ืื›ื“ืขื ื“ืขืจ ื˜ื™ืคึผ ื’ื™ื™ื˜ ื“ื•ืจืš ื“ื™ ืฆื•ื•ื™ื™ืคึผื™ื ื˜ืœ ... ืžื™ืกื˜ืึธืžืข. ื“ืึธ, ืื™ืŸ ื•ื•ื™ื ืงืœ ื‘ืจืึทืงืึทืฅ, ืขืก ื–ืขื ืขืŸ ืžื™ืกื˜ืึธืžืข ื˜ืขืžืคึผืœืึทื˜ืขืก ื•ื•ื™ ืื™ืŸ C ++ (ืื™ืŸ ืคืึทืงื˜, ื ื™ืฉื˜ ืžืžืฉ). ืื•ืŸ ื•ื•ืืก ืžื™ื™ื ืขืŸ ื“ื™ ืืœืข ืื ื“ืขืจืข ืกื™ืžื‘ืืœืŸ, ืคืจืื’ืข ืกื™ืžื ื™ื, ืื•ื™ืกืจื•ืคืŸ, ืคืจืืฆืขื ื˜ืŸ, ืœืขื˜ื˜ืขืจืก (ืื•ืŸ ื“ืึธืš ื–ื™ื™ ืžื™ื™ื ืขืŸ ืคืึทืจืฉื™ื“ืขื ืข ื–ืื›ืŸ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืขืจื˜ืขืจ), ืคืึธืจืฉื˜ืขืœืŸ ืขืจื’ืขืฅ, ืึธื‘ืขืจ ื ื™ืฉื˜ ืขืจื’ืขืฅ, ื”ืขืงืกืึทื“ืขืฆื™ืžืึทืœ ื ื•ืžืขืจืŸ - ืื•ืŸ ืจื•ื‘ึฟ ื™ืžืคึผืึธืจื˜ืึทื ื˜ืœื™, ื•ื•ื™ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืคื•ืŸ ื“ืขื correct (ื•ื•ืึธืก ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืคืืจื•ื•ืืจืคืŸ ื“ื•ืจืš ื“ื™ ืกืขืจื•ื•ืขืจ) ื‘ื™ื™ื˜ ืกื˜ืจื™ื? ืื™ืจ ื”ืึธื‘ืŸ ืฆื• ืœื™ื™ืขื ืขืŸ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ (ื™ืึธ, ืขืก ื–ืขื ืขืŸ ืœื™ื ืงืก ืฆื• ื“ื™ ืกื˜ืฉืขืžืึท ืื™ืŸ ื“ื™ JSON ื•ื•ืขืจืกื™ืข ื ื™ืจื‘ื™ื™ - ืึธื‘ืขืจ ื“ืึธืก ื˜ื•ื˜ ื ื™ืฉื˜ ืžืึทื›ืŸ ืขืก ืงืœื™ืจืขืจ).

ืขืคึฟืขื ืขืŸ ื“ืขื ื‘ืœืึทื˜ ื‘ื™ื™ื ืขืจื™ ื“ืึทื˜ืึท ืกื™ืจื™ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ืื•ืŸ ืึทืจืึธืคึผื•ื•ืึทืจืคืŸ ืื™ืŸ ื“ื™ ืžืึทื“ื–ืฉื™ืงืึทืœ ื•ื•ืขืœื˜ ืคื•ืŸ ืžืึทืฉืจื•ืžื– ืื•ืŸ ื“ื™ืกืงืจืขื˜ืข ืžืื˜ืขืžืื˜ื™ืง, ืขืคึผืขืก ืขื ืœืขืš ืฆื• ืžืึทื˜ืึทืŸ ืื™ืŸ ื“ื™ 4 ื™ืึธืจ. ืืœืคืื‘ืขื˜, ื˜ื™ืคึผ, ื•ื•ืขืจื˜, ืงืึธืžื‘ื™ื ืึทื˜ืึธืจ, ืคืึทื ื’ืงืฉืึทื ืึทืœ ืงืึธืžื‘ื™ื ืึทื˜ืึธืจ, ื ืึธืจืžืึทืœ ืคืึธืจืขื, ืงืึธืžืคึผืึธืกื™ื˜ืข ื˜ื™ืคึผ, ืคึผืึธืœื™ืžืึธืจืคื™ืง ื˜ื™ืคึผ ... ืื•ืŸ ื“ืึธืก ืื™ื– ื ืึธืจ ื“ืขืจ ืขืจืฉื˜ืขืจ ื‘ืœืึทื˜! ื•ื•ื™ื™ึทื˜ืขืจ ืึทื•ื•ื™ื™ืฅ ืื™ืจ TL ืฉืคึผืจืึทืš, ื•ื•ืืก ื›ืื˜ืฉ ืขืก ืื ื˜ื”ืืœื˜ ืฉื•ื™ืŸ ื ื‘ื™ื™ืฉืคื™ืœ ืคื•ืŸ ื ื ื™ืฉื˜ื™ื’ืข ื‘ืงืฉื” ืื•ืŸ ืขื ื˜ืคืขืจ, ื’ื™ื˜ ืžืขืŸ ื‘ื›ืœืœ ื ื™ืฉื˜ ืืŸ ืขื ื˜ืคืขืจ ืฆื• ืžืขืจ ื˜ื™ืคื™ืฉืข ืคืืœืŸ, ื•ื•ืืก ืžื™ื™ื ื˜ ืื– ืžืขืŸ ื•ื•ืขื˜ ื“ืืจืคืŸ ื“ื•ืจื›ื’ื™ื™ืŸ ื“ื™ ืื™ื‘ืขืจืฆื™ื™ืœื•ื ื’ ืคื•ืŸ ืžืื˜ืขืžืื˜ื™ืง ืื™ื‘ืขืจื’ืขื–ืขืฆื˜ ืคื•ืŸ ืจื•ืกื™ืฉ ืื•ื™ืฃ ืขื ื’ืœื™ืฉ ืื•ื™ืฃ ืื›ื˜ ืžืขืจ ื ืขืกื˜ืขื“. ื‘ืœืขื˜ืขืจ!

ืœื™ื™ืขื ืขืจ ื‘ืึทืงืึทื ื˜ ืžื™ื˜ ืคืึทื ื’ืงืฉืึทื ืึทืœ ืฉืคึผืจืึทื›ืŸ ืื•ืŸ ืึธื˜ืึทืžืึทื˜ื™ืง ื˜ื™ืคึผ ื™ื ืคืขืจืึทื ืก, ืคื•ืŸ ืงื•ืจืก, ื’ืขื–ืขืŸ ืื™ืŸ ื“ืขื ืฉืคึผืจืึทืš ื“ื™ืกืงืจื™ืคึผืฉืึทื ื–, ืืคื™ืœื• ืคึฟื•ืŸ ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ, ืคื™ืœ ืžืขืจ ื‘ืึทืงืึทื ื˜, ืื•ืŸ ืงืขื ืขืŸ ื–ืึธื’ืŸ ืึทื– ื“ืึธืก ืื™ื– ื‘ื›ืœืœ ื ื™ืฉื˜ ืฉืœืขื›ื˜ ืื™ืŸ ืคึผืจื™ื ืฆื™ืคึผ. ื“ื™ ื˜ืขื ื•ืช ืฆื• ื“ืขื ื–ืขื ืขืŸ:

  • ื™ื, ื“ืขืจ ืฆื™ืœ ืกืึธื•ื ื“ืก ื’ื•ื˜, ืึธื‘ืขืจ ื•ื•ื™ื™ ื ื™ื˜ ื“ืขืจื’ืจื™ื™ื›ื˜
  • ื‘ื™ืœื“ื•ื ื’ ืื™ืŸ ืจื•ืกื™ืฉ ืื•ื ื™ื•ื•ืขืจืกื™ื˜ืขื˜ืŸ ื•ื•ืขืจื™ื– ืืคื™ืœื• ืฆื•ื•ื™ืฉืŸ IT ืกืคึผืขืฉืึทืœื˜ื™ื– - ื ื™ื˜ ืึทืœืขืžืขืŸ ืœื™ื™ืขื ืขืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืงื•ืจืก
  • ืฆื•ื ืกื•ืฃ, ื•ื•ื™ ืžื™ืจ ื•ื•ืขืœืŸ ื–ืขืŸ, ืื™ืŸ ืคื™ืจ ืขืก ืื™ื– ื ื™ื˜ ืคืืจืœืื ื’ื˜, ื–ื™ื ื˜ ื‘ืœื•ื™ื– ืึท ืœื™ืžื™ื˜ืขื“ ืกืึทื‘ืกืขื˜ ืคื•ืŸ ืืคื™ืœื• ื“ื™ TL ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ื– ื’ืขื ื™ืฆื˜

ื•ื•ื™ ื’ืขื–ืึธื’ื˜ ืœืขืึธื ืขืจื“ ืื•ื™ืฃ ื“ืขื ืงืึทื ืึทืœ #perl ืื•ื™ืฃ ื“ื™ FreeNode IRC ื ืขืฅ, ื˜ืจื™ื™ื ื’ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึท ื˜ื•ื™ืขืจ ืคื•ืŸ ื˜ืขืœืขื’ืจืึทื ืฆื• ืžืึทื˜ืจื™ืฅ (ื“ื™ ืื™ื‘ืขืจื–ืขืฆื•ื ื’ ืคื•ืŸ ื“ื™ ืฆื™ื˜ื™ืจืŸ ืื™ื– ื•ืžืคึผื™ื ืงื˜ืœืขืš ืคึฟื•ืŸ ื–ื›ึผืจื•ืŸ):

ืขืก ืคื™ืœื– ื•ื•ื™ ืขืžืขืฆืขืจ ื•ื•ืืก ืื™ื– ื’ืขื•ื•ืขืŸ ื‘ืึทืงืขื ืขื  ืฆื• ื˜ื™ืคึผ ื˜ืขืึธืจื™ืข ืคึฟืึทืจ ื“ื™ ืขืจืฉื˜ืขืจ ืžืึธืœ, ื’ืขื•ื•ืืจืŸ ื™ืงืกื™ื™ื˜ืึทื“ ืื•ืŸ ืกื˜ืึทืจื˜ืขื“ ื˜ืจื™ื™ื ื’ ืฆื• ืฉืคึผื™ืœืŸ ืžื™ื˜ ืื™ื, ื ื™ื˜ ื˜ืึทืงืข ื–ืึธืจื’ืŸ ืื•ื™ื‘ ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืื™ืŸ ืคื™ืจ.

ื–ืขืŸ ืคึฟืึทืจ ื–ื™ืš ืื•ื™ื‘ ื“ื™ ื ื•ื™ื˜ ืคึฟืึทืจ ื ืึทืงืขื˜ ื˜ื™ื™ืคึผืก (ื™ื ื˜, ืœืึทื ื’, ืืื–"ื• ื•) ื•ื•ื™ ืขืคึผืขืก ืขืœืขืžืขื ื˜ืึทืจ ืจื™ื™ื– ื ื™ืฉื˜ ืงื™ื™ืŸ ืคืจืื’ืขืก - ืื™ืŸ ื“ื™ ืกื•ืฃ ื–ื™ื™ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืžืึทื ื™ื•ืึทืœื™ - ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืœืึธืžื™ืจ ื ืขืžืขืŸ ืึทืŸ ืคึผืจื•ื•ื•ืŸ ืฆื• ืึทืจื•ื™ืกืคื™ืจืŸ ืคื•ืŸ ื–ื™ื™ vector. ื“ืึธืก ืื™ื–, ืื™ืŸ ืคืึทืงื˜, ืžืขื ื’ืข, ืื•ื™ื‘ ืื™ืจ ืจื•ืคืŸ ื“ื™ ืจื™ื–ืึทืœื˜ื™ื ื’ ื–ืื›ืŸ ื“ื•ืจืš ื–ื™ื™ืขืจ ื’ืขื”ืขืจื™ืง ื ืขืžืขืŸ.

ืื‘ืขืจ ืคืจื™ืขืจ

ืงื•ืจืฅ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ืึท ืกื•ื‘ืกืขื˜ ืคื•ืŸ ื“ื™ TL ืกื™ื ื˜ืึทืงืก ืคึฟืึทืจ ื“ื™ ื•ื•ืืก ื˜ืึธืŸ ื ื™ื˜ ... ืœื™ื™ืขื ืขืŸ ื“ื™ ื‘ืึทืึทืžื˜ืขืจ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ

constructor = Type;
myVec ids:Vector<long> = Type;

fixed#abcdef34 id:int = Type2;

fixedVec set:Vector<Type2> = FixedVec;

constructorOne#crc32 field1:int = PolymorType;
constructorTwo#2crc32 field_a:long field_b:Type3 field_c:int = PolymorType;
constructorThree#deadcrc bit_flags_of_what_really_present:# optional_field4:bit_flags_of_what_really_present.1?Type = PolymorType;

an_id#12abcd34 id:int = Type3;
a_null#6789cdef = Type3;

ืฉื˜ืขื ื“ื™ืง ืกื˜ืึทืจืฅ ื“ืขืคึฟื™ื ื™ืฆื™ืข constructor, ื ืึธืš ื•ื•ืึธืก, ืึธืคึผื˜ื™ืึธื ืึทืœืœื™ (ืื™ืŸ ืคื™ืจ, ืฉื˜ืขื ื“ื™ืง) ื“ื•ืจืš ื“ืขื ืกื™ืžื‘ืึธืœ # ื–ืึธืœ CRC32 ืคื•ืŸ ื“ื™ ื ืึธืจืžืึทืœื™ื™ื–ื“ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืฉื˜ืจื™ืงืœ ืคื•ืŸ ื“ื™ ื’ืขื’ืขื‘ืŸ ื˜ื™ืคึผ. ื•ื•ื™ื™ึทื˜ืขืจ ืงื•ืžื˜ ื“ื™ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ื™ ืคืขืœื“ืขืจ, ืื•ื™ื‘ ื–ื™ื™ ื–ืขื ืขืŸ - ื“ืขืจ ื˜ื™ืคึผ ืงืขืŸ ื–ื™ื™ืŸ ืœื™ื™ื“ื™ืง. ืขืก ืขื ื“ื™ืงื˜ ื–ื™ืš ืึทืœืฅ ืžื™ื˜ ืึทืŸ ื’ืœื™ื™ื›ืฆื™ื™ื›ืŸ, ื“ืขืจ ื ืึธืžืขืŸ ืคึฟื•ืŸ ื“ืขื ื˜ื™ืคึผ, ืฆื• ื•ื•ืขืœื›ืŸ ื“ืขืจ ื’ืขื’ืขื‘ืŸ ืงืึธื ืกื˜ืจื•ืงื˜ืึธืจ โ€” ื“ืึธืก ื”ื™ื™ืกื˜, ืื™ืŸ ื“ืขืจ ืืžืชืŸ, ื“ืขืจ ืกื•ื‘ื˜ื™ืคึผืข โ€” ื’ืขื”ืขืจื˜. ื“ืขืจ ื˜ื™ืคึผ ืฆื• ื“ื™ ืจืขื›ื˜ ืคื•ืŸ ื“ื™ ื™ืงื•ื•ืึทืœื– ืฆื™ื™ื›ืŸ ืื™ื– ืคึผืึธืœื™ืžืึธืจืคื™ืง - ื“ืึธืก ืื™ื–, ืขืก ืงืขืŸ ืฉื˜ื™ืžืขืŸ ืฆื• ืขื˜ืœืขื›ืข ืกืคึผืขืฆื™ืคื™ืฉ ื˜ื™ื™ืคึผืก.

ืื•ื™ื‘ ื“ื™ ื“ืขืคึฟื™ื ื™ืฆื™ืข ืึทืงืขืจื– ื ืึธืš ื“ื™ ืฉื•ืจื” ---functions---, ื“ืขืžืึธืœื˜ ื“ืขืจ ืกื™ื ื˜ืึทืงืก ื•ื•ืขื˜ ื‘ืœื™ื™ึทื‘ืŸ ื“ื™ ื–ืขืœื‘ืข, ืึธื‘ืขืจ ื“ื™ ื˜ื™ื™ึทื˜ืฉ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึทื ื“ืขืจืฉ: ื“ืขืจ ืงืึทื ืกื˜ืจืึทืงื˜ืขืจ ื•ื•ืขื˜ ื•ื•ืขืจืŸ ื“ืขืจ ื ืึธืžืขืŸ ืคื•ืŸ ื“ื™ RPC ืคื•ื ืงืฆื™ืข, ื“ื™ ืคืขืœื“ืขืจ ื•ื•ืขื˜ ื•ื•ืขืจืŸ ืคึผืึทืจืึทืžืขื˜ืขืจืก (ื ื•, ื“ืึธืก ืื™ื–, ืขืก ื•ื•ืขื˜ ื‘ืœื™ื™ึทื‘ืŸ ืคึผื•ื ืงื˜ ื“ื™ ื–ืขืœื‘ืข ืกื˜ืจื•ืงื˜ื•ืจ ื•ื•ื™ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื•ื ื˜ืŸ, ืขืก ื•ื•ืขื˜ ื ืึธืจ ื–ื™ื™ืŸ ื“ื™ ื˜ื™ื™ึทื˜ืฉ ื’ืขื’ืขื‘ืŸ), ืื•ืŸ "ืคึผืึธืœืžืึธืจืคื™ืง ื˜ื™ืคึผ" ืื™ื– ื“ืขืจ ื˜ื™ืคึผ ืคื•ืŸ ื“ื™ ืื•ืžื’ืขืงืขืจื˜ ืจืขื–ื•ืœื˜ืึทื˜. ืืžืช, ืขืก ื•ื•ืขื˜ ื ืึธืš ื‘ืœื™ื™ึทื‘ืŸ ืคึผืึธืœื™ืžืึธืจืคื™ืง - ื ืึธืจ ื“ื™ืคื™ื™ื ื“ ืื™ืŸ ื“ื™ ืึธืคึผื˜ื™ื™ืœื•ื ื’ ---types---, ืื•ืŸ ื“ืขื ืงืึทื ืกื˜ืจืึทืงื˜ืขืจ ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื‘ืึทื˜ืจืึทื›ื˜. ื˜ื™ืคึผ ืึธื•ื•ืขืจืœืึธืึทื“ืก ืคื•ืŸ ื’ืขืจื•ืคึฟืŸ ืคืึทื ื’ืงืฉืึทื ื– ื“ื•ืจืš ื–ื™ื™ืขืจ ืึทืจื’ื•ืžืขื ื˜ืŸ, ื“.ื”. ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืกื™ื‘ื”, ืขื˜ืœืขื›ืข ืคืึทื ื’ืงืฉืึทื ื– ืžื™ื˜ ื“ื™ ื–ืขืœื‘ืข ื ืึธืžืขืŸ ืึธื‘ืขืจ ืึท ืึทื ื“ืขืจืฉ ื›ืกื™ืžืข, ื•ื•ื™ ืื™ืŸ C ++, ื–ืขื ืขืŸ ื ื™ืฉื˜ ืฆื•ื’ืขืฉื˜ืขืœื˜ ืื™ืŸ TL.

ืคืืจื•ื•ืืก "ืงืึทื ืกื˜ืจืึทืงื˜ืขืจ" ืื•ืŸ "ืคึผืึทืœื™ืžืึธืจืคื™ืง" ืื•ื™ื‘ ืขืก ืื™ื– ื ื™ืฉื˜ OOP? ื ื•, ืื™ืŸ ืคืึทืงื˜, ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืจื™ื ื’ืขืจ ืคึฟืึทืจ ืขืžืขืฆืขืจ ืฆื• ื˜ืจืึทื›ื˜ืŸ ื•ื•ืขื’ืŸ ืขืก ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ OOP - ืึท ืคึผืึธืœื™ืžืึธืจืคื™ืง ื˜ื™ืคึผ ื•ื•ื™ ืึท ืึทื‘ืกื˜ืจืึทืงื˜ ืงืœืึทืก, ืื•ืŸ ืงืึทื ืกื˜ืจืึทืงื˜ืขืจื– ื–ืขื ืขืŸ ื“ื™ ื“ื™ืจืขืงื˜ ืึธืคึผืฉื˜ืึทืžืœื™ื ื’ ืงืœืืกืŸ. final ืื™ืŸ ื“ืขืจ ื˜ืขืจืžื™ื ืึธืœืึธื’ื™ืข ืคื•ืŸ โ€‹โ€‹ืึท ื ื•ืžืขืจ ืคื•ืŸ ืฉืคึผืจืึทื›ืŸ. ืื™ืŸ ืคืึทืงื˜, ืคื•ืŸ ืงื•ืจืก, ื“ืึธ ืขื ืœืขื›ืงื™ื™ื˜ ืžื™ื˜ ืคืึทืงื˜ื™ืฉ ืึธื•ื•ื•ืขืจืœืึธื•ื“ื™ื“ ืงืึทื ืกื˜ืจืึทืงื˜ืขืจ ืžืขื˜ื”ืึธื“ืก ืื™ืŸ OO ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทื›ืŸ. ื–ื™ื ื˜ ืขืก ื–ืขื ืขืŸ ื‘ืœื•ื™ื– ื“ืึทื˜ืŸ ืกื˜ืจืึทืงื˜ืฉืขืจื– ื“ืึธ, ืขืก ื–ืขื ืขืŸ ืงื™ื™ืŸ ืžืขื˜ื”ืึธื“ืก (ื›ืึธื˜ืฉ ื“ื™ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ืคืึทื ื’ืงืฉืึทื ื– ืื•ืŸ ืžืขื˜ื”ืึธื“ืก ืื•ื ื˜ืŸ ืื™ื– ื’ืึทื ืฅ ื˜ื•ื™ื’ืขื•ื•ื“ื™ืง ืฆื• ืฉืึทืคึฟืŸ ืฆืขืžื™ืฉื•ื ื’ ืื™ืŸ ื“ื™ ืงืึธืคึผ ื•ื•ืขื’ืŸ ื•ื•ืึธืก ื–ื™ื™ ื–ืขื ืขืŸ, ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ื•ื•ืขื’ืŸ ืขืคึผืขืก ืึทื ื“ืขืจืฉ) - ืื™ืจ ืงืขื ืขืŸ ื˜ืจืึทื›ื˜ืŸ ืคื•ืŸ ืึท ืงืึทื ืกื˜ืจืึทืงื˜ืขืจ ื•ื•ื™ ืึท ื•ื•ืขืจื˜ ืคื•ืŸ ื•ื•ืึธืก ื–ื™ื™ึทืขื ื“ื™ืง ืงืึทื ืกื˜ืจืึทืงื˜ืึทื“ ื˜ื™ืคึผ ื•ื•ืขืŸ ืœื™ื™ืขื ืขืŸ ืึท ื˜ื™ื™ึทืš ืคื•ืŸ ื‘ื™ื˜ืขืก.

ื•ื•ื™ ืึทื–ื•ื™ ื˜ื•ื˜ ื“ืึธืก ืคึผืึทืกื™ืจืŸ? ื“ื™ ื“ืขืกืขืจื™ืึทืœื™ื–ืขืจ, ื•ื•ืึธืก ืฉื˜ืขื ื“ื™ืง ืœื™ื™ืขื ื˜ 4 ื‘ื™ื˜ืขืก, ื–ืขื˜ ื“ื™ ื•ื•ืขืจื˜ 0xcrc32 - ืื•ืŸ ืคืืจืฉื˜ื™ื™ื˜ ื•ื•ืืก ื•ื•ืขื˜ ื’ืขืฉืขืŸ ื•ื•ื™ื™ื˜ืขืจ field1 ืžื™ื˜ ื˜ื™ืคึผ int, ื“.ื”. ืœื™ื™ืขื ื˜ ืคึผื•ื ืงื˜ 4 ื‘ื™ื˜ืขืก, ืื•ื™ืฃ ื“ืขื ืึธื•ื•ื•ืขืจืœื™ื™ื™ื ื’ ืคืขืœื“ ืžื™ื˜ ื˜ื™ืคึผ PolymorType ืœื™ื™ืขื ืขืŸ. ื–ืขืŸ 0x2crc32 ืื•ืŸ ืคืืจืฉื˜ื™ื™ื˜ ืื– ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ืคืขืœื“ืขืจ ื•ื•ื™ื™ื˜ืขืจ, ืงื•ื“ื long, ืึทื–ื•ื™ ืžื™ืจ ืœื™ื™ืขื ืขืŸ 8 ื‘ื™ื˜ืขืก. ืื•ืŸ ื“ืขืžืึธืœื˜ ื•ื•ื™ื“ืขืจ ืึท ืงืึธืžืคึผืœืขืงืก ื˜ื™ืคึผ, ื•ื•ืึธืก ืื™ื– ื“ืขืกืขืจื™ืึทืœื™ื–ืขื“ ืื™ืŸ ื“ื™ ื–ืขืœื‘ืข ื•ื•ืขื’. ืœืžืฉืœ, Type3 ืงืขืŸ ื–ื™ื™ืŸ ื“ืขืจืงืœืขืจื˜ ืื™ืŸ ื“ื™ ืกื›ืขืžืข ื•ื•ื™ ื‘ืึทืœื“ ื•ื•ื™ ืฆื•ื•ื™ื™ ืงืึทื ืกื˜ืจืึทืงื˜ืขืจื– ืจื™ืกืคึผืขืงื˜ื™ื•ื•ืœื™, ื–ื™ื™ ืžื•ื–ืŸ ื˜ืจืขืคืŸ ืึธื“ืขืจ 0x12abcd34, ื ืึธืš ื•ื•ืึธืก ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืœื™ื™ืขื ืขืŸ ื ืึธืš 4 ื‘ื™ื˜ืขืก intืึธื“ืขืจ 0x6789cdef, ื ืึธืš ื•ื•ืึธืก ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืึธืจื ื™ืฉื˜. ืขืคึผืขืก ืึทื ื“ืขืจืฉ - ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื•ื•ืึทืจืคืŸ ืึท ื•ื™ืกื ืขื. ืื™ืŸ ืงื™ื™ืŸ ืคืึทืœ, ื ืึธืš ื“ืขื ืžื™ืจ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ืœื™ื™ืขื ืขืŸ 4 ื‘ื™ื˜ืขืก int ืคืขืœื“ืขืจ field_c ะฒ constructorTwo ืื•ืŸ ืื•ื™ืฃ ื“ืขื ืขื ื“ื™ืงืŸ ืžื™ืจ ืœื™ื™ืขื ืขืŸ ืื•ื ื“ื–ืขืจ PolymorType.

ืฆื•ื ืกื•ืฃ, ืื•ื™ื‘ ื’ืขื›ืืคื˜ 0xdeadcrc ืคืึทืจ constructorThree, ื“ืขืžืึธืœื˜ ื“ื™ ื–ืื›ืŸ ื•ื•ืขืจืŸ ืžืขืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜. ืื•ื ื“ื–ืขืจ ืขืจืฉื˜ืขืจ ืคืขืœื“ bit_flags_of_what_really_present ืžื™ื˜ ื˜ื™ืคึผ # - ืื™ืŸ ืคืึทืงื˜, ื“ืึธืก ืื™ื– ื ืึธืจ ืึทืŸ ืึทืœื™ืึทืก ืคึฟืึทืจ ื“ืขื ื˜ื™ืคึผ natื˜ื™ื™ึทื˜ืฉ "ื ืึทื˜ื™ืจืœืขืš ื ื•ืžืขืจ". ืึทื– ืื™ื–, ืื™ืŸ ืคืึทืงื˜, ืึทื ืกื™ื™ื ื“ ืื™ื ื˜ ืื™ื– ื“ืขืจ ื‘ืœื•ื™ื– ืคืึทืœ, ื“ื•ืจืš ื“ืขื ื•ื•ืขื’, ื•ื•ืขืŸ ืึทื ืกื™ื™ื ื“ ื ื•ืžืขืจืŸ ื–ืขื ืขืŸ ื’ืขืคื•ื ืขืŸ ืื™ืŸ ืคืึทืงื˜ื™ืฉ ืกืขืจืงืึทืฅ. ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืื™ื– ืึท ืงืึทื ืกื˜ืจืึทืงืฉืึทืŸ ืžื™ื˜ ืึท ืงืฉื™ื ืฆื™ื™ื›ืŸ, ื˜ื™ื™ึทื˜ืฉ ืึทื– ื“ืึธืก ืื™ื– ื“ื™ ืคืขืœื“ - ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคืึธืจืฉื˜ืขืœืŸ ืื•ื™ืฃ ื“ื™ ื“ืจืึธื˜ ื‘ืœื•ื™ื– ืื•ื™ื‘ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื‘ื™ืกืœ ืื™ื– ื‘ืึทืฉื˜ื™ืžื˜ ืื™ืŸ ื“ื™ ืคืขืœื“ ืจืขืคืขืจืขื ืกื˜ (ื‘ืขืขืจืขืš ื•ื•ื™ ืึท ื˜ืขืจื ืขืจื™ ืึธืคึผืขืจืึทื˜ืึธืจ). ืึทื–ื•ื™, ืจืขื›ืŸ ืึทื– ื“ืึธืก ื‘ื™ืกืœ ืื™ื– ื’ืขื•ื•ืขืŸ ืื•ื™ืฃ, ื“ืขืžืึธืœื˜ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืœื™ื™ืขื ืขืŸ ืึท ืคืขืœื“ ื•ื•ื™ Type, ื•ื•ืึธืก ืื™ืŸ ืื•ื ื“ื–ืขืจ ื‘ื™ื™ึทืฉืคึผื™ืœ ื”ืื˜ 2 ืงืึทื ืกื˜ืจืึทืงื˜ืขืจื–. ืื™ื™ื ืขืจ ืื™ื– ืœื™ื™ื“ื™ืง (ื‘ืืฉื˜ื™ื™ื˜ ื‘ืœื•ื™ื– ืคื•ืŸ ืึท ื™ื“ืขื ื˜ื™ืคื™ืขืจ), ื“ื™ ืื ื“ืขืจืข ื”ืื˜ ืึท ืคืขืœื“ ids ืžื™ื˜ ื˜ื™ืคึผ ids:Vector<long>.

ืื™ืจ ืงืขืŸ ื˜ืจืึทื›ื˜ืŸ ืึทื– ื‘ื™ื™ื“ืข ื˜ืขืžืคึผืœืึทื˜ืขืก ืื•ืŸ ื“ื–ืฉืึทื ืขืจื™ืงืก ื–ืขื ืขืŸ ื’ื•ื˜ ืึธื“ืขืจ ื“ื–ืฉืึทื•ื•ืึท. ืื‘ืขืจ ื ื™ื™ืŸ. ื›ึผืžืขื˜. ื“ืืก ื“ืขืจ ื‘ืœื•ื™ื– ืคืึทืœ ืคื•ืŸ ื•ื•ื™ื ืงืœ ื‘ืจืึทืงืึทืฅ ืื™ืŸ ืคืึทืงื˜ื™ืฉ ืกืขืจืงืึทืฅ, ืื•ืŸ ืขืก ืื™ื– ื‘ืœื•ื™ื– ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ื•ื•ืขืงื˜ืึธืจ. ืื™ืŸ ืึท ื‘ื™ื™ื˜ ื˜ื™ื™ึทืš, ื“ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ 4 CRC32 ื‘ื™ื˜ืขืก ืคึฟืึทืจ ื“ื™ ื•ื•ืขืงื˜ืึธืจ ื˜ื™ืคึผ ื–ื™ืš, ืฉื˜ืขื ื“ื™ืง ื“ื™ ื–ืขืœื‘ืข, ื“ืขืžืึธืœื˜ 4 ื‘ื™ื˜ืขืก - ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืžืขื ื’ืข ืขืœืขืžืขื ื˜ืŸ, ืื•ืŸ ื“ื™ ืขืœืขืžืขื ื˜ืŸ ื–ื™ืš.

ืœื™ื™ื’ ืฆื• ื“ืขื ื“ืขื ืคืึทืงื˜ ืึทื– ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ืฉื˜ืขื ื“ื™ืง ืึทืงืขืจื– ืื™ืŸ ื•ื•ืขืจื˜ืขืจ ืคื•ืŸ 4 ื‘ื™ื˜ืขืก, ืึทืœืข ื˜ื™ื™ืคึผืก ื–ืขื ืขืŸ ืžืึทืœื˜ืึทืคึผืึทืœื– ืคื•ืŸ ืขืก - ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ื˜ื™ื™ืคึผืก ื–ืขื ืขืŸ ืื•ื™ืš ื“ื™ืกืงืจื™ื™ื‘ื“ bytes ะธ string ืžื™ื˜ ืžืึทื ื•ืึทืœ ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืœืขื ื’ ืื•ืŸ ื“ืขื ืึทืœื™ื™ื ืžืึทื ื˜ ื“ื•ืจืš 4 - ื ื•, ืขืก ืžื™ื™ื ื˜ ืฆื• ื’ืขื–ื•ื ื˜ ื ืึธืจืžืึทืœ ืื•ืŸ ืืคื™ืœื• ืœืขืคื™ืขืจืขืš ืขืคืขืงื˜ื™ื•ื•? ื›ืึธื˜ืฉ TL ืื™ื– ืงืœื™ื™ืžื“ ืฆื• ื–ื™ื™ืŸ ืขืคืขืงื˜ื™ื•ื• ื‘ื™ื™ื ืขืจื™ ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ, ืึธื‘ืขืจ ืฆื• ื’ืขื ืขื ืžื™ื˜ ื–ื™ื™, ืžื™ื˜ ื“ื™ ื™ืงืกืคึผืึทื ืฉืึทืŸ ืคื•ืŸ ืขืคึผืขืก, ืืคื™ืœื• ื‘ื•ืœื™ืึทืŸ ื•ื•ืึทืœื•ืขืก ืื•ืŸ ืื™ื™ืŸ-ื›ืึทืจืึทืงื˜ืขืจ ืกื˜ืจื™ื ื’ืก ืึทืจื•ื™ืฃ ืฆื• 4 ื‘ื™ื˜ืขืก, ื•ื•ืขื˜ JSON ื ืึธืš ื–ื™ื™ืŸ ืคื™ืœ ื˜ื™ืงืขืจ? ืงื•ืง, ืืคื™ืœื• ื•ืžื ื™ื™ื˜ื™ืง ืคืขืœื“ืขืจ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืกืงื™ืคึผื˜ ื“ื•ืจืš ื‘ื™ืกืœ ืคืœืึทื’ืก, ืึทืœืฅ ืื™ื– ืคึผื•ื ืงื˜ ืคื™ื™ึทืŸ, ืื•ืŸ ืืคื™ืœื• ืขืงืกื˜ืขื ืกื™ื‘ืœืข ืคึฟืึทืจ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜, ื”ืึธื˜ ืื™ืจ ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึท ืึทืคึผืฉืึทื ืึทืœ ืคืขืœื“ืขืจ ืฆื• ื“ื™ ืงืึธื ืกื˜ืจื•ืงื˜ืึธืจ ืฉืคึผืขื˜ืขืจ? ..

ืึธื‘ืขืจ ื ื™ื˜, ืื•ื™ื‘ ืื™ืจ ืœื™ื™ืขื ืขืŸ ื ื™ืฉื˜ ืžื™ื™ืŸ ืงื•ืจืฅ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’, ืึธื‘ืขืจ ื“ื™ ืคื•ืœ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ, ืื•ืŸ ื˜ืจืึทื›ื˜ืŸ ื•ื•ืขื’ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ. ืคื™ืจืกื˜ืœื™, ื“ื™ CRC32 ืคื•ืŸ ื“ื™ ืงืึธื ืกื˜ืจื•ืงื˜ืึธืจ ืื™ื– ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื“ ื“ื•ืจืš ื“ื™ ื ืึธืจืžืึทืœื™ื™ื–ื“ ืกื˜ืฉืขืžืึท ื˜ืขืงืกื˜ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืฉื˜ืจื™ืงืœ (ืึทืจืึธืคึผื ืขืžืขืŸ ืขืงืกื˜ืจืข ื•ื•ื™ื™ื˜ืกืคึผื™ื™ืก, ืืื–"ื• ื•) - ืึทื–ื•ื™ ืื•ื™ื‘ ืึท ื ื™ื™ึท ืคืขืœื“ ืื™ื– ืžื•ืกื™ืฃ, ื“ื™ ื˜ื™ืคึผ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืฉื˜ืจื™ืงืœ ื•ื•ืขื˜ ื˜ื•ื™ืฉืŸ, ืื•ืŸ ื“ืขืจืคืืจ ื–ื™ื™ืŸ CRC32 ืื•ืŸ, ื“ืขืจื™ื‘ืขืจ, ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ. ืื•ืŸ ื•ื•ืึธืก ื•ื•ืึธืœื˜ ื“ืขืจ ืึทืœื˜ ืงืœื™ืขื ื˜ ื˜ืึธืŸ ืื•ื™ื‘ ืขืจ ื‘ืืงื•ืžืขืŸ ืึท ืคืขืœื“ ืžื™ื˜ ื ื™ื™ึท ืคืœืึทื’ืก ืฉื˜ืขืœืŸ, ืึธื‘ืขืจ ืขืจ ื”ืื˜ ื ื™ืฉื˜ ื•ื•ื™ืกืŸ ื•ื•ืึธืก ืฆื• ื˜ืึธืŸ ืžื™ื˜ ื–ื™ื™ ื•ื•ื™ื™ึทื˜ืขืจ? ..

ืฆื•ื•ื™ื™ื˜ื ืก, ืœืึธืžื™ืจ ื’ืขื“ืขื ืงืขืŸ CRC32, ื•ื•ืืก ื•ื•ืขืจื˜ ื“ื ื’ืขื ื•ืฆื˜ ื‘ืขืฆื ื•ื•ื™ ื”ืึทืฉ ืคืึทื ื’ืงืฉืึทื ื– ืฆื• ื™ื•ื ื™ืงืœื™ ื‘ืึทืฉื˜ื™ืžืขืŸ ื•ื•ืึธืก ื˜ื™ืคึผ ืื™ื– ื–ื™ื™ึทืขื ื“ื™ืง (ื“ืข) ืกืขืจื™ืึทืœื™ื–ืขื“. ื“ืึธ ืžื™ืจ ื–ืขื ืขืŸ ืคื™ื™ืกื˜ ืžื™ื˜ ื“ื™ ืคึผืจืึธื‘ืœืขื ืคื•ืŸ ืงืึทืœื™ื–ืฉืึทื ื– - ืื•ืŸ ื ื™ื˜, ื“ื™ ืžืึทืฉืžืึธืขืก ืื™ื– ื ื™ืฉื˜ ืื™ื™ื ืขืจ ืื™ืŸ 232, ืึธื‘ืขืจ ืคื™ืœ ืžืขืจ. ื•ื•ืขืจ ื’ืขื“ืขื ืงื˜ ืึทื– CRC32 ืื™ื– ื“ื™ื–ื™ื™ื ื“ ืฆื• ื“ืขื˜ืขืงื˜ (ืื•ืŸ ืจื™ื›ื˜ื™ืง) ืขืจืจืึธืจืก ืื™ืŸ ื“ื™ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืงืึทื ืึทืœ, ืื•ืŸ ืึทืงืึธืจื“ื™ื ื’ืœื™ ืคึฟืึทืจื‘ืขืกืขืจืŸ ื“ื™ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืฆื• ื“ื™ ืฉืึธื“ืŸ ืคื•ืŸ ืื ื“ืขืจืข? ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื–ื™ ื˜ื•ื˜ ื ื™ืฉื˜ ื–ืึธืจื’ืŸ ื•ื•ืขื’ืŸ ื“ื™ ืคึผืขืจืžื™ื•ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื‘ื™ื˜ืขืก: ืื•ื™ื‘ ืื™ืจ ืฆื™ื™ืœืŸ CRC32 ืคื•ืŸ ืฆื•ื•ื™ื™ ืฉื•ืจื•ืช, ืื™ืŸ ื“ื™ ืจื’ืข ืื™ืจ ื•ื•ืขื˜ ื•ื™ืกื‘ื™ื™ึทื˜ืŸ ื“ื™ ืขืจืฉื˜ืขืจ 4 ื‘ื™ื˜ืขืก ืžื™ื˜ ื“ื™ ื•ื•ื™ื™ึทื˜ืขืจ 4 ื‘ื™ื˜ืขืก - ื“ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ ื–ืขืœื‘ืข. ื•ื•ืขืŸ ืžื™ืจ ื”ืึธื‘ืŸ ื˜ืขืงืกื˜ ืกื˜ืจื™ื ื’ืก ืคื•ืŸ ื“ื™ ืœืึทื˜ื™ื™ึทืŸ ืืœืคืื‘ืขื˜ (ืื•ืŸ ืึท ื‘ื™ืกืœ ืคึผื•ื ืงื˜ื•ืึทืฆื™ืข) ื•ื•ื™ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘, ืื•ืŸ ื“ื™ ื ืขืžืขืŸ ื–ืขื ืขืŸ ื ื™ืฉื˜ ืกืคึผืขืฆื™ืขืœ ื˜ืจืึทืค - ื“ื™ ืžืึทืฉืžืึธืขืก ืคื•ืŸ ืึทื–ืึท ืึท ืคึผืขืจืžื™ื•ื˜ื™ื™ืฉืึทืŸ ืื™ื– ื–ื™ื™ืขืจ ื’ืขื•ื•ืืงืกืŸ.

ืื’ื‘, ื•ื•ืขืจ ื”ืื˜ ื’ืขื–ื•ื›ื˜ ื•ื•ืืก ืื™ื– ื“ืืจื˜ ื˜ืึทืงืข CRC32? ืื™ืŸ ืื™ื™ื ืขื ืคื•ืŸ ื“ื™ ืขืจืฉื˜ืข ืžืงื•ืจื™ื (ืื™ื™ื“ืขืจ ื•ื•ืืœื˜ืžืืŸ) ืื™ื– ื’ืขื•ื•ืขืŸ ื ื”ืืฉ-ืคื•ื ืงืฆื™ืข, ื•ื•ืืก ื”ืื˜ ื’ืขืžืขืจื˜ ื™ืขื“ืŸ ื›ืืจืืงื˜ืขืจ ืžื™ื˜ ื“ื™ ื ื•ืžืขืจ 239, ืื–ื•ื™ ื‘ืืœื™ื‘ื˜ ื‘ื™ื™ ื“ื™ ืžืขื ื˜ืฉืŸ, ื”ื ื”ื!

ืฆื•ื ืกื•ืฃ, ืึธื•ืงื™ื™, ืžื™ืจ ืื™ื™ื ื’ืขื–ืขืŸ ืึทื– ืงืึทื ืกื˜ืจืึทืงื˜ืขืจื– ืžื™ื˜ ืึท ืคืขืœื“ ื˜ื™ืคึผ Vector<int> ะธ Vector<PolymorType> ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืคืึทืจืฉื™ื“ืขื ืข CRC32. ืื•ืŸ ื•ื•ืึธืก ื•ื•ืขื’ืŸ ื“ื™ ืคึผืจืขื–ืขื ื˜ื™ืจื•ื ื’ ืื•ื™ืฃ ื“ื™ ืฉื•ืจื”? ืื•ืŸ ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ื˜ืขืึธืจื™ืข, ืื™ื– ืขืก ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขื ื˜ื™ืคึผ? ื–ืืœ ืก ื–ืึธื’ืŸ ืžื™ืจ ืคืึธืจืŸ ืึท ืžืขื ื’ืข ืคื•ืŸ โ€‹โ€‹ืฆืขืŸ ื˜ื•ื™ื–ื ื˜ ื ื•ืžืขืจืŸ, ื ื•, ืžื™ื˜ Vector<int> ืึทืœืฅ ืื™ื– ืงืœืึธืจ, ื“ื™ ืœืขื ื’ ืื•ืŸ ื ืึธืš 40000 ื‘ื™ื˜ืขืก. ืื•ืŸ ืื•ื™ื‘ ื“ืึธืก Vector<Type2>, ื•ื•ืืก ื‘ืืฉื˜ื™ื™ื˜ ื‘ืœื•ื™ื– ืคื•ืŸ ืื™ื™ืŸ ืคืขืœื“ int ืื•ืŸ ืขืก ืื™ื– ื“ืขืจ ื‘ืœื•ื™ื– ืื™ืŸ ื“ืขื ื˜ื™ืคึผ - ื˜ืึธืŸ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืื™ื‘ืขืจื—ื–ืจืŸ 10000xabcdef0 34 ืžืืœ ืื•ืŸ ื“ืขืžืึธืœื˜ 4 ื‘ื™ื˜ืขืก int, ืึธื“ืขืจ ื“ื™ ืฉืคึผืจืึทืš ืื™ื– ื‘ื™ื›ื•ืœืช ืฆื• ื•ื•ื™ื™ึทื– ื“ืขื ืคึฟืึทืจ ืื•ื ื“ื– ืคึฟื•ืŸ ื“ื™ ืงืึธื ืกื˜ืจื•ืงื˜ืึธืจ fixedVec ืื•ืŸ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ 80000 ื‘ื™ื˜ืขืก, ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื•ื•ื™ื“ืขืจ ื‘ืœื•ื™ื– 40000?

ื“ืึธืก ืื™ื– ื‘ื›ืœืœ ื ื™ืฉื˜ ืึท ืœื™ื™ื“ื™ืง ื˜ืขืึธืจืขื˜ื™ืฉ ืงืฉื™ื - ื™ืžืึทื“ื–ืฉืึทืŸ ืื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ืจืฉื™ืžื” ืคื•ืŸ ื’ืจื•ืคึผืข ื™ื•ื–ืขืจื–, ื™ืขื“ืขืจ ืคื•ืŸ ื•ื•ืึธืก ื”ืื˜ ืึท ืฉื™ื™ึทืŸ, ืขืจืฉื˜ืขืจ ื ืึธืžืขืŸ, ืœืขืฆื˜ืข ื ืึธืžืขืŸ - ื“ื™ ื—ื™ืœื•ืง ืื™ืŸ ื“ื™ ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ืึทื˜ืŸ ื˜ืจืึทื ืกืคืขืจื“ ืื™ื‘ืขืจ ืึท ืจื™ืจืขื•ื•ื“ื™ืง ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื‘ืึทื˜ื™ื™ื˜ื™ืง. ืขืก ืื™ื– ื“ื™ ื™ืคืขืงื˜ื™ื•ื•ื ืึทืก ืคื•ืŸ ื˜ืขืœืขื’ืจืึทื ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ื•ื•ืึธืก ืื™ื– ืึทื“ื•ื•ืขืจื˜ื™ื™ื–ื“ ืฆื• ืื•ื ื“ื–.

ืึทื–ื•ื™ ...

ื•ื•ืขืงื˜ืึธืจ, ื•ื•ืึธืก ืงืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื“ื™ื“ื•ืกื˜

ืื•ื™ื‘ ืื™ืจ ืคึผืจื•ึผื•ื•ื˜ ืฆื• ื“ื•ืจื›ื’ื™ื™ืŸ ื“ื™ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ื‘ืœืขื˜ืขืจ ืคื•ืŸ ืงืึธืžื‘ื™ื ืึทื˜ืึธืจืก ืื•ืŸ ื•ื•ืขื’ืŸ, ืื™ืจ ื•ื•ืขื˜ ื–ืขืŸ ืึทื– ืึท ื•ื•ืขืงื˜ืึธืจ (ืื•ืŸ ืืคื™ืœื• ืึท ืžืึทื˜ืจื™ืฅ) ืื™ื– ืคืึธืจืžืึทืœื™ ื˜ืจื™ื™ื ื’ ืฆื• ืึทืจื•ื™ืกืคื™ืจืŸ ืขื˜ืœืขื›ืข ืฉื™ืฅ ื“ื•ืจืš ื˜ื•ืคึผืœืขืก. ืื‘ืขืจ ืฆื•ื ืขื ื“ืข ื•ื•ืขืจืŸ ื–ื™ื™ ื’ืขื›ืืคื˜, ืžืขืŸ ืคืืจืฉืคืืจื˜ ื“ืขื ืœืขืฆื˜ืŸ ืฉืจื™ื˜, ืื•ืŸ ืžืขืŸ ื’ื™ื˜ ืคืฉื•ื˜ ื“ื™ ื“ืขืคื™ื ื™ืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื ื•ื•ืขืงื˜ืึธืจ, ื•ื•ืืก ืื™ื– ืื•ื™ืš ื ื™ืฉื˜ ื’ืขื‘ื•ื ื“ืŸ ืฆื• ื ื˜ื™ืค. ื•ื•ืืก ืื™ื– ื“ื™ ืžืขืฉื” ื“ื? ืื™ืŸ ืฉืคืจืื›ืŸ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’, ืกืคึผืขืฆื™ืขืœ ืคืึทื ื’ืงืฉืึทื ืึทืœ ืึธื ืขืก, ืขืก ืื™ื– ื’ืึทื ืฅ ื˜ื™ืคึผื™ืฉ ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืจืขืงื•ืจืกื™ื•ื•ืœื™ - ื“ืขืจ ืงืึทืžืคึผื™ื™ืœืขืจ ืžื™ื˜ ื–ื™ื™ึทืŸ ืคื•ื™ืœ ืืคืฉืืฆื•ื ื’ ื•ื•ืขื˜ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืึทืœืฅ ืื•ืŸ ื˜ืึธืŸ ืขืก. ืื™ืŸ ืœืฉื•ืŸ ื“ืึทื˜ืŸ ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ืึธื‘ืขืจ ืขืคื™ืงืึทืกื™ ืื™ื– ื“ืืจืฃ: ืขืก ืื™ื– ื’ืขื ื•ื’ ืฆื• ืคืฉื•ื˜ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืจืขืฉื™ืžืข, ื“.ื”. ืึท ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ืฆื•ื•ื™ื™ ืขืœืขืžืขื ื˜ืŸ - ื“ืขืจ ืขืจืฉื˜ืขืจ ืื™ื– ืึท ื“ืึทื˜ืŸ ืขืœืขืžืขื ื˜, ื“ื™ ืจื’ืข ืื™ื– ื“ื™ ื–ืขืœื‘ืข ืกื˜ืจื•ืงื˜ื•ืจ ื–ื™ืš ืึธื“ืขืจ ืึท ืœื™ื™ื“ื™ืง ืคึผืœืึทืฅ ืคึฟืึทืจ ื“ื™ ืขืง (ืคึผืึทืง (cons) ืื™ืŸ ืœื™ืกืคึผ). ืื‘ืขืจ ื“ืืก ื•ื•ืขื˜ ื“ืึธืš ื“ืึทืจืคืŸ ื™ืขื“ืขืจ ืขืœืขืžืขื ื˜ ืึทื“ื™ืฉื ืึทืœื™ ืคืึทืจื‘ืจืขื ื’ืขืŸ 4 ื‘ื™ื˜ืขืก (CRC32 ืื™ืŸ ื“ื™ ืคืึทืœ ืคื•ืŸ TL) ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื–ื™ื™ึทืŸ ื˜ื™ืคึผ. ืขืก ืื™ื– ื’ืจื™ื ื’ ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืึท ืžืขื ื’ืข ืคืึทืจืคืขืกื˜ื™ืงื˜ ื’ืจื™ื™ืก, ืึธื‘ืขืจ ืื™ืŸ ื“ืขื ืคืึทืœ ืคื•ืŸ ืึท ืžืขื ื’ืข ืคื•ืŸ โ€‹โ€‹ืึท ืคืจื™ืขืจ ืื•ืžื‘ืึทืงืึทื ื˜ ืœืขื ื’, ืžื™ืจ ื‘ืจืขื›ืŸ ืึทื•ื•ืขืง.

ืึทื–ื•ื™ ื–ื™ื ื˜ TL ืงืขืŸ ื ื™ืฉื˜ ืœืึธื–ืŸ ืื™ืจ ืึทืจื•ื™ืกืคื™ืจืŸ ืึท ื•ื•ืขืงื˜ืึธืจ, ืขืก ื”ืื˜ ืฆื• ื–ื™ื™ืŸ ืžื•ืกื™ืฃ ืื•ื™ืฃ ื“ื™ ื–ื™ื™ึทื˜. ืœืขืกืึธืฃ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ื–ืื’ื˜:

ืกื™ืจื™ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ื ื™ืฆื˜ ืฉื˜ืขื ื“ื™ืง ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืงืึทื ืกื˜ืจืึทืงื˜ืขืจ "ื•ื•ืขืงื˜ืึธืจ" (const 0x1cb5c415 = crc32 ("ื•ื•ืขืงื˜ืึธืจ t: ื˜ื™ืคึผ # [ t] = ื•ื•ืขืงื˜ืึธืจ ื”") ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ืึธืคืขื ื’ื™ืง ืื•ื™ืฃ ื“ื™ ืกืคึผืขืฆื™ืคื™ืฉ ื•ื•ืขืจื˜ ืคื•ืŸ ื“ื™ ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ืคื•ืŸ ื˜ื™ืคึผ t.

ื“ื™ ื•ื•ืขืจื˜ ืคื•ืŸ ื“ื™ ืึทืคึผืฉืึทื ืึทืœ ืคึผืึทืจืึทืžืขื˜ืขืจ t ืื™ื– ื ื™ืฉื˜ ื™ื ื•ื•ืึทืœื•ื•ื“ ืื™ืŸ ื“ื™ ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ื–ื™ื ื˜ ืขืก ืื™ื– ื“ืขืจื™ื™ื•ื•ื“ ืคื•ืŸ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ ื˜ื™ืคึผ (ืฉื˜ืขื ื“ื™ืง ื‘ืืงืื ื˜ ืื™ื™ื“ืขืจ ื“ืขืกืขืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ).

ื ืขืžืขืŸ ืึท ื ืขืขื ื˜ืขืจ ืงื•ืง: vector {t:Type} # [ t ] = Vector t - ืึธื‘ืขืจ ื™ื  ืขืจื’ืขืฆ ื ื™ื˜ ื“ื™ ื“ืขืคึฟื™ื ื™ืฆื™ืข ืึทืœื™ื™ืŸ ื˜ื•ื˜ ื ื™ืฉื˜ ื–ืึธื’ืŸ ืึทื– ื“ืขืจ ืขืจืฉื˜ืขืจ ื ื•ืžืขืจ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืœื™ื™ึทืš ืฆื• ื“ื™ ืœืขื ื’ ืคื•ืŸ ื“ื™ ื•ื•ืขืงื˜ืึธืจ! ืื•ืŸ ืขืก ื’ื™ื™ื˜ ื ื™ืฉื˜ ืคื•ืŸ ืขืจื’ืขืฅ. ื“ืึธืก ืื™ื– ืึท ื’ืขื’ืขื‘ืŸ ืึทื– ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื”ืึทืœื˜ืŸ ืื™ืŸ ื–ื™ื ืขืŸ ืื•ืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ ืžื™ื˜ ื“ื™ื™ืŸ ื”ืขื ื˜. ืื ื“ืขืจืฉ, ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืืคื™ืœื• ื”ืึธื ืขืกื˜ืœื™ ื“ืขืจืžืื ื˜ ืึทื– ื“ืขืจ ื˜ื™ืคึผ ืื™ื– ืฉื•ื•ื™ื ื“ืœ:

ื“ื™ ื•ื•ืขืงื˜ืึธืจ t ืคึผืึธืœื™ืžืึธืจืคื™ืง ืคึผืกืขื•ื•ื“ืึธื˜ื™ืคึผืข ืื™ื– ืึท "ื˜ื™ืคึผ" ื•ื•ืขืžืขื ืก ื•ื•ืขืจื˜ ืื™ื– ืึท ืกื™ืงื•ื•ืึทื ืก ืคื•ืŸ ื•ื•ืึทืœื•ืขืก ืคื•ืŸ ืงื™ื™ืŸ ื˜ื™ืคึผ ื”, ืึธื“ืขืจ ื‘ืึทืงืกื˜ ืึธื“ืขืจ ื ืึทืงืขื˜.

... ืึธื‘ืขืจ ื˜ื•ื˜ ื ื™ืฉื˜ ืคืึธืงื•ืก ืื•ื™ืฃ ืขืก. ื•ื•ืขืŸ ืื™ืจ, ืžื™ื“ ืคื•ืŸ ื•ื•ืึทื“ื™ื ื’ ื“ื•ืจืš ื“ื™ ืกื˜ืจืขื˜ืฉื™ื ื’ ืคื•ืŸ ืžืื˜ืขืžืื˜ื™ืง (ืืคึฟืฉืจ ืืคื™ืœื• ื‘ืืงืื ื˜ ืฆื• ืื™ืจ ืคื•ืŸ ืึท ืื•ื ื™ื•ื•ืขืจืกื™ื˜ืขื˜ ืงื•ืจืก), ื‘ืึทืฉืœื™ืกืŸ ืฆื• ื›ืขื–ืฉื‘ืŸ ืื•ืŸ ื–ืขืŸ ื•ื•ื™ ืื™ืจ ื˜ืึทืงืข ืึทืจื‘ืขื˜ ืžื™ื˜ ืื™ื ืื™ืŸ ืคื™ืจ, ื“ืขืจ ืจื•ืฉื ื‘ืœื™ื™ื‘ื˜ ืื™ืŸ ื“ื™ื™ืŸ ืงืึธืคึผ: ื“ืึธ ืื™ื– ืขืจื ืกื˜ ืžืึทื˜ื”ืขืžืึทื˜ื™ืงืก ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ , ื“ืึธืš ืงื™ืœ ืžืขื ื˜ืฉืŸ (ืฆื•ื•ื™ื™ ืžืื˜ืขืžืื˜ื™ืงืขืจ - ื’ืขื•ื•ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืึทืงื), ืื•ืŸ ื ื™ื˜ ื ืึธืจ ื•ื•ืขืจ ืขืก ื™ื–. ื“ืขืจ ืฆื™ืœ - ืฆื• ืฉืคึผืึทืœื˜ืŸ - ืื™ื– ื“ืขืจื’ืจื™ื™ื›ื˜.

ื“ื•ืจืš ื“ืขื ื•ื•ืขื’, ื•ื•ืขื’ืŸ ื“ื™ ื ื•ืžืขืจ. ืฆื•ืจื™ืงืจื•ืคืŸ # ืขืก ืื™ื– ืึท ืกื™ื ืึธื ื™ื nat, ื ืึทื˜ื™ืจืœืขืš ื ื•ืžืขืจ:

ืขืก ื–ืขื ืขืŸ ื˜ื™ืคึผ ืื•ื™ืกื“ืจื•ืงืŸ (ื˜ื™ืคึผืขืงืกืคึผืจ) ืื•ืŸ ื ื•ืžืขืจื™ืง ืื•ื™ืกื“ืจื•ืงืŸ (nat-expr). ืึธื‘ืขืจ, ื–ื™ื™ ื–ืขื ืขืŸ ื“ื™ืคื™ื™ื ื“ ื“ื™ ื–ืขืœื‘ืข ื•ื•ืขื’.

type-expr ::= expr
nat-expr ::= expr

ืึธื‘ืขืจ ืื™ืŸ ื“ืงื“ื•ืง ื–ืขื ืขืŸ ื–ื™ื™ ื‘ืึทืฉืจื™ื‘ืŸ ืื•ื™ืฃ ื“ื™ ื–ืขืœื‘ืข ื•ื•ืขื’, ื“.ื”. ื“ืขื ื—ื™ืœื•ืง ื•ื•ื™ื“ืขืจ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื“ืขืจืžืื ื˜ ืื•ืŸ ืฉื˜ืขืœืŸ ืื™ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ื“ื•ืจืš ื”ืึทื ื˜.

ื ื•, ื™ืึธ, ืžื•ืกื˜ืขืจ ื˜ื™ื™ืคึผืก (vector<int>, vector<User>) ื”ืึธื‘ืŸ ืึท ืคึผืจืึธืกื˜ ื™ื“ืขื ื˜ื™ืคื™ืขืจ (#1cb5c415), ื“.ื”. ืื•ื™ื‘ ืื™ืจ ื•ื•ื™ืกืŸ ื“ื™ ืจื•ืคืŸ ืื™ื– ื“ืขืจืงืœืขืจื˜ ื•ื•ื™

users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;

ื“ืขืžืึธืœื˜ ืื™ืจ ื•ื•ืืจื˜ืŸ ืคึฟืึทืจ ื ื™ื˜ ื‘ืœื•ื™ื– ืึท ื•ื•ืขืงื˜ืึธืจ, ืึธื‘ืขืจ ืึท ื•ื•ืขืงื˜ืึธืจ ืคื•ืŸ ื ื™ืฆืขืจืก. ืžืขืจ ื’ืขื ื•ื™, ื–ืึธืœ ื•ื•ืึทืจื˜ืŸ - ืื™ืŸ ืคืึทืงื˜ื™ืฉ ืงืึธื“, ื™ืขื“ืขืจ ืขืœืขืžืขื ื˜, ืื•ื™ื‘ ื ื™ืฉื˜ ืึท ื ืึทืงืขื˜ ื˜ื™ืคึผ, ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืึท ืงืึทื ืกื˜ืจืึทืงื˜ืขืจ, ืื•ืŸ ืื™ืŸ ืึท ื’ื•ื˜ ื•ื•ืขื’ ืื™ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ื ื™ื™ื˜ื™ืง ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ - ืื•ืŸ ืžื™ืจ ื–ืขื ืขืŸ ื’ืขืฉื™ืงื˜ ืคึผื•ื ืงื˜ ืื™ืŸ ื™ืขื“ืขืจ ืขืœืขืžืขื ื˜ ืคื•ืŸ ื“ืขื ื•ื•ืขืงื˜ืึธืจ ืึทื– ื˜ื™ืคึผ? ืื•ืŸ ืื•ื™ื‘ ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ืžื™ืŸ ืคื•ืŸ PHP, ืื™ืŸ ื•ื•ืึธืก ื“ื™ ืžืขื ื’ืข ืงืขื ืขืŸ ืึทื ื˜ื”ืึทืœื˜ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื˜ื™ื™ืคึผืก ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืขืœืขืžืขื ื˜ืŸ?

ืื™ืŸ ื“ืขื ืคื•ื ื˜, ืื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ืฆื• ื•ื•ื•ื ื“ืขืจ - ืื™ื– ืึทื–ืึท ืึท TL ื“ืืจืฃ? ืืคึฟืฉืจ ืคึฟืึทืจ ื“ื™ ื•ื•ืึธื’ืŸ ืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืžืขื’ืœืขืš ืฆื• ื ื•ืฆืŸ ื“ื™ ืžืขื ื˜ืฉืœืขืš ืกื™ืจื™ืึทืœื™ื–ืขืจ, ื“ื™ ื–ืขืœื‘ืข ืคึผืจืึธื˜ืึธื‘ื•ืฃ ื•ื•ืึธืก ืฉื•ื™ืŸ ื’ืขื•ื•ืขืŸ ื“ืขืžืึธืœื˜? ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื˜ืขืึธืจื™ืข, ืœืึธืžื™ืจ ืงื•ืงืŸ ืื™ืŸ ืคื™ืจ.

ื™ื’ื–ื™ืกื˜ื™ื ื’ TL ื™ืžืคึผืœืึทืžืึทื ืฅ ืื™ืŸ ืงืึธื“

TL ืื™ื– ื’ืขื‘ื•ื™ืจืŸ ืื™ืŸ ื“ื™ ื’ืขื“ืขืจืขื ืคื•ืŸ ื•ื•ืงืึธื ื˜ืึทืงื˜ืข ืืคื™ืœื• ืื™ื™ื“ืขืจ ื“ื™ ื’ืขื–ื•ื ื˜-ื‘ืืงืื ื˜ ื’ืขืฉืขืขื ื™ืฉืŸ ืžื™ื˜ ื“ืขื ืคืึทืจืงื•ื™ืฃ ืคื•ืŸ ื“ื•ืจืึธื•ื• ืก ื˜ื™ื™ืœืŸ ืื•ืŸ (ืžื™ืกื˜ืึธืžืข), ืืคื™ืœื• ืื™ื™ื“ืขืจ ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ื˜ืขืœืขื’ืจืึทื. ืื•ืŸ ืื™ืŸ ืึธืคึฟืŸ ืžืงื•ืจ ืžืงื•ืจื™ื ืคื•ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืื™ืจ ืงืขื ืขืŸ ื’ืขืคึฟื™ื ืขืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืžืึธื“ื ืข ืงืจืึทื˜ืฉื™ื–. ืื•ืŸ ื“ื™ ืฉืคึผืจืึทืš ื–ื™ืš ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ื“ืึธืจื˜ ืžืขืจ ื’ืึธืจ ื•ื•ื™ ืขืก ืื™ื– ืื™ืฆื˜ ืื™ืŸ ื˜ืขืœืขื’ืจืึทื. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื”ืึทืฉืขืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ืขืจ ืกื›ืขืžืข (ื˜ื™ื™ึทื˜ืฉ ื“ื™ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ืคึผืกืขื•ื•ื“ืึธื˜ื™ืคึผืข (ื•ื•ื™ ืึท ื•ื•ืขืงื˜ืึธืจ) ืžื™ื˜ ื“ืขื•ื•ื™ืึทื ื˜ ื ืึทื˜ื•ืจ). ืึธื“ืขืจ

Templates are not used now. Instead, the same universal constructors (for example, vector {t:Type} [t] = Vector t) are used w

ืื‘ืขืจ ืœืืžื™ืจ ื‘ืื˜ืจืื›ื˜ืŸ ืฆื•ืœื™ื‘ ืคื•ืœืฉื˜ืขื ื“ื™ืงืงื™ื™ื˜ ื“ืืก ื‘ื™ืœื“, ื›ื“ื™ ืฆื• ื ืื›ื’ื™ื™ืŸ, ืื–ื•ื™ ืฆื• ื–ืื’ืŸ, ื“ื™ ืื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ื ืขื ืจื™ื– ืคื•ืŸ ืžื—ืฉื‘ื”.

#define ZHUKOV_BYTES_HACK

#ifdef ZHUKOV_BYTES_HACK

/* dirty hack for Zhukov request */

ืึธื“ืขืจ ื“ืขื ืฉื™ื™ืŸ ืื™ื™ื ืขืจ:

    static const char *reserved_words_polymorhic[] = {

      "alpha", "beta", "gamma", "delta", "epsilon", "zeta", "eta", "theta", NULL

      };

ื“ืขืจ ืคืจืึทื’ืžืขื ื˜ ืื™ื– ื•ื•ืขื’ืŸ ื˜ืขืžืคึผืœืึทื˜ืขืก, ื•ื•ื™:

intHash {alpha:Type} vector<coupleInt<alpha>> = IntHash<alpha>;

ื“ืึธืก ืื™ื– ื“ื™ ื“ืขืคึฟื™ื ื™ืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ hashmap ืžื•ืกื˜ืขืจ ื˜ื™ืคึผ, ื•ื•ื™ ืึท ื•ื•ืขืงื˜ืึธืจ ืคื•ืŸ ื™ื ื˜ - ื˜ื™ืคึผ ืคึผืขืจื–. ืื™ืŸ C ++ ืขืก ื•ื•ืึธืœื˜ ืงื•ืงืŸ ืขืคึผืขืก ื•ื•ื™ ื“ืึธืก:

    template <T> class IntHash {
      vector<pair<int,T>> _map;
    }

ืื–ื•ื™, alpha - ืงื™ื•ื•ืขืจื“! ืื‘ืขืจ ื ืืจ ืื™ืŸ C++ ืงืขืŸ ืžืขืŸ ืฉืจื™ื™ื‘ืŸ T, ืื‘ืขืจ ืžืขืŸ ื“ืืจืฃ ืฉืจื™ื™ื‘ืŸ ืืœืคื, ื‘ื™ืชื... ืื‘ืขืจ ื ื™ืฉื˜ ืžืขืจ ื•ื•ื™ 8 ืคึผืึทืจืึทืžืขื˜ืขืจืก, ื”ืื˜ ื–ื™ืš ื“ื™ ืคืื ื˜ืื–ื™ืข ื’ืขืขื ื“ื™ื’ื˜ ืื•ื™ืฃ ื˜ืขื˜ื. ืึทื–ื•ื™ ืขืก ืžื™ื™ื ื˜ ืึทื– ืึทืžืึธืœ ืื™ืŸ ืคืขื˜ืขืจื‘ื•ืจื’ ืขืก ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ ื‘ืขืขืจืขืš ืึทื–ืึท ื“ื™ืึทืœืึธื’ื–:

-- ะะฐะดะพ ัะดะตะปะฐั‚ัŒ ะฒ TL ัˆะฐะฑะปะพะฝั‹
-- ะ‘ะป... ะัƒ ะฟัƒัั‚ัŒ ะฟะฐั€ะฐะผะตั‚ั€ั‹ ะทะพะฒัƒั‚ ะฐะปัŒั„ะฐ, ะฑะตั‚ะฐ,... ะšะฐะบะธะต ั‚ะฐะผ ะตั‰ั‘ ะฑัƒะบะฒั‹ ะตัั‚ัŒ... ะž, ั‚ัั‚ะฐ!
-- ะ“ั€ะฐะผะผะฐั‚ะธะบะฐ? ะัƒ ะฟะพั‚ะพะผ ะฝะฐะฟะธัˆะตะผ

-- ะกะผะพั‚ั€ะธั‚ะต, ะบะฐะบะพะน ั ัะธะฝั‚ะฐะบัะธั ะฟั€ะธะดัƒะผะฐะป ะดะปั ัˆะฐะฑะปะพะฝะพะฒ ะธ ะฒะตะบั‚ะพั€ะฐ!
-- ะขั‹ ะดะพะปะฑะฐะฝัƒะปัั, ะบะฐะบ ะผั‹ ัั‚ะพ ะฟะฐั€ัะธั‚ัŒ ะฑัƒะดะตะผ?
-- ะ”ะฐ ะฝะต ััั‹ั‚ะต, ะพะฝ ั‚ะฐะผ ะพะดะธะฝ ะฒ ัั…ะตะผะต, ะทะฐั…ะฐั€ะบะพะดะธั‚ัŒ -- ะธ ะพะบ

ืื‘ืขืจ ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื•ื•ืขื’ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ื’ืขืœื™ื™ื’ื˜ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ TL "ื‘ื›ืœืœ". ืœืึธืžื™ืจ ื’ื™ื™ืŸ ืฆื• ื“ื™ ื‘ืึทื˜ืจืึทื›ื˜ื•ื ื’ ืคื•ืŸ ื™ืžืคึผืœืึทืžืึทื ืฅ ืื™ืŸ ื“ื™ ืคืึทืงื˜ื™ืฉ ื˜ืขืœืขื’ืจืึทื ืงืœื™ื™ืึทื ืฅ.

ื‘ืึทืกื™ืœ ืก ื•ื•ืึธืจื˜:

ื•ื•ืึทืกื™ืœื™, [09.10.18 17:07] ืจื•ื‘ึฟ ืคื•ืŸ ืึทืœืข, ื“ืขืจ ื˜ืึธื›ืขืก ืื™ื– ื”ื™ื™ืก ืคื•ืŸ ื“ื™ ืคืึทืงื˜ ืึทื– ื–ื™ื™ ืกืงืจื•ื“ ืึทืจื•ื™ืฃ ืึท ื‘ื™ื ื˜ืœ ืคื•ืŸ ืึทื‘ืกื˜ืจืึทืงืฆื™ืขืก, ืื•ืŸ ื“ืึทืŸ ื–ื™ื™ ื›ืึทืžืขืจื“ ืึท ืจื™ื’ืœ ืื•ื™ืฃ ื–ื™ื™, ืื•ืŸ ืึธื•ื•ื•ืขืจืœื™ื™ื“ ื“ื™ ืงืึธื“ืขื’ืขื’ืขืจืึทื˜ืึธืจ ืžื™ื˜ ืงืจืึทื˜ืฉื™ื–
ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ืขืจืฉื˜ืขืจ ืคื•ืŸ ื“ื™ ื“ืึทืงืก ื“ื™ pilot.jpg
ื“ืขืจื ืึธืš ืคึฟื•ืŸ ื“ื™ jekichan.webp ืงืึธื“

ื“ืึธืš, ืคึฟื•ืŸ ืžืขื ื˜ืฉืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ื‘ืึทืงืึทื ื˜ ืžื™ื˜ ืึทืœื’ืขืจื™ื“ืึทืžื– ืื•ืŸ ืžืื˜ืขืžืื˜ื™ืง, ืžื™ืจ ืงืขื ืขืŸ ื“ืขืจื•ื•ืึทืจื˜ืŸ ืึทื– ื–ื™ื™ ื”ืึธื‘ืŸ ืœื™ื™ืขื ืขืŸ Aho, Ullman, ืื•ืŸ ื–ืขื ืขืŸ ื‘ืึทืงืึทื ื˜ ืžื™ื˜ ื“ื™ ื“ืข ืคืึทืงื˜ืึธ ื™ื ื“ืึทืกื˜ืจื™ ืกื˜ืึทื ื“ืึทืจื˜ ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ืฉืจื™ื™ื‘ืŸ ื–ื™ื™ืขืจ ื“ืกืœ ืงืึทืžืคึผื™ื™ืœืขืจื– ืื™ื‘ืขืจ ื“ื™ ื™ืึธืจืฆืขื ื“ืœื™ื ื’, ืจืขื›ื˜? ..

ืžื—ื‘ืจ ื˜ืขืœืขื’ืจืึทื-ืงืœื™ ืื™ื– ื•ื•ื™ื˜ืึทืœื™ ื•ื•ืึทืœื˜ืžืึทืŸ, ื•ื•ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืคืืจืฉื˜ืื ืขืŸ ืคื•ืŸ ื“ื™ ืคึผืึทืกื™ืจื•ื ื’ ืคื•ืŸ ื“ื™ TLO ืคึฟืึธืจืžืึทื˜ ืึทืจื•ื™ืก ืคื•ืŸ ื–ื™ื™ืŸ (ืงืœื™) ืœื™ืžืึทืฅ, ืึท ืžื™ื˜ื’ืœื™ื“ ืคื•ืŸ ื“ืขืจ ืžืึทื ืฉืึทืคึฟื˜ - ืื™ืฆื˜ ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืคึฟืึทืจ ืคึผืึทืจืกื™ื ื’ TL ืื™ื– ืึทืœืึทืงื™ื™ื˜ื™ื“ ืกืขืคึผืขืจืึทื˜ืœื™ื•ื•ืึธืก ืื™ื– ื“ืขืจ ืจื•ืฉื ืคื•ืŸ ืื™ืจ TL parser? ..

16.12 04:18 ื•ื•ืึทืกื™ืœื™: ืื™ืŸ ืžื™ื™ืŸ ืžื™ื™ื ื•ื ื’, ืขืžืขืฆืขืจ ื”ืื˜ ื ื™ืฉื˜ ืžืึทืกื˜ืขืจื“ ืœืขืงืก + ื™ืึทืง
16.12 04:18 ื•ื•ืึทืกื™ืœื™: ืึทื ื“ืขืจืฉ ืื™ืš ืงืขืŸ ื ื™ืฉื˜ ื“ืขืจืงืœืขืจืŸ ืขืก
16.12 04:18 ื•ื•ืึทืกื™ืœื™: ื ื•, ืึธื“ืขืจ ื–ื™ื™ ื–ืขื ืขืŸ ื‘ืึทืฆืึธืœื˜ ืคึฟืึทืจ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืฉื•ืจื•ืช ืื™ืŸ ื•ื•ืง
16.12 04:19 ื•ื•ืึทืกื™ืœื™: 3 ืง+ ืฉื•ืจื•ืช ืคื•ืŸ ืื ื“ืขืจืข<censored> ืึทื ืฉื˜ืึธื˜ ืึท ืคึผืึทืจืกืขืจ

ืืคึฟืฉืจ ืึทืŸ ืื•ื™ืกื ืึทื? ื–ืืœ ืก ื–ืขืŸ ื•ื•ื™ ื˜ื•ื˜ ื“ืึธืก ืื™ื– ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ืงืœื™ืขื ื˜ - ื˜ืขืœืขื’ืจืึทื ื“ืขืกืงื˜ืึธืคึผ:

    nametype = re.match(r'([a-zA-Z.0-9_]+)(#[0-9a-f]+)?([^=]*)=s*([a-zA-Z.<>0-9_]+);', line);
    if (not nametype):
      if (not re.match(r'vector#1cb5c415 {t:Type} # [ t ] = Vector t;', line)):
         print('Bad line found: ' + line);

1100+ ืฉื•ืจื•ืช ืื™ืŸ ืคึผื™ื˜ื”ืึธืŸ, ืึท ืคึผืึธืจ ืคื•ืŸ ืจืขื’ื•ืœืขืจ ืื•ื™ืกื“ืจื•ืงืŸ + ืกืคึผืขืฆื™ืขืœ ืงืึทืกืขืก ืคื•ืŸ ื“ื™ ื•ื•ืขืงื˜ืึธืจ ื˜ื™ืคึผ, ื•ื•ืึธืก, ืคื•ืŸ ืงื•ืจืก, ืื™ื– ื“ืขืจืงืœืขืจื˜ ืื™ืŸ ื“ื™ ืกื›ืขืžืข ื•ื•ื™ ืขืก ื–ืึธืœ ื–ื™ื™ืŸ ืœื•ื™ื˜ ื“ื™ TL ืกื™ื ื˜ืึทืงืก, ืึธื‘ืขืจ ื–ื™ื™ ืฉื˜ืขืœืŸ ืขืก ืื•ื™ืฃ ื“ืขื ืกื™ื ื˜ืึทืงืก, ืคึผืึทืจืก ืขืก ืžืขืจ ... ื“ื™ ืงืฉื™ื ืื™ื–, ื•ื•ืึธืก ืึทืจืŸ ืžื™ื˜ ืึทืœืข ื“ืขื ื ืกะธืžืขืจ ื‘ืœืึธื–, ืื•ื™ื‘ ืงื™ื™ืŸ ืื™ื™ื ืขืจ ืื™ื– ื’ืขื’ืื ื’ืขืŸ ืฆื• ืคึผืึทืจืก ืขืก ืœื•ื™ื˜ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืกื™ื™ึท ื•ื•ื™ ืกื™ื™ึท?!

ื“ื•ืจืš ื“ืขื ื•ื•ืขื’ ... ื’ืขื“ืขื ืงื˜ ืžื™ืจ ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ ื“ื™ CRC32 ื˜ืฉืขืง? ืึทื–ื•ื™, ืื™ืŸ ื“ื™ ื˜ืขืœืขื’ืจืึทื ื“ืขืกืงื˜ืึธืคึผ ืงืึธื“ ื’ืขื ืขืจืึทื˜ืึธืจ ืขืก ืื™ื– ืึท ืจืฉื™ืžื” ืคื•ืŸ ืื•ื™ืกื ืขืžืขืŸ ืคึฟืึทืจ ื“ื™ ื˜ื™ื™ืคึผืก ืื™ืŸ ื•ื•ืึธืก ื“ื™ ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื“ CRC32 ืฉื˜ื™ืžื˜ ื ื™ืฉื˜ ื•ื•ื™ ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื“ื™ ื“ื™ืึทื’ืจืึทืžืข!

ื•ืกื™ืœื™, [18.12 22:49] ืื•ืŸ ื“ืึธ ื–ืึธืœื˜ ืื™ืจ ื˜ืจืึทื›ื˜ืŸ ืฆื™ ืžืขืŸ ื“ืึทืจืฃ ืึทื–ืึท ืชึผืœ.
ืื•ื™ื‘ ืื™ืš ื’ืขื•ื•ืืœื˜ ืฆื• ื‘ืึทืœืึทื’ืึทืŸ ืžื™ื˜ ืึธืœื˜ืขืจื ืึทื˜ื™ื•ื• ื™ืžืคึผืœืึทืžืึทื ืฅ, ืื™ืš ื•ื•ืึธืœื˜ ืึธื ื”ื™ื™ื‘ืŸ ื™ื ืกืขืจื˜ื™ื ื’ ืฉื•ืจื” ื‘ืจื™ื™ืงืก, ื”ืึทืœื‘ ืคื•ืŸ ื“ื™ ืคึผืึทืจืกืขืจืก ื•ื•ืขื˜ ื‘ืจืขื›ืŸ ืื•ื™ืฃ ืžืึทืœื˜ื™-ืฉื•ืจื” ื–ื•ืš
tdesktop, ืึธื‘ืขืจ, ืื•ื™ืš

ื’ืขื“ืขื ืงื˜ ื“ื™ ืคื•ื ื˜ ื•ื•ืขื’ืŸ ืื™ื™ืŸ-ืœื™ื™ื ืขืจื–, ืžื™ืจ ื•ื•ืขืœืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ืื™ื ืึท ื‘ื™ืกืœ ืฉืคึผืขื˜ืขืจ.

ืึธื•ืงื™ื™, ื˜ืขืœืขื’ืจืึทื-ืงืœื™ ืื™ื– ืึทื ืึทืคื™ืฉืึทืœ, ื˜ืขืœืขื’ืจืึทื ื“ืขืกืงื˜ืึธืคึผ ืื™ื– ื‘ืึทืึทืžื˜ืขืจ, ืึธื‘ืขืจ ื•ื•ืึธืก ื•ื•ืขื’ืŸ ื“ื™ ืื ื“ืขืจืข? ืื•ืŸ ื•ื•ืขืจ ื•ื•ื™ื™ืกื˜?.. ืื™ืŸ ื“ื™ ืึทื ื“ืจื•ื™ื“ ืงืœื™ืขื ื˜ ืงืึธื“, ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืงื™ื™ืŸ ืกื˜ืฉืขืžืึท ืคึผืึทืจืกืขืจ ื‘ื™ื™ึท ืึทืœืข (ื•ื•ืึธืก ืจื™ื™ื–ื™ื– ืคึฟืจืื’ืŸ ื•ื•ืขื’ืŸ ืึธืคึฟืŸ ืžืงื•ืจ, ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ืคึฟืึทืจ ื“ื™ ืจื’ืข ื˜ื™ื™ืœ), ืึธื‘ืขืจ ืขืก ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ ืขื˜ืœืขื›ืข ืื ื“ืขืจืข ืžืึธื“ื ืข ืฉื˜ื™ืง ืคื•ืŸ ืงืึธื“, ืึธื‘ืขืจ ื•ื•ืขื’ืŸ ื–ื™ื™ ืื™ืŸ ื“ื™ ืกืึทื‘ืกืขืงืฆื™ืข ืื•ื ื˜ืŸ.

ื•ื•ืึธืก ืื ื“ืขืจืข ืคืจืื’ืขืก ืจื™ื™ื–ืึทื– ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ืื™ืŸ ืคื™ืจ? ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื–ื™ื™ ืกืงืจื•ื“ ืึทืจื•ื™ืฃ, ืคื•ืŸ ืงื•ืจืก, ืžื™ื˜ ื‘ื™ืกืœ ืคืขืœื“ืขืจ ืื•ืŸ ืงืึทื ื“ื™ืฉืึทื ืึทืœ ืคืขืœื“ืขืจ:

ื•ื•ืึทืกื™ืœื™: flags.0? true
ืžื™ื˜ืœ ื“ื™ ืคืขืœื“ ืื™ื– ืคืึธืจืฉื˜ืขืœืŸ ืื•ืŸ ืืžืช ืื•ื™ื‘ ื“ื™ ืคืึธืŸ ืื™ื– ื‘ืึทืฉื˜ื™ืžื˜

ื•ื•ืึทืกื™ืœื™: flags.1? int
ืžื™ื˜ืœ ื“ื™ ืคืขืœื“ ืื™ื– ืคืึธืจืฉื˜ืขืœืŸ ืื•ืŸ ื“ืึทืจืฃ ื–ื™ื™ืŸ ื“ืขืกืขืจื™ืึทืœื™ื–ืขื“

ื•ื•ืึทืกื™ืœื™: ื˜ืึธื›ืขืก, ื‘ืจืขื ืขืŸ ื ื™ืฉื˜, ื•ื•ืึธืก ื˜ืึธืŸ ืื™ืจ ื˜ืึธืŸ!
Vasily: ืขืจื’ืขืฅ ืื™ืŸ ื“ื™ ื“ืึธืง ืขืก ืื™ื– ืึท ื“ืขืจืžืึธื ืขืŸ ืึทื– ืืžืช ืื™ื– ืึท ื ืึทืงืขื˜ ื˜ื™ืคึผ ืคื•ืŸ ื ื•ืœ ืœืขื ื’, ืึธื‘ืขืจ ืขืก ืื™ื– ืึทื ืจื™ืœื™ืกื˜ื™ืง ืฆื• ื–ืึทืžืœืขืŸ ืขืคึผืขืก ืคื•ืŸ ื–ื™ื™ืขืจ ื“ืึธืงืก
ื•ื•ืึทืกื™ืœื™: ืขืก ืื™ื– ื ื™ื˜ ืึทื–ืึท ื–ืึทืš ืื™ืŸ ืึธืคึฟืŸ ื™ืžืคึผืœืึทืžืึทื ืฅ ืึธื“ืขืจ, ืึธื‘ืขืจ ืขืก ื–ืขื ืขืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืงืจืึทื˜ืฉื™ื– ืื•ืŸ ืคึผืจืึทืคึผืก

ื•ื•ื™ ื•ื•ืขื’ืŸ ืึท ื˜ืขืœืขื˜ืึธืŸ? ืงื•ืงืŸ ืคืึธืจื•ื™ืก ืื•ื™ืฃ ื“ื™ ื˜ืขืžืข ืคื•ืŸ โ€‹โ€‹MTProto, ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ - ืขืก ื–ืขื ืขืŸ ืึทื–ืึท ื‘ืจืขืงืœืขืš ืื™ืŸ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ, ืึธื‘ืขืจ ื“ืขืจ ืฆื™ื™ื›ืŸ % ืขืก ื•ื•ืขืจื˜ ื‘ืœื•ื™ื– ื‘ืึทืฉืจื™ื‘ืŸ ื•ื•ื™ "ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืฆื• ื“ื™ ื’ืขื’ืขื‘ืŸ ื ืึทืงืขื˜-ื˜ื™ืคึผ", ื“.ื”. ืื™ืŸ ื“ื™ ื‘ื™ื™ืฉืคื™ืœืŸ ืื•ื ื˜ืŸ, ืึธื“ืขืจ ืึท ื˜ืขื•ืช ืึธื“ืขืจ ืขืคึผืขืก ืึทื ื“ืึทืงื™ืึทืžืขื ื™ื“:

ื•ื•ืึทืกื™ืœื™, [22.06.18/18/38 XNUMX:XNUMX] ืื™ืŸ ืื™ื™ืŸ ืึธืจื˜:

msg_container#73f1f8dc messages:vector message = MessageContainer;

ืื™ืŸ ืึท ืึทื ื“ืขืจืฉ ื•ื•ืขื’:

msg_container#73f1f8dc messages:vector<%Message> = MessageContainer;

ืื•ืŸ ื“ืึธืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ื’ืจื•ื™ืก ื“ื™ืคืขืจืึทื ืกื™ื–, ืื™ืŸ ืคืึทืงื˜ื™ืฉ ืœืขื‘ืŸ ืงื•ืžื˜ ืึท ืžื™ืŸ ืคื•ืŸ ื ืึทืงืขื˜ ื•ื•ืขืงื˜ืึธืจ

ืื™ืš ื”ืื‘ ื ื™ืฉื˜ ื’ืขื–ืขืŸ ื ืึทืงืขื˜ ื•ื•ืขืงื˜ืึธืจ ื“ืขืคึฟื™ื ื™ืฆื™ืขืก ืื•ืŸ ืื™ืš ื‘ื™ืŸ ื ื™ืฉื˜ ื’ืขืคึฟื•ื ืขืŸ ืขืก

ืึทื ืึทืœื™ืกื™ืก ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ ื˜ืขืœืขื˜ืึธืŸ ื“ื•ืจืš ื”ืึทื ื˜

ื–ื™ื™ืŸ ืกื›ืขืžืข ืงืึทืžืขื ื˜ืึทื“ ืื•ื™ืก ื“ื™ ื“ืขืคึฟื™ื ื™ืฆื™ืข msg_container

ื•ื•ื™ื“ืขืจ, ื“ื™ ืงืฉื™ื ื‘ืœื™ื™ื‘ื˜ ื•ื•ืขื’ืŸ%. ืขืก ืื™ื– ื ื™ืฉื˜ ื“ื™ืกืงืจื™ื™ื‘ื“.

ื•ื•ืึทื“ื™ื ื’ืึธื ื˜ืฉืึทืจืึธื•ื•, [22.06.18/19/22 XNUMX:XNUMX] ืื•ืŸ ืื™ืŸ tdesktop?

ื•ื•ืึทืกื™ืœื™, [22.06.18/19/23 XNUMX:XNUMX] ืื‘ืขืจ ื–ื™ื™ืขืจ TL ืคึผืึทืจืกืขืจ ืื•ื™ืฃ ื“ื™ ืจืขื’ื•ืœืึทื˜ืึธืจืก ื•ื•ืขื˜ ืžื™ืกื˜ืึธืžืข ืื•ื™ืš ื ื™ืฉื˜ ืขืกืŸ ืขืก

// parsed manually

TL ืื™ื– ืึท ืฉื™ื™ืŸ ืึทื‘ืกื˜ืจืึทืงืฆื™ืข, ืงื™ื™ืŸ ืื™ื™ื ืขืจ ื™ืžืคึผืœืึทืžืึทื ืฅ ืขืก ื’ืึธืจ

ืื•ืŸ ืขืก ืื™ื– ืงื™ื™ืŸ % ืื™ืŸ ื–ื™ื™ืขืจ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืกื›ืขืžืข

ืื‘ืขืจ ื“ืึธ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืงืึทื ื˜ืจืึทื“ื™ืงืฅ ื–ื™ืš, ืึทื–ื•ื™ xs

ืขืก ืื™ื– ื’ืขืคื•ื ืขืŸ ืื™ืŸ ื’ืจืึทืžืึทื˜ื™ืง, ื–ื™ื™ ืงืขืŸ ื ืึธืจ ืคืึทืจื’ืขืกืŸ ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืกืขืžืึทื ื˜ื™ืง

ื ื•, ื”ืืกื˜ ื’ืขื–ืขื”ืŸ ื“ืขื ื“ืืง ืื•ื™ืฃ ืช"ืœ, ืžืขืŸ ืงืขืŸ ืขืก ื ื™ืฉื˜ ืื•ื™ืกืจืขื›ืขื ืขืŸ ืืŸ ื ื”ืืœื‘ืŸ ืœื™ื˜ืขืจ

"ื ื•, ืœืึธืžื™ืจ ื–ืึธื’ืŸ," ื•ื•ืขื˜ ืืŸ ืื ื“ืขืจ ืœื™ื™ืขื ืขืจ ื–ืึธื’ืŸ, "ืื™ืจ ืงืจื™ื˜ื™ืงื™ืจื˜ ืึทืœืฅ, ืึทื–ื•ื™ ื•ื•ื™ื™ึทื–ืŸ ืขืก ื•ื•ื™ ืขืก ื–ืึธืœ."

ื•ื•ืึทืกื™ืœื™ ืขื ื˜ืคืขืจื˜: "ื•ื•ื™ ืคึฟืึทืจ ื“ื™ ืคึผืึทืจืกืขืจ, ืื™ืš ื“ืึทืจืคึฟืŸ ื–ืื›ืŸ ื•ื•ื™

    args: /* empty */ { $$ = NULL; }
        | args arg { $$ = g_list_append( $1, $2 ); }
        ;

    arg: LC_ID ':' type-term { $$ = tl_arg_new( $1, $3 ); }
            | LC_ID ':' condition '?' type-term { $$ = tl_arg_new_cond( $1, $5, $3 ); free($3); }
            | UC_ID ':' type-term { $$ = tl_arg_new( $1, $3 ); }
            | type-term { $$ = tl_arg_new( "", $1 ); }
            | '[' LC_ID ']' { $$ = tl_arg_new_mult( "", tl_type_new( $2, TYPE_MOD_NONE ) ); }
            ;

ืขืคืขืก ืžืขืจ ื•ื•ื™ ื•ื•ื™

struct tree *parse_args4 (void) {
  PARSE_INIT (type_args4);
  struct parse so = save_parse ();
  PARSE_TRY (parse_optional_arg_def);
  if (S) {
    tree_add_child (T, S);
  } else {
    load_parse (so);
  }
  if (LEX_CHAR ('!')) {
    PARSE_ADD (type_exclam);
    EXPECT ("!");
  }
  PARSE_TRY_PES (parse_type_term);
  PARSE_OK;
}

ืึธื“ืขืจ

        # Regex to match the whole line
        match = re.match(r'''
            ^                  # We want to match from the beginning to the end
            ([w.]+)           # The .tl object can contain alpha_name or namespace.alpha_name
            (?:
                #             # After the name, comes the ID of the object
                ([0-9a-f]+)    # The constructor ID is in hexadecimal form
            )?                 # If no constructor ID was given, CRC32 the 'tl' to determine it

            (?:s              # After that, we want to match its arguments (name:type)
                {?             # For handling the start of the '{X:Type}' case
                w+            # The argument name will always be an alpha-only name
                :              # Then comes the separator between name:type
                [wd<>#.?!]+  # The type is slightly more complex, since it's alphanumeric and it can
                               # also have Vector<type>, flags:# and flags.0?default, plus :!X as type
                }?             # For handling the end of the '{X:Type}' case
            )*                 # Match 0 or more arguments
            s                 # Leave a space between the arguments and the equal
            =
            s                 # Leave another space between the equal and the result
            ([wd<>#.?]+)     # The result can again be as complex as any argument type
            ;$                 # Finally, the line should always end with ;
            ''', tl, re.IGNORECASE | re.VERBOSE)

ื“ืึธืก ืื™ื– ื“ืขืจ ื’ืื ืฆืขืจ ืœืขืงืกืขืจ:

    ---functions---         return FUNCTIONS;
    ---types---             return TYPES;
    [a-z][a-zA-Z0-9_]*      yylval.string = strdup(yytext); return LC_ID;
    [A-Z][a-zA-Z0-9_]*      yylval.string = strdup(yytext); return UC_ID;
    [0-9]+                  yylval.number = atoi(yytext); return NUM;
    #[0-9a-fA-F]{1,8}       yylval.number = strtol(yytext+1, NULL, 16); return ID_HASH;

    n                      /* skip new line */
    [ t]+                  /* skip spaces */
    //.*$                 /* skip comments */
    /*.**/              /* skip comments */
    .                       return (int)yytext[0];

ื™ืขื ืข. ืกื™ืžืคึผืœืขืจ ืื™ื– ืฆื• ืœื™ื™ื’ืŸ ืขืก ืžื™ืœื“."

ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ืื™ืŸ ื“ื™ ืกื•ืฃ, ื“ื™ ืคึผืึทืจืกืขืจ ืื•ืŸ ืงืึธื“ ื’ืขื ืขืจืึทื˜ืึธืจ ืคึฟืึทืจ ื“ื™ ืึทืงื˜ืฉืึทื•ื•ืึทืœื™ ื’ืขื•ื•ื™ื™ื ื˜ ืกืึทื‘ืกืขื˜ ืคื•ืŸ TL ืคึผืึทืกื™ืง ืื™ืŸ ื•ื•ืขื’ืŸ 100 ืฉื•ืจื•ืช ืคื•ืŸ ื’ืจืึทืžืึทื˜ื™ืง ืื•ืŸ ~ 300 ืฉื•ืจื•ืช ืคื•ืŸ ื“ื™ ื’ืขื ืขืจืึทื˜ืึธืจ (ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืึทืœืข printืก ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืงืึธื“), ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื˜ื™ืคึผ ื’ื•ื“ื™ื–, ื˜ื™ืคึผ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืคึฟืึทืจ ื™ื ื˜ืจืึทืกืคึผืขืงืฉืึทืŸ ืื™ืŸ ื™ืขื“ืขืจ ืงืœืึทืก. ื™ืขื“ืขืจ ืคึผืึธืœื™ืžืึธืจืคื™ืง ื˜ื™ืคึผ ืื™ื– ืคืืจื•ื•ืื ื“ืœืขืŸ ืื™ืŸ ืึท ืœื™ื™ื“ื™ืง ืึทื‘ืกื˜ืจืึทืงื˜ ื‘ืึทื–ืข ืงืœืึทืก, ืื•ืŸ ืงืึทื ืกื˜ืจืึทืงื˜ืขืจื– ื™ืจืฉืขื ืขืŸ ื“ืขืจืคื•ืŸ ืื•ืŸ ื”ืึธื‘ืŸ ืžืขื˜ื”ืึธื“ืก ืคึฟืึทืจ ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ืื•ืŸ ื“ืขืกืขืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ.

ืคืขืœืŸ ืคื•ืŸ ื˜ื™ื™ืคึผืก ืื™ืŸ ื˜ื™ืคึผ ืฉืคึผืจืึทืš

ืฉื˜ืึทืจืง ื˜ื™ื™ืคึผื™ื ื’ ืื™ื– ื’ื•ื˜, ืจืขื›ื˜? ื ื™ื™ืŸ, ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ืึท ื”ืึธืœื™ื•ื•ืึทืจ (ื›ืึธื˜ืฉ ืื™ืš ื‘ืขืกืขืจ ื•ื•ืขืœืŸ ื“ื™ื ืึทืžื™ืฉ ืฉืคึผืจืึทื›ืŸ), ืึธื‘ืขืจ ืึท ืคึผืึธืกื˜ื•ืœืึทื˜ ืื™ืŸ TL. ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ืขืก, ื“ื™ ืฉืคึผืจืึทืš ื–ืึธืœ ืฆื•ืฉื˜ืขืœืŸ ืึทืœืข ืกืึธืจืฅ ืคื•ืŸ ื˜ืฉืขืงืก ืคึฟืึทืจ ืื•ื ื“ื–. ื ื•, ืึธื•ืงื™ื™, ืœืึธื–ืŸ ื ื™ืฉื˜ ืื™ื, ืึธื‘ืขืจ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ, ืึธื‘ืขืจ ืขืจ ื–ืึธืœ ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื–ื™ื™. ืื•ืŸ ื•ื•ืึธืก ืึทืคึผืขืจื˜ื•ื ืึทื˜ื™ื– ื˜ืึธืŸ ืžื™ืจ ื•ื•ืขืœืŸ?

ืขืจืฉื˜ืขืจ ืคื•ืŸ ืึทืœืข, ืงืึทื ืกื˜ืจื™ื™ื ืฅ. ื“ืึธ ืžื™ืจ ื–ืขืŸ ืื™ืŸ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื•ืคึผืœืึธืึทื“ื™ื ื’ ื˜ืขืงืขืก:

ื“ืขืจ ื‘ื™ื™ื ืขืจื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ืขืจ ื˜ืขืงืข ืื™ื– ื“ืขืžืึธืœื˜ ืฉืคึผืึทืœื˜ืŸ ืื™ืŸ ืคึผืึทืจืฅ. ืึทืœืข ื˜ื™ื™ืœืŸ ืžื•ื–ืŸ ื”ืึธื‘ืŸ ื“ื™ ื–ืขืœื‘ืข ื’ืจื™ื™ืก ( part_size ) ืื•ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื˜ื ืึธื™ื ืžื•ื–ืŸ ื–ื™ื™ืŸ ื‘ืื’ืขื’ื ื˜:

  • part_size % 1024 = 0 (ื“ื™ื•ื•ื™ื–ืึทื‘ืึทืœ ื“ื•ืจืš 1KB)
  • 524288 % part_size = 0 (512KB ืžื•ื–ืŸ ื–ื™ื™ืŸ ื™ื•ื•ืึทื ืœื™ ื“ื™ื•ื•ื™ื–ืึทื‘ืึทืœ ื“ื•ืจืš ื˜ื™ื™ืœ_ื’ืจื™ื™ืก)

ื“ื™ ืœืขืฆื˜ืข ื˜ื™ื™ืœ ื“ืึทืจืฃ ื ื™ืฉื˜ ื‘ืึทืคืจื™ื“ื™ืงืŸ ื“ื™ ื‘ืื“ื™ื ื’ื•ื ื’ืขืŸ, ืื•ื™ื‘ ื“ื™ ื’ืจื™ื™ืก ืื™ื– ื•ื•ื™ื™ื ื™ืงืขืจ ื•ื•ื™ ื˜ื™ื™ืœ_ืกื™ื™ื–.

ื™ืขื“ืขืจ ื˜ื™ื™ืœ ื–ืึธืœ ื”ืึธื‘ืŸ ืึท ืกื™ืงื•ื•ืึทื ืก ื ื•ืžืขืจ, file_part, ืžื™ื˜ ืึท ื•ื•ืขืจื˜ ืจื™ื™ื ื“ื–ืฉื™ื ื’ ืคื•ืŸ 0 ืฆื• 2,999.

ื ืึธืš ื“ื™ ืคึผืึทืจื˜ื™ืฉืึทื ื– ืคื•ืŸ ื“ื™ ื˜ืขืงืข ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืงืœื™ื™ึทื‘ืŸ ืึท ืื•ืคึฟืŸ ืคึฟืึทืจ ืฉืคึผืึธืจืŸ ืขืก ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ. ื ื•ืฆืŸ upload.saveBigFilePart ืื™ืŸ ืคืึทืœ ื“ื™ ืคื•ืœ ื’ืจื™ื™ืก ืคื•ืŸ ื“ืขืจ ื˜ืขืงืข ืื™ื– ืžืขืจ ื•ื•ื™ 10 ืžื‘ ืื•ืŸ upload.saveFilePart ืคึฟืึทืจ ืงืœืขื ืขืจืขืจ ื˜ืขืงืขืก.
[...] ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื“ืึทื˜ืŸ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ืขืจืจืึธืจืก ืงืขืŸ ื–ื™ื™ืŸ ืื•ืžื’ืขืงืขืจื˜:

  • FILE_PARTS_INVALID - ืื•ืžื’ื™ืœื˜ื™ืง ื ื•ืžืขืจ ืคื•ืŸ ืคึผืึทืจืฅ. ื“ื™ ื•ื•ืขืจื˜ ืื™ื– ื ื™ืฉื˜ ืฆื•ื•ื™ืฉืŸ 1..3000

ื–ืขื ืขืŸ ืงื™ื™ืŸ ืคื•ืŸ ื“ื™ ืคืึธืจืฉื˜ืขืœืŸ ืื™ืŸ ื“ื™ ืกื›ืขืžืข? ืื™ื– ืขืก ืขืคืขืก ืื•ื™ืกื“ืจื™ืงืœื™ืš ื“ื•ืจืš ืช"ืœ? ื ื™ื™ืŸ. ืึธื‘ืขืจ ืึทื ื˜ืฉื•ืœื“ื™ืงื˜, ืึทืคึฟื™ืœื• ื“ืขืจ ืึทืœื˜ืžืึธื“ื™ืฉ ื˜ื•ืจื‘ืึธ ืคึผืึทืกืงืึทืœ ืื™ื– ื‘ื™ื›ื•ืœืช ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ื˜ื™ื™ืคึผืก ื’ืขื’ืขื‘ืŸ ื“ื•ืจืš ืจื™ื™ื ื“ื–ืฉืึทื–. ืื•ืŸ ืขืจ ืงืขืŸ ื˜ืึธืŸ ื ืึธืš ืื™ื™ืŸ ื–ืึทืš, ืื™ืฆื˜ ื‘ืขืกืขืจ ื‘ืืงืื ื˜ ื•ื•ื™ enum - ืึท ื˜ื™ืคึผ ื•ื•ืึธืก ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ืึท ื™ื ื•ืžืขืจื™ื™ืฉืึทืŸ ืคื•ืŸ ืึท ืคืึทืจืคืขืกื˜ื™ืงื˜ (ืงืœื™ื™ืŸ) ื ื•ืžืขืจ ืคื•ืŸ ื•ื•ืึทืœื•ืขืก. ืื™ืŸ ืฉืคืจืื›ืŸ ื•ื•ื™ C - ื ื•ืžืขืจื™ืง, ืžื™ืจ ื”ืึธื‘ืŸ ื‘ืœื•ื™ื– ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ ื˜ื™ื™ืคึผืก ื‘ื™ื– ืื™ืฆื˜. ื ื•ืžืขืจืŸ. ืื‘ืขืจ ืขืก ื–ืขื ืขืŸ ืื•ื™ืš ืขืจื™ื™ื–, ืกื˜ืจื™ื ื’ืก ... ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืคื™ื™ึทืŸ ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืึทื– ื“ืขืจ ืฉื˜ืจื™ืงืœ ืงืขื ืขืŸ ื‘ืœื•ื™ื– ืึทื ื˜ื”ืึทืœื˜ืŸ ืึท ื˜ืขืœืขืคืึธืŸ ื ื•ืžืขืจ, ืจืขื›ื˜?

ืงื™ื™ื ืขืจ ืคื•ืŸ ื“ืขื ืื™ื– ืื™ืŸ TL. ืึธื‘ืขืจ ืขืก ืื™ื–, ืœืžืฉืœ, ืื™ืŸ JSON ืกื˜ืฉืขืžืึท. ืื•ืŸ ืื•ื™ื‘ ืขืžืขืฆืขืจ ืึทื ื“ืขืจืฉ ืงืขื ืขืŸ ืึทื‘ื“ื–ืฉืขืงืฅ ื•ื•ืขื’ืŸ ื“ื™ ื“ื™ื•ื•ื™ื–ืึทื‘ื™ืœื™ื˜ื™ ืคื•ืŸ 512 ืงื‘ ืึทื– ื“ืึธืก ื ืึธืš ื“ืึทืจืฃ ื–ื™ื™ืŸ ืึธืคึผื’ืขืฉื˜ืขืœื˜ ืื™ืŸ ื“ื™ ืงืึธื“, ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ื“ืขืจ ืงืœื™ืขื ื˜ ืคืฉื•ื˜ ืงืขืŸ ื ื™ืฉื˜ ืฉื™ืงืŸ ื ื•ืžืขืจ ืื•ื™ืก ืคื•ืŸ ืงื™ื™ื˜ 1..3000 (ืื•ืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื˜ืขื•ืช ืงืขืŸ ื ื™ืฉื˜ ื”ืึธื‘ืŸ ืื•ื™ืคื’ืขืฉื˜ืื ืขืŸ) ืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืžืขื’ืœืขืš, ืจืขื›ื˜? ..

ื“ื•ืจืš ื“ืขื ื•ื•ืขื’, ื•ื•ืขื’ืŸ ืขืจืจืึธืจืก ืื•ืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ ื•ื•ืึทืœื•ืขืก. ื“ื™ ืื•ื™ื’ ืื™ื– ืคืืจืฉื˜ืขืจื˜ ืืคื™ืœื• ืคืืจ ื“ื™ ื•ื•ืืก ื”ืื‘ืŸ ื’ืขืืจื‘ืขื˜ ืžื™ื˜ ืช"ืœ - ืขืก ื”ืื˜ ืื•ื ื– ื ื™ืฉื˜ ื’ืœื™ื™ืš ืื•ื™ืคื’ืขื›ืืคื˜ ื™ืขื“ืข ืื™ื™ื ืข ืึท ืคึฟื•ื ืงืฆื™ืข ืื™ืŸ TL ืงืขื ืขืŸ ืึทืงืฉืœื™ ืฆื•ืจื™ืงืงื•ืžืขืŸ ื ื™ื˜ ื‘ืœื•ื™ื– ื“ื™ ื“ื™ืกืงืจื™ื™ื‘ื“ ืฆื•ืจื™ืงืงื•ืžืขืŸ ื˜ื™ืคึผ, ืึธื‘ืขืจ ืื•ื™ืš ืึท ื˜ืขื•ืช. ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ื“ื™ื“ื•ืกืึทื‘ืึทืœ ื“ื•ืจืš ื“ื™ ืช"ืœ ื–ื™ืš. ืคื•ืŸ ืงื•ืจืก, ืขืก ืื™ื– ืคืึทืจืฉื˜ื™ื™ื™ืง ืกื™ื™ึท ื•ื•ื™ ืกื™ื™ึท ืื•ืŸ ื ืึทืคื™ื’ ืื™ื– ื ื™ื˜ ื ื™ื™ื˜ื™ืง ืื™ืŸ ืคื™ืจ (ื›ืึธื˜ืฉ ืื™ืŸ ืคืึทืงื˜, RPC ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขื’ืŸ, ืžื™ืจ ื•ื•ืขืœืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ื“ืขื) - ืึธื‘ืขืจ ื•ื•ืึธืก ื•ื•ืขื’ืŸ ื“ื™ ืจื™ื™ื ืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืงืึทื ืกืขืคึผืก ืคื•ืŸ ืžืื˜ืขืžืื˜ื™ืง ืคื•ืŸ ืึทื‘ืกื˜ืจืึทืงื˜ ื˜ื™ื™ืคึผืก ืคื•ืŸ ื“ื™ ื”ื™ืžืœื™ืฉืข ื•ื•ืขืœื˜?.. ื’ืขื›ืืคื˜ ื“ื™ ืฉืœืขืคึผ - ืึทื–ื•ื™ ื’ืœื™ื™ึทื›ืŸ.

ืื•ืŸ ืœืขืกืึธืฃ, ื•ื•ืึธืก ื•ื•ืขื’ืŸ ืœื™ื™ืขื ืขืŸ? ื ื•, ื“ืึธืจื˜, ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ื”ืึธื‘ืŸ ืขืก ืจืขื›ื˜ ืื™ืŸ ื“ื™ ืกื˜ืฉืขืžืึท (ื•ื•ื™ื“ืขืจ, ืขืก ืื™ื– ืื™ืŸ ื“ื™ JSON ืกื˜ืฉืขืžืึท), ืึธื‘ืขืจ ืื•ื™ื‘ ืขืก ืื™ื– ืฉื•ื™ืŸ ืกื˜ืจื™ื™ื ื“ ืžื™ื˜ ืขืก, ื•ื•ืึธืก ื•ื•ืขื’ืŸ ื“ื™ ืคึผืจืึทืงื˜ื™ืฉ ื–ื™ื™ึทื˜ - ืื™ืŸ ืžื™ื ื“ืกื˜ืขืจ ืขืก ืื™ื– ืคึผืฉื•ื˜ ืฆื• ื”ื™ื˜ืŸ ื“ื™ืคืขืจืึทื ืกื™ื– ื‘ืขืฉืึทืก ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ? ื–ืขืŸ ืคึฟืึทืจ ื–ื™ืš ืื™ืŸ ืคืึทืงื˜ื™ืฉ ื‘ื™ื™ืฉืคื™ืœืŸ:

-channelFull#76af5481 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int = ChatFull;
+channelFull#1c87a71a flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_view_stats:flags.12?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int = ChatFull;

ืึธื“ืขืจ

-message#44f9b43d flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true id:int from_id:flags.8?int to_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to_msg_id:flags.3?int date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long = Message;
+message#44f9b43d flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true id:int from_id:flags.8?int to_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to_msg_id:flags.3?int date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long = Message;

ืขืžืขืฆืขืจ ื•ื•ื™ ืขืก, ืึธื‘ืขืจ GitHub, ืœืžืฉืœ, ื•ื•ื™ืœ ืฆื• ื”ื•ื™ื›ืคึผื•ื ืงื˜ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ืึทื–ืึท ืœืึทื ื’ ืฉื•ืจื•ืช. ื“ื™ ืฉืคึผื™ืœ "ื’ืขืคื™ื ืขืŸ 10 ื“ื™ืคืขืจืึทื ืกื™ื–", ืื•ืŸ ื•ื•ืึธืก ื“ืขืจ ืžืึทืจืš ื’ืœื™ื™ืš ื–ืขื˜ ืื™ื– ืึทื– ื“ื™ ืึธื ื”ื™ื™ื‘ ืื•ืŸ ืขื ื“ืก ื–ืขื ืขืŸ ื“ื™ ื–ืขืœื‘ืข ืื™ืŸ ื‘ื™ื™ื“ืข ื‘ื™ื™ืฉืคื™ืœืŸ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื˜ื™ื“ื™ืึทืกืœื™ ืœื™ื™ืขื ืขืŸ ืขืจื’ืขืฅ ืื™ืŸ ื“ื™ ืžื™ื˜ืœ ... ืื™ืŸ ืžื™ื™ืŸ ืžื™ื™ื ื•ื ื’, ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ื ืึธืจ ืื™ืŸ ื˜ืขืึธืจื™ืข, ืึธื‘ืขืจ ืจื™ื™ืŸ ื•ื•ื™ื–ืฉื•ื•ืึทืœื™ ืงื•ืงื˜ ืฉืžื•ืฆื™ืง ืื•ืŸ ืื•ืžืงืขืžืคื˜.

ืื’ื‘, ื•ื•ืขื’ืŸ ื“ื™ ืจื™ื™ื ืงื™ื™ื˜ ืคื•ืŸ ื˜ืขืืจื™ืข. ืคืืจื•ื•ืืก ื–ืขื ืขืŸ ื‘ื™ืกืœ ืคืขืœื“ืขืจ ื“ืืจืฃ? ื–ื™ื™ ื•ื•ื™ื™ืกืŸ ื ื™ืฉื˜ ืฉืžืขืงืŸ ืฉืœืขื›ื˜ ืคื•ืŸ ื“ื™ ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’ ืคื•ืŸ ื˜ื™ืคึผ ื˜ืขืึธืจื™ืข? ืึท ื“ืขืจืงืœืขืจื•ื ื’ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื–ืขืŸ ืื™ืŸ ืคืจื™ืขืจ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ื“ื™ ืกื˜ืฉืขืžืึท. ืื™ืŸ ืขืจืฉื˜ืขืจ, ื™ืึธ, ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืึทื–ื•ื™, ืึท ื ื™ื™ึท ื˜ื™ืคึผ ืื™ื– ื‘ืืฉืืคืŸ ืคึฟืึทืจ ื™ืขื“ืขืจ ื ื™ืกืŸ. ื“ื™ ืจื•ื“ื™ืžืขื ืฅ ื–ืขื ืขืŸ ื ืึธืš ื“ืึธืจื˜ ืื™ืŸ ื“ืขื ืคืึธืจืขื, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ:

storage.fileUnknown#aa963b05 = storage.FileType;
storage.filePartial#40bc6f52 = storage.FileType;
storage.fileJpeg#7efe0e = storage.FileType;
storage.fileGif#cae1aadf = storage.FileType;
storage.filePng#a4f63c0 = storage.FileType;
storage.filePdf#ae1e508d = storage.FileType;
storage.fileMp3#528a0677 = storage.FileType;
storage.fileMov#4b09ebbc = storage.FileType;
storage.fileMp4#b3cea0e4 = storage.FileType;
storage.fileWebp#1081464c = storage.FileType;

ืึธื‘ืขืจ ืื™ืฆื˜ ื™ืžืึทื“ื–ืฉืึทืŸ ืื•ื™ื‘ ืื™ืจ ื”ืึธื‘ืŸ 5 ืึทืคึผืฉืึทื ืึทืœ ืคืขืœื“ืขืจ ืื™ืŸ ื“ื™ื™ืŸ ืกื˜ืจื•ืงื˜ื•ืจ, ืื™ืจ ื“ืึทืจืคึฟืŸ 32 ื˜ื™ื™ืคึผืก ืคึฟืึทืจ ืึทืœืข ืžืขื’ืœืขืš ืึธืคึผืฆื™ืขืก. ืงืึธืžื‘ื™ื ืึทื˜ืึธืจื™ืึทืœ ื™ืงืกืคึผืœืึธื•ื–ืฉืึทืŸ. ืึทื–ื•ื™ ื“ื™ ืงืจื™ืกื˜ืึทืœ ืจื™ื™ื ืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ TL ื˜ืขืึธืจื™ืข ื•ื•ื™ื“ืขืจ ืงืจืึทืฉื˜ ืงืขื’ืŸ ื“ื™ ื’ืขืฉื˜ืึทืœื˜-ืื™ื™ึทื–ืŸ ื˜ืึธื›ืขืก ืคื•ืŸ ื“ื™ ื”ืึทืจื‘ ืคืึทืงื˜ ืคื•ืŸ ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ.

ืื™ืŸ ื“ืขืจืฆื•, ืื™ืŸ ืขืจื˜ืขืจ ื“ื™ ื’ื™ื™ื– ื–ื™ืš ืึธื ืจื™ืจืŸ ื–ื™ื™ืขืจ ื˜ื™ื™ืคึผื™ื ื’. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืŸ MTProto (ื•ื•ื™ื™ึทื˜ืขืจ ืงืึทืคึผื™ื˜ืœ), ื“ืขืจ ืขื ื˜ืคืขืจ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืงืึทืžืคึผืจืขืกื˜ ื“ื•ืจืš Gzip, ืึทืœืฅ ืื™ื– ืคื™ืœื™ืง - ืึทื—ื•ืฅ ืคึฟืึทืจ ื“ื™ ื”ื™ืœืขืœ ืคื•ืŸ ืœื™ื™ึทืขืจืก ืื•ืŸ ืกื˜ืฉืขืžืึท. ืึทืžืึธืœ, ืื•ืŸ ื”ืื˜ ื ื™ืฉื˜ ืฉื ื™ื™ื“ืŸ ื“ื™ RpcResult ื–ื™ืš, ืึธื‘ืขืจ ื–ื™ื™ึทืŸ ืื™ื ื”ืึทืœื˜. ื ื•, ืคืืจื•ื•ืืก ื˜ืึธืŸ ื“ืึธืก?.. ืื™ืš ื’ืขื”ืื˜ ืฆื• ืฉื ื™ื™ึทื“ืŸ ืื™ืŸ ืึท ืงืจืึทื˜ืฉ ืึทื–ื•ื™ ืึทื– ืงืึทืžืคึผืจืขืฉืึทืŸ ื•ื•ืึธืœื˜ ืึทืจื‘ืขื˜ ืขืจื’ืขืฅ.

ืึธื“ืขืจ ืืŸ ืื ื“ืขืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืžื™ืจ ืึทืžืึธืœ ื’ืขืคึฟื•ื ืขืŸ ืึท ื˜ืขื•ืช - ื’ืขืฉื™ืงื˜ InputPeerUser ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ InputUser. ืึธื“ืขืจ ืคืึทืจืงืขืจื˜. ืื‘ืขืจ ืขืก ื’ืขืืจื‘ืขื˜! ืึทื– ืื™ื–, ื“ืขืจ ืกืขืจื•ื•ืขืจ ื”ืื˜ ื ื™ืฉื˜ ื–ืึธืจื’ืŸ ื•ื•ืขื’ืŸ ื“ืขื ื˜ื™ืคึผ. ื•ื•ื™ ืงืขืŸ ื“ืึธืก ื–ื™ื™ืŸ? ื“ืขืจ ืขื ื˜ืคืขืจ, ื˜ืึธืžืขืจ, ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคึผืจืึทืžืคึผื˜ื™ื“ ื“ื•ืจืš ืงืึธื“ ืคืจืึทื’ืžืึทื ืฅ ืคื•ืŸ ื˜ืขืœืขื’ืจืึทื-ืงืœื™:

  if (tgl_get_peer_type (E->id) != TGL_PEER_CHANNEL || (C && (C->flags & TGLCHF_MEGAGROUP))) {
    out_int (CODE_messages_get_history);
    out_peer_id (TLS, E->id);
  } else {    
    out_int (CODE_channels_get_important_history);

    out_int (CODE_input_channel);
    out_int (tgl_get_peer_id (E->id));
    out_long (E->id.access_hash);
  }
  out_int (E->max_id);
  out_int (E->offset);
  out_int (E->limit);
  out_int (0);
  out_int (0);

ืื™ืŸ ืื ื“ืขืจืข ื•ื•ืขืจื˜ืขืจ, ื“ืึธ ื“ื™ ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ืื™ื– ื’ืขื˜ืืŸ ืžืึทื ื™ื•ืึทืœื™, ื ื™ื˜ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืงืึธื“! ืืคึฟืฉืจ ื“ืขืจ ืกืขืจื•ื•ืขืจ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ ืึท ืขื ืœืขืš ื•ื•ืขื’?.. ืื™ืŸ ืคึผืจื™ื ืฆื™ืคึผ, ื“ืึธืก ื•ื•ืขื˜ ืึทืจื‘ืขื˜ืŸ ืื•ื™ื‘ ื’ืขื˜ืืŸ ืึทืžืึธืœ, ืึธื‘ืขืจ ื•ื•ื™ ืงืขื ืขืŸ ืื™ืจ ืฉื˜ื™ืฆืŸ ืขืก ืฉืคึผืขื˜ืขืจ ืžื™ื˜ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ? ืื™ื– ื ื™ืฉื˜ ื“ืึธืก ื•ื•ืึธืก ื“ื™ ืกื›ืขืžืข ืื™ื– ื’ืขื•ื•ืขืŸ ืคึฟืึทืจ? ืื•ืŸ ื“ืขืžืึธืœื˜ ืžื™ืจ ื’ื™ื™ืŸ ืื•ื™ืฃ ืฆื• ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืงืฉื™ื.

ื•ื•ืขืจืกื™ืข. ืœื™ื™ึทืขืจืก

ืคืืจื•ื•ืืก ืกื˜ืฉืขืžืึท ื•ื•ืขืจืกื™ืขืก ื–ืขื ืขืŸ ื’ืขืจื•ืคึฟืŸ ืœื™ื™ึทืขืจืก ืงืขื ืขืŸ ื‘ืœื•ื™ื– ื–ื™ื™ืŸ ื’ืขืกื˜ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ื’ืขืฉื™ื›ื˜ืข ืคื•ืŸ โ€‹โ€‹ืืจื•ื™ืก ืกื˜ืฉืขืžืึทืก. ืœื›ืชึผื—ื™ืœื” ื”ืึธื˜ ื–ื™ืš ืื•ื™ืกื’ืขื–ืขืŸ ืฆื• ื“ื™ ืžื—ื‘ืจื™ื, ืึทื– ืžืขืŸ ืงืขืŸ ื˜ืึธืŸ ื™ืกื•ื“ื•ืชื“ื™ืงืข ื–ืึทื›ืŸ ืื•ื™ืฃ ืึทืŸ ืื•ืžื’ืขืขื ื“ืขืจื˜ ืกื›ืขืžืข, ืื•ืŸ ื ืึธืจ ื•ื•ื•ึผ ื ื•ื™ื˜ื™ืง, ืึธื ื•ื•ื™ื™ึทื–ืŸ ืื•ื™ืฃ ืกืคึผืขืฆื™ืคื™ืฉืข ื‘ืขื˜ืŸ, ืึทื– ื–ื™ื™ ื•ื•ืขืจืŸ ื’ืขื˜ืึธืŸ ืœื•ื™ื˜ ืึทืŸ ืึทื ื“ืขืจ ื•ื•ืขืจืกื™ืข. ืื™ืŸ ืคึผืจื™ื ืฆื™ืคึผ, ืึทืคึฟื™ืœื• ืึท ื’ื•ื˜ ื’ืขื“ืึทื ืง - ืื•ืŸ ื“ื™ ื ื™ื™ึท ื•ื•ืขื˜, ื•ื•ื™ ืขืก ื–ืขื ืขืŸ, "ืžื™ืฉืŸ ืื™ืŸ", ืฉื™ื›ื˜ืข ืื•ื™ืฃ ื“ื™ ืึทืœื˜. ืื‘ืขืจ ืœืืžื™ืจ ื–ืขืŸ ื•ื•ื™ ืขืก ืื™ื– ื’ืขืฉืขืŸ. ืืžืช, ืขืก ืื™ื– ื ื™ื˜ ืžืขื’ืœืขืš ืฆื• ืงื•ืงืŸ ืคื•ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ - ืขืก ืื™ื– ืžืึธื“ื ืข, ืึธื‘ืขืจ ื“ื™ ื‘ืึทื–ืข ืฉื™ื›ื˜ืข ืกื›ืขืžืข ืคืฉื•ื˜ ื˜ื•ื˜ ื ื™ืฉื˜ ืขืงืกื™ืกื˜ื™ืจืŸ. ืœื™ื™ึทืขืจืก ืกื˜ืึทืจื˜ืขื“ ื‘ื™ื™ 2. ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ื“ืขืจืฆื™ื™ืœื˜ ืื•ื ื“ื– ื•ื•ืขื’ืŸ ืึท ืกืคึผืขืฆื™ืขืœ TL ืฉื˜ืจื™ืš:

ืื•ื™ื‘ ืึท ืงืœื™ืขื ื˜ ืฉื˜ื™ืฆื˜ ืฉื™ื›ื˜ืข 2, ื“ื™ ืคืืœื’ืขื ื“ืข ืงืึธื ืกื˜ืจื•ืงื˜ืึธืจ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜:

invokeWithLayer2#289dd1f6 {X:Type} query:!X = X;

ืื™ืŸ ืคื™ืจ, ื“ืึธืก ืžื™ื˜ืœ ืึทื– ืื™ื™ื“ืขืจ ื™ืขื“ืขืจ ืึทืคึผื™ ืจื•ืคืŸ, ืึทืŸ ื™ื ื˜ ืžื™ื˜ ื“ื™ ื•ื•ืขืจื˜ 0x289dd1f6 ืžื•ื–ืŸ ื–ื™ื™ืŸ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืื™ื™ื“ืขืจ ื“ื™ ืื•ืคึฟืŸ ื ื•ืžืขืจ.

ืกืึธื•ื ื“ืก ื’ื•ื˜. ืื‘ืขืจ ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื•ื•ื™ื™ึทื˜ืขืจ? ื“ืขืžืึธืœื˜ ื’ืขืงื•ืžืขืŸ

invokeWithLayer3#b7475268 query:!X = X;

ืึทื–ื•ื™ ื•ื•ืึธืก ืื™ื– ื•ื•ื™ื™ึทื˜ืขืจ? ื•ื•ื™ ืขืก ืื™ื– ื’ืจื™ื ื’ ืฆื• ื˜ืจืขืคืŸ

invokeWithLayer4#dea0d430 query:!X = X;

ืžืึธื“ื ืข? ื ื™ื™ืŸ, ืขืก ืื™ื– ืฆื• ืคืจื™ ืฆื• ืœืึทื›ืŸ, ื˜ืจืึทื›ื˜ืŸ ื•ื•ืขื’ืŸ ื•ื•ืึธืก ื™ืขื“ืขืจ ืึท ื‘ืงืฉื” ืคื•ืŸ ืืŸ ืื ื“ืขืจ ืฉื™ื›ื˜ืข ื“ืึทืจืฃ ื–ื™ื™ืŸ ืืœื ื’ืขื•ื•ื™ืงืœื˜ ืื™ืŸ ืึทื–ืึท ืึท ืกืคึผืขืฆื™ืขืœ ื˜ื™ืคึผ - ืื•ื™ื‘ ืื™ืจ ื”ืึธื‘ืŸ ื–ื™ื™ ืึทืœืข ืึทื ื“ืขืจืฉ, ื•ื•ื™ ืึทื ื“ืขืจืฉ ืฆื• ื•ื™ืกื˜ื™ื™ืœืŸ ื–ื™ื™? ืื•ืŸ ืึทื“ื™ื ื’ ื‘ืœื•ื™ื– 4 ื‘ื™ื˜ืขืก ืื™ืŸ ืคืจืึธื ื˜ ืื™ื– ืึท ืฉื™ื™ืŸ ืขืคืขืงื˜ื™ื•ื• ืื•ืคึฟืŸ. ืึทื–ื•ื™

invokeWithLayer5#417a57ae query:!X = X;

ืื‘ืขืจ ืขืก ืื™ื– ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืึทื– ื ืึธืš ืึท ื‘ืฉืขืช ืขืก ื•ื•ืขื˜ ื•ื•ืขืจืŸ ืขื˜ืœืขื›ืข ื‘ืึทืงื˜ืฉืึทื ืึทืœื™ืึท. ืื•ืŸ ื“ืขืจ ืœื™ื™ื–ื•ื ื’ ืื™ื– ื’ืขืงื•ืžืขืŸ:

ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ: ืกื˜ืึทืจื˜ื™ื ื’ ืžื™ื˜ ืฉื™ื›ื˜ืข 9, ื”ืขืœืคึผืขืจ ืžืขื˜ื”ืึธื“ืก invokeWithLayerN ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื•ื–ืึทืžืขืŸ ืžื™ื˜ initConnection

ื”ืืจื™ื™! ื ืึธืš 9 ื•ื•ืขืจืกื™ืขืก, ืžื™ืจ ืœืขืกืึธืฃ ื’ืขืงื•ืžืขืŸ ืฆื• ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืขื˜ืืŸ ืื™ืŸ ื“ื™ ืื™ื ื˜ืขืจื ืขื˜ ืคึผืจืึธื˜ืึธืงืึธืœืก ืฆื•ืจื™ืง ืื™ืŸ ื“ื™ 80 ืก - ื•ื•ืขืจืกื™ืข ืคืึทืจื”ืึทื ื“ืœื•ื ื’ ืึทืžืึธืœ ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ืงืฉืจ!

ืึทื–ื•ื™ ื•ื•ืึธืก ืื™ื– ื•ื•ื™ื™ึทื˜ืขืจ? ..

invokeWithLayer10#39620c41 query:!X = X;
...
invokeWithLayer18#1c900537 query:!X = X;

ืื•ืŸ ืื™ืฆื˜ ืื™ืจ ืงืขื ืขืŸ ืœืึทื›ืŸ. ื‘ืœื•ื™ื– ื ืึธืš ื ืึธืš 9 ืœื™ื™ึทืขืจืก, ืึท ื•ื ื™ื•ื•ืขืจืกืึทืœ ืงืึทื ืกื˜ืจืึทืงื˜ืขืจ ืžื™ื˜ ืึท ื•ื•ืขืจืกื™ืข ื ื•ืžืขืจ ืื™ื– ืœืขืกืึธืฃ ืฆื•ื’ืขื’ืขื‘ืŸ, ื•ื•ืึธืก ื“ืึทืจืฃ ื–ื™ื™ืŸ ื’ืขืจื•ืคืŸ ื‘ืœื•ื™ื– ืึทืžืึธืœ ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ืงืฉืจ, ืื•ืŸ ื“ื™ ื˜ื™ื™ึทื˜ืฉ ืื™ืŸ ื“ื™ ืœื™ื™ึทืขืจืก ืžื™ื™ื ื˜ ืฆื• ื–ื™ื™ืŸ ืคืึทืจืฉื•ื•ื•ื ื“ืŸ, ืื™ืฆื˜ ืขืก ืื™ื– ื ืึธืจ ืึท ืงืึทื ื“ื™ืฉืึทื ืึทืœ ื•ื•ืขืจืกื™ืข, ื•ื•ื™ ืื•ืžืขื˜ื•ื ืื ื“ืขืจืฉ. ืคึผืจืึธื‘ืœืขื ืกืึทืœื•ื•ื“.

ืจืขื›ื˜?..

ื•ื•ืึทืกื™ืœื™, [16.07.18/14/01 XNUMX:XNUMX PM] ืื•ื™ืฃ ืคืจื™ื™ื˜ืื’ ืื™ืš ื’ืขื“ืึทื ืง:
ื“ื™ ื˜ืขืœืขืกืขืจื•ื•ืขืจ ืกืขื ื“ื– ื’ืขืฉืขืขื ื™ืฉืŸ ืึธืŸ ืึท ื‘ืงืฉื”. ืจื™ืงื•ื•ืขืก ื“ืึทืจืคึฟืŸ ืฆื• ื–ื™ื™ืŸ ืืœื ื’ืขื•ื•ื™ืงืœื˜ ืื™ืŸ InvokeWithLayer. ื“ืขืจ ืกืขืจื•ื•ืขืจ ื˜ื•ื˜ ื ื™ืฉื˜ ื™ื™ึทื ื•ื•ื™ืงืœืขืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ, ืขืก ืื™ื– ืงื™ื™ืŸ ืกื˜ืจื•ืงื˜ื•ืจ ืคึฟืึทืจ ืจืึทืคึผื™ื ื’ ืจืขืกืคึผืึธื ืกืขืก ืื•ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ.

ื™ืขื ืข. ื“ืขืจ ืงืœื™ืขื ื˜ ืงืขืŸ ื ื™ืฉื˜ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ ืฉื™ื›ื˜ืข ืื™ืŸ ื•ื•ืึธืก ืขืจ ื•ื•ื™ืœ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ

ื•ื•ืึทื“ื™ื ื’ืึธื ื˜ืฉืึทืจืึธื•ื•, [16.07.18/14/02 XNUMX:XNUMX] ืื™ื– ื ื™ืฉื˜ InvokeWithLayer ืึท ืงืจืึทื˜ืฉ ืื™ืŸ ืคึผืจื™ื ืฆื™ืคึผ?

ื•ื•ืึทืกื™ืœื™, [16.07.18/14/02 XNUMX:XNUMX] ื“ืึธืก ืื™ื– ื“ืขืจ ื‘ืœื•ื™ื– ื•ื•ืขื’

Vadim Goncharov, [16.07.18/14/02 XNUMX:XNUMX] ื•ื•ืึธืก ืื™ืŸ ืขืกืึทื ืก ื–ืึธืœ ืžื™ื™ื ืขืŸ ืœื™ื™ืขืจื™ื ื’ ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ืกืขืกื™ืข

ื“ื•ืจืš ื“ืขื ื•ื•ืขื’, ืขืก ื’ื™ื™ื˜ ืคื•ืŸ ื“ืขื ืึทื– ืึท ืงืœื™ืขื ื˜ ื“ืึทื•ื ื’ืจื™ื™ื“ ืื™ื– ื ื™ืฉื˜ ืฆื•ื’ืขืฉื˜ืขืœื˜

ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ, ื“.ื”. ื˜ื™ืคึผ Updates ืื™ืŸ ื“ืขื ืกื›ืขืžืข, ื“ืึธืก ืื™ื– ื•ื•ืึธืก ื“ืขืจ ืกืขืจื•ื•ืขืจ ืกืขื ื“ื– ืฆื• ื“ืขื ืงืœื™ืขื ื˜ ื ื™ื˜ ืื™ืŸ ืขื ื˜ืคืขืจ ืฆื• ืึทืŸ ืึทืคึผื™ ื‘ืขื˜ืŸ, ืึธื‘ืขืจ ืึทืœื™ื™ืŸ ื•ื•ืขืŸ ืึท ื’ืขืฉืขืขื ื™ืฉ ืึทืงืขืจื–. ื“ืึธืก ืื™ื– ืึท ืงืึธืžืคึผืœืขืงืก ื˜ืขืžืข ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ืกืงืึทืกื˜ ืื™ืŸ ืืŸ ืื ื“ืขืจ ืคึผืึธืกื˜ืŸ, ืึธื‘ืขืจ ืื™ืฆื˜ ืขืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืฆื• ื•ื•ื™ืกืŸ ืึทื– ื“ืขืจ ืกืขืจื•ื•ืขืจ ืึทืงื™ื•ืžื™ืึทืœื™ื™ืฅ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ืืคื™ืœื• ื•ื•ืขืŸ ื“ืขืจ ืงืœื™ืขื ื˜ ืื™ื– ืึธืคืคืœื™ื ืข.

ืื–ื•ื™, ื•ื•ืขืŸ ืจื™ืคื™ื•ื–ื™ื ื’ ืฆื• ื™ื™ึทื ื•ื•ื™ืงืœืขืŸ ื™ืขื“ืขืจ ืคึผืขืงืœ ืฆื• ืึธื ื•ื•ื™ื™ึทื–ืŸ ื–ื™ื™ึทืŸ ื•ื•ืขืจืกื™ืข, ื“ืขืจืคืืจ ื“ื™ ืคืืœื’ืขื ื“ืข ืžืขื’ืœืขืš ืคึผืจืึธื‘ืœืขืžืก ืฉื˜ื™ื™ืขืŸ ืœืึทื“ื–ืฉื™ืงืœื™:

  • ื“ืขืจ ืกืขืจื•ื•ื™ืจืขืจ ืกืขื ื“ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ืฆื• ื“ืขื ืงืœื™ืขื ื˜ ืื™ื™ื“ืขืจ ื“ืขืจ ืงืœื™ืขื ื˜ ื”ืื˜ ื“ืขืจืฆื™ื™ืœื˜ ื•ื•ืึธืก ื•ื•ืขืจืกื™ืข ืขืก ืฉื˜ื™ืฆื˜
  • ื•ื•ืึธืก ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ื ืึธืš ืึทืคึผื’ืจื™ื™ื“ื™ื ื’ ื“ืขื ืงืœื™ืขื ื˜?
  • ื•ื•ืขืจ ื’ืขืจืึทื ื˜ื™ื–ืึทื– ื“ื™ ืžื™ื™ื ื•ื ื’ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ื•ื•ืขื’ืŸ ื“ื™ ืฉื™ื›ื˜ืข ื ื•ืžืขืจ ื•ื•ืขื˜ ื ื™ืฉื˜ ื˜ื•ื™ืฉืŸ ืื™ืŸ ื“ืขื ืคึผืจืึธืฆืขืก?

ืฆื™ ืื™ืจ ื˜ืจืึทื›ื˜ืŸ ื“ืึธืก ืื™ื– ืจื™ื™ืŸ ื˜ืขืึธืจืขื˜ื™ืฉ ื˜ืจืื›ื˜ืŸ, ืื•ืŸ ืื™ืŸ ืคื™ืจ ื“ืึธืก ืงืขืŸ ื ื™ืฉื˜ ืคึผืึทืกื™ืจืŸ, ื•ื•ื™ื™ึทืœ ื“ื™ ืกืขืจื•ื•ืขืจ ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืจื™ื›ื˜ื™ืง (ืื™ืŸ ืงื™ื™ืŸ ืคืึทืœ, ืขืก ืื™ื– ื˜ืขืกื˜ืขื“ ื’ืขื–ื•ื ื˜)? ื”ื! ื ื™ืฉื˜ ืงื™ื™ืŸ ื—ื™ืœื•ืง ื•ื•ื™ ืื–ื•ื™!

ื“ืึธืก ืื™ื– ืคึผื•ื ืงื˜ ื•ื•ืึธืก ืžื™ืจ ื’ืขืœืืคืŸ ืื™ืŸ ืื•ื™ื’ื•ืกื˜. ืื•ื™ืฃ 14 ืื•ื™ื’ื•ืกื˜, ืึทืจื˜ื™ืงืœืขืŸ ืคืœืึทืฉื˜ ืึทื– ืขืคึผืขืก ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืื•ื™ืฃ ื“ื™ ื˜ืขืœืขื’ืจืึทื ืกืขืจื•ื•ืขืจืก ... ืื•ืŸ ื“ืขืจื ืึธืš ืื™ืŸ ื“ื™ ืœืึธื’ืก:

2019-08-15 09:28:35.880640 MSK warn  main: ANON:87: unknown object type: 0x80d182d1 at TL/Object.pm line 213.
2019-08-15 09:28:35.751899 MSK warn  main: ANON:87: unknown object type: 0xb5223b0f at TL/Object.pm line 213.

ืื•ืŸ ื“ืขืžืึธืœื˜ ืึท ื‘ื™ืกืœ ืžืขื’ืื‘ื™ื™ื˜ ืคื•ืŸ ืึธื ืœื™ื™ื’ืŸ ื˜ืจืึทืกืขืก (ื ื•, ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืœืึธื’ื™ื ื’ ืื™ื– ืคืึทืจืคืขืกื˜ื™ืงื˜). ื ืึธืš ืึทืœืข, ืื•ื™ื‘ ืขืคึผืขืก ืื™ื– ื ื™ืฉื˜ ื“ืขืจืงืขื ื˜ ืื™ืŸ ื“ื™ื™ืŸ TL - ืขืก ืื™ื– ื‘ื™ื™ื ืขืจื™ ื“ื•ืจืš ืกื™ื’ื ืึทื˜ืฉืขืจื–, ื•ื•ื™ื™ึทื˜ืขืจ ืื™ืŸ ื“ื™ ื˜ื™ื™ึทืš ืึทืœืข ื’ื™ื™ื˜, ื“ื™ืงืึธื•ื“ื™ื ื’ ื•ื•ืขื˜ ื•ื•ืขืจืŸ ืื•ืžืžืขื’ืœืขืš. ื•ื•ืึธืก ืฆื• ื˜ืึธืŸ ืื™ืŸ ืึทื–ืึท ืึท ืกื™ื˜ื•ืึทืฆื™ืข?

ื ื•, ื“ืขืจ ืขืจืฉื˜ืขืจ ื–ืึทืš ื•ื•ืึธืก ืงื•ืžื˜ ืฆื• ื•ื•ืขืจ ืขืก ื™ื– ืก ืžื™ื™ื ื•ื ื’ ืื™ื– ืฆื• ื“ื™ืกืงืึทื ืขืงื˜ ืื•ืŸ ืคึผืจื•ื‘ื™ืจืŸ ื•ื•ื™ื“ืขืจ. ื”ืื˜ ื ื™ืฉื˜ ื”ืขืœืคืŸ. ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขื’ื•ื’ืœื˜ CRC32 - ื“ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ืึทื‘ื“ื–ืฉืขืงืฅ ืคื•ืŸ ืกื›ืขืžืข 73, ื›ืึธื˜ืฉ ืžื™ืจ ื’ืขืืจื‘ืขื˜ ืื•ื™ืฃ ืกื›ืขืžืข 82. ืžื™ืจ ืงืขืจืคืึทืœื™ ืงื•ืง ืื™ืŸ ื“ื™ ืœืึธื’ืก - ืขืก ื–ืขื ืขืŸ ื™ื“ืขื ื˜ื™ืคื™ืขืจืก ืคื•ืŸ ืฆื•ื•ื™ื™ ืคืึทืจืฉื™ื“ืขื ืข ืกืงื™ืžื–!

ืืคึฟืฉืจ ื“ื™ ืคึผืจืึธื‘ืœืขื ืื™ื– ืจื™ื™ืŸ ืื™ืŸ ืื•ื ื“ื–ืขืจ ืึทื ืึทืคื™ืฉืึทืœ ืงืœื™ืขื ื˜? ื ื™ื™ืŸ, ืžื™ืจ ืœื•ื™ืคืŸ ื˜ืขืœืขื’ืจืึทื ื“ืขืกืงื˜ืึธืคึผ 1.2.17 (ื“ื™ ื•ื•ืขืจืกื™ืข ืกืึทืคึผืœื™ื™ื“ ืžื™ื˜ ืึท ื ื•ืžืขืจ ืคื•ืŸ ืœื™ื ื•ืงืก ื“ื™ืกื˜ืจื™ื‘ื™ื•ืฉืึทื ื–), ืขืก ืฉืจื™ื™ื‘ื˜ ืฆื• ื“ื™ ื•ื™ืกื ืขื ืงืœืึธืฅ: MTP Unexpected type id #b5223b0f ืœื™ื™ืขื ืขืŸ ืื™ืŸ MTPMessageMedia ...

ืงืจื™ื˜ื™ืง ืคื•ืŸ ื“ื™ ืคึผืจืึธื˜ืึธืงืึธืœ ืื•ืŸ ืึธืจื’ืึทื ืึทื–ื™ื™ืฉืึทื ืึทืœ ืึทืคึผืจืึธื•ื˜ืฉื™ื– ืคื•ืŸ ื˜ืขืœืขื’ืจืึทื. ื˜ื™ื™ืœ 1, ื˜ืขื›ื ื™ืฉ: ื“ืขืจืคืึทืจื•ื ื’ ืคื•ืŸ ืฉืจื™ื™ื‘ืŸ ืึท ืงืœื™ืขื ื˜ ืคึฟื•ืŸ ืงืจืึทืฆืŸ - TL, MT

Google ื”ืึธื˜ ื’ืขื•ื•ื™ื–ืŸ ืึทื– ืึท ืขื ืœืขืš ืคึผืจืึธื‘ืœืขื ืื™ื– ืฉื•ื™ืŸ ื’ืขืฉืขืŸ ืฆื• ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืึทื ืึทืคื™ืฉืึทืœ ืงืœื™ื™ืึทื ืฅ, ืึธื‘ืขืจ ื“ืขืžืึธืœื˜ ื“ื™ ื•ื•ืขืจืกื™ืข ื ื•ืžืขืจืŸ ืื•ืŸ, ืึทืงืึธืจื“ื™ื ื’ืœื™, ื“ื™ ืึทืกืึทืžืคึผืฉืึทื ื– ื–ืขื ืขืŸ ืึทื ื“ืขืจืฉ ...

ืึทื–ื•ื™ ื•ื•ืึธืก ืฆื• ื˜ืึธืŸ? ื•ื•ืึทืกื™ืœื™ ืื•ืŸ ืื™ืš ืฉืคึผืึทืœื˜ืŸ ื–ื™ืš: ืขืจ ื’ืขืคืจื•ื•ื•ื˜ ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ืกื›ืขืžืข ืฆื• 91, ืื™ืš ื‘ืึทืฉืœืึธืกืŸ ืฆื• ื•ื•ืึทืจื˜ืŸ ืึท ื‘ื™ืกืœ ื˜ืขื’ ืื•ืŸ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• 73. ื‘ื™ื™ื“ืข ืžืขื˜ื”ืึธื“ืก ื’ืขืืจื‘ืขื˜, ืึธื‘ืขืจ ื–ื™ื ื˜ ื–ื™ื™ ื–ืขื ืขืŸ ืขืžืคึผื™ืจื™ืงืึทืœ, ืขืก ืื™ื– ืงื™ื™ืŸ ืคืืจืฉื˜ืื ื“ ืคื•ืŸ ื•ื•ื™ ืคื™ืœืข ื•ื•ืขืจืกื™ืขืก ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉืคึผืจื™ื ื’ืขืŸ ืึทืจื•ื™ืฃ ืึธื“ืขืจ ืึทืจืึธืคึผ, ืื“ืขืจ ื•ื•ื™ ืœืึทื ื’ ืื™ืจ ื”ืึธื‘ืŸ ืฆื• ื•ื•ืึทืจื˜ืŸ.

ืฉืคึผืขื˜ืขืจ, ืื™ืš ื’ืขืจืื˜ืŸ ืฆื• ืจืขืคึผืจืึธื“ื•ืฆื™ืจืŸ ื“ื™ ืกื™ื˜ื•ืึทืฆื™ืข: ืžื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ื“ืขื ืงืœื™ืขื ื˜, ืงืขืจ ืขืก ืึทื•ื•ืขืง, ืจื™ืงืึธืžืคึผื™ื™ืœ ื“ื™ ืกื›ืขืžืข ืฆื• ืืŸ ืื ื“ืขืจ ืฉื™ื›ื˜ืข, ืจื™ืกื˜ืึทืจื˜, ื›ืึทืคึผืŸ ื“ืขื ืคึผืจืึธื‘ืœืขื ื•ื•ื™ื“ืขืจ, ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ื“ื™ ืคืจื™ืขืจื“ื™ืงืข - ืึธืึธืคึผืก, ืงื™ื™ืŸ ืกื•ื•ื™ื˜ืฉื™ื ื’ ื“ื™ ืกื›ืขืžืข ืื•ืŸ ืจื™ืกื˜ืึทืจื˜ื™ื ื’ ื“ืขื ืงืœื™ืขื ื˜ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืžื™ื ื•ื˜ ื•ื•ืขื˜ ื”ืขืœืคืŸ. ืื™ืจ ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ืึท ืžื™ืฉืŸ ืคื•ืŸ ื“ืึทื˜ืŸ ืกื˜ืจืึทืงื˜ืฉืขืจื– ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืœื™ื™ึทืขืจืก.

ื“ืขืจืงืœืขืจื•ื ื’? ื•ื•ื™ ืื™ืจ ืงืขื ืขืŸ ื˜ืจืขืคืŸ ื“ื™ ืคืึทืจืฉื™ื“ืŸ ื•ืžื“ื™ืจืขืงื˜ ืกื™ืžืคึผื˜ืึธืžืก, ื“ืขืจ ืกืขืจื•ื•ืขืจ ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ืคื™ืœืข ืคืึทืจืฉื™ื“ืขื ืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ืคึผืจืึทืกืขืกืึทื– ืื•ื™ืฃ ืคืึทืจืฉื™ื“ืขื ืข ืžืืฉื™ื ืขืŸ. ืจื•ื‘ึฟ ืžืกืชึผืžื, ื“ืขืจ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจืก ื•ื•ืึธืก ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ "ื‘ืึทืคืขืจื™ื ื’" ืฉื˜ืขืœืŸ ืื™ืŸ ื“ื™ ืจื™ื™ ื•ื•ืึธืก ื“ื™ ื”ืขื›ืขืจ ื”ืึธื‘ืŸ ืขืก ื’ืขื’ืขื‘ืŸ, ืื•ืŸ ื–ื™ื™ ื’ืขื’ืขื‘ืŸ ืขืก ืื™ืŸ ื“ื™ ืกื›ืขืžืข ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ืื™ืŸ ื“ื™ ืฆื™ื™ื˜ ืคื•ืŸ ื“ื•ืจ. ืื•ืŸ ื‘ื™ื– ื“ื™ ืจื™ื™ ืื™ื– ื’ืขื•ื•ืขืŸ "ืคืึทืจืคื•ื™ืœื˜", ื’ืึธืจื ื™ืฉื˜ ืงืขืŸ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ื•ื•ืขื’ืŸ ืื™ื.

ืกืฒึทื“ืŸ... ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ืึท ืฉืจืขืงืœืขื›ืขืจ ืงืจืึทืš?!.. ื ืฒืŸ, ืืฒื“ืขืจ ืžืขืŸ ื˜ืจืึทื›ื˜ ืฐืขื’ืŸ ืžืฉื•ื’ืขื ืข ื’ืขื“ืึทื ืงืขืŸ, ืœืึธืžื™ืจ ืึท ืงื•ืง ื˜ืึธืŸ ืื™ืŸ ื“ืขื ืงืึธื“ ืคึฟื•ืŸ ืึธืคึฟื™ืฆื™ืขืœืข ืงืœื™ืขื ื˜ืŸ. ืื™ืŸ ื“ื™ ืึทื ื“ืจื•ื™ื“ ื•ื•ืขืจืกื™ืข ืžื™ืจ ื’ืขืคึฟื™ื ืขืŸ ืงื™ื™ืŸ TL ืคึผืึทืจืกืขืจ, ืึธื‘ืขืจ ืžื™ืจ ื’ืขืคึฟื™ื ืขืŸ ืึท ื›ืขืคื˜ื™ ื˜ืขืงืข (ื’ื™ื˜ื”ื•ื‘ ื•ื•ื™ืœ ืฆื• ืงืึธืœื™ืจืŸ ืขืก) ืžื™ื˜ (ื“ืข) ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ. ื“ืึธ ื–ืขื ืขืŸ ื“ื™ ืงืึธื“ ืกื ื™ืคึผืคึผืขืฅ:

public static class TL_message_layer68 extends TL_message {
    public static int constructor = 0xc09be45f;
//...
//ะตั‰ะต ะฟะฐั‡ะบะฐ ะฟะพะดะพะฑะฝั‹ั…
//...
    public static class TL_message_layer47 extends TL_message {
        public static int constructor = 0xc992e15c;
        public static Message TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) {
            Message result = null;
            switch (constructor) {
                case 0x1d86f70e:
                    result = new TL_messageService_old2();
                    break;
                case 0xa7ab1991:
                    result = new TL_message_old3();
                    break;
                case 0xc3060325:
                    result = new TL_message_old4();
                    break;
                case 0x555555fa:
                    result = new TL_message_secret();
                    break;
                case 0x555555f9:
                    result = new TL_message_secret_layer72();
                    break;
                case 0x90dddc11:
                    result = new TL_message_layer72();
                    break;
                case 0xc09be45f:
                    result = new TL_message_layer68();
                    break;
                case 0xc992e15c:
                    result = new TL_message_layer47();
                    break;
                case 0x5ba66c13:
                    result = new TL_message_old7();
                    break;
                case 0xc06b9607:
                    result = new TL_messageService_layer48();
                    break;
                case 0x83e5de54:
                    result = new TL_messageEmpty();
                    break;
                case 0x2bebfa86:
                    result = new TL_message_old6();
                    break;
                case 0x44f9b43d:
                    result = new TL_message_layer104();
                    break;
                case 0x1c9b1027:
                    result = new TL_message_layer104_2();
                    break;
                case 0xa367e716:
                    result = new TL_messageForwarded_old2(); //custom
                    break;
                case 0x5f46804:
                    result = new TL_messageForwarded_old(); //custom
                    break;
                case 0x567699b3:
                    result = new TL_message_old2(); //custom
                    break;
                case 0x9f8d60bb:
                    result = new TL_messageService_old(); //custom
                    break;
                case 0x22eb6aba:
                    result = new TL_message_old(); //custom
                    break;
                case 0x555555F8:
                    result = new TL_message_secret_old(); //custom
                    break;
                case 0x9789dac4:
                    result = new TL_message_layer104_3();
                    break;

ืึธื“ืขืจ

    boolean fixCaption = !TextUtils.isEmpty(message) &&
    (media instanceof TLRPC.TL_messageMediaPhoto_old ||
     media instanceof TLRPC.TL_messageMediaPhoto_layer68 ||
     media instanceof TLRPC.TL_messageMediaPhoto_layer74 ||
     media instanceof TLRPC.TL_messageMediaDocument_old ||
     media instanceof TLRPC.TL_messageMediaDocument_layer68 ||
     media instanceof TLRPC.TL_messageMediaDocument_layer74)
    && message.startsWith("-1");

ื”ืžืž... ืขืก ืงื•ืงื˜ ืžืฉื•ื’ืข. ืึธื‘ืขืจ, ืžื™ืกื˜ืึธืžืข, ื“ืึธืก ืื™ื– ืึท ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืงืึธื“, ืึธื•ืงื™ื™? .. ืึธื‘ืขืจ ืขืก ืึทื•ื•ืึทื“ืข ืฉื˜ื™ืฆื˜ ืึทืœืข ื•ื•ืขืจืกื™ืขืก! ืืžืช, ืขืก ืื™ื– ื ื™ืฉื˜ ืงืœืึธืจ ื•ื•ืึธืก ืึทืœืฅ ืื™ื– ื’ืขืžื™ืฉื˜ ืื™ืŸ ืื™ื™ืŸ ืงื•ืคึผืข, ืื•ืŸ ืกื•ื“ ืฉืžื•ืขืกืŸ, ืื•ืŸ ืึทืœืข ืกืึธืจืฅ ืคื•ืŸ _old7 ืขืคืขืก ื ื™ื˜ ืขื ืœืขืš ืฆื• ืžืึทืฉื™ืŸ ื“ื•ืจ ... ืึธื‘ืขืจ, ืจื•ื‘ึฟ ืคื•ืŸ ืึทืœืข ืื™ืš ื’ืขื’ืื ื’ืขืŸ ื ื™ืกืœืขืš ืคื•ืŸ

TL_message_layer104
TL_message_layer104_2
TL_message_layer104_3

ื‘ื—ื•ืจื™ื, ืงืขื ืกื˜ ืืคื™ืœื• ื ื™ืฉื˜ ื‘ืืฉืœื™ืกืŸ ืื™ืŸ ืื™ื™ืŸ ืฉื™ื›ื˜?! ื ื•, ืืงืขื™, "ืฆื•ื•ื™ื™", ืœืืžื™ืจ ื–ืื’ืŸ, ื–ืขื ืขืŸ ืืจื•ื™ืก ืžื™ื˜ ื ื˜ืขื•ืช, ื ื•, ืขืก ืคืืกื™ืจื˜, ืื‘ืขืจ ื“ืจื™ื™?.. ื’ืœื™ื™ืš ื•ื•ื™ื“ืขืจ ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ืขืจ ื’ืจืื‘ืข? ื•ื•ืึธืก ืžื™ืŸ ืคื•ืŸ ืคึผืึธืจื ืึธื’ืจืึทืคื™ ืื™ื– ื“ืึธืก, ืื ื˜ืฉื•ืœื“ื™ื’ื˜? ..

ื“ื•ืจืš ื“ืขื ื•ื•ืขื’, ืึท ืขื ืœืขืš ื–ืึทืš ื›ืึทืคึผืึทื ื– ืื™ืŸ ื“ื™ ื˜ืขืœืขื’ืจืึทื ื“ืขืกืงื˜ืึธืคึผ ืงื•ื•ืืœืŸ - ืื•ื™ื‘ ืึทื–ื•ื™, ืื•ืŸ ืขื˜ืœืขื›ืข ืงืึทืžื™ืฅ ืื™ืŸ ืึท ืจื•ื“ืขืจืŸ ืฆื• ื“ื™ ืกื›ืขืžืข ื˜ืึธืŸ ื ื™ื˜ ื˜ื•ื™ืฉืŸ ื–ื™ื™ึทืŸ ืฉื™ื›ื˜ืข ื ื•ืžืขืจ, ืึธื‘ืขืจ ืคืึทืจืจื™ื›ื˜ืŸ ืขืคึผืขืก. ืื™ืŸ ื˜ื ืึธื™ื ื•ื•ืขืŸ ืขืก ืื™ื– ืงื™ื™ืŸ ื‘ืึทืึทืžื˜ืขืจ ื“ืึทื˜ืŸ ืžืงื•ืจ ืคึฟืึทืจ ื“ื™ ืกื›ืขืžืข, ื•ื•ื• ืงืขืŸ ืื™ืš ื‘ืึทืงื•ืžืขืŸ ืขืก, ืึทื—ื•ืฅ ื“ื™ ื‘ืึทืึทืžื˜ืขืจ ืงืœื™ืขื ื˜ ืงื•ื•ืืœืŸ? ืื•ืŸ ืื™ืจ ื ืขืžืขืŸ ืขืก ืคื•ืŸ ื“ืึธืจื˜, ืื™ืจ ืงืขื ืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื–ื™ื›ืขืจ ืึทื– ื“ื™ ืกื›ืขืžืข ืื™ื– ื’ืึธืจ ืจื™ื›ื˜ื™ืง ื‘ื™ื– ืื™ืจ ืคึผืจื•ื‘ื™ืจืŸ ืึทืœืข ื“ื™ ืžืขื˜ื”ืึธื“ืก.

ื•ื•ื™ ืึทื–ื•ื™ ืงืขืŸ ื“ืึธืก ืืคื™ืœื• ื–ื™ื™ืŸ ื˜ืขืกื˜ืขื“? ืื™ืš ื”ืึธืคึฟืŸ ืึทื– ืคืึทื ืก ืคื•ืŸ ืึทืคึผืึทืจืึทื˜, ืคืึทื ื’ืงืฉืึทื ืึทืœ ืื•ืŸ ืื ื“ืขืจืข ื˜ืขืกืฅ ื•ื•ืขืœืŸ ื˜ื™ื™ืœืŸ ืื™ืŸ ื“ื™ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ.

ืึธื•ืงื™ื™, ืœืึธืžื™ืจ ืงื•ืงืŸ ืื™ืŸ ืืŸ ืื ื“ืขืจ ืฉื˜ื™ืง ืคื•ืŸ ืงืึธื“:

public static class TL_folders_deleteFolder extends TLObject {
    public static int constructor = 0x1c295881;

    public int folder_id;

    public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) {
        return Updates.TLdeserialize(stream, constructor, exception);
    }

    public void serializeToStream(AbstractSerializedData stream) {
        stream.writeInt32(constructor);
        stream.writeInt32(folder_id);
    }
}

//manually created

//RichText start
public static abstract class RichText extends TLObject {
    public String url;
    public long webpage_id;
    public String email;
    public ArrayList<RichText> texts = new ArrayList<>();
    public RichText parentRichText;

    public static RichText TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) {
        RichText result = null;
        switch (constructor) {
            case 0x1ccb966a:
                result = new TL_textPhone();
                break;
            case 0xc7fb5e01:
                result = new TL_textSuperscript();
                break;

ื“ืขืจ "ืžืึทื ื™ื•ืึทืœื™ ื‘ืืฉืืคืŸ" ื‘ืึทืžืขืจืงื•ื ื’ ื“ืึธ ืกืึทื’ื“ื–ืฉืขืกืฅ ืึทื– ื‘ืœื•ื™ื– ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขื ื˜ืขืงืข ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ื“ื•ืจืš ื”ืึทื ื˜ (ืงืขื ืขืŸ ืื™ืจ ื™ืžืึทื“ื–ืฉืึทืŸ ื“ื™ ื•ื™ืฉืึทืœื˜ ื ื™ื™ื˜ืžืขืจ?), ืื•ืŸ ื“ื™ ืžื ื•ื—ื” ืื™ื– ืžืึทืฉื™ืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“. ืึธื‘ืขืจ, ื ืึธืš ืึท ืงืฉื™ื ืขืจื™ื™ื–ืึทื– - ืึทื– ื“ื™ ืžืงื•ืจื™ื ื–ืขื ืขืŸ ื‘ื ื™ืžืฆื ื ื™ื˜ ื’ืึธืจ (ืึท ืœืึท ื‘ืœืึทื‘ื– ืื•ื ื˜ืขืจ ื“ื™ GPL ืื™ืŸ ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ), ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ืฉื•ื™ืŸ ืึท ื˜ืขืžืข ืคึฟืึทืจ ื“ื™ ืจื’ืข ื˜ื™ื™ืœ.

ืื‘ืขืจ ื’ืขื ื•ื’. ืœืึธืžื™ืจ ื’ื™ื™ืŸ ืฆื• ื“ืขื ืคึผืจืึธื˜ืึธืงืึธืœ ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื•ื•ืึธืก ืึทืœืข ื“ื™ ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ืื™ื– ื˜ืฉื™ื™ืกื™ื ื’.

ืžื˜ืคึผืจืึธื˜ืึธ

ืึทื–ื•ื™ ืœืึธื–ืŸ ืก ืขืคืขื ืขืŸ ืึทืœื’ืขืžื™ื™ื ืข ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ะธ ื“ื™ื˜ื™ื™ืœื“ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ืขื ืคึผืจืึธื˜ืึธืงืึธืœ ืื•ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ื–ืึทืš ื•ื•ืึธืก ืžื™ืจ ืฉื˜ืึธืžืคึผืขืจืŸ ืื™ื‘ืขืจ ืื™ื– ื˜ืขืจืžื™ื ืึธืœืึธื’ื™ืข. ืื•ืŸ ืžื™ื˜ ืึท ืฉืขืคืข ืคื•ืŸ โ€‹โ€‹ืึทืœืฅ. ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ื“ืึธืก ืžื™ื™ื ื˜ ืฆื• ื–ื™ื™ืŸ ืึท ื˜ืจื™ื™ื“ืžืึทืจืง ืคื•ืŸ ื˜ืขืœืขื’ืจืึทื - ืฆื• ืจื•ืคืŸ ื–ืื›ืŸ ื“ื™ืคืขืจืขื ื˜ืœื™ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืขืจื˜ืขืจ, ืึธื“ืขืจ ืคืึทืจืฉื™ื“ืขื ืข ื–ืื›ืŸ ืื™ืŸ ืื™ื™ืŸ ื•ื•ืึธืจื˜, ืึธื“ืขืจ ื•ื•ื™ืฆืข ื•ื•ืขืจืกืึท (ืœืžืฉืœ, ืื™ืŸ ืึท ื”ื•ื™ืš-ืžื“ืจื’ื” API ืื•ื™ื‘ ืื™ืจ ื–ืขืŸ ืึท ืกื˜ื™ืงืขืจ ืคึผืึทืง - ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ื•ื•ืึธืก ืื™ืจ ื’ืขื“ืึทื ืง).

ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, "ืึธื ื–ืึธื’" (ืึธื ื–ืึธื’) ืื•ืŸ "ืกืขืกื™ืข" (ืกืขืกื™ืข) - ื“ืึธ ื–ื™ื™ ืžื™ื™ื ืขืŸ ืขืคึผืขืก ืึทื ื“ืขืจืฉ ื•ื•ื™ ืื™ืŸ ื“ื™ ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš ืฆื•ื‘ื™ื ื“ ืคื•ืŸ ื“ื™ ื˜ืขืœืขื’ืจืึทื ืงืœื™ืขื ื˜. ื ื•, ืึทืœืฅ ืื™ื– ืงืœืึธืจ ืžื™ื˜ ื“ืขื ืึธื ื–ืึธื’, ืขืก ืงืขืŸ ื–ื™ื™ืŸ ื™ื ื˜ืขืจืคึผืจืึทื˜ืึทื“ ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ OOP, ืึธื“ืขืจ ืคืฉื•ื˜ ื’ืขืจื•ืคืŸ ื“ื™ ื•ื•ืึธืจื˜ "ืคึผืขืงืœ" - ื“ืึธืก ืื™ื– ืึท ื ื™ื“ืขืจื™ืง ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืžื“ืจื’ื”, ืขืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื“ื™ ื–ืขืœื‘ืข ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ื™ ืื™ืŸ ื“ื™ ืฆื•ื‘ื™ื ื“, ืขืก ื–ืขื ืขืŸ ืคื™ืœืข. ืคื•ืŸ ื“ื™ื ืกื˜ ืึธื ืขืก. ืื‘ืขืจ ื“ื™ ืกืขืกื™ืข ... ืึธื‘ืขืจ ืขืจืฉื˜ืขืจ ื–ืื›ืŸ ืขืจืฉื˜ืขืจ.

ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืฉื™ื›ื˜ืข

ื“ืขืจ ืขืจืฉื˜ืขืจ ื–ืึทืš ืื™ื– ืึทืจื™ื‘ืขืจืคื™ืจืŸ. ืžื™ืจ ื•ื•ืขืœืŸ ื–ืึธื’ืŸ ื•ื•ืขื’ืŸ 5 ืึธืคึผืฆื™ืขืก:

  • ื˜ืงืคึผ
  • ื•ื•ืขื‘ืกืึธืงืงืขื˜
  • ื•ื•ืขื‘ืกืึธืงืงืขื˜ ืื™ื‘ืขืจ ื”ื˜ื˜ืคึผืก
  • ื”ื˜ื˜ืคึผ
  • ื”ื˜ื˜ืคึผืก

Vasily, [15.06.18/15/04 XNUMX:XNUMX PM] ืื•ืŸ ืขืก ืื™ื– ืื•ื™ืš ื•ื“ืคึผ ืึทืจื™ื‘ืขืจืคื™ืจืŸ, ืึธื‘ืขืจ ืขืก ืื™ื– ื ื™ืฉื˜ ื“ืึทืงื™ื•ืžืขื ื˜ืึทื“

ืื•ืŸ ื˜ืงืคึผ ืื™ืŸ ื“ืจื™ื™ ื•ื•ืขืจื™ืึทื ืฅ

ื“ืขืจ ืขืจืฉื˜ืขืจ ืื™ื– ืขื ืœืขืš ืฆื• UDP ืื™ื‘ืขืจ TCP, ื™ืขื“ืขืจ ืคึผืึทืงืึทื˜ ื›ื•ืœืœ ืึท ืกื™ืงื•ื•ืึทื ืก ื ื•ืžืขืจ ืื•ืŸ ืึท ืงืจืง
ืคืืจื•ื•ืืก ืื™ื– ืขืก ืึทื–ื•ื™ ื•ื•ื™ื™ื˜ื™ืงื“ื™ืง ืฆื• ืœื™ื™ืขื ืขืŸ ื“ืึธืงืก ืื•ื™ืฃ ืึท ื•ื•ืึธื’ืŸ?

ื ื• ื“ืึธืจื˜ ืื™ืฆื˜ ื˜ืงืคึผ ืฉื•ื™ืŸ ืื™ืŸ 4 ื•ื•ืขืจื™ืึทื ืฅ:

  • ืึทื‘ืจื™ื“ื–ืฉื“
  • ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜
  • ืคึผืึทื“ื™ื“ ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜
  • ืคื•ืœ

ื’ื•ื˜, ืคึผืึทื“ื“ืขื“ ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ืคึฟืึทืจ MTProxy, ื“ืึธืก ืื™ื– ืฉืคึผืขื˜ืขืจ ืฆื•ื’ืขื’ืขื‘ืŸ ืจืขื›ื˜ ืฆื• ื‘ืึทื•ื•ื•ืกื˜ ื’ืขืฉืขืขื ื™ืฉืŸ. ืึธื‘ืขืจ ื•ื•ืึธืก ื ืึธืš ืฆื•ื•ื™ื™ ื•ื•ืขืจืกื™ืขืก (ื“ืจื™ื™ึท ื‘ืกืš ื”ื›ืœ), ื•ื•ืขืŸ ืžืขืŸ ืงืขืŸ ื˜ืึธืŸ? ืึทืœืข ืคื™ืจ ื™ืกืขื ืฉืึทืœื™ ืึทื ื“ืขืจืฉ ื‘ืœื•ื™ื– ืื™ืŸ ื•ื•ื™ ืฆื• ืฉื˜ืขืœืŸ ื“ื™ ืœืขื ื’ ืื•ืŸ ืคึผื™ื™ืœืึธื•ื“ ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ MTProto ื–ื™ืš, ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ืกืงืึทืกื˜ ื•ื•ื™ื™ึทื˜ืขืจ:

  • ืื™ืŸ ืึทื‘ืจื™ื“ื’ืขื“ ืขืก ืื™ื– 1 ืึธื“ืขืจ 4 ื‘ื™ื˜ืขืก ืึธื‘ืขืจ ื ื™ืฉื˜ 0xef ื“ืขืžืึธืœื˜ ื’ื•ืฃ
  • ืื™ืŸ ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ื“ืึธืก ืื™ื– 4 ื‘ื™ื˜ืขืก ืคื•ืŸ ืœืขื ื’ ืื•ืŸ ืึท ืคืขืœื“, ืื•ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืžืึธืœ ื“ืขืจ ืงืœื™ืขื ื˜ ืžื•ื–ืŸ ืฉื™ืงืŸ 0xeeeeeeee ืฆื• ืึธื ื•ื•ื™ื™ึทื–ืŸ ืึทื– ืขืก ืื™ื– ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜
  • ืื™ืŸ ื’ืึทื ืฅ, ื“ื™ ืžืขืจืกื˜ ืึทื“ื™ืงื˜ื™ื•ื•, ืคึฟื•ืŸ ื“ื™ ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’ ืคื•ืŸ ืึท ื ืขื˜ื•ื•ืึธืจืงืขืจ: ืœืขื ื’, ืกื™ืงื•ื•ืึทื ืก ื ื•ืžืขืจ, ืื•ืŸ ื ื™ืฉื˜ ื“ืขืจ ืื™ื™ื ืขืจ ื•ื•ืึธืก ืื™ื– ื‘ื™ื™ืกื™ืงืœื™ MTProto, ื’ื•ืฃ, CRC32. ื™ืึธ, ืึทืœืข ื“ืขื ืื™ื‘ืขืจ TCP. ื•ื•ืึธืก ื’ื™ื˜ ืื•ื ื“ื– ืคืึทืจืœืึธื–ืœืขืš ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ืกื™ืจื™ืึทืœ ื˜ื™ื™ึทืš ืคื•ืŸ ื‘ื™ื˜ืขืก, ืงื™ื™ืŸ ืกื™ืงื•ื•ืึทื ืกื™ื– ื–ืขื ืขืŸ ื“ืืจืฃ, ืกืคึผืขืฆื™ืขืœ ื˜ืฉืขืงืกืึทืžื–. ืึธื•ืงื™ื™, ืื™ืฆื˜ ืื™ืš ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึทื‘ื“ื–ืฉืขืงื˜ืึทื“ ืึทื– TCP ื”ืื˜ ืึท 16-ื‘ื™ืกืœ ื˜ืฉืขืงืงืกื•ื, ืึทื–ื•ื™ ื“ืึทื˜ืŸ ืงืึธืจื•ืคึผืฆื™ืข ื›ืึทืคึผืึทื ื–. ื’ืจื•ื™ืก, ืึทื—ื•ืฅ ืึทื– ืžื™ืจ ืึทืงืฉืœื™ ื”ืึธื‘ืŸ ืึท ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ืง ืคึผืจืึธื˜ืึธืงืึธืœ ืžื™ื˜ ื”ืึทืฉืขืก ืžืขืจ ื•ื•ื™ 16 ื‘ื™ื˜ืขืก, ืึทืœืข ื“ื™ ืขืจืจืึธืจืก - ืื•ืŸ ืืคื™ืœื• ืžืขืจ - ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขื›ืืคื˜ ืื•ื™ืฃ ืึท SHA ืžื™ืกืžืึทื˜ืฉ ืื•ื™ืฃ ืึท ื”ืขื›ืขืจ ืžื“ืจื’ื”. ืขืก ืื™ื– ืงื™ื™ืŸ ืคื•ื ื˜ ืื™ืŸ CRC32 ืื™ื‘ืขืจ ื“ืขื.

ืœืึธืžื™ืจ ืคืึทืจื’ืœื™ื™ึทื›ืŸ ืึทื‘ืจื™ื“ื’ืขื“, ื•ื•ื• ืื™ื™ืŸ ื‘ื™ื™ื˜ ืœืขื ื’ ืื™ื– ืžืขื’ืœืขืš, ืžื™ื˜ ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜, ื•ื•ืึธืก ื“ื–ืฉืึทืกื˜ืึทืคื™ื™ื– "ืื™ืŸ ืคืึทืœ 4-ื‘ื™ื˜ืข ื“ืึทื˜ืŸ ืึทืœื™ื™ื ืžืึทื ื˜ ืื™ื– ื“ืืจืฃ", ื•ื•ืึธืก ืื™ื– ืฉื™ื™ืŸ ื•ืžื–ื™ืŸ. ื•ื•ืึธืก, ืขืก ืื™ื– ื’ืขื’ืœื•ื™ื‘ื˜ ืึทื– ื˜ืขืœืขื’ืจืึทื ืคึผืจืึธื•ื’ืจืึทืžืขืจื– ื–ืขื ืขืŸ ืึทื–ื•ื™ ืœืขืคึผื™ืฉ ืึทื– ื–ื™ื™ ืงืขื ืขืŸ ื ื™ืฉื˜ ืœื™ื™ืขื ืขืŸ ื“ืึทื˜ืŸ ืคึฟื•ืŸ ื“ื™ ื›ืึธืœืขืœ ืื™ืŸ ืึทืŸ ืึทืœื™ื™ื ื“ ื‘ืึทืคืขืจ? ืื™ืจ ื ืึธืš ื”ืึธื‘ืŸ ืฆื• ื˜ืึธืŸ ื“ืึธืก, ื•ื•ื™ื™ึทืœ ืœื™ื™ืขื ืขืŸ ืงืขื ืขืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืื™ืจ ืงื™ื™ืŸ ื ื•ืžืขืจ ืคื•ืŸ ื‘ื™ื˜ืขืก (ืื•ืŸ ืขืก ื–ืขื ืขืŸ ืื•ื™ืš ืคึผืจืึทืงืกื™ ืกืขืจื•ื•ืขืจืก, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ ...). ืึธื“ืขืจ, ืื•ื™ืฃ ื“ื™ ืื ื“ืขืจืข ื”ืึทื ื˜, ื•ื•ืึธืก ืึทืจืŸ ืžื™ื˜ ืึทื‘ืจื™ื“ื–ืฉื“ ืื•ื™ื‘ ืžื™ืจ ื ืึธืš ื”ืึธื‘ืŸ ื›ืขืคื˜ื™ ืคึผืึทื“ื“ื™ื ื’ื– ืคื•ืŸ 16 ื‘ื™ื˜ืขืก ืื•ื™ืฃ ืฉืคึผื™ืฅ - ืฉืคึผืึธืจืŸ 3 ื‘ื™ื˜ืขืก ืžืืœ ?

ืื™ื™ื ืขืจ ื’ืขืฅ ื“ืขื ืจื•ืฉื ืึทื– ื ื™ืงืึธืœืึทื™ ื“ื•ืจืึธื•ื• ืื™ื– ื–ื™ื™ืขืจ ืคืึทื ื“ ืคื•ืŸ ื™ื ื•ื•ืขื ื˜ื™ื ื’ ื‘ื™ื™ืกื™ืงืึทืœื–, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื ืขืฅ ืคึผืจืึธื˜ืึธืงืึธืœืก, ืึธืŸ ืคืึทืงื˜ื™ืฉ ืคึผืจืึทืงื˜ื™ืฉ ื ื•ื™ื˜.

ืื ื“ืขืจืข ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืึธืคึผืฆื™ืขืก, ื™ื ืงืœ. ื•ื•ืขื‘ ืื•ืŸ MTProxy, ืžื™ืจ ื•ื•ืขืœืŸ ื ื™ืฉื˜ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ืื™ืฆื˜, ืืคึฟืฉืจ ืื™ืŸ ืืŸ ืื ื“ืขืจ ืคึผืึธืกื˜ืŸ, ืื•ื™ื‘ ืขืก ืื™ื– ืึท ื‘ืงืฉื”. ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืœื•ื™ื– ืฆื•ืจื™ืงืจื•ืคืŸ ื•ื•ืขื’ืŸ ื“ืขื ื–ื™ื™ืขืจ MTProxy ืึทื– ื‘ืึทืœื“ ื ืึธืš ื–ื™ื™ืŸ ืžืขืœื“ื•ื ื’ ืื™ืŸ 2018, ืคึผืจืึทื•ื•ื™ื™ื“ืขืจื– ื’ืขืฉื•ื•ื™ื ื“ ื’ืขืœืขืจื ื˜ ืฆื• ืคืึทืจืฉืคึผืึทืจืŸ ืคึผื•ื ืงื˜ ืขืก, ื‘ื“ืขื” ืคึฟืึทืจ ืคืึทืจืฉืคึผืึทืจืŸ ื‘ื™ื™ืคึผืึทืกื“ื•ืจืš ืคึผืึทืงืึทื˜ ื’ืจื™ื™ืก! ืื•ืŸ ืื•ื™ืš ื“ืขืจ ืคืึทืงื˜ ืึทื– ื“ื™ MTProxy ืกืขืจื•ื•ืขืจ ื’ืขืฉืจื™ื‘ืŸ (ื•ื•ื™ื“ืขืจ ื“ื•ืจืš ื•ื•ืึทืœื˜ืžืึทืŸ) ืื™ืŸ C ืื™ื– ืึทื ื ืขืกืึทืกืขืจืึทืœื™ ื˜ื™ื™ื“ ืฆื• ืœื™ื ื•ืงืก ืกืคึผืขืกื™ืคื™ืงืก, ื›ืึธื˜ืฉ ืขืก ืื™ื– ื ื™ืฉื˜ ืคืืจืœืื ื’ื˜ ืื™ืŸ ืึทืœืข (Phil Kulin ื•ื•ืขื˜ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ), ืื•ืŸ ืึทื– ืึท ืขื ืœืขืš ืกืขืจื•ื•ืขืจ ืึธื“ืขืจ ืื•ื™ืฃ Go ืึธื“ืขืจ ืื•ื™ืฃ Node.js ืคึผืึทืกื™ืง ื•ื•ื™ื™ื ื™ืงืขืจ ื•ื•ื™ ืึท ื”ื•ื ื“ืขืจื˜ ืฉื•ืจื•ืช.

ืึธื‘ืขืจ ืžื™ืจ ื•ื•ืขืœืŸ ืฆื™ืขืŸ ืื•ื™ืกืคื™ืจืŸ ื•ื•ืขื’ืŸ ื“ื™ ื˜ืขื›ื ื™ืฉ ืœื™ื˜ืขืจืึทืกื™ ืคื•ืŸ ื“ื™ ืžืขื ื˜ืฉืŸ ืื™ืŸ ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ื™ ืึธืคึผื˜ื™ื™ืœื•ื ื’, ื ืึธืš ื‘ืึทื˜ืจืึทื›ื˜ืŸ ืื ื“ืขืจืข ื™ืฉื•ื–. ืื™ืฆื˜, ืœืึธื–ืŸ ืื•ื ื“ื– ื’ื™ื™ืŸ ืฆื• ื“ื™ 5th OSI ืฉื™ื›ื˜ืข, ืกืขืกื™ืข - ืื•ื™ืฃ ื•ื•ืึธืก ื–ื™ื™ ืฉื˜ืขืœืŸ ื“ื™ MTProto ืกืขืกื™ืข.

ืฉืœื™ืกืœืขืŸ, ืึทืจื˜ื™ืงืœืขืŸ, ืกืขืฉืึทื ื–, ื“ื™ืคื™-ื”ืขืœืžืึทืŸ

ื–ื™ื™ ืฉื˜ืขืœืŸ ืขืก ื“ืึธืจื˜ ื ื™ืฉื˜ ืœืขื’ืึทืžืจืข ืจื™ื›ื˜ื™ืง ... ื ืกืขืกื™ืข ืื™ื– ื ื™ืฉื˜ ื“ื™ ื–ืขืœื‘ืข ืกืขืกื™ืข ื•ื•ืึธืก ืื™ื– ืงืขื ื˜ื™ืง ืื™ืŸ ื“ื™ ืฆื•ื‘ื™ื ื“ ืื•ื ื˜ืขืจ ืึทืงื˜ื™ื•ื• ืกืขืฉืึทื ื–. ืื‘ืขืจ ืื™ืŸ ืกื“ืจ.

ืงืจื™ื˜ื™ืง ืคื•ืŸ ื“ื™ ืคึผืจืึธื˜ืึธืงืึธืœ ืื•ืŸ ืึธืจื’ืึทื ืึทื–ื™ื™ืฉืึทื ืึทืœ ืึทืคึผืจืึธื•ื˜ืฉื™ื– ืคื•ืŸ ื˜ืขืœืขื’ืจืึทื. ื˜ื™ื™ืœ 1, ื˜ืขื›ื ื™ืฉ: ื“ืขืจืคืึทืจื•ื ื’ ืคื•ืŸ ืฉืจื™ื™ื‘ืŸ ืึท ืงืœื™ืขื ื˜ ืคึฟื•ืŸ ืงืจืึทืฆืŸ - TL, MT

ื“ืึธ ืžื™ืจ ื”ืึธื‘ืŸ ื‘ืืงื•ืžืขืŸ ืึท ืฉื˜ืจื™ืงืœ ืคื•ืŸ ื‘ื™ื˜ืขืก ืคื•ืŸ ื‘ืืงืื ื˜ ืœืขื ื’ ืคื•ืŸ ื“ื™ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืฉื™ื›ื˜ืข. ื“ืึธืก ืื™ื– ืึธื“ืขืจ ืึท ื™ื ืงืจื™ืคึผื˜ื™ื“ ืึธื ื–ืึธื’ ืึธื“ืขืจ ืึท ืงืœืึธืจ ื˜ืขืงืกื˜ - ืื•ื™ื‘ ืžื™ืจ ื–ืขื ืขืŸ ื ืึธืš ืื™ืŸ ื“ื™ ืฉืœื™ืกืœ ืคืึทืจื”ืึทื ื“ืœื•ื ื’ ื‘ื™ื ืข ืื•ืŸ ื˜ืึธืŸ ื“ืึธืก. ื•ื•ืึธืก ืคื•ืŸ ื“ื™ ื‘ื™ื ื˜ืœ ืคื•ืŸ ืงืึทื ืกืขืคึผืก ื’ืขืจื•ืคืŸ "ืฉืœื™ืกืœ" ื–ืขื ืขืŸ ืžื™ืจ ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ? ืœืึธืžื™ืจ ื“ืขืจืงืœืขืจืŸ ื“ืขื ืึทืจื•ื™ืกื’ืขื‘ืŸ ืคึฟืึทืจ ื“ื™ ื˜ืขืœืขื’ืจืึทื ืžืึทื ืฉืึทืคึฟื˜ ื–ื™ืš (ืื™ืš ืึทื ื˜ืฉื•ืœื“ื™ืงืŸ ืคึฟืึทืจ ืื™ื‘ืขืจื–ืขืฆืŸ ืžื™ื™ืŸ ืื™ื™ื’ืขื ืข ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืขื ื’ืœื™ืฉ ืฆื• ืึธื“ืขืจ ืึท ืžื™ื“ ืžืึทืจืš ื‘ื™ื™ 4 ืื™ืŸ ื“ืขืจ ืžืึธืจื’ืŸ, ืขื˜ืœืขื›ืข ืคืจืึทืกืขืก ื–ืขื ืขืŸ ื’ืจื™ื ื’ืขืจ ืฆื• ืœืึธื–ืŸ ื•ื•ื™ ื–ื™ื™ ื–ืขื ืขืŸ):

ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ืขื ื˜ื™ื˜ื™ื– ื’ืขืจื•ืคืŸ ืกืขืกื™ืข - ืื™ื™ื ืขืจ ืื™ืŸ ื“ื™ ื•ื™ ืคื•ืŸ ื‘ืึทืึทืžื˜ืขืจ ืงืœื™ื™ืึทื ืฅ ืื•ื ื˜ืขืจ "ืงืจืึทื ื˜ ืกืขืฉืึทื ื–", ื•ื•ื• ื™ืขื“ืขืจ ืกืขืกื™ืข ืงืึธืจืึทืกืคึผืึทื ื“ื– ืฆื• ืึท ื’ืึทื ืฅ ืžื™ื˜ืœ / ืึทืก.
ืกืขืงื•ื ื“ืข - MTProto ืกืขืกื™ืข, ื•ื•ืึธืก ื”ืื˜ ืึท ืึธื ื–ืึธื’ ืกื™ืงื•ื•ืึทื ืก ื ื•ืžืขืจ (ืื™ืŸ ืึท ื ื™ื“ืขืจื™ืง-ืžื“ืจื’ื” ื–ื™ื ืขืŸ) ืื™ืŸ ืขืก, ืื•ืŸ ื•ื•ืึธืก ืงืขืŸ ื“ื•ื™ืขืจืŸ ืฆื•ื•ื™ืฉืŸ ืคืึทืจืฉื™ื“ืขื ืข TCP ืงืึทื ืขืงืฉืึทื ื–. ืขื˜ืœืขื›ืข MTProto ืกืขืฉืึทื ื– ืงืขื ืขืŸ ื–ื™ื™ืŸ ืฉื˜ืขืœืŸ ืึทืจื•ื™ืฃ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืœืžืฉืœ, ืฆื• ืคืึทืจื’ื™ื›ืขืจืŸ ื˜ืขืงืข ื“ืึทื•ื ืœืึธื•ื“ื–.

ืฆืฐื™ืฉืŸ ื“ื™ ืฆืฐืฒ ืกืขืฉืึทื ื– ืื™ื– ื“ืขืจ ื‘ืึทื’ืจื™ืฃ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ. ืื™ืŸ ื“ื™ ื“ื™ื“ื–ืฉืขื ืขืจื™ื™ืฉืึทืŸ ืคืึทืœ, ืื™ื™ื ืขืจ ืงืขื ืขืŸ ื–ืึธื’ืŸ ืึทื– UI ืกืขืกื™ืข ืื™ื– ื“ื™ ื–ืขืœื‘ืข ื•ื•ื™ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉืื‘ืขืจ ื•ื•ื™ื™, ืขืก ืื™ื– ืงืึธืžืคึผืœื™ืฆื™ืจื˜. ืžื™ืจ ืงื•ืงืŸ:

  • ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืื•ื™ืฃ ื“ื™ ื ื™ื™ึทืข ืžื™ื˜ืœ ืขืจืฉื˜ืขืจ ื“ื–ืฉืขื ืขืจื™ื™ืฅ auth_key ืื•ืŸ ื‘ืึทื’ืจืขื ืขืฆืŸ ืขืก ืฆื• ื—ืฉื‘ื•ืŸ, ืœืžืฉืœ, ื“ื•ืจืš SMS - ืึทื– ืก ื•ื•ืึธืก ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ
  • ืขืก ืื™ื– ื’ืขืฉืขืŸ ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ MTProto ืกืขืกื™ืข, ื•ื•ืึธืก ื”ืื˜ session_id ืื™ืŸ ื–ื™ืš.
  • ืื™ืŸ ื“ืขื ืฉืจื™ื˜, ื“ื™ ืงืึธืžื‘ื™ื ืึทืฆื™ืข ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ะธ session_id ืงืขืŸ ืžืขืŸ ื ืขืžืขืŸ ื‘ื™ื™ึทืฉืคึผื™ืœ - ื“ืึธืก ื•ื•ืึธืจื˜ ืื™ื– ื’ืขืคึฟื•ื ืขืŸ ืื™ืŸ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืื•ืŸ ืงืึธื“ ืคื•ืŸ ืขื˜ืœืขื›ืข ืงืœื™ื™ืึทื ืฅ
  • ื“ืขืจื ืึธืš, ื“ืขืจ ืงืœื™ืขื ื˜ ืงืขื ืขืŸ ืขืคืขื ืขืŸ ืขื˜ืœืขื›ืข MTProto ืกืขืฉืึทื ื– ืื•ื ื˜ืขืจ ื“ื™ ื–ืขืœื‘ืข auth_key - ืฆื• ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื“ืง.
  • ื“ืขืžืึธืœื˜ ืื™ื™ืŸ ื˜ืึธื’ ื“ืขืจ ืงืœื™ืขื ื˜ ื“ืึทืจืฃ ืฆื• ื‘ืขื˜ืŸ ืึท ื˜ืขืงืข ืคื•ืŸ ืืŸ ืื ื“ืขืจ DC - ืื•ืŸ ืคึฟืึทืจ ื“ืขื DC ืึท ื ื™ื™ึทืข ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ auth_key !
  • ืฆื• ื–ืึธื’ืŸ ื“ื™ ืกื™ืกื˜ืขื ืึทื– ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ืึท ื ื™ื™ึทืข ื‘ืึทื ื™ืฆืขืจ ืจืขื“ื–ืฉื™ืกื˜ืขืจื™ื ื’, ืึธื‘ืขืจ ื“ื™ ื–ืขืœื‘ืข ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ (UI ืกืขืกื™ืข), ื“ืขืจ ืงืœื™ืขื ื˜ ื ื™ืฆื˜ ืึทืคึผื™ ืงืึทืœืœืก auth.exportAuthorization ืื™ืŸ ืฉื˜ื•ื‘ DC auth.importAuthorization ืื™ืŸ ื“ื™ ื ื™ื™ึทืข DC.
  • ืึทืœืข ื“ื™ ื–ืขืœื‘ืข, ืขืก ืงืขืŸ ื–ื™ื™ืŸ ืขื˜ืœืขื›ืข ืขืคืขื ืขืŸ MTProto ืกืขืฉืึทื ื– (ื™ืขื“ืขืจ ืžื™ื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข session_id) ืฆื• ื“ืขื ื ื™ื™ึท DC, ืื•ื ื˜ืขืจ ื–ื™ื™ึทืŸ auth_key.
  • ืฆื•ื ืกื•ืฃ, ื“ืขืจ ืงืœื™ืขื ื˜ ืงืขืŸ ื•ื•ืขืœืŸ ืฉืœื™ื™ืžืขืกื“ื™ืง ืคึฟืึธืจื•ื•ืขืจื˜ืก ืกืขืงืจืขืกื™. ื™ืขื“ืขืจ auth_key ืื™ื– ื’ืขื•ื•ืขืŸ ืฉื˜ืขื ื“ื™ืง ืฉืœื™ืกืœ - ืคึผืขืจ ื“ืง - ืื•ืŸ ื“ืขืจ ืงืœื™ืขื ื˜ ืงืขื ืขืŸ ืจื•ืคืŸ auth.bindTempAuthKey ืคึฟืึทืจ ื ื•ืฆืŸ ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง auth_key - ืื•ืŸ ื•ื•ื™ื“ืขืจ, ื‘ืœื•ื™ื– ืื™ื™ืŸ temp_auth_key ืคึผืขืจ ื“ืง, ืคึผืจืึธืกื˜ ืฆื• ืึทืœืข MTProto ืกืขืฉืึทื ื– ืฆื• ื“ืขื DC.

ื‘ืึทืžืขืจืงื•ื ื’ ืึทื– ื–ืึทืœืฅ (ืื•ืŸ ืฆื•ืงื•ื ืคึฟื˜ ืกืึธืœืฅ) ืื•ื™ืš ืื™ื™ื ืขืจ ืื•ื™ืฃ auth_key ื™ืขื ืข. ื’ืขื˜ื™ื™ืœื˜ ืฆื•ื•ื™ืฉืŸ ืึทืœืข MTProto ืกืขืฉืึทื ื– ืฆื• ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื“ืง.

ื•ื•ืึธืก ืžื™ื˜ืœ "ืฆื•ื•ื™ืฉืŸ ืคืึทืจืฉื™ื“ืขื ืข TCP ืงืึทื ืขืงืฉืึทื ื–"? ืขืก ืžื™ื˜ืœ ืึทื– ื“ืึธืก ืขืคึผืขืก ื•ื•ื™ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืงื™ื›ืœ ืื•ื™ืฃ ืึท ื•ื•ืขื‘ื–ื™ื™ื˜ืœ - ืขืก ื‘ืœื™ื™ึทื‘ื˜ (ืกื•ืจื•ื•ื™ื™ื•ื•ื–) ืคื™ืœืข ื˜ืงืคึผ ืงืึทื ืขืงืฉืึทื ื– ืฆื• ื“ืขื ืกืขืจื•ื•ืขืจ, ืึธื‘ืขืจ ืื™ื™ืŸ ื˜ืึธื’ ืขืก ื•ื•ืขื˜ ื’ื™ื™ืŸ ืฉืœืขื›ื˜. ื‘ืœื•ื™ื– ื ื™ื˜ ืขื ืœืขืš HTTP, ืื™ืŸ MTProto, ืื™ืŸ ื“ืขืจ ืกืขืกื™ืข, ืึทืจื˜ื™ืงืœืขืŸ ื–ืขื ืขืŸ ืกืึทืงื•ื•ืขื ื˜ืฉืึทืœื™ ื’ืขืฆื™ื™ืœื˜ ืื•ืŸ ื‘ืืฉื˜ืขื˜ื™ืงื˜, ื–ื™ื™ ื–ืขื ืขืŸ ืืจื™ื™ืŸ ืื™ืŸ ื“ืขื ื˜ื•ื ืขืœ, ื“ื™ ืงืฉืจ ืื™ื– ืฆืขื‘ืจืื›ืŸ - ื ืึธืš ื’ืจื™ื ื“ืŸ ืึท ื ื™ื™ึทืข ืงืฉืจ, ื“ืขืจ ืกืขืจื•ื•ืขืจ ื•ื•ืขื˜ ืฉื™ืงืŸ ืึทืœืฅ ืื™ืŸ ื“ืขื ืกืขืกื™ืข ื•ื•ืึธืก ืขืก ืื™ื– ื ื™ืฉื˜ ืื™ื‘ืขืจื’ืขื’ืขื‘ืŸ ืื™ืŸ ื“ื™ ืกืขืกื™ืข. ืคืจื™ื™ึทืขืจื“ื™ืง ื˜ืงืคึผ ืงืฉืจ.

ืึธื‘ืขืจ, ื“ื™ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื•ื™ื‘ืŸ ืื™ื– ืึท ืงื•ื•ืขื˜ืฉ ื ืึธืš ืคื™ืœืข ื—ื“ืฉื™ื ืคื•ืŸ ืœื™ื˜ืึทื’ื™ื™ืฉืึทืŸ. ืื™ืŸ ื“ืขืจ ื“ืขืจื•ื•ื™ื™ืœ, ื–ืขื ืขืŸ ืžื™ืจ ื™ืžืคึผืœืึทืžืขื ื™ื ื’ ืื•ื ื“ื–ืขืจ ืงืœื™ืขื ื˜ ืคึฟื•ืŸ ืงืจืึทืฆืŸ? โ€” ืœืึธืžื™ืจ ืฆื•ืจื™ืงื’ื™ื™ืŸ ืฆื•ื ืึธื ื”ื™ื™ื‘.

ืึทื–ื•ื™ ืžื™ืจ ืคึผืจืึธื“ื•ืฆื™ืจืŸ auth_key ืื•ื™ืฃ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Diffie-Hellman ืคึฟื•ืŸ ื˜ืขืœืขื’ืจืึทื. ืœืึธืžื™ืจ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ...

ื•ื•ืึทืกื™ืœื™, [19.06.18/20/05 1:255] ื“ืึทื˜ืึท_ื•ื•ื™ื˜ื”_ื”ืึทืฉ := ืฉืึทXNUMX (ื“ืึทื˜ืŸ) + ื“ืึทื˜ืŸ + (ืงื™ื™ืŸ ื˜ืจืึทืค - ื‘ื™ื˜ืขืก); ืึทื–ื•ื™ ืึทื– ื“ื™ ืœืขื ื’ ืื™ื– ื’ืœื™ื™ึทืš ืฆื• XNUMX ื‘ื™ื˜ืขืก;
ืขื ืงืจื™ืคึผื˜ื™ื“_ื“ืึทื˜ืŸ:= RSA (ื“ืึทื˜ืึท_ืžื™ื˜_ื”ืึทืฉ, ืกืขืจื•ื•ืขืจ_ืคึผื•ื‘ืœื™ืง_ืงื™ื™); ืึท 255-ื‘ื™ื˜ืข ืœืึทื ื’ ื ื•ืžืขืจ (ื’ืจื•ื™ืก ืขื ื“ื™ืึทืŸ) ืื™ื– ืื•ื™ืคื’ืขืฉื˜ืื ืขืŸ ืฆื• ื“ื™ ื ื•ื™ื˜ื™ืง ืžืึทื›ื˜ ืื™ื‘ืขืจ ื“ื™ ืคืืจืœืื ื’ื˜ ืžืึธื“ื•ืœื•ืก, ืื•ืŸ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืื™ื– ืกื˜ืึธืจื“ ื•ื•ื™ ืึท 256-ื‘ื™ื˜ืข ื ื•ืžืขืจ.

ื–ื™ื™ ื”ืึธื‘ืŸ ืึท ื‘ื™ืกืœ ื“ื”

ื–ืขื˜ ื ื™ืฉื˜ ืื•ื™ืก ื•ื•ื™ ื ื’ืขื–ื•ื ื˜ ืžืขื ื˜ืฉ'ืก ื“"ื”
ืขืก ื–ืขื ืขืŸ ืงื™ื™ืŸ ืฆื•ื•ื™ื™ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœืขืŸ ืื™ืŸ dx

ื ื•, ืื™ืŸ ื“ื™ ืกื•ืฃ, ืžื™ืจ ืคื™ื’ื™ืขืจื“ ืขืก ืื•ื™ืก, ืึธื‘ืขืจ ื“ื™ ืึธืคึผื–ืึทืฅ ืคืืจื‘ืœื™ื‘ืŸ - ืึท ื“ืขืจื•ื•ื™ื™ึทื– ืคื•ืŸ ืึทืจื‘ืขื˜ ืื™ื– ื’ืขื˜ืืŸ ื“ื•ืจืš ื“ืขืจ ืงืœื™ืขื ื˜ ืึทื– ืขืจ ืื™ื– ื‘ื™ื›ื•ืœืช ืฆื• ืคืึทืงื˜ืึธืจื™ื–ื™ืจืŸ ื“ื™ ื ื•ืžืขืจ. ื˜ื™ืคึผ ืคื•ืŸ ืฉื•ืฅ ืงืขื’ืŸ ื“ืึธืก ืื ืคืืœืŸ. ืื•ืŸ ื“ืขืจ RSA ืฉืœื™ืกืœ ืื™ื– ื‘ืœื•ื™ื– ื’ืขื ื™ืฆื˜ ืึทืžืึธืœ ืื™ืŸ ืื™ื™ืŸ ืจื™ื›ื˜ื•ื ื’, ื™ืกืขื ืฉืึทืœื™ ืคึฟืึทืจ ืขื ืงืจื™ืคึผืฉืึทืŸ new_nonce. ืึธื‘ืขืจ ื‘ืฉืขืช ื“ืขื ืคึผืึธื ืขื ืคึผืฉื•ื˜ ืึธืคึผืขืจืึทืฆื™ืข ืื™ื– ื’ืขืจืึธื˜ืŸ, ื•ื•ืึธืก ื•ื•ืขื˜ ืื™ืจ ื”ืึธื‘ืŸ ืฆื• ืคึผื ื™ื?

ื•ื•ืึทืกื™ืœื™, [20.06.18/00/26 XNUMX:XNUMX] ืื™ืš ื”ืื‘ ื ืึธืš ื ื™ืฉื˜ ื“ืขืจื’ืจื™ื™ื›ื˜ ื“ื™ ืึทืคึผื™ื“ ื‘ืงืฉื”

ืื™ืš ื”ืื‘ ื’ืขืฉื™ืงื˜ ื ื‘ืงืฉื” ืฆื• ื“.ื”

ืื•ืŸ ืื™ืŸ ื“ื™ ื“ืึธืง ืื•ื™ืฃ ื“ื™ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืขืก ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืึทื– ืขืก ืงืขื ืขืŸ ืขื ื˜ืคึฟืขืจืŸ ืžื™ื˜ 4 ื‘ื™ื˜ืขืก ืคื•ืŸ ื“ื™ ื˜ืขื•ืช ืงืึธื“. ืื•ืŸ ืึทื– ืก ืขืก

ื ื•, ืขืจ ื”ืึธื˜ ืžื™ืจ ื’ืขื–ืึธื’ื˜ -404, ืึทื–ื•ื™ ื•ื•ืึธืก?

ื“ืึธ ืื™ืš ื‘ื™ืŸ ืฆื• ืื™ื: "ื›ืึทืคึผืŸ ื“ื™ื™ืŸ ืขืคื™ื’ื ืึท ื™ื ืงืจื™ืคึผื˜ื™ื“ ืžื™ื˜ ื“ื™ ืกืขืจื•ื•ืขืจ ืฉืœื™ืกืœ ืžื™ื˜ ืึท ืคื™ื ื’ืขืจืคึผืจื™ื ื˜ ืคื•ืŸ ืึทื–ืึท ืื•ืŸ ืึทื–ืึท, ืื™ืš ื•ื•ื™ืœืŸ DH", ืื•ืŸ ืขืก ืจื™ืกืคึผืึทื ื“ื– ื ืึทืจื™ืฉ 404

ื•ื•ืึธืก ื•ื•ืึธืœื˜ ืื™ืจ ื˜ืจืึทื›ื˜ืŸ ืคื•ืŸ ืึทื–ืึท ืึท ืกืขืจื•ื•ืขืจ ืขื ื˜ืคืขืจ? ื•ื•ืึธืก ืฆื• ื˜ืึธืŸ? ืขืก ืื™ื– ืงื™ื™ืŸ ืื™ื™ื ืขืจ ืฆื• ืคืจืขื’ืŸ (ืึธื‘ืขืจ ืžืขืจ ืื•ื™ืฃ ื“ืขื ืื™ืŸ ื“ื™ ืฆื•ื•ื™ื™ื˜ืข ื˜ื™ื™ืœ).

ื“ืึธ ืึทืœืข ื“ื™ ืื™ื ื˜ืขืจืขืก ืื™ืŸ ื“ื™ ื“ืึธืง ืื™ื– ืฆื• ื˜ืึธืŸ

ืื™ืš ื”ืื‘ ื’ืืจื ื™ืฉื˜ ืื ื“ืขืจืฉ ืฆื• ื˜ืืŸ, ืื™ืš ื”ืื‘ ื ืืจ ื’ืขื—ืœื•ืžื˜ ืคื•ืŸ ืคืืจื•ื•ืื ื“ืœืขืŸ ื ื•ืžืขืจืŸ ืื”ื™ืŸ ืื•ืŸ ืฆื•ืจื™ืง

ืฆื•ื•ื™ื™ 32 ื‘ื™ืกืœ ื ื•ืžืขืจืŸ. ืื™ืš ื”ืึธื‘ ื–ื™ื™ ื’ืขืคึผืึทืงื˜ ื•ื•ื™ ืึทืœืข ืึทื ื“ืขืจืข

ืึธื‘ืขืจ ื ื™ื˜, ืขืก ืื™ื– ื“ื™ ืฆื•ื•ื™ื™ ืึทื– ืื™ืจ ื“ืึทืจืคึฟืŸ ืขืจืฉื˜ืขืจ ืื™ืŸ ืึท ืฉื•ืจื” ื•ื•ื™ BE

ื•ื•ืึทื“ื™ื ื’ืึธื ื˜ืฉืึทืจืึธื•ื•, [20.06.18/15/49 404:XNUMX] ืื•ืŸ ืฆื•ืœื™ื‘ ื“ืขื XNUMX?

ื•ื•ืึทืกื™ืœื™, [20.06.18/15/49 XNUMX:XNUMX] ื™ืึธ!

ื•ื•ืึทื“ื™ื ื’ืึธื ื˜ืฉืึทืจืึธื•ื•, [20.06.18/15/50 XNUMX:XNUMX] ืึทื–ื•ื™ ืื™ืš ื˜ืึธืŸ ื ื™ื˜ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ืึธืก ืขืจ ืงืขืŸ "ื ื™ื˜ ื’ืขืคึฟื•ื ืขืŸ"

ื•ื•ืึทืกื™ืœื™, [20.06.18 15:50] ื‘ืขืขืจืขืš

ืื™ืš ื”ืึธื‘ ื ื™ื˜ ื’ืขืคึฟื•ื ืขืŸ ืึทื–ืึท ืึท ื“ื™ืงืึทืžืคึผืึธื•ื–ื™ืฉืึทืŸ ืื™ืŸ ืคึผืฉื•ื˜ ื“ื™ื•ื•ื™ื™ื–ืขืจื–.

ืืคื™ืœื• ื˜ืขื•ืช ืจื™ืคึผืึธืจื˜ื™ื ื’ ืื™ื– ื ื™ืฉื˜ ืžืึทืกื˜ืขืจื“

ื•ื•ืึทืกื™ืœื™, [20.06.18/20/18 5:XNUMX] ืึธื”, ืขืก ืื™ื– ืื•ื™ืš MDXNUMX. ืฉื•ื™ืŸ ื“ืจื™ื™ ืคืึทืจืฉื™ื“ืขื ืข ื”ืึทืฉืขืก

ื“ืขืจ ืฉืœื™ืกืœ ืคื™ื ื’ืขืจืคึผืจื™ื ื˜ ืื™ื– ืงืึทืžืคึผื™ื•ื˜ืึทื“ ื•ื•ื™ ื’ื™ื™ื˜:

digest = md5(key + iv)
fingerprint = substr(digest, 0, 4) XOR substr(digest, 4, 4)

SHA1 ืื•ืŸ Sha2

ืึทื–ื•ื™ ืœืึธื–ืŸ ืก ืฉื˜ืขืœืŸ auth_key 2048 ื‘ื™ื˜ืŸ ืื™ืŸ ื’ืจื™ื™ืก ืžื™ืจ ื’ืึทื˜ ืœื•ื™ื˜ ื“ื™ืคื™-ื”ืขืœืžืึทืŸ. ื•ื•ืืก ืื™ื– ื ืขืงืกื˜? ื“ืขืจื ืึธืš ืžื™ืจ ื’ืขืคึฟื™ื ืขืŸ ื–ื™ืš ืึทื– ื“ื™ ื ื™ื“ืขืจื™ืงืขืจ 1024 ื‘ื™ื˜ืŸ ืคื•ืŸ ื“ืขื ืฉืœื™ืกืœ ื–ืขื ืขืŸ ื ื™ืฉื˜ ื’ืขื ื™ืฆื˜ ืื™ืŸ ืงื™ื™ืŸ ื•ื•ืขื’ ... ืึธื‘ืขืจ ืœืึธื–ืŸ ืื•ื ื“ื– ื˜ืจืึทื›ื˜ืŸ ื•ื•ืขื’ืŸ ื“ืขื ืคึฟืึทืจ ืื™ืฆื˜. ืื™ืŸ ื“ืขื ืฉืจื™ื˜, ืžื™ืจ ื”ืึธื‘ืŸ ืึท ืฉืขืจื“ ืกื•ื“ ืžื™ื˜ ื“ื™ ืกืขืจื•ื•ืขืจ. ืึทืŸ ืึทื ืึทืœืึธื’ ืคื•ืŸ ืึท TLS ืกืขืกื™ืข ืื™ื– ื’ืขื’ืจื™ื ื“ืขื˜, ืึท ื–ื™ื™ืขืจ ื˜ื™ื™ึทืขืจ ืคึผืจืึธืฆืขื“ื•ืจ. ืึธื‘ืขืจ ื“ืขืจ ืกืขืจื•ื•ืขืจ ื•ื•ื™ื™ืกื˜ ื ืึธืš ื’ืึธืจื ื™ืฉื˜ ื•ื•ืขื’ืŸ ื•ื•ืขืจ ืžื™ืจ ื–ืขื ืขืŸ! ื ื™ื˜ ื ืึธืš, ืคืืงื˜ื™ืฉ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ. ื™ืขื ืข. ืื•ื™ื‘ ืื™ืจ ื’ืขื“ืึทื ืง ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ "ืœืึธื’ื™ืŸ-ืฉืคึผืจื™ื›ื•ื•ืึธืจื˜", ื•ื•ื™ ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืื™ืŸ ICQ, ืึธื“ืขืจ ืœืคึผื—ื•ืช "ืœืึธื’ื™ืŸ-ืฉืœื™ืกืœ", ื•ื•ื™ ืื™ืŸ SSH (ืœืžืฉืœ, ืื•ื™ืฃ ืขื˜ืœืขื›ืข ื’ื™ื˜ืœืึทื‘ / ื’ื™ื˜ื”ื•ื‘). ืžื™ืจ ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ ืึทื ืึธื ื™ืžืข. ืื•ืŸ ืื•ื™ื‘ ื“ืขืจ ืกืขืจื•ื•ืขืจ ืขื ื˜ืคืขืจื˜ ืื•ื ื“ื– "ื“ื™ ื˜ืขืœืขืคืึธืŸ ื ื•ืžืขืจืŸ ื–ืขื ืขืŸ ืกืขืจื•ื•ื™ืจื˜ ื“ื•ืจืš ืืŸ ืื ื“ืขืจ DC"? ืึธื“ืขืจ ืืคื™ืœื• "ื“ื™ื™ืŸ ื˜ืขืœืขืคืึธืŸ ื ื•ืžืขืจ ืื™ื– ื‘ืึทื ื“"? ื“ืขืจ ื‘ืขืกื˜ืขืจ ื–ืึทืš ื•ื•ืึธืก ืžื™ืจ ืงืขื ืขืŸ ื˜ืึธืŸ ืื™ื– ืจืึทื˜ืขื•ื•ืขืŸ ื“ืขื ืฉืœื™ืกืœ ืื™ืŸ ื“ืขืจ ื”ืึธืคืขื ื•ื ื’ ืึทื– ืขืก ื•ื•ืขื˜ ื ืึธืš ื–ื™ื™ืŸ ื ื•ืฆื™ืง ืื•ืŸ ื ื™ืฉื˜ ืคึผืึทืกืงื•ื“ื ืข ื‘ื™ื– ื“ืขืžืึธืœื˜.

ืื’ื‘, ืžื™ืจ ื”ืื‘ืŸ ืขืก "ื‘ืืงื•ืžืขืŸ" ืžื™ื˜ ืจืขื–ืขืจื•ื•ืืฆื™ืขืก. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื˜ืึธืŸ ืžื™ืจ ืฆื•ื˜ืจื•ื™ ื“ื™ ืกืขืจื•ื•ืขืจ? ืื™ื– ืขืจ ืฉื•ื•ื™ื ื“ืœ? ืžื™ืจ ื“ืึทืจืคึฟืŸ ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ืง ื˜ืฉืขืงืก:

Vasily, [21.06.18/17/53 2:XNUMX PM] ื–ื™ื™ ืคืึธืจืฉืœืึธื’ืŸ ืจื™ืจืขื•ื•ื“ื™ืง ืงืœื™ื™ืึทื ืฅ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืึท XNUMX ืงื‘ื™ื˜ ื ื•ืžืขืจ ืคึฟืึทืจ ืคึผืึทืฉื˜ืขืก%)

ืื‘ืขืจ ืขืก ืื™ื– ื ื™ืฉื˜ ืงืœืึธืจ ืื™ืŸ ืึทืœืข, ื ืึทืคื™ื™ื“ื–ืฉืึธืึท

ื•ื•ืึทืกื™ืœื™, [21.06.18/18/02 XNUMX:XNUMX] ื“ืขืจ ื“ืึธืง ื–ืื’ื˜ ื ื™ืฉื˜ ื•ื•ืึธืก ืฆื• ื˜ืึธืŸ ืื•ื™ื‘ ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื ื™ื˜ ืคึผืฉื•ื˜

ื ื™ืฉื˜ ื’ืขื–ืื’ื˜. ื–ืืœ ืก ื–ืขืŸ ื•ื•ืึธืก ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ืงืœื™ืขื ื˜ ืคึฟืึทืจ ืึทื ื“ืจื•ื™ื“ ื˜ื•ื˜ ืื™ืŸ ื“ืขื ืคืึทืœ? ื ื“ืึธืก ืื™ื– ื•ื•ืึธืก (ืื•ืŸ ื™ื, ื“ื™ ื’ืื ืฆืข ื˜ืขืงืข ืื™ื– ื“ืืจื˜ ืื™ื ื˜ืขืจืขืกืื ื˜) - ื•ื•ื™ ืžืขืŸ ื–ืื’ื˜, ืื™ืš ืœืื– ืขืก ื ืืจ ื“ื:

278     static const char *goodPrime = "c71caeb9c6b1c9048e6c522f70f13f73980d40238e3e21c14934d037563d930f48198a0aa7c14058229493d22530f4dbfa336f6e0ac925139543aed44cce7c3720fd51f69458705ac68cd4fe6b6b13abdc9746512969328454f18faf8c595f642477fe96bb2a941d5bcd1d4ac8cc49880708fa9b378e3c4f3a9060bee67cf9a4a4a695811051907e162753b56b0f6b410dba74d8a84b2a14b3144e0ef1284754fd17ed950d5965b4b9dd46582db1178d169c6bc465b0d6ff9ca3928fef5b9ae4e418fc15e83ebea0f87fa9ff5eed70050ded2849f47bf959d956850ce929851f0d8115f635b105ee2e4e15d04b2454bf6f4fadf034b10403119cd8e3b92fcc5b";
279   if (!strcasecmp(prime, goodPrime)) {

ื ื™ื™ืŸ, ื“ืึธืš ื“ืึธืจื˜ ืขื˜ืœืขื›ืข ืขืก ื–ืขื ืขืŸ ื˜ืฉืขืงืก ืคึฟืึทืจ ื“ื™ ืคึผืึทืฉื˜ืขืก ืคื•ืŸ ืึท ื ื•ืžืขืจ, ืึธื‘ืขืจ ืคึผืขืจืกื ืึทืœื™ ืื™ืš ื”ืึธื‘ืŸ ื ื™ื˜ ืžืขืจ ื’ืขื ื•ื’ ื•ื•ื™ืกืŸ ืื™ืŸ ืžืื˜ืขืžืื˜ื™ืง.

ืึธื•ืงื™ื™, ืžื™ืจ ื”ืึธื‘ืŸ ื“ื™ ื‘ืขืœ ืฉืœื™ืกืœ. ืฆื• ืงืœืึธืฅ ืื™ืŸ, ื“.ื”. ืฉื™ืงืŸ ืจื™ืงื•ื•ืขืก, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ื•ื•ื™ื™ึทื˜ืขืจ ืขื ืงืจื™ืคึผืฉืึทืŸ, ืฉื•ื™ืŸ ื ื™ืฆืŸ AES.

ื“ืขืจ ืึธื ื–ืึธื’ ืฉืœื™ืกืœ ืื™ื– ื“ื™ืคื™ื™ื ื“ ื•ื•ื™ ื“ื™ 128 ืžื™ื˜ืœ ื‘ื™ื˜ืŸ ืคื•ืŸ ื“ื™ SHA256 ืคื•ืŸ ื“ื™ ืึธื ื–ืึธื’ ื’ื•ืฃ (ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืกืขืกื™ืข, ืึธื ื–ืึธื’ ืฉื™ื™ึทืŸ, ืืื–"ื• ื•), ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ื•ื•ืึทื˜ืŸ ื‘ื™ื˜ืขืก, ืคึผืจื™ืคึผืึทื ื“ื™ื“ ื“ื•ืจืš 32 ื‘ื™ื˜ืขืก ื’ืขื ื•ืžืขืŸ ืคื•ืŸ ื“ื™ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืฉืœื™ืกืœ.

ื•ื•ืึทืกื™ืœื™, [22.06.18/14/08 XNUMX:XNUMX PM] ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš ื‘ื™ื˜ืฉื™ื–

ื’ืึทื˜ auth_key. ืึทืœืข. ื•ื•ื™ื™ื˜ืขืจ ื–ื™ื™ ... ืขืก ืื™ื– ื ื™ืฉื˜ ืงืœืึธืจ ืคื•ืŸ ื“ื™ ื“ืึทืงืก. ืคื™ืœืŸ ืคืจื™ื™ ืฆื• ืœืขืจื ืขืŸ ื“ื™ ืขืคืขื ืขืŸ ืžืงื•ืจ ืงืึธื“.

ื‘ืึทืžืขืจืงื•ื ื’ ืึทื– MTProto 2.0 ืจื™ืงื•ื•ื™ื™ืขืจื– 12-1024 ื‘ื™ื˜ืขืก ืคื•ืŸ ื•ื•ืึทื˜ืŸ, ื ืึธืš ืื•ื ื˜ืขืจ ื“ื™ ืฆื•ืฉื˜ืึทื ื“ ืึทื– ื“ื™ ืจื™ื–ืึทืœื˜ื™ื ื’ ืึธื ื–ืึธื’ ืœืขื ื’ ืื™ื– ื“ื™ื•ื•ื™ื–ืึทื‘ืึทืœ ืžื™ื˜ 16 ื‘ื™ื˜ืขืก.

ืึทื–ื•ื™ ื•ื•ื™ ืคื™ืœ ื•ื•ืึทื˜ืŸ ืฆื• ืฉื˜ืขืœืŸ ืื™ืŸ?

ืื•ืŸ ื™ืึธ, ื“ืึธ ืื•ื™ืš 404 ืื™ืŸ ืคืึทืœ ืคื•ืŸ ืึท ื˜ืขื•ืช

ืื•ื™ื‘ ืขืžืขืฆืขืจ ืงืขืจืคืึทืœื™ ื’ืขืœืขืจื ื˜ ื“ื™ ื“ื™ืึทื’ืจืึทืžืข ืื•ืŸ ื“ื™ ื˜ืขืงืกื˜ ืคื•ืŸ ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ, ืขืจ ื‘ืืžืขืจืงื˜ ืึทื– ืขืก ืื™ื– ืงื™ื™ืŸ MAC ื“ืึธืจื˜. ืื•ืŸ ืึทื– AES ืื™ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ ืขื˜ืœืขื›ืข IGE ืžืึธื“ืข ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ื’ืขื ื™ืฆื˜ ืขืจื’ืขืฅ ืึทื ื“ืขืจืฉ. ื–ื™ื™, ืคื•ืŸ ืงื•ืจืก, ืฉืจื™ื™ึทื‘ืŸ ื•ื•ืขื’ืŸ ืื™ื ืื™ืŸ ื–ื™ื™ืขืจ FAQ ... ื“ืึธ, ื•ื•ื™, ื“ืขืจ ืึธื ื–ืึธื’ ืฉืœื™ืกืœ ื–ื™ืš ืื™ื– ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜ ื“ื™ SHA ื”ืึทืฉ ืคื•ืŸ ื“ื™ ื“ืขืงืจื™ืคึผื˜ื™ื“ ื“ืึทื˜ืŸ ื’ืขื ื™ืฆื˜ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืึธืจื ื˜ืœืขื›ืงื™ื™ึทื˜ - ืื•ืŸ ืื™ืŸ ืคืึทืœ ืคื•ืŸ ืึท ืžื™ืกืžืึทื˜ืฉ, ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืกื™ื‘ื” ืจืขืงืึทืžืขื ื“ื– ื‘ื™ืฉื˜ื™ืงืข ื™ื’ื ืึธืจื™ื ื’ ื–ื™ื™ (ืึธื‘ืขืจ ื•ื•ืึธืก ื•ื•ืขื’ืŸ ื–ื™ื›ืขืจื”ื™ื™ื˜, ืคึผืœื•ืฆืœื™ื ื’ ื‘ืจืขื›ืŸ ืื•ื ื“ื–?).

ืื™ืš ื‘ื™ืŸ ื ื™ืฉื˜ ืึท ืงืจื™ืคึผื˜ืึธื’ืจืึทืคืขืจ, ืืคึฟืฉืจ ืื™ืŸ ื“ืขื ืžืึธื“ืข ืื™ืŸ ื“ืขื ืคืึทืœ ืขืก ืื™ื– ื’ืึธืจื ื™ืฉื˜ ืคืึทืœืฉ ืคึฟื•ืŸ ืึท ื˜ืขืึธืจืขื˜ื™ืฉ ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’. ืึธื‘ืขืจ ืื™ืš ืงืขื ืขืŸ ื‘ืืฉื˜ื™ืžื˜ ื ืึธืžืขืŸ ืึท ืคึผืจืึทืงื˜ื™ืฉ ืคึผืจืึธื‘ืœืขื ืžื™ื˜ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ื˜ืขืœืขื’ืจืึทื ื“ืขืกืงื˜ืึธืคึผ. ืขืก ื™ื ืงืจื™ืคึผื˜ ื“ื™ ื”ื™ื’ืข ืงืึทืฉ (ืึทืœืข ื“ื™ D877F783D5D3EF8C) ืื™ืŸ ื“ื™ ื–ืขืœื‘ืข ื•ื•ืขื’ ื•ื•ื™ ืึทืจื˜ื™ืงืœืขืŸ ืื™ืŸ MTProto (ื‘ืœื•ื™ื– ืื™ืŸ ื“ืขื ืคืึทืœ, ื•ื•ืขืจืกื™ืข 1.0), ื“.ื”. ืขืจืฉื˜ืขืจ ื“ื™ ืึธื ื–ืึธื’ ืฉืœื™ืกืœ, ื“ืขืจื ืึธืš ื“ื™ ื“ืึทื˜ืŸ ื–ื™ืš (ืื•ืŸ ืขืจื’ืขืฅ ื‘ืึทื–ื•ื ื“ืขืจ ื“ื™ ื”ื•ื™ืคึผื˜ ื’ืจื•ื™ืก auth_key 256 ื‘ื™ื˜ืขืก, ืึธืŸ ื•ื•ืึธืก msg_key ืึทืจื•ื™ืกื’ืขื•ื•ืึธืจืคืŸ). ืึทื–ื•ื™, ื“ื™ ืคึผืจืึธื‘ืœืขื ื•ื•ืขืจื˜ ื‘ืืžืขืจืงื˜ ืื•ื™ืฃ ื’ืจื•ื™ืก ื˜ืขืงืขืก. ื ื™ื™ืžืœื™, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื”ืึทืœื˜ืŸ ืฆื•ื•ื™ื™ ืงืืคื™ืขืก ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ - ื™ื ืงืจื™ืคึผื˜ื™ื“ ืื•ืŸ ื“ืขืงืจื™ืคึผื˜ื™ื“. ืื•ืŸ ืื•ื™ื‘ ืขืก ื–ืขื ืขืŸ ืžืขื’ืึทื‘ื™ื˜ืขืก, ืึธื“ืขืจ ืกื˜ืจื™ืžื™ื ื’ ื•ื•ื™ื“ืขื, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ? .. ืงืœืึทืกื™ืฉ ืกืงื™ืžื– ืžื™ื˜ ืžืขืง ื ืึธืš ื“ื™ ืกื™ืคืขืจื˜ืขืงืกื˜ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืœื™ื™ืขื ืขืŸ ืขืก ืกื˜ืจื™ืžื™ื ื’, ื’ืœื™ื™ืš ื˜ืจืึทื ืกืคืขืจื™ื ื’ ืขืก. ืื•ืŸ ืžื™ื˜ MTProto ืื™ืจ ื”ืึธื‘ืŸ ืฆื• ืื™ืŸ ืขืจืฉื˜ืขืจ ืขื ืงืจื™ืคึผื˜ ืึธื“ืขืจ ื“ืขืงืจื™ืคึผื˜ ื“ื™ ื’ืื ืฆืข ืึธื ื–ืึธื’, ื ืึธืจ ื“ืขืžืึธืœื˜ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืขืก ืฆื• ื“ื™ ื ืขืฅ ืึธื“ืขืจ ืฆื• ื“ื™ืกืง. ื“ืขืจื™ื‘ืขืจ, ืื™ืŸ ื“ื™ ืœืขืฆื˜ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ื˜ืขืœืขื’ืจืึทื ื“ืขืกืงื˜ืึธืคึผ ืื™ืŸ ื“ื™ ืงืึทืฉ ืื™ืŸ user_data ืืŸ ืื ื“ืขืจ ืคึฟืึธืจืžืึทื˜ ืื™ื– ืฉื•ื™ืŸ ื’ืขื ื™ืฆื˜ - ืžื™ื˜ AES ืื™ืŸ CTR ืžืึธื“ืข.

Vasily, [21.06.18/01/27 20:XNUMX AM] ืึธื”, ืื™ืš ื’ืขืคื•ื ืขืŸ ืื•ื™ืก ื•ื•ืึธืก IGE ืื™ื–: IGE ืื™ื– ื’ืขื•ื•ืขืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืคึผืจื•ื•ื•ืŸ ืฆื• ืึท "ืึธื˜ืขื ื˜ืึทืงื™ื™ื˜ื™ื ื’ ืขื ืงืจื™ืคึผืฉืึทืŸ ืžืึธื“ืข," ืขืจื™ื“ื–ืฉื ืึทืœื™ ืคึฟืึทืจ ืงืขืจื‘ืขืจืึธืก. ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ื ื™ื˜ ืึทื ื“ืขืจืฉ ืคึผืจื•ื•ื•ืŸ (ืขืก ื˜ื•ื˜ ื ื™ืฉื˜ ืฆื•ืฉื˜ืขืœืŸ ืึธืจื ื˜ืœืขื›ืงื™ื™ึทื˜ ืฉื•ืฅ), ืื•ืŸ ื”ืื˜ ืฆื• ื–ื™ื™ืŸ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ. ื“ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื“ืขืจ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ืึท XNUMX ื™ืึธืจ ื–ื•ื›ืŸ ืคึฟืึทืจ ืึทืŸ ืึธื˜ืขื ื˜ืึทืงื™ื™ื˜ื™ื ื’ ืขื ืงืจื™ืคึผืฉืึทืŸ ืžืึธื“ืข ื•ื•ืึธืก ืึทืจื‘ืขื˜, ื•ื•ืึธืก ืœืขืฆื˜ื ืก ืงืึทืœืžืึทื ื™ื™ื˜ื™ื“ ืื™ืŸ ืžืึธื“ืขืก ื•ื•ื™ OCB ืื•ืŸ GCM.

ืื•ืŸ ืื™ืฆื˜ ื“ื™ ื˜ืขื ื•ืช ืคื•ืŸ ื“ื™ ื•ื•ืึธื’ืŸ ื–ื™ื™ึทื˜:

ื“ื™ ืžืึทื ืฉืึทืคึฟื˜ ื”ื™ื ื˜ืขืจ ื˜ืขืœืขื’ืจืึทื, ื’ืขืคื™ืจื˜ ื“ื•ืจืš ื ื™ืงืึธืœืึทื™ ื“ื•ืจืึธื•ื•, ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ื–ืขืงืก ืึทืงื ื˜ืฉืึทืžืคึผื™ืึธื ืก, ื”ืึทืœื‘ ืคื•ืŸ ื–ื™ื™ Ph.Ds ืื™ืŸ ืžืึทื˜. ืขืก ื”ืึธื˜ ื’ืขื“ื•ื™ืขืจื˜ ื•ื•ืขื’ืŸ ืฆื•ื•ื™ื™ ื™ืึธืจ ืฆื• ืจืึธื•ืœื“ ื“ื™ ืงืจืึทื ื˜ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹MTProto.

ื•ื•ืึธืก ืก ืžืึธื“ื ืข. ืฆื•ื•ื™ื™ ื™ืืจ ืฆื• ื“ืขืจ ื ื™ื“ืขืจื™ืงืขืจ ืžื“ืจื’ื”

ืึธื“ืขืจ ืžื™ืจ ืงืขืŸ ื ืึธืจ ื ืขืžืขืŸ ื˜ืœืก

ืึธื•ืงื™ื™, ืœืึธื–ืŸ ืก ื–ืึธื’ืŸ ืžื™ืจ ื”ืึธื‘ืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืขื ืงืจื™ืคึผืฉืึทืŸ ืื•ืŸ ืื ื“ืขืจืข ื ื•ืึทื ืกื™ื–. ืงืขื ืขืŸ ืžื™ืจ ืœืขืกืึธืฃ ืฉื™ืงืŸ TL-ืกืขืจื™ืึทืœื™ื–ืขื“ ืจื™ืงื•ื•ืขืก ืื•ืŸ ื“ืขืกืขืจื™ืึทืœื™ื–ื™ืจืŸ ืจืขืกืคึผืึธื ืกืขืก? ืึทื–ื•ื™ ื•ื•ืึธืก ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ืื•ืŸ ื•ื•ื™? ื“ืึธ ืื™ื– ื“ืขืจ ืื•ืคึฟืŸ initConnectionืืคึฟืฉืจ ื“ืึธืก ืื™ื– ืขืก?

Vasily, [25.06.18/18/46 XNUMX:XNUMX PM] ื™ื ื™ื˜ื™ืึทืœื™ื–ืขืก ืงืฉืจ ืื•ืŸ ืฉืคึผืึธืจืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื•ื™ืฃ ื“ื™ ื‘ืึทื ื™ืฆืขืจ 'ืก ืžื™ื˜ืœ ืื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ.

ืขืก ืึทืงืกืขืคึผืฅ app_id, device_model, system_version, app_version ืื•ืŸ lang_code.

ืื•ืŸ ืขื˜ืœืขื›ืข ืคึฟืจืื’ืŸ

ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ื•ื•ื™ ืฉื˜ืขื ื“ื™ืง. ืคื™ืœืŸ ืคืจื™ื™ ืฆื• ืœืขืจื ืขืŸ ื“ื™ ืขืคืขื ืขืŸ ืžืงื•ืจ

ืื•ื™ื‘ ืึทืœืฅ ืื™ื– ื’ืขื•ื•ืขืŸ ื‘ืขืขืจืขืš ืงืœืึธืจ ืžื™ื˜ ื™ื ื•ื•ืึธื•ืงืขื•ื•ื™ื˜ื”ืœื™ื™ึทืขืจ, ื•ื•ืึธืก ืื™ื– ืขืก? ืขืก ื˜ื•ืจื ืก ืื•ื™ืก ืึทื– ืจืขื›ืŸ ืžื™ืจ ื”ืึธื‘ืŸ - ื“ืขืจ ืงืœื™ืขื ื˜ ื”ืื˜ ืฉื•ื™ืŸ ืขืคึผืขืก ืฆื• ืคืจืขื’ืŸ ื“ืขื ืกืขืจื•ื•ืขืจ ื•ื•ืขื’ืŸ - ืขืก ืื™ื– ืึท ื‘ืงืฉื” ื•ื•ืึธืก ืžื™ืจ ื’ืขื•ื•ืืœื˜ ืฆื• ืฉื™ืงืŸ:

ื•ื•ืึทืกื™ืœื™, [25.06.18/19/13 XNUMX:XNUMX] ืื•ื™ื‘ ืžืฉืคื˜ืŸ ืœื•ื™ื˜ ื“ื™ ืงืึธื“, ื“ืขืจ ืขืจืฉื˜ืขืจ ืจื•ืคืŸ ืื™ื– ืืœื ื’ืขื•ื•ื™ืงืœื˜ ืื™ืŸ ื“ืขื ืžื™ืกื˜, ืื•ืŸ ื“ื™ ืžื™ืกื˜ ื–ื™ืš ืื™ื– ืื™ืŸ ื™ื ื•ื•ืึธื•ืงืข ืžื™ื˜ ืฉื™ื›ื˜ืข

ืคืืจื•ื•ืืก ืงืขืŸ initConnection ื ื™ืฉื˜ ื–ื™ื™ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืจื•ืคืŸ, ืึธื‘ืขืจ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืึท ืจืึทืคึผืขืจ? ื™ื, ื•ื•ื™ ืขืก ืคืืจืงืขืจื˜ ืื•ื™ืก, ืขืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ื™ืขื“ืขืจ ืžืึธืœ ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื™ืขื“ืขืจ ืกืขืกื™ืข, ืื•ืŸ ื ื™ืฉื˜ ืื™ื™ืŸ ืžืึธืœ, ื•ื•ื™ ืžื™ื˜ ื“ื™ ื”ื•ื™ืคึผื˜ ืฉืœื™ืกืœ. ืึธื‘ืขืจ! ืขืก ืงืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื’ืขืจื•ืคืŸ ื“ื•ืจืš ืึท ืึทื ืึธื˜ืขืจื™ื™ื–ื“ ื‘ืึทื ื™ืฆืขืจ! ื“ืึธ ืžื™ืจ ื”ืึธื‘ืŸ ืจื™ื˜ืฉื˜ ื“ื™ ื‘ื™ื ืข ืื™ืŸ ื•ื•ืึธืก ืขืก ืื™ื– ืึธื ื•ื•ืขื ื“ืœืขืš ื“ืขื ืื™ื™ื ืขืจ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ื‘ืœืึทื˜ - ืื•ืŸ ืขืก ื“ืขืจืฆื™ื™ืœื˜ ืื•ื ื“ื– ืึทื– ...

ื‘ืœื•ื™ื– ืึท ืงืœื™ื™ืŸ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืึทืคึผื™ ืžืขื˜ื”ืึธื“ืก ื–ืขื ืขืŸ ื‘ืืจืขื›ื˜ื™ื’ื˜ ืคึฟืึทืจ ืึทื ืึธื˜ืขืจื™ื™ื–ื“ ื ื™ืฆืขืจืก:

  • auth.sendCode
  • auth.resendCode
  • account.getPassword
  • auth.checkPassword
  • aut.checkPhone
  • auth.signUp
  • auth.signIn
  • auth.importAuthorization
  • help.getConfig
  • help.getNearestDc
  • help.getAppUpdate
  • help.getCdnConfig
  • langpack.getLangPack
  • langpack.getStrings
  • langpack.getDifference
  • langpack.getLanguages
  • langpack.getLanguage

ื“ืขืจ ืขืจืฉื˜ืขืจ ืคื•ืŸ ื–ื™ื™ auth.sendCode, ืื•ืŸ ืขืก ืื™ื– ืึทื– ื˜ืจืขื–ืฉืขืจื“ ืขืจืฉื˜ืขืจ ื‘ืขื˜ืŸ ืื™ืŸ ื•ื•ืึธืก ืžื™ืจ ื•ื•ืขืœืŸ ืฉื™ืงืŸ ืึทืคึผื™_ื™ื“ ืื•ืŸ ืึทืคึผื™_ื”ืึทืฉ, ืื•ืŸ ื ืึธืš ื•ื•ืึธืก ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท SMS ืžื™ื˜ ืึท ืงืึธื“. ืื•ืŸ ืื•ื™ื‘ ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืฆื• ื“ืขื ืื•ืžืจืขื›ื˜ ื“ืง (ืœืžืฉืœ, ื“ื™ ื˜ืขืœืขืคืึธืŸ ื ื•ืžืขืจืŸ ืคื•ืŸ ื“ืขื ืœืึทื ื“ ื–ืขื ืขืŸ ืกืขืจื•ื•ื™ืจื˜ ื“ื•ืจืš ืื ื“ืขืจืŸ), ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืึทืงื•ืžืขืŸ ืึท ื˜ืขื•ืช ืžื™ื˜ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื“ื™ ื’ืขื‘ืขื˜ืŸ ื“ืง. ืฆื• ื’ืขืคึฟื™ื ืขืŸ ืื•ื™ืก ื•ื•ืึธืก IP ืึทื“ืจืขืก ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ื“ื•ืจืš ื“ื™ DC ื ื•ืžืขืจ, ืžื™ืจ ื•ื•ืขืœืŸ ื–ื™ื™ืŸ ื’ืขื”ืึธืœืคึฟืŸ ื“ื•ืจืš help.getConfig. ืึทืžืึธืœ ืขืก ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ ื‘ืœื•ื™ื– 5 ืื™ื™ื ืกืŸ, ืึธื‘ืขืจ ื ืึธืš ื“ื™ ื‘ืึทื•ื•ื•ืกื˜ ื’ืขืฉืขืขื ื™ืฉืŸ ืคื•ืŸ 2018, ื“ื™ ื ื•ืžืขืจ ืื™ื– ื‘ืื˜ื™ื™ื˜ื™ืง ื’ืขื•ื•ืืงืกืŸ.

ืื™ืฆื˜ ืœืึธื–ืŸ ืื•ื ื“ื– ื’ืขื“ืขื ืงืขืŸ ืึทื– ืžื™ืจ ื’ืึทื˜ ืื™ืŸ ื“ืขื ื‘ื™ื ืข ืื•ื™ืฃ ื“ื™ ืึทื ืึธื ื™ืžืข ื‘ืึทื ื•ืฆืขืจืก ืกืขืจื•ื•ืขืจ. ืื™ื– ืขืก ื ื™ืฉื˜ ืฆื• ื˜ื™ื™ึทืขืจ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืึทืŸ IP ืึทื“ืจืขืก? ืคืืจื•ื•ืืก ื˜ืึธืŸ ื ื™ื˜ ื˜ืึธืŸ ื“ืึธืก, ืื•ืŸ ืื ื“ืขืจืข ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืื™ืŸ ื“ื™ ื•ื ืขื ืงืจื™ืคึผื˜ื™ื“ ื˜ื™ื™ืœ ืคื•ืŸ MTProto? ืื™ืš ื”ืขืจ ื ื”ืชื ื’ื“ื•ืช: "ื•ื•ื™ ืงืขื ืกื˜ื• ื–ื™ื›ืขืจ ืžืื›ืŸ ืื– ืขืก ืื™ื– ื ื™ืฉื˜ ื“ืขืจ ืจืงืŸ ื•ื•ืืก ื•ื•ืขื˜ ืจืขืื’ื™ืจืŸ ืžื™ื˜ ืคืืœืฉืข ืื“ืจืขืกืŸ?". ืฆื• ื“ืขื ืžื™ืจ ืฆื•ืจื™ืงืจื•ืคืŸ ืึทื–, ืื™ืŸ ืคืึทืงื˜, ืื™ืŸ ื‘ืึทืึทืžื˜ืขืจ ืงืœื™ื™ืึทื ืฅ ืขืžื‘ืขื“ื™ื“ RSA ืฉืœื™ืกืœืขืŸ, ื“.ื”. ืื™ืจ ืงืขื ืขืŸ ื ืึธืจ ืฆื• ืฆื™ื™ื›ืŸ ื“ืขื ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข. ืึทืงื˜ื•ืึทืœืœื™, ื“ืึธืก ืื™ื– ืฉื•ื™ืŸ ื’ืขื˜ืืŸ ืคึฟืึทืจ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื‘ื™ื™ืคึผืึทืกื™ื ื’ ืœืึทืงืก ืึทื– ืงืœื™ื™ืึทื ืฅ ื‘ืึทืงื•ืžืขืŸ ื“ื•ืจืš ืื ื“ืขืจืข ื˜ืฉืึทื ืึทืœื– (ืขืก ืื™ื– ืœืึทื“ื–ืฉื™ืงืึทืœ ืึทื– ื“ืึธืก ืงืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ืื™ืŸ MTProto ื–ื™ืš, ื•ื•ื™ื™ึทืœ ืื™ืจ ื ืึธืš ื“ืึทืจืคึฟืŸ ืฆื• ื•ื•ื™ืกืŸ ื•ื•ื• ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ).

ืืงืขื™. ืื™ืŸ ื“ืขื ื‘ื™ื ืข ืคื•ืŸ โ€‹โ€‹ืงืœื™ืขื ื˜ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ, ืžื™ืจ ื–ืขื ืขืŸ ื ืึธืš ื ื™ืฉื˜ ืึธื˜ืขืจื™ื™ื–ื“ ืื•ืŸ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ืจืขื’ื™ืกื˜ืจื™ืจื˜ ืื•ื ื“ื–ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ืžื™ืจ ื ืึธืจ ื•ื•ื™ืœืŸ ืฆื• ื–ืขืŸ ืคึฟืึทืจ ืื™ืฆื˜ ื•ื•ืึธืก ื“ื™ ืกืขืจื•ื•ืขืจ ืจื™ืกืคึผืึทื ื“ื– ืฆื• ื“ื™ ืžืขื˜ื”ืึธื“ืก ื‘ื ื™ืžืฆื ืฆื• ืึท ืึทื ืึธื˜ืขืจื™ื™ื–ื“ ื‘ืึทื ื™ืฆืขืจ. ืื•ืŸ ื“ืึธ ...

ื•ื•ืึทืกื™ืœื™, [10.07.18 14:45] https://core.telegram.org/method/help.getConfig

config#7dae33e0 [...] = Config;
help.getConfig#c4f9186b = Config;

https://core.telegram.org/api/datacenter

config#232d5905 [...] = Config;
help.getConfig#c4f9186b = Config;

ืื™ืŸ ื“ืขืจ ืกื›ืขืžืข ืงื•ืžื˜ ื“ืขืจ ืขืจืฉื˜ืขืจ, ื“ืขืจ ืฆื•ื•ื™ื™ื˜ืขืจ

ืื™ืŸ ื“ื™ tdesktop ืกื›ืขืžืข, ื“ื™ ื“ืจื™ื˜ ื•ื•ืขืจื˜ ืื™ื–

ื™ืึธ, ื–ื™ื ื˜ ื“ืขืžืึธืœื˜, ืคื•ืŸ ืงื•ืจืก, ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜. ื›ืึธื˜ืฉ ื‘ืึทืœื“ ืขืก ืงืขืŸ ื•ื•ื™ื“ืขืจ ื•ื•ืขืจืŸ ื™ืจืขืœืึทื•ื•ืึทื ื˜. ืื•ืŸ ื•ื•ื™ ื–ืึธืœ ืึท ืึธื ื”ื™ื™ื‘ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ื•ื•ื™ืกืŸ? ืืคึฟืฉืจ ืื•ื™ื‘ ืื™ืจ ืคืึทืจืฉืจื™ื™ึทื‘ืŸ ื“ื™ื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ื–ื™ื™ ื•ื•ืขืœืŸ ืžื™ื˜ื˜ื™ื™ืœืŸ ืื™ืจ? ื•ื•ืึทืกื™ืœื™ ื”ืื˜ ื“ืึธืก, ืึธื‘ืขืจ ื•ื•ื™ื™, ื’ืึธืจื ื™ืฉื˜ ืื™ื– ื’ืขืฉื™ืงื˜ ืฆื• ืื™ื (ื•ื•ื™ื“ืขืจ, ืžื™ืจ ื•ื•ืขืœืŸ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ืขื ืื™ืŸ ื“ื™ ืจื’ืข ื˜ื™ื™ืœ).

... ืื™ืจ ื‘ืืžืขืจืงื˜ ืึทื– ืžื™ืจ ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ืขืคืขืก ืืจื™ื‘ืขืจื’ืขืคืืจืŸ ืฆื• ื“ื™ API, ื“.ื”. ืฆื• ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืžื“ืจื’ื” ืื•ืŸ ืžื™ืกื˜ ืขืคึผืขืก ืื™ืŸ ื“ื™ MTProto ื˜ืขืžืข? ื’ืึธืจื ื™ืฉื˜ ื—ื™ื“ื•ืฉ:

ื•ื•ืึทืกื™ืœื™, [28.06.18/02/04 2:XNUMX AM] ืžื, ื–ื™ื™ ืจื•ืžื– ื“ื•ืจืš ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืึทืœื’ืขืจื™ื“ืึทืžื– ืื•ื™ืฃ eXNUMXe

Mtproto ื“ื™ืคื™ื™ื ื– ืขื ืงืจื™ืคึผืฉืึทืŸ ืึทืœื’ืขืจื™ื“ืึทืžื– ืื•ืŸ ืฉืœื™ืกืœืขืŸ ืคึฟืึทืจ ื‘ื™ื™ื“ืข ื“ืึธื•ืžื™ื™ื ื–, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืึท ื‘ื™ืกืœ ืคื•ืŸ ืึท ืจืึทืคึผืขืจ ืกื˜ืจื•ืงื˜ื•ืจ

ืึธื‘ืขืจ ื–ื™ื™ ื–ืขื ืขืŸ ืงืขืกื™ื™ื“ืขืจ ืžื™ืงืกื™ื ื’ ืคืึทืจืฉื™ื“ืขื ืข ืึธื ืœื™ื™ื’ืŸ ืœืขื•ื•ืขืœืก, ืึทื–ื•ื™ ืขืก ืื™ื– ื ื™ื˜ ืฉื˜ืขื ื“ื™ืง ืงืœืึธืจ ื•ื•ื• ืžื˜ืคึผืจืึธื˜ืึธ ื’ืขืขื ื“ื™ืงื˜ ืื•ืŸ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืžื“ืจื’ื” ืื ื’ืขื”ื•ื™ื‘ืŸ.

ื•ื•ื™ ื–ืขื ืขืŸ ื–ื™ื™ ื’ืขืžื™ืฉื˜? ื ื•, ื“ืึธ ืื™ื– ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ืฉืœื™ืกืœ ืคึฟืึทืจ PFS, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ (ืื’ื‘, ื˜ืขืœืขื’ืจืึทื ื“ืขืกืงื˜ืึธืคึผ ื˜ื•ื˜ ื ื™ืฉื˜ ื•ื•ื™ืกืŸ ื•ื•ื™ ืฆื• ื˜ืึธืŸ ื“ืึธืก). ืขืก ืื™ื– ืขืงืกืึทืงื™ื•ื˜ืึทื“ ื“ื•ืจืš ืึท ืึทืคึผื™ ื‘ืขื˜ืŸ auth.bindTempAuthKey, ื“.ื”. ืคื•ืŸ ื“ื™ ืฉืคึผื™ืฅ ืžื“ืจื’ื”. ืึธื‘ืขืจ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืขืก ื™ื ืขืจืคื™ืจื– ืขื ืงืจื™ืคึผืฉืึทืŸ ืื™ืŸ ื“ืขืจ ื ื™ื“ืขืจื™ืงืขืจ ืžื“ืจื’ื” - ื ืึธืš ืขืก, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื˜ืึธืŸ ื“ืึธืก ื•ื•ื™ื“ืขืจ initConnection ื•ื›ื•', ื“ืืก ืื™ื– ื ื™ืฉื˜ ื ืึธืจ ื ืึธืจืžืึทืœ ื‘ืขื˜ืŸ. ืกืขืคึผืขืจืึทื˜ืœื™, ืขืก ืื•ื™ืš ื“ื™ืœื™ื•ื•ืขืจื– ืึทื– ืื™ืจ ืงืขื ืขืŸ ื”ืึธื‘ืŸ ื‘ืœื•ื™ื– ืื™ื™ืŸ ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ืฉืœื™ืกืœ ืื•ื™ืฃ ื“ื™ ื“ืง, ื›ืึธื˜ืฉ ื“ื™ ืคืขืœื“ auth_key_id ืื™ืŸ ื™ืขื“ืขืจ ืึธื ื–ืึธื’ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื˜ื•ื™ืฉืŸ ื“ืขื ืฉืœื™ืกืœ ืื™ืŸ ืžื™ื ื“ืกื˜ืขืจ ื™ืขื“ืขืจ ืึธื ื–ืึธื’, ืื•ืŸ ืึทื– ื“ืขืจ ืกืขืจื•ื•ืขืจ ื”ืื˜ ื“ื™ ืจืขื›ื˜ ืฆื• "ืคืึทืจื’ืขืกืŸ" ื“ื™ ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ืฉืœื™ืกืœ ืื™ืŸ ืงื™ื™ืŸ ืฆื™ื™ื˜ - ื•ื•ืึธืก ืฆื• ื˜ืึธืŸ ืื™ืŸ ื“ืขื ืคืึทืœ, ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ื˜ื•ื˜ ื ื™ืฉื˜ ื–ืึธื’ืŸ ... ื ื•, ื•ื•ืึธืก ืขืก ื•ื•ืึธืœื˜ ื ื™ื˜ ื–ื™ื™ืŸ ืžืขื’ืœืขืš ืฆื• ื”ืึธื‘ืŸ ืขื˜ืœืขื›ืข ืฉืœื™ืกืœืขืŸ, ื•ื•ื™ ืžื™ื˜ ืึท ื’ืึทื ื’ ืคื•ืŸ ืฆื•ืงื•ื ืคึฟื˜ ืกืึธืœืฅ, ืึธื‘ืขืจ ?..

ืขืก ื–ืขื ืขืŸ ืขื˜ืœืขื›ืข ืื ื“ืขืจืข ื˜ื™ื ื’ื– ื•ื•ืึธืก ื–ืขื ืขืŸ ื•ื•ืขืจื˜ ื‘ืืžืขืจืงืŸ ืื™ืŸ ื“ื™ MTProto ื˜ืขืžืข.

ืึธื ื–ืึธื’ ืึทืจื˜ื™ืงืœืขืŸ, msg_id, msg_seqno, ื“ืขืจืงืขื ื˜ืขื ื™ืฉืŸ, ืคึผื™ื ื’ืก ืื™ืŸ ื“ื™ ืื•ืžืจืขื›ื˜ ืจื™ื›ื˜ื•ื ื’ ืื•ืŸ ืื ื“ืขืจืข ื™ื™ื“ื™ืึทืกื™ื ื–

ืคืืจื•ื•ืืก ื˜ืึธืŸ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื•ื•ื™ืกืŸ ื•ื•ืขื’ืŸ ื–ื™ื™? ื•ื•ื™ื™ึทืœ ื–ื™ื™ "ืจื™ื ืขืŸ" ืื™ื™ืŸ ืฉื˜ืึทืคึผืœ ื”ืขื›ืขืจ, ืื•ืŸ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื•ื•ื™ืกืŸ ื•ื•ืขื’ืŸ ื–ื™ื™ ื•ื•ืขืŸ ืื™ืจ ืึทืจื‘ืขื˜ ืžื™ื˜ ื“ื™ ืึทืคึผื™. ืจืขื›ืŸ ืžื™ืจ ื–ืขื ืขืŸ ื ื™ืฉื˜ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ msg_key, ื“ืขืจ ื ื™ื“ืขืจื™ืงืขืจ ืžื“ืจื’ื” ื“ืขืงืจื™ืคึผื˜ืขื“ ืึทืœืฅ ืคึฟืึทืจ ืื•ื ื“ื–. ืึธื‘ืขืจ ืื™ืŸ ื“ื™ ื“ืขืงืจื™ืคึผื˜ื™ื“ ื“ืึทื˜ืŸ, ืžื™ืจ ื”ืึธื‘ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืคืขืœื“ืขืจ (ืื•ื™ืš ื“ื™ ืœืขื ื’ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ ืฆื• ื•ื•ื™ืกืŸ ื•ื•ื• ื“ื™ ื•ื•ืึทื˜ืŸ ืื™ื–, ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ื•ื•ื™ื›ื˜ื™ืง):

  • salt-int64
  • session_id - int64
  • message_id - int64
  • seq_no-int32

ืฆื•ืจื™ืงืจื•ืคืŸ ืึทื– ื–ืึทืœืฅ ืื™ื– ืื™ื™ื ืขืจ ืคึฟืึทืจ ื“ื™ ื’ืื ืฆืข ื“ืง. ืคืืจื•ื•ืืก ื•ื•ื™ืกืŸ ื•ื•ืขื’ืŸ ืื™ืจ? ื ื™ื˜ ื ืึธืจ ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ืึท ื‘ืงืฉื” get_future_salts, ื•ื•ืึธืก ื“ืขืจืฆื™ื™ืœื˜ ื•ื•ืึธืก ื™ื ื˜ืขืจื•ื•ืึทืœื– ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ื™ืœื˜ื™ืง, ืึธื‘ืขืจ ืื•ื™ืš ื•ื•ื™ื™ึทืœ ืื•ื™ื‘ ื“ื™ื™ืŸ ื–ืึทืœืฅ ืื™ื– "ืคืึทืจืคื•ื™ืœื˜", ื“ืขืจ ืึธื ื–ืึธื’ (ื‘ืขื˜ืŸ) ื•ื•ืขื˜ ืคืฉื•ื˜ ื–ื™ื™ืŸ ืคืึทืจืคืึทืœืŸ. ื“ืขืจ ืกืขืจื•ื•ืขืจ ื•ื•ืขื˜ ืคื•ืŸ ืงื•ืจืก ื‘ืึทืจื™ื›ื˜ ื“ื™ ื ื™ื™ึท ื–ืึทืœืฅ ื“ื•ืจืš ืึทืจื•ื™ืกื’ืขื‘ืŸ new_session_created - ืึธื‘ืขืจ ืžื™ื˜ ื“ื™ ืึทืœื˜ ืื™ื™ื ืขืจ ืื™ืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื• ืขืคืขืก ื•ื•ื™ื“ืขืจ ืฉื™ืงืŸ, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ. ืื•ืŸ ื“ืขื ืงืฉื™ื ืึทืคืขืงืฅ ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืคื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ.

ื“ืขืจ ืกืขืจื•ื•ืขืจ ืื™ื– ืขืจืœื•ื™ื‘ื˜ ืฆื• ืคืึทืœืŸ ืกืขืฉืึทื ื– ื‘ืขืกืึทื›ืึทืงืœ ืื•ืŸ ืจื™ืกืคึผืึทื ื“ ืื™ืŸ ื“ืขื ื•ื•ืขื’ ืคึฟืึทืจ ืคื™ืœืข ืกื™ื‘ื•ืช. ืึทืงื˜ื•ืึทืœืœื™, ื•ื•ืึธืก ืื™ื– ืึท MTProto ืกืขืกื™ืข ืคึฟื•ืŸ ื“ืขืจ ืงืœื™ืขื ื˜ ื–ื™ื™ึทื˜? ื“ืืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ื ื•ืžืขืจืŸ session_id ะธ seq_no ืึทืจื˜ื™ืงืœืขืŸ ืื™ืŸ ื“ืขื ืกืขืกื™ืข. ื ื•, ืื•ืŸ ื“ื™ ืึทื ื“ืขืจืœื™ื™ื™ื ื’ ื˜ืงืคึผ ืงืฉืจ, ืคื•ืŸ ืงื•ืจืก. ื–ืืœ ืก ื–ืึธื’ืŸ ืื•ื ื“ื–ืขืจ ืงืœื™ืขื ื˜ ื ืึธืš ื˜ื•ื˜ ื ื™ืฉื˜ ื•ื•ื™ืกืŸ ื•ื•ื™ ืฆื• ื˜ืึธืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ื–ืื›ืŸ, ื“ื™ืกืงืึทื ืขืงื˜ื™ื“, ืจื™ืงืึทื ืขืงื˜ื™ื“. ืื•ื™ื‘ ื“ืึธืก ืื™ื– ื’ืขืฉืขืŸ ื’ืขืฉื•ื•ื™ื ื“ - ื“ื™ ืึทืœื˜ ืกืขืกื™ืข ืคืืจื‘ืœื™ื‘ืŸ ืื™ืŸ ื“ื™ ื ื™ื™ึทืข ื˜ืงืคึผ ืงืฉืจ, ืคืึทืจื’ืจืขืกืขืจืŸ seq_no ื•ื•ื™ื™ื˜ืขืจ. ืื•ื™ื‘ ืขืก ื ืขืžื˜ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜, ื“ืขืจ ืกืขืจื•ื•ืขืจ ืงืขืŸ ื•ื™ืกืžืขืงืŸ ืขืก, ื•ื•ื™ื™ึทืœ ืื•ื™ืฃ ื–ื™ื™ึทืŸ ื–ื™ื™ึทื˜ ืขืก ืื™ื– ืื•ื™ืš ืึท ืจื™ื™, ื•ื•ื™ ืžื™ืจ ื’ืขืคื•ื ืขืŸ.

ื•ื•ืึธืก ื–ืึธืœ ื–ื™ื™ืŸ seq_no? ื˜ืึทืงืข, ื“ืึธืก ืื™ื– ืึท ืฉื•ื•ืขืจ ืงืฉื™ื. ืคึผืจื•ึผื•ื•ื˜ ืฆื• ื”ืึธื ืขืกื˜ืœื™ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ืึธืก ืื™ื– ืžืขื ื˜:

ืื™ื ื”ืึทืœื˜ ืฉื™ื™ึทื›ื•ืช ืึธื ื–ืึธื’

ื ืึธื ื–ืึธื’ ืจื™ืงื•ื•ื™ื™ืจื™ื ื’ ืึท ื™ืงืกืคึผืœื™ืกืึทื˜ ื“ืขืจืงืขื ื˜ืขื ื™ืฉ. ื“ื™ ืึทืจื™ื™ึทื ื ืขืžืขืŸ ืึทืœืข ื“ื™ ื‘ืึทื ื™ืฆืขืจ ืื•ืŸ ืคื™ืœืข ืกืขืจื•ื•ื™ืก ืึทืจื˜ื™ืงืœืขืŸ, ื›ึผืžืขื˜ ืึทืœืข ืžื™ื˜ ืึท ื•ื™ืกื ืขื ืคื•ืŸ ืงืึทื ื˜ื™ื™ื ืขืจื– ืื•ืŸ ืึทืงื ืึทืœื™ื“ื–ืฉืžืึทื ืฅ.

ืึธื ื–ืึธื’ ืกื™ืงื•ื•ืึทื ืก ื ื•ืžืขืจ (msg_seqno)

ื 32-ื‘ื™ืกืœ ื ื•ืžืขืจ ื’ืœื™ื™ืš ืฆื• ืฆื•ื•ื™ื™ ืžืึธืœ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ "ืื™ื ื”ืึทืœื˜-ืคึฟืึทืจื‘ื•ื ื“ืขื ืข" ืึทืจื˜ื™ืงืœืขืŸ (ื“ื™ ืจื™ืงื•ื•ื™ื™ืจื™ื ื’ ื“ืขืจืงืขื ื˜ืขื ื™ืฉ, ืื•ืŸ ืกืคึผืขืฆื™ืขืœ ื“ื™ ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืงืึทื ื˜ื™ื™ื ืขืจื–) โ€‹โ€‹ื‘ืืฉืืคืŸ ื“ื•ืจืš ื“ื™ ืกืขื ื“ืขืจ ืื™ื™ื“ืขืจ ื“ืขื ืึธื ื–ืึธื’ ืื•ืŸ ื“ืขืจื ืึธืš ื™ื ืงืจืึทืžืขื ื˜ื™ื“ ื“ื•ืจืš ืื™ื™ื ืขืจ ืื•ื™ื‘ ื“ื™ ืงืจืึทื ื˜ ืึธื ื–ืึธื’ ืื™ื– ืึท ืื™ื ื”ืึทืœื˜ ืฉื™ื™ึทื›ื•ืช ืึธื ื–ืึธื’. ื ืงืึทื ื˜ื™ื™ื ืขืจ ืื™ื– ืฉื˜ืขื ื“ื™ืง ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื ืึธืš ื–ื™ื™ึทืŸ ื’ืึทื ืฅ ืื™ื ื”ืึทืœื˜; ื“ืขืจื™ื‘ืขืจ, ื–ื™ื™ึทืŸ ืกื™ืงื•ื•ืึทื ืก ื ื•ืžืขืจ ืื™ื– ื’ืจืขืกืขืจ ื•ื•ื™ ืึธื“ืขืจ ื’ืœื™ื™ึทืš ืฆื• ื“ื™ ืกื™ืงื•ื•ืึทื ืก ื ื•ืžืขืจืŸ ืคื•ืŸ ื“ื™ ืึทืจื˜ื™ืงืœืขืŸ ืงืึทื ื˜ื™ื™ื ื“ ืื™ืŸ ืขืก.

ื•ื•ืึธืก ืžื™ืŸ ืคื•ืŸ ืฆื™ืจืง ืื™ื– ื“ืึธืก ืžื™ื˜ ืึท ื™ื ืงืจืึทืžืึทื ื˜ ืคื•ืŸ 1, ืื•ืŸ ื ืึธืš 2? .. ืื™ืš ื›ืึธืฉืขื“ ืึทื– ื“ืขืจ ืึธืจื™ื’ื™ื ืขืœ ื˜ื™ื™ึทื˜ืฉ ืื™ื– ื’ืขื•ื•ืขืŸ "ื ื™ื“ืขืจื™ืง ื‘ื™ืกืœ ืคึฟืึทืจ ACK, ื“ื™ ืžื ื•ื—ื” ืื™ื– ืึท ื ื•ืžืขืจ", ืึธื‘ืขืจ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืื™ื– ื ื™ืฉื˜ ื’ืึทื ืฅ ืจืขื›ื˜ - ืกืคึผืขืฆื™ืขืœ, ืขืก ืงื•ืžื˜ ืื•ื™ืก ืื– ืžืขืŸ ืงืขืŸ ืขืก ืฉื™ืงืŸ ืขื˜ืœืขื›ืข ืงืึทื ืคืขืจืžื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื”ืึธื‘ืŸ ื“ื™ ื–ืขืœื‘ืข seq_no! ื•ื•ื™? ื ื•, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ืขืจ ืกืขืจื•ื•ืขืจ ืกืขื ื“ื– ืื•ื ื“ื– ืขืคึผืขืก, ืกืขื ื“ื–, ืื•ืŸ ืžื™ืจ ื–ื™ืš ื–ืขื ืขืŸ ืฉื˜ื™ืœ, ืžื™ืจ ื ืึธืจ ืขื ื˜ืคึฟืขืจืŸ ืžื™ื˜ ืกืขืจื•ื•ื™ืก ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’ ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ืขื’ืŸ ืจื™ืกื™ื•ื•ื™ื ื’ ื–ื™ื™ืŸ ืึทืจื˜ื™ืงืœืขืŸ. ืื™ืŸ ื“ืขื ืคืึทืœ, ืื•ื ื“ื–ืขืจ ืึทื•ื˜ื’ืึธื•ื™ื ื’ ืงืึทื ืคืขืจืžื™ื™ืฉืึทื ื– ื•ื•ืขื˜ ื”ืึธื‘ืŸ ื“ื™ ื–ืขืœื‘ืข ืึทื•ื˜ื’ืึธื•ื™ื ื’ ื ื•ืžืขืจ. ืื•ื™ื‘ ืื™ืจ ื–ืขื ื˜ ื‘ืึทืงืึทื ื˜ ืžื™ื˜ ื˜ืงืคึผ ืื•ืŸ ื’ืขื“ืึทื ืง ืึทื– ื“ืึธืก ืกืึธื•ื ื“ืก ืžื™ืŸ ืคื•ืŸ ืžืฉื•ื’ืข, ืึธื‘ืขืจ ืขืก ืžื™ื™ื ื˜ ืฆื• ื–ื™ื™ืŸ ื ื™ืฉื˜ ื–ื™ื™ืขืจ ื•ื•ื™ืœื“, ื•ื•ื™ื™ึทืœ ืื™ืŸ ื˜ืงืคึผ seq_no ื˜ื•ื˜ ื ื™ืฉื˜ ื˜ื•ื™ืฉืŸ, ืื•ืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’ ื’ื™ื™ื˜ ืฆื• seq_no ื“ ื™ ืื ื“ืขืจ ืข ื–ืฒื˜ ืŸ โ€” ื“ืขืžืืœ ื˜ ืื™ ืš ืื™ ืš ืืœืฒ ืŸ ืฆ ื• ื“ืขืจืฉืจืืงืŸ . ืงืึทื ืคืขืจืžื™ื™ืฉืึทื ื– ืงื•ืžืขืŸ ืฆื• MTProto ื ื™ืฉื˜ ืื•ื™ืฃ seq_no, ื•ื•ื™ ืื™ืŸ ื˜ืงืคึผ, ืึธื‘ืขืจ msg_id !

ื•ื•ืืก ืื™ื– ื“ืืก msg_id, ื“ื™ ืžืขืจืกื˜ ื•ื•ื™ื›ื˜ื™ืง ืคื•ืŸ ื“ื™ ืคืขืœื“ืขืจ? ื“ื™ ื™ื™ื ืฆื™ืง ืฉื™ื™ึทืŸ ืคื•ืŸ ื“ื™ ืึธื ื–ืึธื’, ื•ื•ื™ ื“ื™ ื ืึธืžืขืŸ ืกืึทื’ื“ื–ืฉืขืก. ืขืก ืื™ื– ื“ื™ืคื™ื™ื ื“ ื•ื•ื™ ืึท 64-ื‘ื™ืกืœ ื ื•ืžืขืจ, ื“ื™ ืงืœืขื ืกื˜ืขืจ ื‘ืึทื˜ื™ื™ื˜ื™ืง ื‘ื™ื˜ืŸ ืคื•ืŸ ื•ื•ืึธืก ื•ื•ื™ื“ืขืจ ื”ืึธื‘ืŸ ืกืขืจื•ื•ืขืจ-ื ื™ื˜-ืกืขืจื•ื•ืขืจ ืžืึทื’ื™ืฉ, ืื•ืŸ ื“ื™ ืžื ื•ื—ื” ืื™ื– ืึท ื™ื•ื ื™ืงืก ื˜ื™ืžืขืกื˜ืึทืžืคึผ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ืคืจืึทืงืฉืึทื ืึทืœ ื˜ื™ื™ืœ, ืฉื™ืคื˜ื™ื“ 32 ื‘ื™ื˜ืŸ ืฆื• ื“ื™ ืœื™ื ืงืก. ื™ืขื ืข. ืฆื™ื™ื˜ ืกื˜ืึทืžืคึผ ืคึผืขืจ ืกื™ื™ (ืื•ืŸ ืึทืจื˜ื™ืงืœืขืŸ ืžื™ื˜ ืฆื• ืคืึทืจืฉื™ื“ืขื ืข ืฆื™ื™ื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคืืจื•ื•ืืจืคืŸ ื“ื•ืจืš ื“ื™ ืกืขืจื•ื•ืขืจ). ืคื•ืŸ ื“ืขื ืขืก ื˜ื•ืจื ืก ืื•ื™ืก ืึทื–, ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ื“ืึธืก ืื™ื– ืึท ืื™ื“ืขื ื˜ื™ื˜ืขื˜ ื•ื•ืึธืก ืื™ื– ื’ืœืื‘ืืœืข ืคึฟืึทืจ ื“ืขื ืงืœื™ืขื ื˜. ื‘ืฉืขืช - ื’ืขื“ืขื ืงืขืŸ session_id - ืžื™ืจ ื–ืขื ืขืŸ ื’ืขืจืึทื ื˜ื™ื“: ืื•ื ื˜ืขืจ ืงื™ื™ืŸ ืฆื•ืฉื˜ืื ื“ืŸ ืงืขื ืขืŸ ืึท ืึธื ื–ืึธื’ ืžืขื ื˜ ืคึฟืึทืจ ืื™ื™ืŸ ืกืขืกื™ืข ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ืื™ืŸ ืึท ืึทื ื“ืขืจืฉ ืกืขืกื™ืข. ื“ืึธืก ื”ื™ื™ืกื˜, ืขืก ื•ื•ืฒึทื–ื˜ ื–ื™ืš ืื•ื™ืก ืึทื– ืขืก ืื™ื– ืฉื•ื™ืŸ ื“ืจื™ื™ึท ืžื“ืจื’ื” - ืกืขืกื™ืข, ืกืขืกื™ืข ื ื•ืžืขืจ, ืึธื ื–ืึธื’ ืฉื™ื™ึทืŸ. ืคืืจื•ื•ืืก ืึทื–ืึท ืึท ืึธื•ื•ื•ืขืจืงืึทืžืคึผืœื™ืงื™ื™ืฉืึทืŸ, ื“ืขื ืžื™ืกื˜ืขืจื™ืข ืื™ื– ื–ื™ื™ืขืจ ื’ืจื•ื™ืก.

ืื–ื•ื™, msg_id ื“ืืจืฃ ืคึฟืึทืจ ...

RPC: ืจื™ืงื•ื•ืขืก, ืจืขืกืคึผืึธื ืกืขืก, ืขืจืจืึธืจืก. ืงืึทื ืคืขืจืžื™ื™ืฉืึทื ื–.

ื•ื•ื™ ืื™ืจ ืงืขืŸ ื”ืึธื‘ืŸ ื‘ืืžืขืจืงื˜, ืขืก ืื™ื– ืงื™ื™ืŸ ืกืคึผืขืฆื™ืขืœ ื˜ื™ืคึผ ืึธื“ืขืจ ืคึฟื•ื ืงืฆื™ืข "ืžืึทื›ืŸ ืึท RPC ื‘ืขื˜ืŸ" ืขืจื’ืขืฅ ืื™ืŸ ื“ื™ ืกื˜ืฉืขืžืึท, ื›ืึธื˜ืฉ ืขืก ื–ืขื ืขืŸ ืขื ื˜ืคึฟืขืจืก. ื ืึธืš ืึทืœืข, ืžื™ืจ ื”ืึธื‘ืŸ ืื™ื ื”ืึทืœื˜-ืคึฟืึทืจื‘ื•ื ื“ืขื ืข ืึทืจื˜ื™ืงืœืขืŸ! ื“ืืก ืื™ื–, ืงื™ื™ืŸ ืึธื ื–ืึธื’ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึท ื‘ืงืฉื”! ืึธื“ืขืจ ื ื™ืฉื˜ ื–ื™ื™ืŸ. ื ืืš ืืœืขื, ื™ืขื“ืขืจ ืขืก ื™ื– ืคืึทืจืึทืŸ msg_id. ืื•ืŸ ื“ืึธ ื–ืขื ืขืŸ ื“ื™ ืขื ื˜ืคึฟืขืจืก:

rpc_result#f35c6d01 req_msg_id:long result:Object = RpcResult;

ื“ืืก ืื™ื– ื•ื•ื• ืขืก ืื™ื– ืื ื’ืขื•ื•ื™ื–ืŸ ืฆื• ื•ื•ืึธืก ืึธื ื–ืึธื’ ื“ืึธืก ืื™ื– ืึทืŸ ืขื ื˜ืคืขืจ. ื“ืขืจื™ื‘ืขืจ, ืื•ื™ืฃ ื“ืขืจ ืฉืคึผื™ืฅ ืžื“ืจื’ื” ืคื•ืŸ ื“ื™ API, ืื™ืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื• ื’ืขื“ืขื ืงืขืŸ ื•ื•ืึธืก ื ื•ืžืขืจ ื“ื™ื™ืŸ ื‘ืงืฉื” ื”ืื˜ - ืื™ืš ื˜ืจืึทื›ื˜ืŸ ืขืก ืื™ื– ื ื™ื˜ ื ื™ื™ื˜ื™ืง ืฆื• ื“ืขืจืงืœืขืจืŸ ืึทื– ื“ื™ ืึทืจื‘ืขื˜ ืื™ื– ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืก, ืื•ืŸ ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืขื˜ืœืขื›ืข ืจื™ืงื•ื•ืขืก ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ื“ื™ ืขื ื˜ืคึฟืขืจืก ืฆื• ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืื•ืžื’ืขืงืขืจื˜ ืื™ืŸ ืงื™ื™ืŸ ืกื“ืจ? ืื™ืŸ ืคึผืจื™ื ืฆื™ืคึผ, ืคึฟื•ืŸ ื“ืขื, ืื•ืŸ ื˜ืขื•ืช ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ื™ ืงื™ื™ืŸ ื•ื•ืึธืจืงืขืจืก, ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ื”ื™ื ื˜ืขืจ ื“ืขื ืงืขื ืขืŸ ื–ื™ื™ืŸ ื˜ืจื™ื™ืกื˜: ื“ืขืจ ืกืขืจื•ื•ืขืจ ื•ื•ืึธืก ื”ืืœื˜ ืึท TCP ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืžื™ื˜ ืื™ืจ ืื™ื– ืึท ืคืจืึธื ื˜-ืกื•ืฃ ื‘ืึทืœืึทื ืกืขืจ, ืขืก ื“ื™ืจืขืงื˜ืขื“ ืจื™ืงื•ื•ืขืก ืฆื• ื‘ืึทืงืขื ื“ื– ืื•ืŸ ืงืึทืœืขืงืฅ ื–ื™ื™ ืฆื•ืจื™ืง ืฆื•ื–ืืžืขืŸ message_id. ืึทืœืฅ ืื™ื– ื“ืึธ ืงืœืึธืจ, ืœืึทื“ื–ืฉื™ืงืึทืœ ืื•ืŸ ื’ื•ื˜.

ื™ื?.. ืื•ืŸ ืื•ื™ื‘ ืื™ืจ ื˜ืจืึทื›ื˜ืŸ ื•ื•ืขื’ืŸ ืื™ื? ื ืึธืš ืึทืœืข, ื“ื™ RPC ืขื ื˜ืคืขืจ ื–ื™ืš ืื•ื™ืš ื”ืื˜ ืึท ืคืขืœื“ msg_id! ืฆื™ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉืจื™ื™ึทืขืŸ ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ "ืื™ืจ ืจื™ืกืคึผืึทื ื“ ื ื™ืฉื˜ ืฆื• ืžื™ื™ืŸ ืขื ื˜ืคืขืจ!"? ืื•ืŸ ื™ืึธ, ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื•ื•ืขื’ืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’? ื•ื•ืขื’ืŸ ื‘ืœืึทื˜ ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ืขื’ืŸ ืึทืจื˜ื™ืงืœืขืŸ ื“ืขืจืฆื™ื™ืœื˜ ืื•ื ื“ื– ื•ื•ืึธืก ืื™ื–

msgs_ack#62d6b459 msg_ids:Vector long = MsgsAck;

ืื•ืŸ ื™ืขื“ืขืจ ื–ื™ื™ึทื˜ ืžื•ื–ืŸ ื˜ืึธืŸ ืขืก. ืึธื‘ืขืจ ื ื™ื˜ ืฉื˜ืขื ื“ื™ืง! ืื•ื™ื‘ ืื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท RpcResult, ืขืก ืกืขืจื•ื•ืขืก ื•ื•ื™ ืึท ื“ืขืจืงืขื ื˜ืขื ื™ืฉ ืึทืœื™ื™ืŸ. ืึทื– ืื™ื–, ื“ืขืจ ืกืขืจื•ื•ืขืจ ืงืขื ืขืŸ ืจื™ืกืคึผืึทื ื“ ืฆื• ื“ื™ื™ืŸ ื‘ืงืฉื” ืžื™ื˜ MsgsAck - ื•ื•ื™, "ืื™ืš ื‘ืืงื•ืžืขืŸ ืขืก." ืงืขื ืขืŸ ืžื™ื“ ืขื ื˜ืคึฟืขืจืŸ RpcResult. ืขืก ืงืขืŸ ื–ื™ื™ืŸ ื‘ื™ื™ื“ืข.

ืื•ืŸ ื™ืึธ, ืื™ืจ ื ืึธืš ื”ืึธื‘ืŸ ืฆื• ืขื ื˜ืคึฟืขืจืŸ ื“ืขื ืขื ื˜ืคืขืจ! ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’. ืึทื ื“ืขืจืฉ, ื“ืขืจ ืกืขืจื•ื•ืขืจ ื•ื•ืขื˜ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ืขืก ืึทื ืœื™ื•ื•ืขืจื“ ืื•ืŸ ื•ื•ืึทืจืคืŸ ืขืก ืฆื• ืื™ืจ ื•ื•ื™ื“ืขืจ. ืืคื™ืœื• ื ืึธืš ืจื™ืงืึทื ืขืงืฉืึทืŸ. ืื‘ืขืจ ื“ืึธ, ืคื•ืŸ ืงื•ืจืก, ื“ื™ ืงืฉื™ื ืคื•ืŸ ื˜ื™ื™ืžืึทื•ืฅ ื•ื•ืขื˜ ืื•ื™ืคืฉื˜ื™ื™ืŸ. ื–ืืœ ืก ืงื•ืง ื‘ื™ื™ึท ื–ื™ื™ ืึท ื‘ื™ืกืœ ืฉืคึผืขื˜ืขืจ.

ืื™ืŸ ื“ืขืจ ื“ืขืจื•ื•ื™ื™ืœ, ืœืึธื–ืŸ ืื•ื ื“ื– ื‘ืึทื˜ืจืึทื›ื˜ืŸ ืžืขื’ืœืขืš ืขืจืจืึธืจืก ืื™ืŸ ืึธื ืคึฟืจืขื’ ื“ื•ืจื›ืคื™ืจื•ื ื’.

rpc_error#2144ca19 error_code:int error_message:string = RpcError;

ืึธ, ืขืžืขืฆืขืจ ื•ื•ืขื˜ ืื•ื™ืกืจื•ืคืŸ, ื“ืึธ ืื™ื– ืึท ืžืขืจ ืžืขื ื˜ืฉ ืคึฟืึธืจืžืึทื˜ - ืขืก ืื™ื– ืึท ืฉื•ืจื”! ื ืขื ื“ื™ื™ืŸ ืฆื™ื™ื˜. ื“ืึธ ืจืฉื™ืžื” ืคื•ืŸ ืขืจืจืึธืจืกืึธื‘ืขืจ ื–ื™ื›ืขืจ ื ื™ืฉื˜ ื’ืึทื ืฅ. ืคื•ืŸ ืขืก ืžื™ืจ ืœืขืจื ืขืŸ ืึทื– ื“ื™ ืงืึธื“ ืื™ื– - ืขืคึผืขืก ื•ื•ื™ ื”ื˜ื˜ืคึผ ืขืจืจืึธืจืก (ื ื•, ืคื•ืŸ ืงื•ืจืก, ื“ื™ ืกืขืžืึทื ื˜ื™ืงืก ืคื•ืŸ ื“ื™ ืจืขืกืคึผืึธื ืกืขืก ืื™ื– ื ื™ืฉื˜ ืจืขืกืคึผืขืงื˜ืขื“, ืื™ืŸ ืขื˜ืœืขื›ืข ืขืจื˜ืขืจ ื–ื™ื™ ื–ืขื ืขืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ื“ื•ืจืš ืงืึธื•ื“ื– ืจืึทื ื“ืึทืžืœื™), ืื•ืŸ ื“ื™ ืฉื˜ืจื™ืงืœ ืงื•ืงื˜ ื•ื•ื™ CAPITAL_LETTERS_AND_NUMBERS. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, PHONE_NUMBER_OCCUPIED ืึธื“ืขืจ FILE_PART_X_MISSING. ื ื•, ื“ืึธืก ืื™ื–, ืื™ืจ ื ืึธืš ื”ืึธื‘ืŸ ืฆื• ื“ืขื ืฉื•ืจื” ืคึผืึทืจืก. ืœืžืฉืœ, FLOOD_WAIT_3600 ื•ื•ืขื˜ ืžื™ื™ื ืขืŸ ืึทื– ืื™ืจ ื”ืึธื‘ืŸ ืฆื• ื•ื•ืึทืจื˜ืŸ ืึท ืฉืขื”, ืื•ืŸ PHONE_MIGRATE_5ืึทื– ื“ืขืจ ื˜ืขืœืขืคืึธืŸ ื ื•ืžืขืจ ืžื™ื˜ ื“ืขื ืคึผืจืขืคื™ืงืก ื–ืึธืœ ื–ื™ื™ืŸ ืจืขื’ื™ืกื˜ืจื™ืจื˜ ืื™ืŸ ื“ื™ 5 ื“ืง. ืžื™ืจ ื”ืึธื‘ืŸ ืึท ื˜ื™ืคึผ ืฉืคึผืจืึทืš, ืจืขื›ื˜? ืžื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืึท ืึทืจื’ื•ืžืขื ื˜ ืคื•ืŸ ื“ื™ ืฉื˜ืจื™ืงืœ, ืจืขื’ื•ืœืขืจ ืื•ื™ืกื“ืจื•ืงืŸ ื•ื•ืขื˜ ื˜ืึธืŸ, cho.

ื•ื•ื™ื“ืขืจ, ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ื™ืก ืึทืจื˜ื™ืงืœืขืŸ ื‘ืœืึทื˜, ืึธื‘ืขืจ, ื•ื•ื™ ืขืก ืื™ื– ืฉื•ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš ืžื™ื˜ ื“ืขื ืคึผืจื•ื™ืขืงื˜, ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ืื•ื™ืฃ ืืŸ ืื ื“ืขืจ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ื‘ืœืึทื˜. ืึธื“ืขืจ ื•ื•ืขืงืŸ ื—ืฉื“. ืขืจืฉื˜ืขืจ, ืงื•ืง, ื”ื™ืœืขืœ ืคื•ืŸ ื˜ื™ื™ืคึผื™ื ื’ / ืœื™ื™ึทืขืจืก - RpcError ืงืขื ืขืŸ ื–ื™ื™ืŸ ื™ื ื•ื•ืขืกื˜ืึทื“ ืื™ืŸ RpcResult. ืคืึทืจื•ื•ืึธืก ื ื™ืฉื˜ ืึทืจื•ื™ืก? ื•ื•ืึธืก ื”ืึธื‘ืŸ ืžื™ืจ ื ื™ื˜ ื’ืขื ื•ืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ?.. ืึทืงืึธืจื“ื™ื ื’ืœื™, ื•ื•ื• ืื™ื– ื“ื™ ื’ืึทืจืึทื ื˜ื™ืจืŸ ืึทื– RpcError ืžืขื’ ืžืขืŸ ื ื™ืฉื˜ ืื™ื ื•ื•ืขืกื˜ื™ืจืŸ ืื™ืŸ RpcResult, ืึธื‘ืขืจ ื–ื™ื™ืŸ ื’ืœื™ื™ึทืš ืึธื“ืขืจ ื ืขืกื˜ืขื“ ืื™ืŸ ืืŸ ืื ื“ืขืจ ื˜ื™ืคึผ? ืขืก ืคืขืœื˜ ืขืก req_msg_id ? ..

ืึธื‘ืขืจ ืœืึธื–ืŸ ืื•ื ื“ื– ืคืึธืจื–ืขืฆืŸ ื•ื•ืขื’ืŸ ืกืขืจื•ื•ื™ืก ืึทืจื˜ื™ืงืœืขืŸ. ื“ืขืจ ืงืœื™ืขื ื˜ ืงืขืŸ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ืึทื– ื“ืขืจ ืกืขืจื•ื•ื™ืจืขืจ ืื™ื– ื˜ืจืื›ื˜ืŸ ืคึฟืึทืจ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜, ืื•ืŸ ืžืึทื›ืŸ ืึทื–ืึท ืึท ื•ื•ื•ื ื“ืขืจืœืขืš ื‘ืขื˜ืŸ:

rpc_drop_answer#58e4a740 req_msg_id:long = RpcDropAnswer;

ืขืก ื–ืขื ืขืŸ ื“ืจื™ื™ ืžืขื’ืœืขืš ืขื ื˜ืคึฟืขืจืก ืฆื• ืขืก, ื•ื•ื™ื“ืขืจ ื™ื ื˜ืขืจืกืขืงื˜ื™ื ื’ ืžื™ื˜ ื“ื™ ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’ ืžืขืงืึทื ื™ื–ืึทื, ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ืึธืก ื–ื™ื™ ื–ืึธืœ ื–ื™ื™ืŸ (ืื•ืŸ ื•ื•ืึธืก ืื™ื– ื“ื™ ืจืฉื™ืžื” ืคื•ืŸ ื˜ื™ื™ืคึผืก ื•ื•ืึธืก ื˜ืึธืŸ ื ื™ื˜ ื“ืึทืจืคืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’ ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ), ื“ืขืจ ืœื™ื™ืขื ืขืจ ืื™ื– ืœื™ื ืงืก ื•ื•ื™ ืœืขืงืฆื™ืขืก (ื‘ืึทืžืขืจืงื•ื ื’: ื“ื™ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื™ืŸ ื“ื™ ื˜ืขืœืขื’ืจืึทื ื“ืขืกืงื˜ืึธืคึผ ืงื•ื•ืืœืŸ ืื™ื– ื ื™ืฉื˜ ื’ืึทื ืฅ).

ืึทื“ื™ืงืฉืึทืŸ: ืึธื ื–ืึธื’ ืคึผืึธืกื˜ืŸ ืกื˜ืึทื˜ื•ืกืขืก

ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ืคื™ืœืข ืขืจื˜ืขืจ ืื™ืŸ TL, MTProto ืื•ืŸ Telegram ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ ืœืึธื–ืŸ ืึท ื’ืขืคื™ืœ ืคื•ืŸ ืขืงืฉื ื•ืช, ืึธื‘ืขืจ ืคึฟื•ืŸ ื”ืขืคืœืขื›ืงื™ื™ึทื˜, ื˜ืึทืงื˜ ืื•ืŸ ืื ื“ืขืจืข ื•ื•ื™ื™ืš ืกืงื™ืœื– ืžื™ืจ ื”ืึธื‘ืŸ ื”ืขืคืœืขืš ื’ืขืฉื•ื•ื™ื’ืŸ ื“ืขืจื•ื•ืขื’ืŸ, ืื•ืŸ ื“ื™ ื’ืจืึธื‘ืงื™ื™ื˜ ืื™ืŸ ื“ื™ ื“ื™ืึทืœืึธื’ืŸ ื–ืขื ืขืŸ ืฆืขื ื–ื•ืจื™ืจื˜ ื’ืขื•ื•ืึธืจืŸ. ืึธื‘ืขืจ, ื“ืขื ืึธืจื˜ะžืจื•ื‘ึฟ ืคื•ืŸ ื“ื™ ื‘ืœืึทื˜ ื•ื•ืขื’ืŸ ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ืขื’ืŸ ืึทืจื˜ื™ืงืœืขืŸ ื–ืึทืง ืืคื™ืœื• ืคึฟืึทืจ ืžื™ืจ, ื•ื•ืึธืก ืื™ื– ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื ืขืฅ ืคึผืจืึธื˜ืึธืงืึธืœืก ืคึฟืึทืจ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜ ืื•ืŸ ื”ืื˜ ื’ืขื–ืขืŸ ื‘ื™ื™ืกื™ืงืึทืœื– ืคื•ืŸ ื•ื•ืขืจื™ื™ื ื’ ื’ืจืึทื“ ืคื•ืŸ ืงืขืจื•ื•ืึทื˜ืฉืขืจ.

ืขืก ืกื˜ืึทืจืฅ ื•ืžืฉืขื“ืœืขืš, ืžื™ื˜ ืงืึทื ืคืขืจืžื™ื™ืฉืึทื ื–. ื•ื•ื™ื™ึทื˜ืขืจ, ืžื™ืจ ื–ืขื ืขืŸ ื“ืขืจืฆื™ื™ืœื˜ ื•ื•ืขื’ืŸ

bad_msg_notification#a7eff811 bad_msg_id:long bad_msg_seqno:int error_code:int = BadMsgNotification;
bad_server_salt#edab447b bad_msg_id:long bad_msg_seqno:int error_code:int new_server_salt:long = BadMsgNotification;

ื ื•, ืึทืœืขืžืขืŸ ื•ื•ืึธืก ื”ื™ื™ื‘ื˜ ืฆื• ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ MTProto ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื• ืคึผื ื™ื ื–ื™ื™, ืื™ืŸ ื“ื™ "ืงืขืจืขืงื˜ื™ื“ - ืจื™ืงืึธืžืคึผื™ื™ืœื“ - ืœืึธื ื˜ืฉื˜" ืฆื™ืงืœ, ื‘ืึทืงื•ืžืขืŸ ื ื•ืžืขืจ ืขืจืจืึธืจืก ืึธื“ืขืจ ื–ืึทืœืฅ ื•ื•ืึธืก ืื™ื– ืคืึทืจืคื•ื™ืœื˜ ื‘ืขืฉืึทืก ืขื“ื™ืฅ ืื™ื– ืึท ืคึผืจืึธืกื˜ ื–ืึทืš. ืึธื‘ืขืจ, ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ืคื•ื ืงื˜ืŸ ื“ืึธ:

  1. ืขืก ื’ื™ื™ื˜ ืึทื– ื“ืขืจ ืึธืจื™ื’ื™ื ืขืœ ืึธื ื–ืึธื’ ืื™ื– ืคืึทืจืคืึทืœืŸ. ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืคึผืœื•ื™ื˜ ืขื˜ืœืขื›ืข ืจื™ื™ืขืŸ, ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ืขื ืฉืคึผืขื˜ืขืจ.
  2. ื•ื•ืึธืก ื–ืขื ืขืŸ ื“ื™ ืžืึธื“ื ืข ื˜ืขื•ืช ื ื•ืžืขืจืŸ? 16, 17, 18, 19, 20, 32, 33, 34, 35, 48, 64... ื•ื•ืื• ื–ืขื ืขืŸ ื“ื™ ืจืขืฉื˜ ืคื•ืŸ ื“ื™ ื ื•ืžืขืจืŸ, ื˜ืึทืžื™?

ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ื–ืื’ื˜:

ื“ื™ ื›ื•ื•ื ื” ืื™ื– ืึทื– ื˜ืขื•ืช_ืงืึธื“ืข ื•ื•ืึทืœื•ืขืก ื–ืขื ืขืŸ ื’ืจื•ืคึผื˜ (ืขืจืจ_ืงืึธื“ืข >> 4): ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ื™ ืงืึธื•ื“ื– 0x40 - 0x4f ืฉื˜ื™ืžืขืŸ ืฆื• ืขืจืจืึธืจืก ืื™ืŸ ืงืึทื ื˜ื™ื™ื ืขืจ ื“ื™ืงืึทืžืคึผืึธื•ื–ื™ืฉืึทืŸ.

ืื‘ืขืจ ืขืจืฉื˜ื ืก, ื ืฉื™ืคื˜ ืื™ืŸ ื“ื™ ืื ื“ืขืจืข ืจื™ื›ื˜ื•ื ื’, ืื•ืŸ ืฆื•ื•ื™ื™ื˜ื ืก ืื™ื– ื ื™ืฉื˜ ืงื™ื™ืŸ ื—ื™ืœื•ืง ื•ื•ืื• ื“ื™ ืื™ื‘ืขืจื™ื’ืข ืงืึธื•ื“ื– ื–ืขื ืขืŸ? ืื™ืŸ ืงืืค ืคื•ื ืขื ืžื—ื‘ืจ?.. ืื‘ืขืจ ื“ืืก ื–ืขื ืขืŸ ืงืœื™ื™ื ื™ืงื™ื™ื˜ืŸ.

ืึทื“ื™ืงืฉืึทืŸ ืกื˜ืึทืจืฅ ืื™ืŸ ืคึผืึธืกื˜ืŸ ืกื˜ืึทื˜ื•ืก ืึทืจื˜ื™ืงืœืขืŸ ืื•ืŸ ืคึผืึธืกื˜ืŸ ืงืืคื™ืขืก:

  • ื‘ืขื˜ืŸ ืคึฟืึทืจ ืึธื ื–ืึธื’ ืกื˜ืึทื˜ื•ืก ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข
    ืื•ื™ื‘ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคึผืึทืจื˜ื™ืขืก ื”ืื˜ ื ื™ืฉื˜ ื‘ืืงื•ืžืขืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ืกื˜ืึทื˜ื•ืก ืคื•ืŸ ื–ื™ื™ืŸ ืึทื•ื˜ื’ืึธื•ื™ื ื’ ืึทืจื˜ื™ืงืœืขืŸ ืคึฟืึทืจ ืึท ื‘ืฉืขืช, ืขืก ืงืขืŸ ื‘ืคื™ืจื•ืฉ ื‘ืขื˜ืŸ ืขืก ืคื•ืŸ ื“ื™ ืื ื“ืขืจืข ืคึผืึทืจื˜ื™ื™:
    msgs_state_req#da69fb52 msg_ids:Vector long = MsgsStateReq;
  • ื™ื ืคืึธืจืžืึทื˜ื™ื•ื• ืึธื ื–ืึธื’ ื•ื•ืขื’ืŸ ืกื˜ืึทื˜ื•ืก ืคื•ืŸ ืึทืจื˜ื™ืงืœืขืŸ
    msgs_state_info#04deb57d req_msg_id:long info:string = MsgsStateInfo;
    ื“ืึธ, info ืื™ื– ืึท ืฉื˜ืจื™ืงืœ ื•ื•ืึธืก ื›ึผื•ืœืœ ืคึผื•ื ืงื˜ ืื™ื™ืŸ ื‘ื™ื˜ืข ืคื•ืŸ โ€‹โ€‹ืึธื ื–ืึธื’ ืกื˜ืึทื˜ื•ืก ืคึฟืึทืจ ื™ืขื“ืขืจ ืึธื ื–ืึธื’ ืคื•ืŸ ื“ื™ ื™ื ืงืึทืžื™ื ื’ msg_ids ืจืฉื™ืžื”:

    • 1 = ื’ืึธืจื ื™ืฉื˜ ืื™ื– ื‘ืึทื•ื•ื•ืกื˜ ื•ื•ืขื’ืŸ ื“ืขื ืึธื ื–ืึธื’ (msg_id ืฆื• ื ื™ื“ืขืจื™ืง, ื“ื™ ืื ื“ืขืจืข ืคึผืึทืจื˜ื™ื™ ืงืขืŸ ื”ืึธื‘ืŸ ืคืืจื’ืขืกืŸ ืขืก)
    • 2 = ืึธื ื–ืึธื’ ื ื™ื˜ ื‘ืืงื•ืžืขืŸ (msg_id ืคืืœืŸ ื™ืŸ ื“ื™ ืงื™ื™ื˜ ืคื•ืŸ ืกื˜ืึธืจื“ ื™ื™ื“ืขื ืึทืคื™ื™ื“, ืึธื‘ืขืจ, ื“ื™ ืื ื“ืขืจืข ืคึผืึทืจื˜ื™ื™ ื”ืื˜ ื–ื™ื›ืขืจ ื ื™ืฉื˜ ื‘ืืงื•ืžืขืŸ ืึท ืึธื ื–ืึธื’ ื•ื•ื™ ืึทื–)
    • 3 = ืึธื ื–ืึธื’ ื ื™ื˜ ื‘ืืงื•ืžืขืŸ (msg_id ืฆื• ื”ื•ื™ืš; ืึธื‘ืขืจ, ื“ื™ ืื ื“ืขืจืข ืคึผืึทืจื˜ื™ื™ ื”ืื˜ ื–ื™ื›ืขืจ ื ื™ืฉื˜ ื‘ืืงื•ืžืขืŸ ืขืก ื ืึธืš)
    • 4 = ืึธื ื–ืึธื’ ื‘ืืงื•ืžืขืŸ (ื˜ืึธืŸ ืึทื– ื“ืขืจ ืขื ื˜ืคืขืจ ืื™ื– ืื•ื™ืš ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜ ืึท ืงืึทื‘ืึธืœืข ื“ืขืจืงืขื ื˜ืขื ื™ืฉ)
    • +8 = ืึธื ื–ืึธื’ ืฉื•ื™ืŸ ื™ืงื ืึทืœื™ื“ื–ืฉื“
    • +16 = ืึธื ื–ืึธื’ ื ื™ื˜ ืจื™ืงื•ื•ื™ื™ืจื™ื ื’ ื“ืขืจืงืขื ื˜ืขื ื™ืฉ
    • +32 = RPC ืึธื ืคึฟืจืขื’ ืงืึทื ื˜ื™ื™ื ื“ ืื™ืŸ ืึธื ื–ืึธื’ ื•ื•ืึธืก ืื™ื– ืคึผืจืึทืกืขืกื˜ ืึธื“ืขืจ ืคึผืจืึทืกืขืกื™ื ื’ ืฉื•ื™ืŸ ื’ืึทื ืฅ
    • +64 = ืื™ื ื”ืึทืœื˜-ืคึฟืึทืจื‘ื•ื ื“ืขื ืข ืขื ื˜ืคืขืจ ืฆื• ืึธื ื–ืึธื’ ืฉื•ื™ืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“
    • +128 = ืื ื“ืขืจืข ืคึผืึทืจื˜ื™ื™ ื•ื•ื™ื™ืกื˜ ืคึฟืึทืจ ืึท ืคืึทืงื˜ ืึทื– ืึธื ื–ืึธื’ ืื™ื– ืฉื•ื™ืŸ ื‘ืืงื•ืžืขืŸ
      ื“ืขืจ ืขื ื˜ืคืขืจ ื˜ื•ื˜ ื ื™ืฉื˜ ื“ืึทืจืคืŸ ืึท ื“ืขืจืงืขื ื˜ืขื ื™ืฉ. ืขืก ืื™ื– ืึท ื“ืขืจืงืขื ื˜ืขื ื™ืฉ ืคื•ืŸ ื“ื™ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง msgs_state_req, ืื™ืŸ ืื•ืŸ ืคื•ืŸ ื–ื™ืš.
      ื‘ืึทืžืขืจืงื•ื ื’ ืึทื– ืื•ื™ื‘ ืขืก ืงื•ืžื˜ ืคึผืœื•ืฆืœื™ื ื’ ืื•ื™ืก ืึทื– ื“ื™ ืื ื“ืขืจืข ืคึผืึทืจื˜ื™ื™ ื”ืื˜ ื ื™ืฉื˜ ืึท ืึธื ื–ืึธื’ ื•ื•ืึธืก ืงื•ืงื˜ ื•ื•ื™ ืขืก ืื™ื– ื’ืขืฉื™ืงื˜ ืฆื• ืื™ื, ื“ื™ ืึธื ื–ืึธื’ ืงืขื ืขืŸ ืคืฉื•ื˜ ื–ื™ื™ืŸ ืจื™-ืฉื™ืงื˜. ืืคื™ืœื• ืื•ื™ื‘ ื“ื™ ืื ื“ืขืจืข ืคึผืึทืจื˜ื™ื™ ื–ืึธืœ ื‘ืึทืงื•ืžืขืŸ ืฆื•ื•ื™ื™ ืงืึธืคึผื™ืขืก ืคื•ืŸ ื“ืขื ืึธื ื–ืึธื’ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ื“ื™ ื“ื•ืคึผืœื™ืงืึทื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื™ื’ื ืึธืจื™ืจื˜. (ืื•ื™ื‘ ืฆื• ืคื™ืœ ืฆื™ื™ื˜ ืื™ื– ื“ื•ืจื›ื’ืขื’ืื ื’ืขืŸ, ืื•ืŸ ื“ืขืจ ืึธืจื™ื’ื™ื ืขืœ msg_id ืื™ื– ื ื™ื˜ ืžืขืจ ื’ื™ืœื˜ื™ืง, ื“ืขืจ ืึธื ื–ืึธื’ ื–ืึธืœ ื–ื™ื™ืŸ ืืœื ื’ืขื•ื•ื™ืงืœื˜ ืื™ืŸ msg_copy).
  • ื•ื•ืึทืœืึทื ื˜ืขืจื™ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืกื˜ืึทื˜ื•ืก ืคื•ืŸ ืึทืจื˜ื™ืงืœืขืŸ
    ื™ืขื“ืขืจ ืคึผืึทืจื˜ื™ื™ ืงืขืŸ ื•ื•ืึทืœืึทื ื˜ืขืจืึทืœื™ ืžื™ื˜ื˜ื™ื™ืœืŸ ื“ื™ ืื ื“ืขืจืข ืคึผืึทืจื˜ื™ื™ ื•ื•ืขื’ืŸ ื“ื™ ืกื˜ืึทื˜ื•ืก ืคื•ืŸ ื“ื™ ืึทืจื˜ื™ืงืœืขืŸ ื˜ืจืึทื ืกืžื™ื˜ื˜ืขื“ ื“ื•ืจืš ื“ื™ ืื ื“ืขืจืข ืคึผืึทืจื˜ื™ื™.
    msgs_all_info#8cc0d131 msg_ids:Vector long info:string = MsgsAllInfo
  • ืขืงืกื˜ืขื ื“ืขื“ ื•ื•ืึทืœืึทื ื˜ืขืจื™ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืกื˜ืึทื˜ื•ืก ืคื•ืŸ ืื™ื™ืŸ ืึธื ื–ืึธื’
    ...
    msg_detailed_info#276d3ec6 msg_id:long answer_msg_id:long bytes:int status:int = MsgDetailedInfo;
    msg_new_detailed_info#809db6df answer_msg_id:long bytes:int status:int = MsgDetailedInfo;
  • ื™ืงืกืคึผืœื™ืกืึทื˜ ื‘ืขื˜ืŸ ืฆื• ืฉื™ื™ึทืขืš-ืฉื™ืงืŸ ืึทืจื˜ื™ืงืœืขืŸ
    msg_resend_req#7d861a08 msg_ids:Vector long = MsgResendReq;
    ื“ื™ ื•ื•ื™ื™ึทื˜ ืคึผืึทืจื˜ื™ื™ ื’ืœื™ื™ืš ืจื™ืกืคึผืึทื ื“ื– ื“ื•ืจืš ืฉื™ืงื˜ ื“ื™ ื’ืขื‘ืขื˜ืŸ ืึทืจื˜ื™ืงืœืขืŸ [โ€ฆ]
  • ื™ืงืกืคึผืœื™ืกืึทื˜ ื‘ืขื˜ืŸ ืฆื• ืฉื™ื™ึทืขืš-ืฉื™ืงืŸ ืขื ื˜ืคึฟืขืจืก
    msg_resend_ans_req#8610baeb msg_ids:Vector long = MsgResendReq;
    ื“ื™ ื•ื•ื™ื™ึทื˜ ืคึผืึทืจื˜ื™ื™ ืจื™ืกืคึผืึทื ื“ ืžื™ื“ ื“ื•ืจืš ืฉื™ื™ึทืขืš-ืฉื™ืงื˜ ืขื ื˜ืคึฟืขืจืก ืฆื• ื“ื™ ื’ืขื‘ืขื˜ืŸ ืึทืจื˜ื™ืงืœืขืŸ [โ€ฆ]
  • ืึธื ื–ืึธื’ ืงืืคื™ืขืก
    ืื™ืŸ ืขื˜ืœืขื›ืข ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก, ืึทืŸ ืึทืœื˜ ืึธื ื–ืึธื’ ืžื™ื˜ ืึท msg_id ื•ื•ืึธืก ืื™ื– ื ื™ื˜ ืžืขืจ ื’ื™ืœื˜ื™ืง ื“ืึทืจืฃ ื–ื™ื™ืŸ ืฉื™ื™ึทืขืš-ื’ืขืฉื™ืงื˜. ื“ืขืจื ืึธืš, ืขืก ืื™ื– ืืœื ื’ืขื•ื•ื™ืงืœื˜ ืื™ืŸ ืึท ืงืึธืคึผื™ืข ืงืึทื ื˜ื™ื™ื ืขืจ:
    msg_copy#e06046b2 orig_message:Message = MessageCopy;
    ืึทืžืึธืœ ื‘ืืงื•ืžืขืŸ, ื“ืขืจ ืึธื ื–ืึธื’ ืื™ื– ืคึผืจืึทืกืขืกื˜ ื•ื•ื™ ืื•ื™ื‘ ื“ื™ ืจืึทืคึผืขืจ ืื™ื– ื ื™ืฉื˜ ื“ืึธืจื˜. ืึธื‘ืขืจ, ืื•ื™ื‘ ืขืก ืื™ื– ื‘ืึทื•ื•ื•ืกื˜ ืคึฟืึทืจ ื–ื™ื›ืขืจ ืึทื– ื“ืขืจ ืึธื ื–ืึธื’ orig_message.msg_id ืื™ื– ื‘ืืงื•ืžืขืŸ, ื“ื™ ื ื™ื™ึทืข ืึธื ื–ืึธื’ ืื™ื– ื ื™ืฉื˜ ืคึผืจืึทืกืขืกื˜ (ื‘ืฉืขืช ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืขืก ืื•ืŸ orig_message.msg_id ื–ืขื ืขืŸ ื™ืงื ืึทืœื™ื“ื–ืฉื“). ื“ื™ ื•ื•ืขืจื˜ ืคื•ืŸ orig_message.msg_id ืžื•ื–ืŸ ื–ื™ื™ืŸ ื ื™ื“ืขืจื™ืงืขืจ ื•ื•ื™ ื“ื™ ืงืึทื ื˜ื™ื™ื ืขืจ ืก msg_id.

ืœืืžื™ ืจ ืืคื™ืœ ื• ืฉืฐืฒื’ ืŸ ืฐืขื’ ืŸ ื“ืข ื ืคืืงื˜ , ื ื– ืื™ ืŸ msgs_state_info ื•ื•ื™ื“ืขืจ, ื“ื™ ืื•ื™ืขืจืŸ ืคื•ืŸ ื“ื™ ืึทื ืคื™ื ื™ืฉื˜ TL ืฉื˜ืขืงืŸ ืื•ื™ืก (ืžื™ืจ ื“ืืจืฃ ืึท ื•ื•ืขืงื˜ืึธืจ ืคื•ืŸ ื‘ื™ื˜ืขืก, ืื•ืŸ ืื™ืŸ ื“ื™ ื ื™ื“ืขืจื™ืงืขืจ ืฆื•ื•ื™ื™ ื‘ื™ื˜ืŸ ืคื•ืŸ ื“ื™ ืขื ื•ื, ืื•ืŸ ืื™ืŸ ื“ื™ ืขืœื˜ืขืจืข ื‘ื™ื˜ืŸ ืคืœืึทื’ืก). ื“ื™ ืคื•ื ื˜ ืื™ื– ืขืคึผืขืก ืึทื ื“ืขืจืฉ. ืฆื™ ื•ื•ืขืจ ืขืก ื™ื– ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ืึธืก ืึทืœืข ื“ืขื ืื™ื– ืื™ืŸ ืคื™ืจ ืื™ืŸ ืคืึทืงื˜ื™ืฉ ืงืœื™ืขื ื˜ ื ื™ื™ื˜ื™ืง? .. ืžื™ื˜ ืฉื•ื•ืขืจื™ืงื™ื™ื˜, ืึธื‘ืขืจ ืื™ืจ ืงืขื ืขืŸ ื™ืžืึทื“ื–ืฉืึทืŸ ืขื˜ืœืขื›ืข ื ื•ืฅ ืื•ื™ื‘ ืึท ืžืขื ื˜ืฉ ืื™ื– ืคืึทืจืงื ืึทืกื˜ ืื™ืŸ ื“ื™ื‘ืึทื’ื™ื ื’, ืื•ืŸ ืื™ืŸ ืึท ื™ื ื˜ืขืจืึทืงื˜ื™ื•ื• ืžืึธื“ืข - ืคืจืขื’ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ื•ื•ืึธืก ืื•ืŸ ื•ื•ื™. ืื‘ืขืจ ืจื™ืงื•ื•ืขืก ื–ืขื ืขืŸ ื“ื™ืกืงืจื™ื™ื‘ื“ ื“ืึธ ืื”ื™ืŸ ืื•ืŸ ืฆื•ืจื™ืง.

ืขืก ื’ื™ื™ื˜ ื“ืขืจืคื•ืŸ ืึทื– ื™ืขื“ืขืจ ื–ื™ื™ึทื˜ ืžื•ื–ืŸ ื ื™ื˜ ื‘ืœื•ื™ื– ืขื ืงืจื™ืคึผื˜ ืื•ืŸ ืฉื™ืงืŸ ืึทืจื˜ื™ืงืœืขืŸ, ืึธื‘ืขืจ ืื•ื™ืš ืงืจืึธื ื“ืึทื˜ืŸ ื•ื•ืขื’ืŸ ื–ื™ื™, ื•ื•ืขื’ืŸ ื“ื™ ืขื ื˜ืคึฟืขืจืก ืฆื• ื–ื™ื™ ืื•ืŸ ืคึฟืึทืจ ืึทืŸ ืื•ืžื‘ืึทืงืึทื ื˜ ืฆื™ื™ื˜. ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ื˜ื•ื˜ ื ื™ืฉื˜ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ื˜ื™ื™ืžื™ื ื’ื– ืึธื“ืขืจ ื“ื™ ืคึผืจืึทืงื˜ื™ืฉ ืึธื ื•ื•ืขื ื“ืœืขืš ืคื•ืŸ ื“ื™ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ. ืื™ืŸ ืงื™ื™ืŸ ื•ื•ืขื’. ื•ื•ืึธืก ืื™ื– ืžืขืจืกื˜ ื—ื™ื“ื•ืฉ ืื™ื– ืึทื– ื–ื™ื™ ื–ืขื ืขืŸ ืคืืงื˜ื™ืฉ ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ ืงืึธื“ ืคื•ืŸ ื‘ืึทืึทืžื˜ืขืจ ืงืœื™ื™ืึทื ืฅ! ืœื›ืื•ืจื” ื”ืื˜ ืžืขืŸ ื–ื™ื™ ื“ืขืจืฆื™ื™ืœื˜ ืขืคืขืก ื•ื•ืืก ืื™ื– ื ื™ืฉื˜ ืืจื™ื™ื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ื™ ืืคืขื ืข ื“ืืงื•ืžืขื ื˜ืืฆื™ืข. ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืคึฟื•ืŸ ื“ื™ ืงืึธื“ why, ืื™ื– ื ื™ื˜ ืžืขืจ ื•ื•ื™ ืคึผืฉื•ื˜ ื•ื•ื™ ืื™ืŸ ื“ื™ ืคืึทืœ ืคื•ืŸ TL - ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ืึท (ืงืึทืžืคึผืขืจืึทื˜ื™ื•ื•) ืœืึทื“ื–ืฉื™ืงืœื™ ืืคื’ืขื–ื•ื ื“ืขืจื˜ ื˜ื™ื™ืœ, ืึธื‘ืขืจ ืึท ืฉื˜ื™ืง ื˜ื™ื™ื“ ืฆื• ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ื“.ื”. ื•ื•ืขื˜ ื“ืึทืจืคืŸ ืคื™ืœ ืžืขืจ ืฆื™ื™ื˜ ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืงืึธื“.

ืคึผื™ื ื’ืก ืื•ืŸ ืฆื™ื™ื˜. ืจื™ื™ืขืŸ.

ืคื•ืŸ ืึทืœืฅ, ืื•ื™ื‘ ืื™ืจ ืฆื•ืจื™ืงืจื•ืคืŸ ื“ื™ ื’ืขืกื™ื– ื•ื•ืขื’ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ (ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืคื•ืŸ ืจื™ืงื•ื•ืขืก ืึทืจื™ื‘ืขืจ ื‘ืึทืงืขื ื“ื–), ืขืก ืื™ื– ื’ืึทื ืฅ ื ื•ื“ื ืข - ื˜ืจืึธืฅ ืึทืœืข ื“ื™ ื’ืขืจืึทื ื˜ื™ื– ืคื•ืŸ ืขืงืกืคึผืจืขืก ืื™ืŸ TCP (ืึธื“ืขืจ ื“ื™ ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ืื™ื‘ืขืจื’ืขื’ืขื‘ืŸ, ืึธื“ืขืจ ืื™ืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื™ื ืคืึธืจืžื“ ื•ื•ืขื’ืŸ ื“ืขื ื‘ืจืขื›ืŸ, ืึธื‘ืขืจ ื“ื™ ื“ืึทื˜ืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื™ื‘ืขืจื’ืขื’ืขื‘ืŸ ื‘ื™ื– ื“ืขื ืžืึธืžืขื ื˜ ืคื•ืŸ ื“ื™ ืคึผืจืึธื‘ืœืขื), ืึทื– ืงืึทื ืคืขืจืžื™ื™ืฉืึทื ื– ืื™ืŸ MTProto ื–ื™ืš - ืงื™ื™ืŸ ื’ืขืจืึทื ื˜ื™ื–. ื“ืขืจ ืกืขืจื•ื•ืขืจ ืงืขื ืขืŸ ืœื™ื™ื›ื˜ ืคืึทืจืœื™ืจืŸ ืึธื“ืขืจ ื•ื•ืึทืจืคืŸ ื“ื™ื™ืŸ ืึธื ื–ืึธื’, ืื•ืŸ ื’ืึธืจื ื™ืฉื˜ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ื•ื•ืขื’ืŸ ืื™ื, ื ืึธืจ ืฆื• ืคึผืœื•ื™ื˜ ืงืจืึทื˜ืฉื™ื– ืคื•ืŸ ืคืึทืจืฉื™ื“ืŸ ื˜ื™ื™ืคึผืก.

ืื•ืŸ ืขืจืฉื˜ืขืจ ืคื•ืŸ ืึทืœืข - ืึธื ื–ืึธื’ ืงื™ื•ื–. ื ื•, ืคึฟืึทืจ ืื™ื™ืŸ ื–ืึทืš, ืึทืœืฅ ืื™ื– ื’ืขื•ื•ืขืŸ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืคื•ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ - ืึท ื ื™ื˜-ื‘ืืฉื˜ื™ืžื˜ ืึธื ื–ืึธื’ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืกื˜ืึธืจื“ ืื•ืŸ ืคืึทืจื“ืจื™ืกืŸ. ืื•ืŸ ื ืึธืš ื•ื•ืึธืก ืžืึธืœ? ืื•ืŸ ื“ืขืจ ืœื™ืฆื˜ืขืจ ืงืขืŸ ืื™ื. ื˜ืึธืžืขืจ ื“ื™ ืึทื“ื™ืงื˜ ื“ื™ื ืกื˜ ืึทืจื˜ื™ืงืœืขืŸ ืขืคืขืก ืกืึธืœื•ื•ืข ื“ืขื ืคึผืจืึธื‘ืœืขื ืžื™ื˜ ืงืจืึทื˜ืฉื™ื–, ื–ืึธื’ืŸ, ืื™ืŸ ื˜ืขืœืขื’ืจืึทื ื“ืขืกืงื˜ืึธืคึผ ืขืก ื–ืขื ืขืŸ ื•ื•ืขื’ืŸ 4 ืงื™ื•ื– ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืฆื• ื–ื™ื™ (ืืคึฟืฉืจ ืžืขืจ, ื•ื•ื™ ืฉื•ื™ืŸ ื“ืขืจืžืื ื˜, ืคึฟืึทืจ ื“ืขื ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื“ืขืœื•ื• ืื™ืŸ ื–ื™ื™ืŸ ืงืึธื“ ืื•ืŸ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืžืขืจ ืขืžืขืก; ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืžื™ืจ ื•ื•ื™ืกืŸ ืึทื– ืขืก ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ื’ืขื ื•ืžืขืŸ ื•ื•ื™ ืึท ืžื•ืกื˜ืขืจ, ืึท ื–ื™ื›ืขืจ ื ื•ืžืขืจ ืคื•ืŸ ื˜ื™ื™ืคึผืก ืคื•ืŸ ื“ื™ MTProto ืกื›ืขืžืข ื–ืขื ืขืŸ ื ื™ืฉื˜ ื’ืขื ื™ืฆื˜ ืื™ืŸ ืขืก).

ืคืืจื•ื•ืืก ืื™ื– ื“ืึธืก ื’ืขืฉืขืขื ื™ืฉ? ืžื™ืกื˜ืึธืžืข, ื“ื™ ืกืขืจื•ื•ืขืจ ืคึผืจืึธื•ื’ืจืึทืžืขืจื– ืงืขืŸ ื ื™ืฉื˜ ืขื ืฉื•ืจ ืจื™ืœื™ื™ืึทื‘ื™ืœืึทื˜ื™ ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ, ืึธื“ืขืจ ืื™ืŸ ืžื™ื ื“ืกื˜ืขืจ ืืคื™ืœื• ื‘ืึทืคืขืจื™ื ื’ ืื•ื™ืฃ ื“ื™ ืคืจืึธื ื˜ ื‘ืึทืœืึทื ืกืขืจ, ืื•ืŸ ืฉื™ืคื˜ื™ื“ ื“ืขื ืคึผืจืึธื‘ืœืขื ืฆื• ื“ืขื ืงืœื™ืขื ื˜. ืคื•ืŸ ืคืึทืจืฆื•ื•ื™ื™ืคืœื•ื ื’, ื•ื•ืึทืกื™ืœื™ ื’ืขืคืจื•ื•ื•ื˜ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึทืŸ ืึธืœื˜ืขืจื ืึทื˜ื™ื•ื• ืึธืคึผืฆื™ืข, ืžื™ื˜ ื‘ืœื•ื™ื– ืฆื•ื•ื™ื™ ืงื™ื•ื–, ื ื™ืฆืŸ ืึทืœื’ืขืจื™ื“ืึทืžื– ืคื•ืŸ TCP - ืžืขืกื˜ืŸ RTT ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ ืื•ืŸ ืึทื“ื–ืฉืึทืกื˜ื™ื ื’ ื“ื™ "ืคึฟืขื ืฆื˜ืขืจ" ื’ืจื™ื™ืก (ืื™ืŸ ืึทืจื˜ื™ืงืœืขืŸ) ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืึทื ืึทืงื ืึทืœื™ื“ื–ืฉื“ ืจื™ืงื•ื•ืขืก. ื“ืึธืก ืื™ื–, ืึทื–ืึท ืึท ืคึผืจืึธืกื˜ ื›ื™ื•ืจื™ืกื˜ื™ืง ืคึฟืึทืจ ืึธืคึผืฉืึทืฆืŸ ืกืขืจื•ื•ืขืจ ืžืึทืกืข - ื•ื•ื™ ืคื™ืœืข ืคื•ืŸ โ€‹โ€‹ืื•ื ื“ื–ืขืจ ืจื™ืงื•ื•ืขืก ืขืก ืงืขื ืขืŸ ืงื™ื™ึทืขืŸ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜ ืื•ืŸ ื ื™ืฉื˜ ืคืึทืจืœื™ืจืŸ.

ื ื•, ื“ืึธืก ืื™ื–, ืื™ืจ ืคึฟืึทืจืฉื˜ื™ื™ืŸ, ืจืขื›ื˜? ืื•ื™ื‘ ืื™ืจ ื”ืึธื‘ืŸ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ TCP ื•ื•ื™ื“ืขืจ ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ืึท ืคึผืจืึธื˜ืึธืงืึธืœ ื•ื•ืึธืก ืึทืจื‘ืขื˜ ืื™ื‘ืขืจ TCP, ื“ืึธืก ื™ื ื“ื™ืงื™ื™ืฅ ืึท ื–ื™ื™ืขืจ ืฉื•ื•ืึทืš ื“ื™ื–ื™ื™ื ื“ ืคึผืจืึธื˜ืึธืงืึธืœ.

ื˜ืึทืงืข ื™ืึธ, ื•ื•ืึธืก ืื™ื– ื“ืืจืฃ ืžืขืจ ื•ื•ื™ ืื™ื™ืŸ ืจื™ื™, ืื•ืŸ ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ื•ื•ืึธืก ื˜ื•ื˜ ื“ืึธืก ืžื™ื™ื ืขืŸ ืคึฟืึทืจ ืึท ืžืขื ื˜ืฉ ื•ื•ืึธืก ืึทืจื‘ืขื˜ ืžื™ื˜ ืึท ื”ื•ื™ืš-ืžื“ืจื’ื” API? ืงื•ืง, ืื™ืจ ืžืื›ื˜ ืึท ื‘ืงืฉื”, ืื™ืจ ืกื™ืจื™ืึทืœื™ื– ืขืก, ืึธื‘ืขืจ ืขืก ืื™ื– ืึธืคื˜ ืื•ืžืžืขื’ืœืขืš ืฆื• ืฉื™ืงืŸ ืขืก ืžื™ื“. ืคืืจื•ื•ืืก? ื•ื•ื™ื™ึทืœ ื“ืขืจ ืขื ื˜ืคืขืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ msg_id, ื•ื•ืึธืก ืื™ื– ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืงะฐืื™ืš ื‘ื™ืŸ ืึท ืคื™ืจืžืข, ื“ื™ ืึทืคึผื•ื™ื ื˜ืžืึทื ื˜ ืคื•ืŸ ื•ื•ืึธืก ืื™ื– ื‘ืขืกืขืจ ืฆื• ืึธืคึผืœื™ื™ื’ืŸ ื•ื•ื™ ืฉืคึผืขื˜ ื•ื•ื™ ืžืขื’ืœืขืš - ืคึผืœื•ืฆืœื™ื ื’ ื“ืขืจ ืกืขืจื•ื•ืขืจ ื•ื•ืขื˜ ืึธืคึผื•ื•ืึทืจืคืŸ ืขืก ื•ื•ื™ื™ึทืœ ืคื•ืŸ ืึท ืฆื™ื™ื˜ ืžื™ืกืžืึทื˜ืฉ ืฆื•ื•ื™ืฉืŸ ืื•ื ื“ื– ืื•ืŸ ืขืก (ืคื•ืŸ ืงื•ืจืก, ืžื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ืึท ืงืจืึทื˜ืฉ ื•ื•ืึธืก ืฉื™ืคืฅ ืื•ื ื“ื–ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ื“ื™ ืคืึธืจืฉื˜ืขืœืŸ ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ ืฆื™ื™ื˜ ื“ื•ืจืš ืึทื“ื™ื ื’ ืึท ื“ืขืœื˜ืึท ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื“ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ืจืขืกืคึผืึธื ืกืขืก - ื‘ืึทืึทืžื˜ืขืจ ืงืœื™ื™ืึทื ืฅ ื˜ืึธืŸ ื“ืึธืก, ืึธื‘ืขืจ ื“ืขื ืื•ืคึฟืŸ ืื™ื– ื’ืจืึธื‘ ืื•ืŸ ื•ืžืคึผื™ื ืงื˜ืœืขืš ืจืขื›ื˜ ืฆื• ื‘ืึทืคืขืจื™ื ื’). ืึทื–ื•ื™ ื•ื•ืขืŸ ืื™ืจ ืžืึทื›ืŸ ืึท ื‘ืงืฉื” ืžื™ื˜ ืึท ื”ื™ื’ืข ืคื•ื ืงืฆื™ืข ืจื•ืคืŸ ืคื•ืŸ ื“ืขืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง, ื“ืขืจ ืึธื ื–ืึธื’ ื’ื™ื™ื˜ ื“ื•ืจืš ื“ื™ ืคืืœื’ืขื ื“ืข ืกื˜ืึทื’ืขืก:

  1. ืœื™ื’ื˜ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืจื™ื™ ืื•ืŸ ืื™ื– ื•ื•ืืจื˜ืŸ ืคึฟืึทืจ ืขื ืงืจื™ืคึผืฉืึทืŸ.
  2. ื‘ืืฉื˜ื™ืžื˜ msg_id ืื•ืŸ ื“ืขืจ ืึธื ื–ืึธื’ ืื™ื– ื’ืขื’ืื ื’ืขืŸ ืฆื• ืืŸ ืื ื“ืขืจ ืจื™ื™ - ืžืขื’ืœืขืš ืคืึธืจื•ื•ืขืจื“ื™ื ื’; ืฉื™ืงืŸ ืฆื• ื›ืึธืœืขืœ.
  3. ืึท) ื“ืขืจ ืกืขืจื•ื•ืขืจ ื”ืึธื˜ ื’ืขืขื ื˜ืคืขืจื˜ MsgsAck - ื“ืขืจ ืึธื ื–ืึธื’ ืื™ื– ืื™ื‘ืขืจื’ืขื’ืขื‘ืŸ, ืžื™ืจ ื•ื™ืกืžืขืงืŸ ืขืก ืคื•ืŸ ื“ื™ "ืื ื“ืขืจืข ืจื™ื™".
    ื‘) ืื“ืขืจ ืคืืจืงืขืจื˜, ืขืคืขืก ื”ืื˜ ืขืจ ื ื™ืฉื˜ ื’ืขืคืขืœื˜, ื”ืื˜ ืขืจ ื’ืขืขื ื˜ืคืขืจื˜ ื‘ืื“ืžืกื’ - ืžื™ืจ ืฉื™ืงืŸ ื•ื•ื™ื“ืขืจ ืคื•ืŸ ื“ื™ "ืื ื“ืขืจืข ืจื™ื™"
    ื’) ื’ืึธืจื ื™ืฉื˜ ืื™ื– ื‘ืืงืื ื˜, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ืฉื™ืงืŸ ื“ื™ ืึธื ื–ืึธื’ ืคื•ืŸ ืืŸ ืื ื“ืขืจ ืจื™ื™ - ืึธื‘ืขืจ ืขืก ืื™ื– ื ื™ืฉื˜ ื‘ืืงืื ื˜ ืคึผื•ื ืงื˜ ื•ื•ืขืŸ.
  4. ืกืขืจื•ื•ื™ืจืขืจ ืœืขืกืึธืฃ ื’ืขืขื ื˜ืคืขืจื˜ RpcResult - ื“ื™ ืคืึทืงื˜ื™ืฉ ืขื ื˜ืคืขืจ (ืึธื“ืขืจ ื˜ืขื•ืช) - ื ื™ื˜ ื ืึธืจ ืื™ื‘ืขืจื’ืขื’ืขื‘ืŸ, ืึธื‘ืขืจ ืื•ื™ืš ืคึผืจืึทืกืขืกื˜.

ื˜ืึธืžืขืจ, ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืงืึทื ื˜ื™ื™ื ืขืจื– ืงืขืŸ ื˜ื™ื™ืœ ืกืึธืœื•ื•ืข ื“ื™ ืคึผืจืึธื‘ืœืขื. ื“ืึธืก ืื™ื– ื•ื•ืขืŸ ืึท ื‘ื™ื ื˜ืœ ืคื•ืŸ ืึทืจื˜ื™ืงืœืขืŸ ืื™ื– ืคึผืึทืงื˜ ืื™ืŸ ืื™ื™ืŸ, ืื•ืŸ ื“ืขืจ ืกืขืจื•ื•ืขืจ ื”ืึธื˜ ืจืขืึทื’ื™ืจื˜ ืžื™ื˜ ืึท ื“ืขืจืงืขื ื˜ืขื ื™ืฉ ืฆื• ืึทืœืข ืื™ืŸ ืึทืžืึธืœ, ืžื™ื˜ ืื™ื™ืŸ msg_id. ืึธื‘ืขืจ ืขืจ ื•ื•ืขื˜ ืื•ื™ืš ืึธืคึผื•ื•ืึทืจืคืŸ ื“ืึธืก ืคึผืึทืง, ืื•ื™ื‘ ืขืคึผืขืก ืื™ื– ืคืึทืœืฉ, ืื•ื™ืš ื“ื™ ื’ืื ืฆืข ื–ืึทืš.

ืื•ืŸ ืื™ืŸ ื“ืขื ืคื•ื ื˜, ื ื™ื˜-ื˜ืขื›ื ื™ืฉ ืงืึทื ืกื™ื“ืขืจื™ื™ืฉืึทื ื– ืงื•ืžืขืŸ ืื™ืŸ ืฉืคึผื™ืœ. ืคื•ืŸ ื“ืขืจืคืึทืจื•ื ื’, ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขื–ืขืŸ ืคื™ืœืข ืงืจืึทื˜ืฉื™ื–, ืื•ืŸ ืื™ืŸ ื“ืขืจืฆื•, ืื™ืฆื˜ ืžื™ืจ ื•ื•ืขืœืŸ ื–ืขืŸ ืžืขืจ ื‘ื™ื™ืฉืคื™ืœืŸ ืคื•ืŸ ืฉืœืขื›ื˜ ืขืฆื” ืื•ืŸ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ - ืื™ืŸ ืึทื–ืึท ื˜ื ืึธื™ื, ืื™ื– ืขืก ื•ื•ืขืจื˜ ืฆื•ื˜ืจื•ื™ ืื•ืŸ ืžืึทื›ืŸ ืึทื–ืึท ื“ื™ืกื™ื–ืฉืึทื ื–? ื“ื™ ืงืฉื™ื ืื™ื– ืžืœื™ืฆื•ืช (ืึทื•ื•ื“ืื™ ื ื™ืฉื˜).

ื•ื•ืึธืก ื–ืขื ืขืŸ ืžื™ืจ ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ? ืื•ื™ื‘ ืื•ื™ืฃ ื“ืขืจ ื˜ืขืžืข "ืึทื“ื™ืงื˜ ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ืขื’ืŸ ืึทืจื˜ื™ืงืœืขืŸ" ืื™ืจ ืงืขื ืขืŸ ื ืึธืš ืกืคึผืขืงื•ืœื™ืจืŸ ืžื™ื˜ ืึทื‘ื“ื–ืฉืขืงืฉืึทื ื– ื•ื•ื™ "ืื™ืจ ื–ืขื ื˜ ื ืึทืจื™ืฉ, ืื™ืจ ื”ืึธื˜ ื ื™ืฉื˜ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืื•ื ื“ื–ืขืจ ื‘ืจื™ืœื™ืึทื ื˜ ื’ืขื“ืึทื ืง!" (ืื–ื•ื™ ืงื•ื“ื ืฉืจื™ื™ื‘ื˜ ื“ื™ ื“ืืงื•ืžืขื ื˜ืืฆื™ืข, ื•ื•ื™ ื ืืจืžืืœืข ืžืขื ื˜ืฉืŸ ื“ืืจืคืŸ, ืžื™ื˜ ืจืืฆื™ืื ืืœืข ืื•ืŸ ื‘ื™ื™ืฉืคื™ืœืŸ ืคื•ืŸ ืคึผืึทืงืขื˜ ืื•ื™ืกื˜ื•ื™ืฉืŸ, ื“ืขืจื ืืš ื•ื•ืขืœืŸ ืžื™ืจ ืจืขื“ืŸ), ื“ืขืจื ืืš ื–ืขื ืขืŸ ื˜ื™ื™ืžื™ื ื’ื– / ื˜ื™ื™ืžืึทื•ืฅ ืึท ืจื™ื™ืŸ ืคึผืจืึทืงื˜ื™ืฉ ืื•ืŸ ืกืคึผืขืฆื™ืคื™ืฉ ืึทืจื•ื™ืกื’ืขื‘ืŸ, ืึทืœืฅ ืื™ื– ืฉื•ื™ืŸ ืœืึทื ื’ ื‘ืืงืื ื˜ ื“ืึธ. ืึธื‘ืขืจ ื•ื•ืึธืก ื“ืขืจืฆื™ื™ืœื˜ ืื•ื ื“ื– ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ื•ื•ืขื’ืŸ ื˜ื™ื™ืžืึทื•ืฅ?

ื ืกืขืจื•ื•ืขืจ ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ื™ืงื ืึทืœื™ื“ื–ืฉื– ื“ื™ ืงืึทื‘ืึธืœืข ืคื•ืŸ โ€‹โ€‹ืึท ืึธื ื–ืึธื’ ืคื•ืŸ ืึท ืงืœื™ืขื ื˜ (ื ืึธืจืžืึทืœื™, ืึท RPC ืึธื ืคึฟืจืขื’) ื ื™ืฆืŸ ืึท RPC ืขื ื˜ืคืขืจ. ืื•ื™ื‘ ืึท ืขื ื˜ืคืขืจ ืื™ื– ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜ ืงื•ืžืขืŸ, ืึท ืกืขืจื•ื•ืขืจ ืงืขืŸ ืขืจืฉื˜ืขืจ ืฉื™ืงืŸ ืึท ืงืึทื‘ืึธืœืข ื“ืขืจืงืขื ื˜ืขื ื™ืฉ, ืื•ืŸ ืขืคึผืขืก ืฉืคึผืขื˜ืขืจ, ื“ื™ RPC ืขื ื˜ืคืขืจ ื–ื™ืš.

ื ืงืœื™ืขื ื˜ ื ืึธืจืžืึทืœื™ ื™ืงื ืึทืœื™ื“ื–ืฉื– ื“ื™ ืงืึทื‘ืึธืœืข ืคื•ืŸ โ€‹โ€‹ืึท ืึธื ื–ืึธื’ ืคื•ืŸ ืึท ืกืขืจื•ื•ืขืจ (ื™ื•ื–ืฉืึทื•ื•ืึทืœื™, ืึท RPC ืขื ื˜ืคืขืจ) ื“ื•ืจืš ืึทื“ื™ื ื’ ืึท ื“ืขืจืงืขื ื˜ืขื ื™ืฉ ืฆื• ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ RPC ืึธื ืคึฟืจืขื’ ืื•ื™ื‘ ืขืก ืื™ื– ื ื™ืฉื˜ ื˜ืจืึทื ืกืžื™ื˜ื˜ืขื“ ืฆื• ืฉืคึผืขื˜ (ืื•ื™ื‘ ืขืก ืื™ื– ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“, ื–ืึธื’ืŸ, 60-120 ืกืขืงื•ื ื“ืขืก ื ืึธืš ื“ื™ ืงืึทื‘ืึธืœืข. ืคื•ืŸ ืึท ืึธื ื–ืึธื’ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ). ืึธื‘ืขืจ, ืื•ื™ื‘ ืคึฟืึทืจ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜ ืขืก ืื™ื– ืงื™ื™ืŸ ืกื™ื‘ื” ืฆื• ืฉื™ืงืŸ ืึทืจื˜ื™ืงืœืขืŸ ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ ืึธื“ืขืจ ืื•ื™ื‘ ืขืก ืื™ื– ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ืึทื ืึทืงืงื ืึธื•ื•ืœืขื“ืขื“ ืึทืจื˜ื™ืงืœืขืŸ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ (ื–ืึธื’ืŸ ืื™ื‘ืขืจ 16), ื“ืขืจ ืงืœื™ืขื ื˜ ื˜ืจืึทื ืกืžื™ื˜ื˜ ืึท ืกื˜ืึทื ื“ืึทืœืึธื ืข ื“ืขืจืงืขื ื˜ืขื ื™ืฉ.

... ืื™ืš ืื™ื‘ืขืจื–ืขืฆืŸ: ืžื™ืจ ืึทืœื™ื™ืŸ ื˜ืึธืŸ ื ื™ื˜ ื•ื•ื™ืกืŸ ื•ื•ื™ ืคื™ืœ ืื•ืŸ ื•ื•ื™ ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง, ื ื•, ืœืึธืžื™ืจ ืึธืคึผืฉืึทืฆืŸ ืึทื– ืœืึธื–ืŸ ืขืก ื–ื™ื™ืŸ ืึทื–ื•ื™.

ืื•ืŸ ื•ื•ืขื’ืŸ ืคึผื™ื ื’ืก:

ืคึผื™ื ื’ ืึทืจื˜ื™ืงืœืขืŸ (ืคึผื™ื ื’ / ืคึผืึธื ื’)

ping#7abe77ec ping_id:long = Pong;

ื ืขื ื˜ืคืขืจ ืื™ื– ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ืื•ืžื’ืขืงืขืจื˜ ืฆื• ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืงืฉืจ:

pong#347773c5 msg_id:long ping_id:long = Pong;

ื“ื™ ืึทืจื˜ื™ืงืœืขืŸ ื˜ืึธืŸ ื ื™ื˜ ื“ืึทืจืคืŸ ืึทืงื ืึทืœื™ื“ื–ืฉืžืึทื ืฅ. ื ืคึผืึธื ื’ ืื™ื– ื˜ืจืึทื ืกืžื™ื˜ื˜ืขื“ ื‘ืœื•ื™ื– ืื™ืŸ ืขื ื˜ืคืขืจ ืฆื• ืึท ืคึผื™ื ื’ ื‘ืฉืขืช ืึท ืคึผื™ื ื’ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื™ื ื™ืฉื™ื™ื™ื˜ื™ื“ ื“ื•ืจืš ื™ืขื“ืขืจ ื–ื™ื™ึทื˜.

ื“ื™ืคืขืจื“ ืงืึทื ืขืงืฉืึทืŸ ืงืœืึธื•ื–ืฉืขืจ + ืคึผื™ื ื’

ping_delay_disconnect#f3427b8c ping_id:long disconnect_delay:int = Pong;

ืึทืจื‘ืขื˜ ื•ื•ื™ ืคึผื™ื ื’. ืื™ืŸ ื“ืขืจืฆื•, ื ืึธืš ื“ืขื ืื™ื– ื‘ืืงื•ืžืขืŸ, ื“ืขืจ ืกืขืจื•ื•ืขืจ ืกื˜ืึทืจืฅ ืึท ื˜ื™ื™ึทืžืขืจ ื•ื•ืึธืก ื•ื•ืขื˜ ืคืึทืจืžืึทื›ืŸ ื“ื™ ืงืจืึทื ื˜ ืงืฉืจ disconnect_delay ืกืขืงื•ื ื“ืขืก ืฉืคึผืขื˜ืขืจ ืกื™ื™ึทื“ืŸ ืขืก ื ืขืžื˜ ืึท ื ื™ื™ึทืข ืึธื ื–ืึธื’ ืคื•ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื˜ื™ืคึผ ื•ื•ืึธืก ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืจื™ืกื˜ืึทืจื˜ ืึทืœืข ืคืจื™ืขืจื“ื™ืงืข ื˜ื™ื™ืžืขืจื–. ืื•ื™ื‘ ื“ืขืจ ืงืœื™ืขื ื˜ ืกืขื ื“ื– ื“ื™ ืคึผื™ื ื’ืก ืึทืžืึธืœ ื™ืขื“ืขืจ 60 ืกืขืงื•ื ื“ืขืก, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืขืก ืงืขืŸ ืฉื˜ืขืœืŸ Disconnect_delay ื’ืœื™ื™ึทืš ืฆื• 75 ืกืขืงื•ื ื“ืขืก.

ื‘ื™ืกื˜ื• ืืจื•ื™ืก ืคื•ืŸ ื–ื™ื ืขืŸ?! ืื™ืŸ 60 ืกืขืงื•ื ื“ืขืก ื•ื•ืขื˜ ื“ื™ ื‘ืืŸ ืืจื™ื™ื ื’ื™ื™ืŸ ืื™ืŸ ื“ื™ ืกื˜ืื ืฆื™ืข, ืืคืœืื–ืŸ ืื•ืŸ ืื•ื™ืคื ืขืžืขืŸ ืคืืกืื–ืฉื™ืจืŸ, ืื•ืŸ ื•ื•ื™ื“ืขืจ ืคืืจืœื™ืจืŸ ืคืืจื‘ื™ื ื“ื•ื ื’ ืื™ื ืขื ื˜ื•ื ืขืœ. ืื™ืŸ 120 ืกืขืงื•ื ื“ืขืก, ื•ื•ืขืŸ ืื™ืจ ื ื™ื˜ืึธ, ืขืจ ื•ื•ืขื˜ ืงื•ืžืขืŸ ืฆื• ืื ื“ืขืจืŸ, ืื•ืŸ ื“ืขืจ ืงืฉืจ ื•ื•ืขื˜ ืจื•ื‘ึฟ ืžืกืชึผืžื ื‘ืจืขื›ืŸ. ื ื•, ืขืก ืื™ื– ืงืœืึธืจ ื•ื•ื• ื“ื™ ืœืขื’ืก ื•ื•ืึทืงืกืŸ ืคื•ืŸ - "ืื™ืš ื’ืขื”ืขืจื˜ ืึท ืจื™ื ื’ื™ื ื’, ืึธื‘ืขืจ ืื™ืš ื˜ืึธืŸ ื ื™ื˜ ื•ื•ื™ืกืŸ ื•ื•ื• ืขืก ืื™ื–", ืขืก ืื™ื– ื“ื™ ืึทืœื’ืขืจื™ื“ืึทื ืคื•ืŸ Nagle ืื•ืŸ ื“ื™ TCP_NODELAY ืึธืคึผืฆื™ืข, ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื‘ื“ืขื” ืคึฟืึทืจ ื™ื ื˜ืขืจืึทืงื˜ื™ื•ื• ืึทืจื‘ืขื˜. ืึธื‘ืขืจ, ืื ื˜ืฉื•ืœื“ื™ื’ื˜, ืคืึทืจื”ืึทืœื˜ืŸ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื•ื•ืขืจื˜ - 200 ืžื™ืœื™ืกืขืงื•ื ื“ืขืก. ืื•ื™ื‘ ืื™ืจ ื˜ืึทืงืข ื•ื•ื™ืœืŸ ืฆื• ืฉื™ืœื“ืขืจืŸ ืขืคึผืขืก ืขื ืœืขืš ืื•ืŸ ืฉืคึผืึธืจืŸ ืื•ื™ืฃ ืึท ืžืขื’ืœืขืš ืคึผืึธืจ ืคื•ืŸ ืคึผืึทืงื™ืฅ - ื ื•, ืฉื˜ืขืœืŸ ืขืก ืึทื•ื•ืขืง, ืœืคึผื—ื•ืช ืคึฟืึทืจ 5 ืกืขืงื•ื ื“ืขืก, ืึธื“ืขืจ ื•ื•ืขืœื›ืขืจ ื“ื™ ื˜ื™ื™ืžืึทื•ื˜ ืคื•ืŸ ื“ืขืจ ืึธื ื–ืึธื’ "ื‘ืึทื ื™ืฆืขืจ ืื™ื– ื˜ื™ื™ืคึผื™ื ื’ ..." ืื™ื– ืื™ืฆื˜ ื’ืœื™ื™ึทืš ืฆื•. ืื‘ืขืจ ื ื™ื˜ ืžืขืจ.

ืื•ืŸ ืœืขืกืึธืฃ, ืคึผื™ื ื’ืก. ื“ืึธืก ืื™ื–, ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืœืขื‘ืŸ ืคื•ืŸ ืึท ื˜ืงืคึผ ืงืฉืจ. ืขืก ืื™ื– ืžืึธื“ื ืข, ืึธื‘ืขืจ ืžื™ื˜ 10 ื™ืึธืจ ืฆื•ืจื™ืง ืื™ืš ื’ืขืฉืจื™ื‘ืŸ ืึท ืงืจื™ื˜ื™ืฉ ื˜ืขืงืกื˜ ื•ื•ืขื’ืŸ ื“ืขื ืฉืœื™ื— ืคื•ืŸ ื“ื™ ื”ืึธืกื˜ืขืœ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืคื™ื™ื™ืงื™ื™ึทื˜ - ื“ืึธืจื˜ ื“ื™ ืžื—ื‘ืจื™ื ืื•ื™ืš ืคึผื™ื ื’ ื“ื™ ืกืขืจื•ื•ืขืจ ืคื•ืŸ ื“ืขื ืงืœื™ืขื ื˜, ืื•ืŸ ื ื™ืฉื˜ ืคืึทืจืงืขืจื˜. ืึธื‘ืขืจ ื“ืจื™ื˜ ื™ืึธืจ ืกื˜ื•ื“ืขื ื˜ืŸ ื–ืขื ืขืŸ ืื™ื™ืŸ ื–ืึทืš, ืื•ืŸ ืึทืŸ ืื™ื ื˜ืขืจื ืึทืฆื™ืึธื ืึทืœืข ืึธืคื™ืก ืื™ื– ืืŸ ืื ื“ืขืจ, ืจืขื›ื˜? ..

ืขืจืฉื˜ืขืจ, ืึท ืงืœื™ื™ืŸ ื‘ื™ืœื“ื•ื ื’ืงืจื™ื™ื– ืคึผืจืึธื’ืจืึทื. ื TCP ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’, ืื™ืŸ ื“ืขืจ ืึทื•ื•ืขืง ืคื•ืŸ ืคึผืึทืงืึทื˜ ื•ื•ืขืงืกืœ, ืงืขื ืขืŸ ืœืขื‘ืŸ ืคึฟืึทืจ ื•ื•ืึธื›ืŸ. ื“ืึธืก ืื™ื– ื‘ื™ื™ื“ืข ื’ื•ื˜ ืื•ืŸ ืฉืœืขื›ื˜, ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ืฆื™ืœ. ื ื•, ืื•ื™ื‘ ืื™ืจ ื”ืึธื˜ ืึท SSH ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ ืึธื•ืคึผืึทื ื“, ืื™ืจ ื”ืึธื˜ ื–ื™ืš ืื•ื™ืคื’ืขื”ื•ื™ื‘ืŸ ืคื•ืŸ ื“ื™ื™ืŸ ืงืึธืžืคึผื™ื•ื˜ืขืจ, ืจืขื‘ืึธืึธื˜ืขื“ ื“ื™ ืžืึทื›ื˜ ืจืึทื•ื˜ืขืจ, ื–ื™ืš ืื•ืžื’ืขืงืขืจื˜ ืฆื• ื“ื™ื™ืŸ ืคึผืœืึทืฅ - ื“ื™ ืกืขืกื™ืข ื“ื•ืจืš ื“ืขื ืกืขืจื•ื•ืขืจ ืื™ื– ื ื™ืฉื˜ ืฆืขื‘ืจืื›ืŸ (ื ื™ืฉื˜ ื˜ื™ืคึผ ืขืคึผืขืก, ืขืก ื–ืขื ืขืŸ ืงื™ื™ืŸ ืคึผืึทืงื™ืฅ), ื‘ืึทืงื•ื•ืขื. ืขืก ืื™ื– ืฉืœืขื›ื˜ ืื•ื™ื‘ ืขืก ื–ืขื ืขืŸ ื˜ื•ื™ื–ื ื˜ืขืจ ืคื•ืŸ ืงืœื™ื™ืึทื ืฅ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ, ื™ืขื“ืขืจ ืื™ื™ื ืขืจ ื ืขืžื˜ ืจืขืกื•ืจืกืŸ (ื”ืขืœื Postgres!), ืื•ืŸ ื“ืขืจ ืงืœื™ืขื ื˜ ื‘ืึทืœืขื‘ืึธืก ืงืขืŸ ื”ืึธื‘ืŸ ืจืขื‘ืึธืึธื˜ืขื“ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜ ืฆื•ืจื™ืง - ืึธื‘ืขืจ ืžื™ืจ ื•ื•ืขืœืŸ ื ื™ืฉื˜ ื•ื•ื™ืกืŸ ื•ื•ืขื’ืŸ ืื™ื.

ืฉืžื•ืขืกืŸ / ื™ื ืกื™ืกื˜ืขืžืขืŸ ื’ืขื”ืขืจืŸ ืฆื• ื“ื™ ืจื’ืข ืคืึทืœ ืคึฟืึทืจ ืืŸ ืื ื“ืขืจ, ื ืึธืš ืกื™ื‘ื” - ืึธื ืœื™ื™ืŸ ืกื˜ืึทื˜ื•ืกืขืก. ืื•ื™ื‘ ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ "ื’ืขืคืืœืŸ ืึทื•ื•ืขืง", ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ืžื™ื˜ื˜ื™ื™ืœืŸ ื–ื™ื™ืŸ ื™ื ื˜ืขืจืœืึทืงื™ืึทื˜ืขืจื– ื•ื•ืขื’ืŸ ืื™ื. ืึทื ื“ืขืจืฉ, ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึท ื’ืจื™ื™ึทื– ื•ื•ืึธืก ื“ื™ ืงืจื™ื™ื™ื˜ืขืจื– ืคื•ืŸ ื“ื–ืฉืึทื‘ืขืจ ื’ืขืžืื›ื˜ (ืื•ืŸ ืงืขืจืขืงื˜ืึทื“ ืคึฟืึทืจ 20 ื™ืืจ) - ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื“ื™ืกืงืึทื ืขืงื˜ื™ื“, ืึธื‘ืขืจ ื–ื™ื™ ืคืึธืจื–ืขืฆืŸ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึทืจื˜ื™ืงืœืขืŸ ืฆื• ืื™ื, ื’ืœื•ื™ื‘ื™ืง ืึทื– ืขืจ ืื™ื– ืึธื ืœื™ื™ืŸ (ื•ื•ืึธืก ื–ืขื ืขืŸ ืื•ื™ืš ื’ืึธืจ ืคืึทืจืคืึทืœืŸ ืื™ืŸ ื“ื™ ื‘ื™ืกืœ ืžื™ื ื•ื˜ ืคืจื™ืขืจ ื“ื™ ื‘ืจืขื›ืŸ ืื™ื– ื“ื™ืกืงืึทื•ื•ืขืจื“). ื ื™ื™ืŸ, ื“ื™ TCP_KEEPALIVE ืึธืคึผืฆื™ืข, ื•ื•ืึธืก ืคื™ืœืข ืžืขื ื˜ืฉืŸ ื•ื•ืึธืก ื˜ืึธืŸ ื ื™ื˜ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ื™ ื˜ืงืคึผ ื˜ื™ื™ืžืขืจื– ืึทืจื‘ืขื˜, ืคึผืึธืคึผืก ืขืจื’ืขืฅ (ื“ื•ืจืš ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื•ื•ื™ืœื“ ื•ื•ืึทืœื•ืขืก ื•ื•ื™ ื˜ืขื ืก ืคื•ืŸ ืกืขืงื•ื ื“ืขืก), ื•ื•ืขื˜ ื ื™ืฉื˜ ื”ืขืœืคืŸ ื“ืึธ - ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ื ื™ื˜ ื‘ืœื•ื™ื– ื“ื™ OS ืงืขืจืŸ ืคื•ืŸ ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ 'ืก ืžืึทืฉื™ืŸ ืื™ื– ืœืขื‘ืขื“ื™ืง, ืึธื‘ืขืจ ืื•ื™ืš ืคืึทื ื’ืงืฉืึทื ื– ื ืึธืจืžืึทืœื™, ืงืขื ืขืŸ ืฆื• ืขื ื˜ืคึฟืขืจืŸ, ืื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื–ื™ืš (ืฆื™ ืื™ืจ ื˜ืจืึทื›ื˜ืŸ ืขืก ืงืขืŸ ื ื™ืฉื˜ ืคืจื™ืจืŸ? ื˜ืขืœืขื’ืจืึทื ื“ืขืกืงื˜ืึธืคึผ ืื•ื™ืฃ ื•ื‘ื•ื ื˜ื• 18.04 ืื™ื– ืงืจืึทืฉื˜ ืคึฟืึทืจ ืžื™ืจ ืจื™ืคึผื™ื˜ื™ื“ืœื™).

ืึทื– ืื™ื– ื•ื•ืึธืก ืื™ืจ ื–ืึธืœ ืคึผื™ื ื’ ืกืขืจื•ื•ืขืจ ืงืœื™ืขื ื˜, ืื•ืŸ ื ื™ื˜ ื•ื•ื™ืฆืข ื•ื•ืขืจืกืึท - ืื•ื™ื‘ ื“ืขืจ ืงืœื™ืขื ื˜ ื˜ื•ื˜ ื“ืึธืก, ื•ื•ืขืŸ ื“ื™ ืงืฉืจ ืื™ื– ืฆืขื‘ืจืื›ืŸ, ื“ื™ ืคึผื™ื ื’ ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืื™ื‘ืขืจื’ืขื’ืขื‘ืŸ, ื“ืขืจ ืฆื™ืœ ืื™ื– ื ื™ืฉื˜ ืึทื˜ืฉื™ื•ื•ื“.

ืื•ืŸ ื•ื•ืึธืก ื˜ืึธืŸ ืžื™ืจ ื–ืขืŸ ืื™ืŸ ื˜ืขืœืขื’ืจืึทื? ืึทืœืฅ ืื™ื– ืคึผื•ื ืงื˜ ืคืึทืจืงืขืจื˜! ื ื•, ื“.ื”. ืคืึธืจืžืึทืœื™, ืคื•ืŸ ืงื•ืจืก, ื‘ื™ื™ื“ืข ื–ื™ื™ื˜ืŸ ืงืขื ืขืŸ ืคึผื™ื ื’ ื™ืขื“ืขืจ ืื ื“ืขืจืข. ืื™ืŸ ืคื™ืจ, ืงืœื™ื™ืึทื ืฅ ื ื•ืฆืŸ ืึท ืงืจืึทื˜ืฉ ping_delay_disconnect, ื•ื•ืึธืก ืงืึธืงืก ืึท ื˜ื™ื™ึทืžืขืจ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ. ื ื•, ืื ื˜ืฉื•ืœื“ื™ื’ื˜, ืขืก ืื™ื– ื ื™ืฉื˜ ื“ืขืจ ืงืœื™ืขื ื˜ 'ืก ื’ืขืฉืขืคื˜ ืฆื• ื‘ืึทืฉืœื™ืกืŸ ื•ื•ื™ ืœืึทื ื’ ืขืจ ื•ื•ื™ืœ ืฆื• ืœืขื‘ืŸ ื“ืึธืจื˜ ืึธืŸ ืคึผื™ื ื’. ื“ืขืจ ืกืขืจื•ื•ืขืจ, ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื–ื™ื™ืŸ ืžืึทืกืข, ื•ื•ื™ื™ืกื˜ ื‘ืขืกืขืจ. ืึธื‘ืขืจ, ืคื•ืŸ ืงื•ืจืก, ืื•ื™ื‘ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ืคื™ืœืŸ ื ืขื‘ืขื›ื“ื™ืง ืคึฟืึทืจ ื“ื™ ืจืขืกื•ืจืกืŸ, ื“ื™ ื‘ื™ื™ื– ืคึผื™ื ืึธืงื˜ืฉื™ืึธ ื–ืขื ืขืŸ ื–ื™ืš, ืื•ืŸ ื“ื™ ืงืจืึทื˜ืฉ ื•ื•ืขื˜ ืคืึทืœืŸ ืึทืจืึธืคึผ ...

ื•ื•ื™ ื–ืึธืœ ืขืก ื–ื™ื™ืŸ ื“ื™ื–ื™ื™ื ื“?

ืื™ืš ื’ืœื•ื™ื‘ืŸ ืึทื– ื“ื™ ืื•ื™ื‘ืŸ Facts ื’ืึทื ืฅ ืงืœืืจ ืึธื ื•ื•ื™ื™ึทื–ืŸ ื“ื™ ื ื™ืฉื˜ ื–ื™ื™ืขืจ ื”ื•ื™ืš ืงืึทืžืคึผืึทื˜ื™ื ืก ืคื•ืŸ ื“ื™ ื˜ืขืœืขื’ืจืึทื / ื•ื•ืงืึธื ื˜ืึทืงื˜ืข ืžืึทื ืฉืึทืคึฟื˜ ืื™ืŸ ื“ื™ ืคืขืœื“ ืคื•ืŸ ืึทืจื™ื‘ืขืจืคื™ืจืŸ (ืื•ืŸ ื ื™ื“ืขืจื™ืงืขืจ) ืžื“ืจื’ื” ืคื•ืŸ ืงืึธืžืคึผื™ื•ื˜ืขืจ ื ืขื˜ื•ื•ืึธืจืงืก ืื•ืŸ ื–ื™ื™ืขืจ ื ื™ื“ืขืจื™ืง ืงื•ื•ืึทืœื™ืคื™ืงืึทืฆื™ืข ืื™ืŸ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืขื ื™ื ื™ื.

ืคืืจื•ื•ืืก ืื™ื– ืขืก ื’ืขื•ื•ืขืŸ ืึทื–ื•ื™ ืงืึธืžืคึผืœื™ืฆื™ืจื˜, ืื•ืŸ ื•ื•ื™ ืงืขื ืขืŸ ื˜ืขืœืขื’ืจืึทื ืึทืจืงืึทื˜ืขืงืฅ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืึทื‘ื“ื–ืฉืขืงื˜? ื“ืขืจ ืคืึทืงื˜ ืึทื– ื–ื™ื™ ื’ืขืคืจื•ื•ื•ื˜ ืฆื• ืžืึทื›ืŸ ืึท ืกืขืกื™ืข ื•ื•ืึธืก ืกืขืจื•ื•ื™ื™ื•ื•ื– TCP ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ื‘ืจื™ื™ืงืก, ื“ืึธืก ืื™ื–, ื•ื•ืึธืก ืžื™ืจ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ื‘ืึทืคืจื™ื™ึทืขืŸ ืื™ืฆื˜, ืžื™ืจ ื•ื•ืขื˜ ืฆื•ืฉื˜ืขืœืŸ ืฉืคึผืขื˜ืขืจ. ื–ื™ื™ ื”ืื‘ืŸ ืžืกืชืžื ืื•ื™ืš ืคืจื•ื‘ื™ืจื˜ ืฆื• ืžืื›ืŸ ื•ื“"ืค ื˜ืจืื ืกืคืืจื˜, ื›ืื˜ืฉ ื–ื™ื™ ื–ืขื ืขืŸ ื’ืขืœืืคืŸ ืื™ืŸ ืฉื•ื•ืขืจื™ื’ืงื™ื™ื˜ืŸ ืื•ืŸ ื“ืืก ืคืืจืœืื–ืŸ (ื“ืขืจื™ื‘ืขืจ ืื™ื– ื“ื™ ื“ืืงื•ืžืขื ื˜ืืฆื™ืข ืœื™ื™ื“ื™ื’ - ืก'ืื™ื– ื ื™ืฉื˜ ื’ืขื•ื•ืขืŸ ืžื™ื˜ ื•ื•ืืก ืฆื• ื‘ืึทืจื™ืžืขืŸ). ืึธื‘ืขืจ ืจืขื›ื˜ ืฆื• ืึท ืคืขืœืŸ ืคื•ืŸ ืคืืจืฉื˜ืื ื“ ืคื•ืŸ ื•ื•ื™ ื ืขื˜ื•ื•ืึธืจืงืก ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ ืื•ืŸ ื˜ืงืคึผ ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ ืึทืจื‘ืขื˜, ื•ื•ื• ืื™ืจ ืงืขื ืขืŸ ืคืึทืจืœืึธื–ื  ื–ื™ืš ืขืก, ืื•ืŸ ื•ื•ื• ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื˜ืึธืŸ ื“ืึธืก ื–ื™ืš (ืื•ืŸ ื•ื•ื™), ืื•ืŸ ืคืจื•ื•ื•ืŸ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ื“ืึธืก ืžื™ื˜ ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ "ืื™ื™ืŸ ืฉืึธืก ืคื•ืŸ ืฆื•ื•ื™ื™ ืคืฒื’ืœ ืžื™ื˜ ืืฒืŸ ืฉื˜ืฒืŸืด โ€” ื”ืื˜ ื–ื™ืš ืืจื•ื™ืื’ืขืฐื™ื–ืŸ ืื–ื ืงืื“ืืฐืขืจ.

ื•ื•ื™ ื–ืึธืœ ืขืก ื–ื™ื™ืŸ? ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ื“ืขื ืคืึทืงื˜ ืึทื– msg_id ืื™ื– ืึท ื˜ื™ืžืขืกื˜ืึทืžืคึผ ื•ื•ืึธืก ืื™ื– ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ืงืึทืœืœื™ ื ื™ื™ื˜ื™ืง ืฆื• ืคืึทืจืžื™ื™ึทื“ืŸ ืจื™ืคึผืœื™ื™ ืื ืคืืœืŸ, ืขืก ืื™ื– ืึท ื˜ืขื•ืช ืฆื• ืฆื•ื˜ืฉืขืคึผืขืŸ ืึท ื™ื™ื ืฆื™ืง ื™ื“ืขื ื˜ื™ืคื™ืขืจ ืคื•ื ืงืฆื™ืข ืฆื• ืขืก. ื“ืขืจื™ื‘ืขืจ, ืึธืŸ ื“ืจืึทืกื˜ื™ืงืœื™ ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ืงืจืึทื ื˜ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ (ื•ื•ืขืŸ ื“ื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ืคืึธื“ืขื ืื™ื– ื’ืขืฉืืคืŸ, ื“ืึธืก ืื™ื– ืึท ื”ื•ื™ืš-ืžื“ืจื’ื” ืึทืคึผื™ ื˜ืขืžืข ืคึฟืึทืจ ืืŸ ืื ื“ืขืจ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹ืึทืจื˜ื™ืงืœืขืŸ), ืื™ืจ ื•ื•ืึธืœื˜ ื”ืึธื‘ืŸ ืฆื•:

  1. ื“ืขืจ ืกืขืจื•ื•ืขืจ ื•ื•ืึธืก ื”ืืœื˜ืŸ ื“ื™ ื˜ืงืคึผ ืงืฉืจ ืฆื• ื“ืขื ืงืœื™ืขื ื˜ ื ืขืžื˜ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ - ืื•ื™ื‘ ืื™ืจ ืกืึทื‘ื˜ืจืึทืงื˜ื™ื“ ืคื•ืŸ ื“ื™ ื›ืึธืœืขืœ, ื‘ื™ื˜ืข ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ, ืคึผืจืึธืฆืขืก ืึธื“ืขืจ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืึท ื˜ืขื•ืช, ืงื™ื™ืŸ ืึธื ื•ื•ืขืจ. ื“ืขืจื ืึธืš ื“ื™ ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’ ืื™ื– ื ื™ืฉื˜ ืึท ื•ื•ืขืงื˜ืึธืจ ืคื•ืŸ ืฉื™ื™ึทืŸ, ืึธื‘ืขืจ ืคืฉื•ื˜ "ื“ื™ ืœืขืฆื˜ืข ื‘ืืงื•ืžืขืŸ ืกืขืง_ื ืึธ" - ื ืึธืจ ืึท ื ื•ืžืขืจ, ื•ื•ื™ ืื™ืŸ ื˜ืงืคึผ (ืฆื•ื•ื™ื™ ื ื•ืžืขืจืŸ - ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืกืขืง ืื•ืŸ ื‘ืืฉื˜ืขื˜ื™ืงื˜). ืžื™ืจ ื–ืขื ืขืŸ ืฉื˜ืขื ื“ื™ืง ืื™ืŸ ืกืขืกื™ืข, ืื™ื– ื ื™ื˜ ืžื™ืจ?
  2. ื“ืขืจ ื˜ื™ืžืขืกื˜ืึทืžืคึผ ืฆื• ืคืึทืจืžื™ื™ึทื“ืŸ ืจื™ืคึผืœื™ื™ ืื ืคืืœืŸ ื•ื•ืขืจื˜ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืคืขืœื“, ืึท ืœืึท ื ืึทื ืกืข. ืึธืคึผื’ืขืฉื˜ืขืœื˜, ืึธื‘ืขืจ ื’ืึธืจื ื™ืฉื˜ ืึทื ื“ืขืจืฉ ืื™ื– ืึทืคืขืงื˜ืึทื“. ื’ืขื ื•ื’ ืื•ืŸ uint32 - ืื•ื™ื‘ ืื•ื ื“ื–ืขืจ ื–ืึทืœืฅ ืขื ื“ืขืจื•ื ื’ืขืŸ ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ ื™ืขื“ืขืจ ื”ืึทืœื‘ ืึท ื˜ืึธื’, ืžื™ืจ ืงืขื ืขืŸ ืฆื•ื˜ื™ื™ืœืŸ 16 ื‘ื™ื˜ืŸ ืฆื• ื“ื™ ื ื™ื“ืขืจื™ืงืขืจ ื‘ื™ื˜ืŸ ืคื•ืŸ ื“ื™ ื’ืึทื ืฅ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืงืจืึทื ื˜ ืฆื™ื™ึทื˜, ื“ื™ ืžื ื•ื—ื” - ืฆื• ื“ื™ ืคืจืึทืงืฉืึทื ืึทืœ ื˜ื™ื™ืœ ืคื•ืŸ ืึท ืจื’ืข (ื•ื•ื™ ืขืก ืื™ื– ืื™ืฆื˜).
  3. ืฆื•ืจื™ืงื’ืขืฆื•ื™ื’ืŸ msg_id ื‘ื›ืœืœ - ืคึฟื•ืŸ ื“ื™ ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’ ืคื•ืŸ ื“ื™ืกื˜ื™ื ื’ื’ื•ื•ื™ืฉื™ื ื’ ืจื™ืงื•ื•ืขืก ืื•ื™ืฃ ื“ื™ ื‘ืึทืงืขื ื“ื–, ืขืก ืื™ื–, ืขืจืฉื˜ืขืจ, ื“ื™ ืงืœื™ืขื ื˜ ืฉื™ื™ึทืŸ, ืื•ืŸ ืฆื•ื•ื™ื™ื˜ื ืก, ื“ื™ ืกืขืกื™ืข ืฉื™ื™ึทืŸ, ืื•ืŸ ืงืึทื ืงืึทื˜ืึทื ื™ื™ื˜ ื–ื™ื™. ืึทืงืงืึธืจื“ื™ื ื’ืœื™, ื•ื•ื™ ืึท ื‘ืงืฉื” ื™ื“ืขื ื˜ื™ืคื™ืขืจ, ื‘ืœื•ื™ื– ืื™ื™ืŸ ืื™ื– ื’ืขื ื•ื’ seq_no.

ืื•ื™ืš ื ื™ืฉื˜ ื“ืขืจ ื‘ืขืกื˜ืขืจ ืึธืคึผืฆื™ืข, ืึท ื’ืึทื ืฅ ื˜ืจืึทืค ืงืขืŸ ื“ื™ื ืขืŸ ื•ื•ื™ ืึท ืื™ื“ืขื ื˜ื™ื˜ืขื˜ - ื“ืึธืก ืื™ื– ืฉื•ื™ืŸ ื’ืขื˜ืืŸ ืื™ืŸ ื“ื™ ื”ื•ื™ืš-ืžื“ืจื’ื” API ื•ื•ืขืŸ ืฉื™ืงื˜ ืึท ืึธื ื–ืึธื’, ื“ื•ืจืš ื“ืขื ื•ื•ืขื’. ืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ื‘ืขืกืขืจ ืฆื• ืจื™ืžื™ื™ืง ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืคื•ืŸ ืงืึธืจืขื•ื• ืฆื• ืึทื‘ืกืึธืœื•ื˜ ื‘ืขืกืึทื›ืึทืงืœ, ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ืึท ื˜ืขืžืข ืคึฟืึทืจ ืืŸ ืื ื“ืขืจ ื˜ื™ื™ืœ, ื ื™ืฉื˜ ื“ืขื ืคึผืึธืกื˜ืŸ.

ืึทืคึผื™?

ื˜ืึทืงืข! ืึทื–ื•ื™, ื•ื•ืขืŸ ืžื™ืจ ื”ืึธื‘ืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืึท ื•ื•ืขื’ ืคื•ืœ ืžื™ื˜ ื•ื•ื™ื™ื˜ื™ืง ืื•ืŸ ืงืจืึทื˜ืฉื™ื–, ืžื™ืจ ื–ืขื ืขืŸ ืœืขืกืึธืฃ ื‘ื™ื›ื•ืœืช ืฆื• ืฉื™ืงืŸ ืงื™ื™ืŸ ืจื™ืงื•ื•ืขืก ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ ืื•ืŸ ื‘ืึทืงื•ืžืขืŸ ืงื™ื™ืŸ ืขื ื˜ืคึฟืขืจืก ืฆื• ื–ื™ื™, ื•ื•ื™ ืื•ื™ืš ื‘ืึทืงื•ืžืขืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ (ื ื™ืฉื˜ ืื™ืŸ ืขื ื˜ืคืขืจ ืฆื• ืึท ื‘ืงืฉื”, ืึธื‘ืขืจ ืขืก ืกืขื ื“ื– ืื•ื ื“ื– ื–ื™ืš, ืึทื–ืึท ื•ื•ื™ PUSH, ืื•ื™ื‘ ื•ื•ืขืจ ืขืก ื™ื– ืึทื–ื•ื™ ืคื™ืœ ืงืœืึธืจ).

ืื›ื˜ื•ื ื’, ืื™ืฆื˜ ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ืขืจ ื‘ืœื•ื™ื– ืคึผืขืจืœ ื‘ื™ื™ึทืฉืคึผื™ืœ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ! (ืคึฟืึทืจ ื“ื™ ื ื™ืฉื˜ ื‘ืึทืงืึทื ื˜ ืžื™ื˜ ื“ื™ ืกื™ื ื˜ืึทืงืก, ื“ืขืจ ืขืจืฉื˜ืขืจ ืึทืจื’ื•ืžืขื ื˜ ืฆื• ื‘ืขื ื˜ืฉืŸ ืื™ื– ื“ื™ ื“ืึทื˜ืŸ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ื“ื™ ื›ื™ื™ืคืขืฅ, ื“ื™ ืจื’ืข ืื™ื– ื–ื™ื™ึทืŸ ืงืœืึทืก):

2019.10.24 12:00:51 $1 = {
'cb' => 'TeleUpd::__ANON__',
'out' => bless( {
'filter' => bless( {}, 'Telegram::ChannelMessagesFilterEmpty' ),
'channel' => bless( {
'access_hash' => '-6698103710539760874',
'channel_id' => '1380524958'
}, 'Telegram::InputPeerChannel' ),
'pts' => '158503',
'flags' => 0,
'limit' => 0
}, 'Telegram::Updates::GetChannelDifference' ),
'req_id' => '6751291954012037292'
};
2019.10.24 12:00:51 $1 = {
'in' => bless( {
'req_msg_id' => '6751291954012037292',
'result' => bless( {
'pts' => 158508,
'flags' => 3,
'final' => 1,
'new_messages' => [],
'users' => [],
'chats' => [
bless( {
'title' => 'ะฅัƒะปะธะฝะพะผะธะบะฐ',
'username' => 'hoolinomics',
'flags' => 8288,
'id' => 1380524958,
'access_hash' => '-6698103710539760874',
'broadcast' => 1,
'version' => 0,
'photo' => bless( {
'photo_small' => bless( {
'volume_id' => 246933270,
'file_reference' => '
'secret' => '1854156056801727328',
'local_id' => 228648,
'dc_id' => 2
}, 'Telegram::FileLocation' ),
'photo_big' => bless( {
'dc_id' => 2,
'local_id' => 228650,
'file_reference' => '
'secret' => '1275570353387113110',
'volume_id' => 246933270
}, 'Telegram::FileLocation' )
}, 'Telegram::ChatPhoto' ),
'date' => 1531221081
}, 'Telegram::Channel' )
],
'timeout' => 300,
'other_updates' => [
bless( {
'pts_count' => 0,
'message' => bless( {
'post' => 1,
'id' => 852,
'flags' => 50368,
'views' => 8013,
'entities' => [
bless( {
'length' => 20,
'offset' => 0
}, 'Telegram::MessageEntityBold' ),
bless( {
'length' => 18,
'offset' => 480,
'url' => 'https://alexeymarkov.livejournal.com/[url_ะฒั‹ั€ะตะทะฐะฝ].html'
}, 'Telegram::MessageEntityTextUrl' )
],
'reply_markup' => bless( {
'rows' => [
bless( {
'buttons' => [
bless( {
'text' => '???? 165',
'data' => 'send_reaction_0'
}, 'Telegram::KeyboardButtonCallback' ),
bless( {
'data' => 'send_reaction_1',
'text' => '???? 9'
}, 'Telegram::KeyboardButtonCallback' )
]
}, 'Telegram::KeyboardButtonRow' )
]
}, 'Telegram::ReplyInlineMarkup' ),
'message' => 'ะ ะฒะพั‚ ะธ ะฝะพะฒะฐั ะบะฝะธะณะฐ! 
// [ั‚ะตะบัั‚ ัะพะพะฑั‰ะตะฝะธั ะฒั‹ั€ะตะทะฐะฝ ั‡ั‚ะพะฑ ะฝะต ะฝะฐั€ัƒัˆะฐั‚ัŒ ะฟั€ะฐะฒะธะป ะฅะฐะฑั€ะฐ ะพ ั€ะตะบะปะฐะผะต]
ะฝะฐะฟะตั‡ะฐั‚ะฐัŽ.',
'to_id' => bless( {
'channel_id' => 1380524958
}, 'Telegram::PeerChannel' ),
'date' => 1571724559,
'edit_date' => 1571907562
}, 'Telegram::Message' ),
'pts' => 158508
}, 'Telegram::UpdateEditChannelMessage' ),
bless( {
'pts' => 158508,
'message' => bless( {
'edit_date' => 1571907589,
'to_id' => bless( {
'channel_id' => 1380524958
}, 'Telegram::PeerChannel' ),
'date' => 1571807301,
'message' => 'ะŸะพั‡ะตะผัƒ ะ’ั‹ ัั‡ะธั‚ะฐะตั‚ะต Facebook ะฟะปะพั…ะพะน ะบะพะผะฟะฐะฝะธะตะน? ะœะพะถะตั‚ะต ะฟั€ะพะบะพะผะผะตะฝั‚ะธั€ะพะฒะฐั‚ัŒ? ะŸะพ-ะผะพะตะผัƒ, ัั‚ะพ ัˆะธะบะฐั€ะฝะฐั ะบะพะผะฟะฐะฝะธั. ะ‘ะตะท ะดะพะปะณะพะฒ, ั ั…ะพั€ะพัˆะตะน ะฟั€ะธะฑั‹ะปัŒัŽ, ะฐ ะตัะปะธ ั€ะตัˆะฐั‚ ะดะธะฒั‹ ะฟะปะฐั‚ะธั‚ัŒ, ั‚ะพ ะธ ะตั‰ะต ะผะพะณัƒั‚ ะฝะตั…ะธะปะพ ะฟะพะดะพั€ะพะถะฐั‚ัŒ.
ะ”ะปั ะผะตะฝั ะพั‚ะฒะตั‚ ัะพะฒะตั€ัˆะตะฝะฝะพ ะพั‡ะตะฒะธะดะตะฝ: ะฟะพั‚ะพะผัƒ ั‡ั‚ะพ Facebook ะดะตะปะฐะตั‚ ัƒะถะฐัะฝั‹ะน ะฟะพ ะบะฐั‡ะตัั‚ะฒัƒ ะฟั€ะพะดัƒะบั‚. ะ”ะฐ, ัƒ ะฝะตะณะพ ะผะพะฝะพะฟะพะปัŒะฝะพะต ะฟะพะปะพะถะตะฝะธะต ะธ ะดะฐ, ะธะผ ะฟะพะปัŒะทัƒะตั‚ัั ะพะณั€ะพะผะฝะพะต ะบะพะปะธั‡ะตัั‚ะฒะพ ะปัŽะดะตะน. ะะพ ะผะธั€ ะฝะต ัั‚ะพะธั‚ ะฝะฐ ะผะตัั‚ะต. ะšะพะณะดะฐ-ั‚ะพ ะฒะปะฐะดะตะปัŒั†ะฐะผ ะะพะบะธะธ ะฑั‹ะปะพ ัะผะตัˆะฝะพ ะพั‚ ะฟะตั€ะฒะพะณะพ ะะนั„ะพะฝะฐ. ะžะฝะธ ะดัƒะผะฐะปะธ, ั‡ั‚ะพ ะปัƒั‡ัˆะต ะะพะบะธะธ ะฝะธั‡ะตะณะพ ะฑั‹ั‚ัŒ ะฝะต ะผะพะถะตั‚ ะธ ะพะฝะฐ ะฝะฐะฒัะตะณะดะฐ ะพัั‚ะฐะฝะตั‚ัั ัะฐะผั‹ะผ ัƒะดะพะฑะฝั‹ะผ, ะบั€ะฐัะธะฒั‹ะผ ะธ ั‚ะฒั‘ั€ะดั‹ะผ ั‚ะตะปะตั„ะพะฝะพะผ - ะธ ะดะพะปั ั€ั‹ะฝะบะฐ ัั‚ะพ ะบั€ะฐัะฝะพั€ะตั‡ะธะฒะพ ะดะตะผะพะฝัั‚ั€ะธั€ะพะฒะฐะปะฐ. ะขะตะฟะตั€ัŒ ะธะผ ะฝะต ัะผะตัˆะฝะพ.
ะšะพะฝะตั‡ะฝะพ, ั€ะตะฟั‚ะธะปะพะธะดั‹ ัะพะฟั€ะพั‚ะธะฒะปััŽั‚ัั ะฝะฐะฟะพั€ัƒ ะผะพะปะพะดั‹ั… ะณะตะฝะธะตะฒ: ั‚ะฐะบ ะฆัƒะบะตั€ะฑะตั€ะณะพะผ ะฑั‹ะป ะฟะพะถั€ะฐะฝ Whatsapp, ะฟะพั‚ะพะผ Instagram. ะะพ ะฒัั‘ ะธะผ ะฝะต ะฟะพะถั€ะฐั‚ัŒ, ะŸะฐัˆะฐ ะ”ัƒั€ะพะฒ ะฝะต ะฟั€ะพะดะฐั‘ั‚ัั!
ะขะฐะบ ะฑัƒะดะตั‚ ะธ ั ะคะตะนัะฑัƒะบะพะผ. ะะตะปัŒะทั ะฒัั‘ ะฒั€ะตะผั ะดะตะปะฐั‚ัŒ ะณะพะฒะฝะพ. ะšั‚ะพ-ั‚ะพ ะบะพะณะดะฐ-ั‚ะพ ัะดะตะปะฐะตั‚ ั…ะพั€ะพัˆะธะน ะฟั€ะพะดัƒะบั‚, ะบัƒะดะฐ ะฒัั‘ ะธ ัƒะนะดัƒั‚.
#ัะพั†ัะตั‚ะธ #facebook #ะฐะบั†ะธะธ #ั€ะตะฟั‚ะธะปะพะธะดั‹',
'reply_markup' => bless( {
'rows' => [
bless( {
'buttons' => [
bless( {
'data' => 'send_reaction_0',
'text' => '???? 452'
}, 'Telegram::KeyboardButtonCallback' ),
bless( {
'text' => '???? 21',
'data' => 'send_reaction_1'
}, 'Telegram::KeyboardButtonCallback' )
]
}, 'Telegram::KeyboardButtonRow' )
]
}, 'Telegram::ReplyInlineMarkup' ),
'entities' => [
bless( {
'length' => 199,
'offset' => 0
}, 'Telegram::MessageEntityBold' ),
bless( {
'length' => 8,
'offset' => 919
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'offset' => 928,
'length' => 9
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'length' => 6,
'offset' => 938
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'length' => 11,
'offset' => 945
}, 'Telegram::MessageEntityHashtag' )
],
'views' => 6964,
'flags' => 50368,
'id' => 854,
'post' => 1
}, 'Telegram::Message' ),
'pts_count' => 0
}, 'Telegram::UpdateEditChannelMessage' ),
bless( {
'message' => bless( {
'reply_markup' => bless( {
'rows' => [
bless( {
'buttons' => [
bless( {
'data' => 'send_reaction_0',
'text' => '???? 213'
}, 'Telegram::KeyboardButtonCallback' ),
bless( {
'data' => 'send_reaction_1',
'text' => '???? 8'
}, 'Telegram::KeyboardButtonCallback' )
]
}, 'Telegram::KeyboardButtonRow' )
]
}, 'Telegram::ReplyInlineMarkup' ),
'views' => 2940,
'entities' => [
bless( {
'length' => 609,
'offset' => 348
}, 'Telegram::MessageEntityItalic' )
],
'flags' => 50368,
'post' => 1,
'id' => 857,
'edit_date' => 1571907636,
'date' => 1571902479,
'to_id' => bless( {
'channel_id' => 1380524958
}, 'Telegram::PeerChannel' ),
'message' => 'ะŸะพัั‚ ะฟั€ะพ 1ะก ะฒั‹ะทะฒะฐะป ะฑัƒั€ะฝัƒัŽ ะฟะพะปะตะผะธะบัƒ. ะงะตะปะพะฒะตะบ 10 (ะฒะธะดะธะผะพ, 1ั-ะฟั€ะพะณั€ะฐะผะผะธัั‚ะพะฒ) ะตะดะธะฝะพะดัƒัˆะฝะพ ะฝะฐะฟะธัะฐะปะธ:
// [ั‚ะตะบัั‚ ัะพะพะฑั‰ะตะฝะธั ะฒั‹ั€ะตะทะฐะฝ ั‡ั‚ะพะฑ ะฝะต ะฝะฐั€ัƒัˆะฐั‚ัŒ ะฟั€ะฐะฒะธะป ะฅะฐะฑั€ะฐ ะพ ั€ะตะบะปะฐะผะต]
ะฏ ะฑั‹ ะดะพะฑะฐะฒะธะป, ั‡ั‚ะพ ะฑะปะตัั‚ัั‰ะฐั ัƒ 1ะก ะดะธัั‚ั€ะธะฑัƒั†ะธั, ะฐ ะผะฐั€ะบะตั‚ะธะฝะณ... ะฝัƒ, ั‚ะฐะบะพะต.'
}, 'Telegram::Message' ),
'pts_count' => 0,
'pts' => 158508
}, 'Telegram::UpdateEditChannelMessage' ),
bless( {
'pts' => 158508,
'pts_count' => 0,
'message' => bless( {
'message' => 'ะ—ะดั€ะฐะฒัั‚ะฒัƒะนั‚ะต, ั€ะฐััะบะฐะถะธั‚ะต, ะฟะพะถะฐะปัƒะนัั‚ะฐ, ั‡ะตะผ ะฒั€ะตะดะธั‚ ัะบะพะฝะพะผะธะบะต 1ะก?
// [ั‚ะตะบัั‚ ัะพะพะฑั‰ะตะฝะธั ะฒั‹ั€ะตะทะฐะฝ ั‡ั‚ะพะฑ ะฝะต ะฝะฐั€ัƒัˆะฐั‚ัŒ ะฟั€ะฐะฒะธะป ะฅะฐะฑั€ะฐ ะพ ั€ะตะบะปะฐะผะต]
#ัะพั„ั‚ #it #ัะบะพะฝะพะผะธะบะฐ',
'edit_date' => 1571907650,
'date' => 1571893707,
'to_id' => bless( {
'channel_id' => 1380524958
}, 'Telegram::PeerChannel' ),
'flags' => 50368,
'post' => 1,
'id' => 856,
'reply_markup' => bless( {
'rows' => [
bless( {
'buttons' => [
bless( {
'data' => 'send_reaction_0',
'text' => '???? 360'
}, 'Telegram::KeyboardButtonCallback' ),
bless( {
'data' => 'send_reaction_1',
'text' => '???? 32'
}, 'Telegram::KeyboardButtonCallback' )
]
}, 'Telegram::KeyboardButtonRow' )
]
}, 'Telegram::ReplyInlineMarkup' ),
'views' => 4416,
'entities' => [
bless( {
'offset' => 0,
'length' => 64
}, 'Telegram::MessageEntityBold' ),
bless( {
'offset' => 1551,
'length' => 5
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'length' => 3,
'offset' => 1557
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'offset' => 1561,
'length' => 10
}, 'Telegram::MessageEntityHashtag' )
]
}, 'Telegram::Message' )
}, 'Telegram::UpdateEditChannelMessage' )
]
}, 'Telegram::Updates::ChannelDifference' )
}, 'MTProto::RpcResult' )
};
2019.10.24 12:00:51 $1 = {
'in' => bless( {
'update' => bless( {
'user_id' => 2507460,
'status' => bless( {
'was_online' => 1571907651
}, 'Telegram::UserStatusOffline' )
}, 'Telegram::UpdateUserStatus' ),
'date' => 1571907650
}, 'Telegram::UpdateShort' )
};
2019.10.24 12:05:46 $1 = {
'in' => bless( {
'chats' => [],
'date' => 1571907946,
'seq' => 0,
'updates' => [
bless( {
'max_id' => 141719,
'channel_id' => 1295963795
}, 'Telegram::UpdateReadChannelInbox' )
],
'users' => []
}, 'Telegram::Updates' )
};
2019.10.24 13:01:23 $1 = {
'in' => bless( {
'server_salt' => '4914425622822907323',
'unique_id' => '5297282355827493819',
'first_msg_id' => '6751307555044380692'
}, 'MTProto::NewSessionCreated' )
};
2019.10.24 13:24:21 $1 = {
'in' => bless( {
'chats' => [
bless( {
'username' => 'freebsd_ru',
'version' => 0,
'flags' => 5440,
'title' => 'freebsd_ru',
'min' => 1,
'photo' => bless( {
'photo_small' => bless( {
'local_id' => 328733,
'volume_id' => 235140688,
'dc_id' => 2,
'file_reference' => '
'secret' => '4426006807282303416'
}, 'Telegram::FileLocation' ),
'photo_big' => bless( {
'dc_id' => 2,
'file_reference' => '
'volume_id' => 235140688,
'local_id' => 328735,
'secret' => '71251192991540083'
}, 'Telegram::FileLocation' )
}, 'Telegram::ChatPhoto' ),
'date' => 1461248502,
'id' => 1038300508,
'democracy' => 1,
'megagroup' => 1
}, 'Telegram::Channel' )
],
'users' => [
bless( {
'last_name' => 'Panov',
'flags' => 1048646,
'min' => 1,
'id' => 82234609,
'status' => bless( {}, 'Telegram::UserStatusRecently' ),
'first_name' => 'Dima'
}, 'Telegram::User' )
],
'seq' => 0,
'date' => 1571912647,
'updates' => [
bless( {
'pts' => 137596,
'message' => bless( {
'flags' => 256,
'message' => 'ะกะพะทะดะฐั‚ัŒ ะดะถะตะนะป ั ะธะผะตะฝะตะผ ะฟะพะบะพั€ะพั‡ะต ??',
'to_id' => bless( {
'channel_id' => 1038300508
}, 'Telegram::PeerChannel' ),
'id' => 119634,
'date' => 1571912647,
'from_id' => 82234609
}, 'Telegram::Message' ),
'pts_count' => 1
}, 'Telegram::UpdateNewChannelMessage' )
]
}, 'Telegram::Updates' )
};

ื™ืึธ, ืกืคึผืขืฆื™ืขืœ ื ื™ืฉื˜ ืื•ื ื˜ืขืจ ื“ื™ ืกืคึผื•ื™ืœืขืจ - ืื•ื™ื‘ ืื™ืจ ื”ืึธื˜ ื ื™ืฉื˜ ืœื™ื™ืขื ืขืŸ ืขืก, ื’ื™ื™ืŸ ืื•ืŸ ื˜ืึธืŸ ืขืก!

ื˜ืึทืงืข, ื•ื•ื™ื™ ~ ~ ... ื•ื•ืึธืก ื˜ื•ื˜ ืขืก ืงื•ืง ื•ื•ื™? ืขืคึผืขืก ื–ื™ื™ืขืจ ื‘ืึทืงืึทื ื˜ ... ืืคึฟืฉืจ ื“ืึธืก ืื™ื– ื“ื™ ื“ืึทื˜ืŸ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ืึท ื˜ื™ืคึผื™ืฉ ื•ื•ืขื‘ ืึทืคึผื™ ืื™ืŸ JSON, ืึทื—ื•ืฅ ื˜ืึธืžืขืจ ืงืœืืกืŸ ื–ืขื ืขืŸ ืึทื˜ืึทื˜ืฉื˜ ืฆื• ืึทื‘ื“ื–ืฉืขืงืฅ?

ืึทื–ื•ื™ ืขืก ื˜ื•ืจื ืก ืื•ื™ืก ... ื•ื•ืึธืก ืื™ื– ืขืก, ืงืึทืžืจืึทื“ื–? .. ืึทื–ื•ื™ ืคื™ืœ ืžื™ - ืื•ืŸ ืžื™ืจ ืคืืจืฉื˜ืืคื˜ ืฆื• ืจื• ื•ื•ื• ื“ื™ ื•ื•ืขื‘ ืคึผืจืึธื•ื’ืจืึทืžืขืจื– ื ืึธืจ ืกื˜ืึทืจื˜ื™ื ื’?.. ื•ื•ืึธืœื˜ ื ื™ื˜ ื ืึธืจ JSON ืื™ื‘ืขืจ ื”ื˜ื˜ืคึผืก ื–ื™ื™ืŸ ื’ืจื™ื ื’ืขืจ?! ืื•ืŸ ื•ื•ืึธืก ื”ืึธื‘ืŸ ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืื™ืŸ ื•ื•ืขืงืกืœ? ื–ืขื ืขืŸ ื“ื™ ื”ืฉืชื“ืœื•ืช ื•ื•ืขืจื˜ ืขืก?

ืœืึธืžื™ืจ ืึธืคึผืฉืึทืฆืŸ ื•ื•ืึธืก TL + MTProto ื”ืื˜ ืื•ื ื“ื– ื’ืขื’ืขื‘ืŸ ืื•ืŸ ื•ื•ืึธืก ืึทืœื˜ืขืจื ืึทื˜ื™ื•ื•ืขืก ื–ืขื ืขืŸ ืžืขื’ืœืขืš. ื ื•, ื”ื˜ื˜ืคึผ ื‘ืขื˜ืŸ-ืขื ื˜ืคืขืจ ืื™ื– ืึท ืฉืœืขื›ื˜ ืคึผืึทืกื™ืง, ืึธื‘ืขืจ ืื™ืŸ ืžื™ื ื“ืกื˜ืขืจ ืขืคึผืขืก ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ TLS?

ืกืึธืœื™ื“ ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ. ื’ืขื–ืขืŸ ื“ืขื ื“ืึทื˜ืŸ ืกื˜ืจื•ืงื˜ื•ืจ, ืขื ืœืขืš ืฆื• JSON, ืขืก ืื™ื– ื“ืขืจืžืื ื˜ ืึทื– ืขืก ื–ืขื ืขืŸ ื‘ื™ื™ื ืขืจื™ ื•ื•ืขืจื™ืึทื ืฅ. ืœืึธืžื™ืจ ืฆื™ื™ื›ืŸ MsgPack ื•ื•ื™ ื ื™ื˜ ื’ืขื ื•ื’ื™ืง ืขืงืกื˜ืขื ืกื™ื‘ืœืข, ืึธื‘ืขืจ ืขืก ืื™ื–, ืœืžืฉืœ, CBOR - ื“ื•ืจืš ื“ืขื ื•ื•ืขื’, ื“ืขืจ ื ืึธืจืžืึทืœ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ืจืคืง ืงืกื ื•ืžืงืก. ืขืก ืื™ื– ื ืึธื•ื˜ืึทื‘ืึทืœ ืคึฟืึทืจ ื“ื™ ืคืึทืงื˜ ืึทื– ืขืก ื“ื™ืคื™ื™ื ื– ื˜ืึทื’ืก, ื•ื•ื™ ืึท ืคืึทืจืœืขื ื’ืขืจื•ื ื’ ืžืขืงืึทื ื™ื–ืึทื, ืื•ืŸ ืฆื•ื•ื™ืฉืŸ ืฉื•ื™ืŸ ืกื˜ืึทื ื“ืขืจื“ื™ื™ื–ื“ ืขืก ืื™ื– ื“ื:

  • 25 + 256 - ืจื™ืคึผืœื™ื™ืกื™ื ื’ ื“ื•ืคึผืœื™ืงืึทื˜ ืฉื•ืจื•ืช ืžื™ื˜ ืึท ืฉื•ืจื” ื ื•ืžืขืจ ืจืขืคึฟืขืจืขื ืฅ, ืึทื–ืึท ืึท ื‘ื™ืœื™ืง ืงืึทืžืคึผืจืขืฉืึทืŸ ืื•ืคึฟืŸ
  • 26 - ืกื™ืจื™ืึทืœื™ื–ืขื“ ืคึผืขืจืœ ื›ื™ื™ืคืขืฅ ืžื™ื˜ ืงืœืึทืก ื ืึธืžืขืŸ ืื•ืŸ ืงืึธื ืกื˜ืจื•ืงื˜ืึธืจ ืึทืจื’ื•ืžืขื ื˜ืŸ
  • 27 - ืกื™ืจื™ืึทืœื™ื–ืขื“ ืฉืคึผืจืึทืš-ืคืจื™ื™ึท ื›ื™ื™ืคืขืฅ ืžื™ื˜ ื˜ื™ืคึผ ื ืึธืžืขืŸ ืื•ืŸ ืงืึธื ืกื˜ืจื•ืงื˜ืึธืจ ืึทืจื’ื•ืžืขื ื˜ืŸ

ื ื•, ืื™ืš ื’ืขืคืจื•ื•ื•ื˜ ืฆื• ืกื™ืจื™ืึทืœื™ื– ื“ื™ ื–ืขืœื‘ืข ื“ืึทื˜ืŸ ืื™ืŸ TL ืื•ืŸ CBOR ืžื™ื˜ ืคึผืึทืงื™ื ื’ ืคื•ืŸ ืกื˜ืจื™ื ื’ืก ืื•ืŸ ืึทื‘ื“ื–ืฉืขืงืฅ ืขื ื™ื™ื‘ืึทืœื“. ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืื ื’ืขื”ื•ื™ื‘ืŸ ืฆื• ื–ื™ื™ืŸ ืึทื ื“ืขืจืฉ ืื™ืŸ ื˜ื•ื™ื•ื•ืข ืคื•ืŸ โ€‹โ€‹CBOR ืขืจื’ืขืฅ ืคึฟื•ืŸ ืึท ืžืขื’ืื‘ื™ื™ื˜:

cborlen=1039673 tl_len=1095092

ืื–ื•ื™, ืกืึธืฃ: ืขืก ื–ืขื ืขืŸ ืกืึทื‘ืกื˜ืึทื ืฉืึทืœื™ ืกื™ืžืคึผืœืขืจ ืคึฟืึธืจืžืึทื˜ื™ืจื•ื ื’ืขืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืื•ื ื˜ืขืจื˜ืขื ื™ืง ืฆื• ื“ื™ ืกื™ื ืง ื“ื•ืจื›ืคืึทืœ ืึธื“ืขืจ ืื•ืžื‘ืึทืงืึทื ื˜ ื™ื“ืขื ื˜ื™ืคื™ืขืจ ืคึผืจืึธื‘ืœืขื, ืžื™ื˜ ืคืึทืจื’ืœื™ื™ึทื›ืœืขืš ืขืคืขืงื˜ื™ื•ื•ืงื™ื™ึทื˜.

ืฉื ืขืœ ืงืฉืจ ืคืึทืจืœื™ื™ื’ืŸ. ื“ืึธืก ืžื™ื˜ืœ ื ื•ืœ RTT ื ืึธืš ืจื™ืงืึทื ืขืงืฉืึทืŸ (ื•ื•ืขืŸ ื“ืขืจ ืฉืœื™ืกืœ ืื™ื– ืฉื•ื™ืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืึทืžืึธืœ) - ืึธื ื•ื•ืขื ื“ืœืขืš ืคึฟื•ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ MTProto ืึธื ื–ืึธื’, ืึธื‘ืขืจ ืžื™ื˜ ืขื˜ืœืขื›ืข ืจืขื–ืขืจื•ื•ื™ื™ืฉืึทื ื– - ื–ื™ื™ ื’ืึทื˜ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื–ืึทืœืฅ, ื“ื™ ืกืขืกื™ืข ืื™ื– ื ื™ืฉื˜ ืคืึทืจืคื•ื™ืœื˜, ืขื˜ืง. ื•ื•ืึธืก ื˜ื•ื˜ TLS ืคืึธืจืฉืœืึธื’ืŸ ืื•ื ื“ื– ืื™ืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ? ืคึฟืึทืจื‘ื•ื ื“ืขื ืข ืฆื™ื˜ื™ืจืŸ:

ื•ื•ืขืŸ ื ื™ืฆืŸ PFS ืื™ืŸ TLS, TLS ืกืขืกื™ืข ื˜ื™ืงืึทืฅ (ืจืคืง ืงืกื ื•ืžืงืก) ืฆื• ื ืขืžืขื  ื–ื™ื› ื•ื•ื™ื“ืขืจ ื“ื™ ื™ื ืงืจื™ืคึผื˜ื™ื“ ืกืขืกื™ืข ืึธืŸ ืจืขื ืึทื’ืึธื•ืฉื™ื™ื™ื˜ื™ื ื’ ื“ื™ ืฉืœื™ืกืœืขืŸ ืื•ืŸ ืึธืŸ ืกื˜ืึธืจื™ื ื’ ื“ื™ ืฉืœื™ืกืœ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ. ื•ื•ืขืŸ ืขืคืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืงืฉืจ ืื•ืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืฉืœื™ืกืœืขืŸ, ื“ืขืจ ืกืขืจื•ื•ืขืจ ื™ื ืงืจื™ืคึผื˜ ื“ื™ ืฉื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืงืฉืจ ืื•ืŸ ืกืขื ื“ื– ืขืก ืฆื• ื“ืขื ืงืœื™ืขื ื˜ (ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ืกืขืกื™ืข ื‘ื™ืœืขื˜). ืึทืงืงืึธืจื“ื™ื ื’ืœื™, ื•ื•ืขืŸ ื“ื™ ืงืฉืจ ืื™ื– ืจื™ื–ื•ืžื“, ื“ืขืจ ืงืœื™ืขื ื˜ ืกืขื ื“ื– ืึท ืกืขืกื™ืข ื‘ื™ืœืขื˜, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ืกืขืกื™ืข ืฉืœื™ืกืœ, ืฆื•ืจื™ืง ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ. ื“ืขืจ ื‘ื™ืœืขื˜ ื–ื™ืš ืื™ื– ื™ื ืงืจื™ืคึผื˜ื™ื“ ืžื™ื˜ ืึท ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ืฉืœื™ืกืœ (ืกืขืกื™ืข ื‘ื™ืœืขื˜ ืฉืœื™ืกืœ), ื•ื•ืึธืก ืื™ื– ืกื˜ืึธืจื“ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ ืื•ืŸ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืฆื• ืึทืœืข ืคืจืึธื ื˜ืขื ื“ ืกืขืจื•ื•ืขืจืก ื•ื•ืึธืก ืฉืขืคึผืŸ ืกืกืœ ืื™ืŸ ืงืœืึทืกื˜ืขืจื“ ืกืึทืœื•ืฉืึทื ื–.[10] ืื–ื•ื™, ื“ื™ ื”ืงื“ืžื” ืคื•ืŸ ืึท ืกืขืกื™ืข ื‘ื™ืœืขื˜ ืงืขื ืขืŸ ืึธื ืจื™ืจืŸ PFS ืื•ื™ื‘ ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ืกืขืจื•ื•ืขืจ ืฉืœื™ืกืœืขืŸ ื–ืขื ืขืŸ ืงืึทืžืคึผืจืึทืžื™ื™ื–ื“, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื•ื•ืขืŸ ื–ื™ื™ ื–ืขื ืขืŸ ืกื˜ืึธืจื“ ืคึฟืึทืจ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜ (OpenSSL, nginx, Apache ื‘ื™ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืงืจืึธื ื–ื™ื™ ืคึฟืึทืจ ื“ื™ ื’ืื ืฆืข ืฆื™ื™ื˜ ื“ื™ ืคึผืจืึธื’ืจืึทื ืื™ื– ืคืœื™ืกื ื“ื™ืง; ืคืึธืœืงืก ื–ื™ื™ื˜ืœืขืš ื ื™ืฆืŸ ื“ืขื ืฉืœื™ืกืœ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืฉืขื”, ืึทืจื•ื™ืฃ ืฆื• ื˜ืขื’).

ื“ืึธ RTT ืื™ื– ื ื™ื˜ ื ื•ืœ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื‘ื™ื™ึทื˜ืŸ ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ ClientHello ืื•ืŸ ServerHello, ื ืึธืš ื•ื•ืึธืก, ืฆื•ื–ืึทืžืขืŸ ืžื™ื˜ ืคืึทืจื˜ื™ืง, ื“ืขืจ ืงืœื™ืขื ื˜ ืงืขื ืขืŸ ืฉื•ื™ืŸ ืฉื™ืงืŸ ื“ืึทื˜ืŸ. ืื‘ืขืจ ื“ื ื“ืืจืฃ ืžืขืŸ ื’ืขื“ืขื ืงืขืŸ ืื– ืžื™ืจ ื”ืื‘ืŸ ื ื™ืฉื˜ ื“ืขื ื•ื•ืขื‘, ืžื™ื˜ ื–ื™ื™ืŸ ื‘ื™ื ื˜ืœ ืคื•ืŸ ื ื™ื™ ื’ืขืขืคื ื˜ืข ืคืืจื‘ื™ื ื“ื•ื ื’ืขืŸ, ื ืืจ ื ืฉืœื™ื—, ื•ื•ืืก ื“ืขืจ ืคืืจื‘ื™ื ื“ื•ื ื’ ืื™ื– ืืคื˜ืžืืœ ืื™ื™ื ืก ืื•ืŸ ืžืขืจ ืื“ืขืจ ื•ื•ื™ื™ื ื™ื’ืขืจ ืœืื ื’-ืœืขื‘ืขื“ื™ื’, ืœืขืคื™ืขืจืขืš ืงื•ืจืฆืข ื‘ืงืฉื•ืช ืคืืจ ื•ื•ืขื‘ ื‘ืœืขื˜ืขืจ - ืืœืขืก ืื™ื– ืžื•ืœื˜ื™ืคึผืœืขืงืกื˜ ืื™ื ืขื•ื•ื™ื™ื ื™ืง. ืึทื– ืื™ื–, ืขืก ืื™ื– ื’ืึทื ืฅ ืคึผืึทืกื™ืง, ืื•ื™ื‘ ืžื™ืจ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ืงื•ืžืขืŸ ืึทืจื™ื‘ืขืจ ืึท ื–ื™ื™ืขืจ ืฉืœืขื›ื˜ ื•ื ื˜ืขืจื‘ืึทืŸ ืึธืคึผื˜ื™ื™ืœื•ื ื’.

ืคึฟืึทืจื’ืขืกืŸ ืขืคึผืขืก ืึทื ื“ืขืจืฉ? ืฉืจื™ื™ื‘ ืื™ืŸ ื“ื™ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ.

ืฆื• ื–ื™ื™ืŸ ืคืืจื–ืขืฆื˜!

ืื™ืŸ ื“ืขืจ ืฆื•ื•ื™ื™ื˜ืขืจ ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขืจ ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹ืึทืจื˜ื™ืงืœืขืŸ, ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ืึธืจื’ืึทื ืึทื–ื™ื™ืฉืึทื ืึทืœ ื™ืฉื•ื– ืืœื ื•ื•ื™ ื˜ืขื›ื ื™ืฉ ืึธื ืขืก - ืึทืคึผืจืึธื•ื˜ืฉื™ื–, ื™ื“ืขืึธืœืึธื’ื™ืข, ืฆื•ื‘ื™ื ื“, ืฉื˜ืขืœื•ื ื’ ืฆื• ื ื™ืฆืขืจืก, ืืื–"ื• ื•. ื‘ืื–ื™ืจื˜, ืึธื‘ืขืจ, ืื•ื™ืฃ ื“ื™ ื˜ืขื›ื ื™ืฉ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื“ืขืจืœืื ื’ื˜ ื“ืึธ.

ื“ืขืจ ื“ืจื™ื˜ ื˜ื™ื™ืœ ื•ื•ืขื˜ ืคืึธืจื–ืขืฆืŸ ื“ื™ ืึทื ืึทืœื™ืกื™ืก ืคื•ืŸ ื“ื™ ื˜ืขื›ื ื™ืฉ ืงืึธืžืคึผืึธื ืขื ื˜ / ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ื“ืขืจืคืึทืจื•ื ื’. ืื™ืจ ื•ื•ืขื˜ ืœืขืจื ืขืŸ ืกืคึผืขืฆื™ืขืœ:

  • ืงืึทื ื˜ื™ื ื™ื•ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืคึผืึทื ื“ืขืžืึธื ื™ื•ื ืžื™ื˜ ื“ื™ ืคืึทืจืฉื™ื™ื“ื ืงื™ื™ึทื˜ ืคื•ืŸ TL-ื˜ื™ื™ืคึผืก
  • ืื•ืžื‘ืึทืงืึทื ื˜ ื˜ื™ื ื’ื– ื•ื•ืขื’ืŸ ื˜ืฉืึทื ืึทืœื– ืื•ืŸ ืกื•ืคึผืขืจื’ืจื•ืคึผืก
  • ื•ื•ื™ ื“ื™ืึทืœืึธื’ืก ืื™ื– ืขืจื’ืขืจ ื•ื•ื™ ืจืึทืกื˜ืขืจ
  • ื•ื•ืขื’ืŸ ืึทื‘ืกืึธืœื•ื˜ ื•ื•ืก ืงืึธืจืขื•ื• ืึธื ื–ืึธื’ ืึทื“ืจืขืกื™ื ื’
  • ื•ื•ืึธืก ืื™ื– ื“ื™ ื—ื™ืœื•ืง ืฆื•ื•ื™ืฉืŸ ืคืึธื˜ืึธ ืื•ืŸ ื‘ื™ืœื“
  • ื•ื•ื™ ืขืžืึธื“ื–ืฉื™ ืึทืจื™ื™ึทื ืžื™ืฉื  ื–ื™ืš ืžื™ื˜ ื™ื™ื˜ืึทืœื™ื™ื–ื“ ื˜ืขืงืกื˜

ืื•ืŸ ืื ื“ืขืจืข ืงืจืึทื˜ืฉืขืก! ื”ืืœื˜ ื•ื•ื™ื™ื˜ืขืจ ืžื™ื˜!

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’