рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордХреЛ рдкреНрд░реЛрдЯреЛрдХрд▓ рд░ рд╕рдВрдЧрдардирд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рдЖрд▓реЛрдЪрдирд╛ред рднрд╛рдЧ рез, рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ: рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рдЧреНрд░рд╛рд╣рдХ рд▓реЗрдЦреНрдиреЗ рдЕрдиреБрднрд╡ - TL, MT

рднрд░реНрдЦрд░реИ, рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдХрддреНрддрд┐рдХреЛ рд░рд╛рдореНрд░реЛ рдЫ, рдбреБрд░реЛрдн рднрд╛рдЗрд╣рд░реВ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдирд┐рд░реНрдорд╛рдгрдорд╛ рдХрддреНрддрд┐рдХреЛ рдкреНрд░рддрд┐рднрд╛рд╢рд╛рд▓реА рд░ рдЕрдиреБрднрд╡реА рдЫрдиреН, рдЗрддреНрдпрд╛рджрд┐ рдкреЛрд╕реНрдЯрд╣рд░реВ рд╣рдмреНрд░реЗрдорд╛ рдзреЗрд░реИ рдкрдЯрдХ рджреЗрдЦрд╛ рдкрд░реНрди рдерд╛рд▓реЗрдХрд╛ рдЫрдиреНред рдПрдХреИ рд╕рдордпрдорд╛, рдзреЗрд░реИ рдереЛрд░реИ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд▓реЗ рд╡рд╛рд╕реНрддрд╡рдореИ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдЙрдкрдХрд░рдгрдорд╛ рдЖрдлреВрд▓рд╛рдИ рдбреБрдмреЗрдХрд╛ рдЫрдиреН - рдзреЗрд░реИрдорд╛, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдПрдХрджрдо рд╕рд░рд▓ (рд░ MTProto рднрдиреНрджрд╛ рдзреЗрд░реИ рдлрд░рдХ) JSON-рдЖрдзрд╛рд░рд┐рдд Bot API рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреН, рд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдЫрдиреНред рд╡рд┐рд╢реНрд╡рд╛рд╕ рдорд╛ рд╕рдмреИ рдкреНрд░рд╢рдВрд╕рд╛ рд░ PR рдЬреБрди рдореЗрд╕реЗрдиреНрдЬрд░рдХреЛ рд╡рд░рд┐рдкрд░рд┐ рдШреБрдореНрдЫред рд▓рдЧрднрдЧ рдбреЗрдв рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ, рдПрд╢реЗрд▓реЛрди рдПрдирдЬреАрдУ рднрд╛рд╕рд┐рд▓реАрдорд╛ рдореЗрд░реЛ рд╕рд╣рдХрд░реНрдореА (рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдорд╕реНрдпреМрджрд╛рд╕рдБрдЧреИ рд╣рдмреНрд░реЗрдорд╛ рдЙрдирдХреЛ рдЦрд╛рддрд╛ рдореЗрдЯрд╛рдЗрдПрдХреЛ рдерд┐рдпреЛ) рдкрд░реНрд▓рдорд╛ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рдЖрдлреНрдиреИ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдХреНрд▓рд╛рдЗрдиреНрдЯ рд▓реЗрдЦреНрди рдерд╛рд▓реЗ, рд░ рдкрдЫрд┐ рдпреА рд▓рд╛рдЗрдирд╣рд░реВрдХреЛ рд▓реЗрдЦрдХ рд╕рд╛рдореЗрд▓ рднрдПред рдХрд┐рди рдкрд░реНрд▓, рдХреЗрд╣рд┐ рддреБрд░реБрдиреНрддреИ рд╕реЛрдзреНрдиреЗрдЫ? рдХрд┐рдирднрдиреЗ рддреНрдпрд╕реНрддрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдЕрдиреНрдп рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрд╡рд╕реНрдерд┐рдд рдЫрдиреНред рд╡рд╛рд╕реНрддрд╡рдорд╛, рдпреЛ рдХреБрд░рд╛ рд╣реЛрдЗрди, рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдЕрдиреНрдп рднрд╛рд╖рд╛ рд╣реБрди рд╕рдХреНрдЫ рдЬрд╣рд╛рдБ рддреНрдпрд╣рд╛рдБ рдЫреИрдиред рддрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп, рд░ рддрджрдиреБрд╕рд╛рд░ рд▓реЗрдЦрдХ рд╕рдмреИ рдмрд╛рдЯреЛ рдЬрд╛рдиреБрдкрд░реНрдЫ рд╕реБрд░реБрдмрд╛рдЯред рдпрд╕рдмрд╛рд╣реЗрдХ, рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рд╡рд┐рд╢реНрд╡рд╛рд╕рдХреЛ рдХреБрд░рд╛ рд╣реЛ, рддрд░ рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рдЙрджреНрджреЗрд╢реНрдпрд▓реЗ рдЙрддреНрдкрд╛рджрдирдХреЛ рд╕рд╛рде, рддрдкрд╛рдЗрдБ рдХреЗрд╡рд▓ рдирд┐рд░реНрдорд╛рддрд╛рдмрд╛рдЯ рддрдпрд╛рд░-рдмрдирд╛рдЗрдПрдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рднрд░ рдкрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди рд░ рдпрд╕рд▓рд╛рдИ рдЕрдиреНрдзрд╛рдзреБрдиреНрдз рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди (рдпрджреНрдпрдкрд┐, рдпреЛ рджреЛрд╕реНрд░реЛ рднрд╛рдЧрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╖рдп рд╣реЛ)ред рдпрд╕ рд╕рдордпрдорд╛, рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓реЗ "рдФрд╕рдд" рд╕реНрддрд░рдорд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрдЫ (рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ API рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ)ред

рдпрджреНрдпрдкрд┐, рдкреЛрд╖реНрдЯрд╣рд░реВрдХреЛ рдпреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛рдорд╛ рдзреЗрд░реИ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рд╡рд╛ рдЧрдгрд┐рдд рд╣реБрдиреЗрдЫреИрдиред рддрд░ рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдЕрдиреНрдп рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рд╡рд░рдгрд╣рд░реВ рд░ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдмреИрд╕рд╛рдЦреАрд╣рд░реВ рд╣реБрдиреЗрдЫрдиреН (рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рдкрдирд┐ рдЙрдкрдпреЛрдЧреА рдЫ рдЬрд╕рд▓реЗ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рд▓реЗрдЦреНрджреИрдирдиреН, рддрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рднрд╛рд╖рд╛рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫ)ред рддреНрдпрд╕реЛрднрдП, рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдЧреНрд░рд╛рд╣рдХрд▓рд╛рдИ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБ рдерд┐рдпреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЕрдиреБрд╕рд╛рд░ред рддреНрдпреЛ рд╣реЛ, рдорд╛рдиреМрдВ рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдмрдиреНрдж рдЫ (рдлреЗрд░рд┐, рджреЛрд╕реНрд░реЛ рднрд╛рдЧрдорд╛ рд╣рд╛рдореА рдпреЛ рд╕рддреНрдп рд╣реЛ рднрдиреНрдиреЗ рддрдереНрдпрдХреЛ рд╡рд┐рд╖рдпрд▓рд╛рдИ рдердк рд╡рд┐рд╕реНрддрд╛рд░рдорд╛ рдХрднрд░ рдЧрд░реНрдиреЗрдЫреМрдВред рдпреЛ рд╣реБрдиреНрдЫ рддреНрдпрд╕реЛрднрдП), рддрд░, рдкреБрд░рд╛рдиреЛ рджрд┐рдирд╣рд░реВрдорд╛ рдЬрд╕реНрддреИ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддреНрдпрд╣рд╛рдБ RFC рдЬрд╕реНрддреИ рдорд╛рдирдХ рдЫ - рдХреЗ рдпреЛ рд╕реНрд░реЛрдд рдХреЛрдбрдорд╛ "рдирд╣реЗрд░реЗрдХрди" рдПрдХреНрд▓реИ рдирд┐рд░реНрджрд┐рд╖реНрдЯреАрдХрд░рдг рдЕрдиреБрд╕рд╛рд░ рдЧреНрд░рд╛рд╣рдХ рд▓реЗрдЦреНрди рд╕рдореНрднрд╡ рдЫ, рдпреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╣реЛрд╕реН (рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдбреЗрд╕реНрдХрдЯрдк, рдореЛрдмрд╛рдЗрд▓) рд╡рд╛ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рдЯреЗрд▓рд┐рдерди?

рд╕рд╛рдордЧреНрд░реА рддрд╛рд▓рд┐рдХрд╛:

рдХрд╛рдЧрдЬрд╛рдд ... рдпреЛ рдЕрд╡рд╕реНрдерд┐рдд рдЫ, рд╣реИрди? рдХреЗ рдпреЛ рд╕рд╛рдБрдЪреЛ рд╣реЛ?..

рдпрд╕ рд▓реЗрдЦрдХреЛ рд▓рд╛рдЧрд┐ рдиреЛрдЯрдХрд╛ рдЯреБрдХреНрд░рд╛рд╣рд░реВ рдЧрдд рдЧрд░реНрдореАрдорд╛ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрди рдерд╛рд▓реЗред рдпреЛ рд╕рдмреИ рд╕рдордп рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯрдорд╛ https://core.telegram.org рдХрд╛рдЧрдЬрд╛рдд рд▓реЗрдпрд░ 23 рдХреЛ рд░реВрдкрдорд╛ рдерд┐рдпреЛ, рдЕрд░реНрдерд╛рддреНред 2014 рдорд╛ рдХрддреИ рдЕрдбреНрдХрд┐рдпреЛ (рдпрд╛рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН, рддреНрдпрд╣рд╛рдБ рдЪреНрдпрд╛рдирд▓рд╣рд░реВ рдкрдирд┐ рдерд┐рдПрдирдиреН?)ред рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рдпрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ 2014 рдорд╛ рддреНрдпрд╕ рд╕рдордпрдорд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдХреЛ рд╕рд╛рде рдЧреНрд░рд╛рд╣рдХрд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреБрдкрд░реНрдЫред рддрд░ рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдкрдирд┐, рдХрд╛рдЧрдЬрд╛рдд, рдкрд╣рд┐рд▓реЛ, рдЕрдкреВрд░реНрдг, рд░ рджреЛрд╕реНрд░реЛ, рдард╛рдЙрдБрд╣рд░реВрдорд╛ рдпреЛ рдЖрдлреИрдВрдорд╛ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рдерд┐рдпреЛред рдПрдХ рдорд╣рд┐рдирд╛ рдЕрдШрд┐, рд╕реЗрдкреНрдЯреЗрдореНрдмрд░ 2019 рдорд╛, рдпреЛ рдерд┐рдпреЛ рдЧрд▓реНрддреА рдпреЛ рдкрддреНрддрд╛ рд▓рд╛рдЧреНрдпреЛ рдХрд┐ рд╕рд╛рдЗрдЯрдорд╛ рдХрд╛рдЧрдЬрд╛рддрдХреЛ рдареВрд▓реЛ рдЕрдкрдбреЗрдЯ рдерд┐рдпреЛ, рд╣рд╛рд▓реИрдХреЛ рд▓реЗрдпрд░ 105 рдХреЛ рд▓рд╛рдЧрд┐, рдиреЛрдЯрдХреЛ рд╕рд╛рде рдХрд┐ рдЕрдм рд╕рдмреИ рдХреБрд░рд╛ рдлреЗрд░рд┐ рдкрдвреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рд╡рд╛рд╕реНрддрд╡рдорд╛, рдзреЗрд░реИ рд▓реЗрдЦрд╣рд░реВ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░рд┐рдпреЛ, рддрд░ рдзреЗрд░реИ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗред рддрд╕рд░реНрде, рдХрд╛рдЧрдЬрд╛рддрдХреЛ рдмрд╛рд░реЗрдорд╛ рддрд▓рдХреЛ рдЖрд▓реЛрдЪрдирд╛ рдкрдвреНрджрд╛, рддрдкрд╛рдИрдВрд▓реЗ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрдиреБ рдкрд░реНрдЫ рдХрд┐ рдпреА рдордзреНрдпреЗ рдХреЗрд╣рд┐ рдЪреАрдЬрд╣рд░реВ рдЕрдм рд╕рд╛рдиреНрджрд░реНрднрд┐рдХ рдЫреИрдирдиреН, рддрд░ рдХреЗрд╣рд┐ рдЕрдЭреИ рдкрдирд┐ рдкрд░реНрдпрд╛рдкреНрдд рдЫрдиреНред рдЖрдЦрд┐рд░, рдЖрдзреБрдирд┐рдХ рд╕рдВрд╕рд╛рд░рдорд╛ 5 рд╡рд░реНрд╖ рд▓рд╛рдореЛ рд╕рдордп рдорд╛рддреНрд░ рд╣реЛрдЗрди, рддрд░ рдзреЗрд░реИ рдПрдХрджрдо рдзреЗрд░реИред рддреА рд╕рдордпрджреЗрдЦрд┐ (рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЦрд╛рд░реЗрдЬ рдЧрд░рд┐рдПрдХрд╛ рд░ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдЬрд┐рдпреЛрдЪреНрдпрд╛рдЯ рд╕рд╛рдЗрдЯрд╣рд░реВрд▓рд╛рдИ рддреНрдпрд╕рдмреЗрд▓рд╛рджреЗрдЦрд┐ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрдиреБрднрдПрди рднрдиреЗ), рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛAPI рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд╕рдп рдмрд╛рдЯ рдмрдвреЗрд░ рджреБрдИ рд╕рдп рдкрдЪрд╛рд╕ рднрдиреНрджрд╛ рдмрдврд┐ рднрдПрдХреЛ рдЫ!

рдПрдХ рдпреБрд╡рд╛ рд▓реЗрдЦрдХрдХреЛ рд░реВрдкрдорд╛ рдХрд╣рд╛рдБ рд╕реБрд░реБ рдЧрд░реНрдиреЗ?

рддрдкрд╛рдИрд▓реЗ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рд▓реЗрдЦреНрдиреБрд╣реБрдиреНрдЫ рд╡рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреНрдиреЗ рдХреБрд░рд╛рд▓реЗ рдлрд░рдХ рдкрд╛рд░реНрджреИрди, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдЬрд╕реНрддреИ рдкрд╛рдЗрдердирдХреЛ рд▓рд╛рдЧрд┐ рдЯреЗрд▓рд┐рдерди рд╡рд╛ PHP рдХреЛ рд▓рд╛рдЧрд┐ рдореЗрдбрд▓рд╛рдЗрди, рдХреБрдиреИ рдкрдирд┐ рдЕрд╡рд╕реНрдерд╛рдорд╛, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрд╣рд┐рд▓реЗ рдЪрд╛рд╣рд┐рдиреНрдЫ рдЖрдлреНрдиреЛ рдЖрд╡реЗрджрди рджрд░реНрддрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН - рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН api_id ╨╕ api_hash (рдЬрд╕рд▓реЗ VKontakte API рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реЗрдХрд╛ рдЫрдиреН рддреБрд░реБрдиреНрддреИ рдмреБрдЭреНрдЫрдиреН) рдЬрд╕рджреНрд╡рд╛рд░рд╛ рд╕рд░реНрднрд░рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрдиреЗрдЫред рдпреЛ рд╣реБрдиреЗрдЫ рдХрд╛рдиреБрдиреА рдХрд╛рд░рдгрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдпреЛ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рддрд░ рд╣рд╛рдореА рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХрд╛ рд▓реЗрдЦрдХрд╣рд░реВрд▓реЗ рдпрд╕рд▓рд╛рдИ рджреЛрд╕реНрд░реЛ рднрд╛рдЧрдорд╛ рдХрд┐рди рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрди рд╕рдХреНрджреИрдирдиреН рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдердк рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВред рддрдкрд╛рдИрдВ рдкрд░реАрдХреНрд╖рдг рдорд╛рдирд╣рд░реВрд╕рдБрдЧ рд╕рдиреНрддреБрд╖реНрдЯ рд╣реБрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдпрджреНрдпрдкрд┐ рддрд┐рдиреАрд╣рд░реВ рдзреЗрд░реИ рд╕реАрдорд┐рдд рдЫрдиреН - рддрдереНрдп рдпреЛ рд╣реЛ рдХрд┐ рдЕрдм рддрдкрд╛рдИрдВ рджрд░реНрддрд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдПрдЙрдЯрд╛ рдорд╛рддреНрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рддреНрдпрд╕реИрд▓реЗ рдпрд╕рдорд╛ рд╣реЗрдбрд▓рдо рд╣рддрд╛рд░ рдирдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдЕрдм, рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ, рд╣рд╛рдореАрд▓реЗ рдпрд╕ рддрдереНрдпрдорд╛ рдЪрд╛рд╕реЛ рд░рд╛рдЦреНрдиреБрдкрд░реНрдЫ рдХрд┐ рджрд░реНрддрд╛ рдкрдЫрд┐ рд╣рд╛рдореАрд▓реЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдордмрд╛рдЯ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ, рдкреНрд░реЛрдЯреЛрдХрд▓, рдЗрддреНрдпрд╛рджрд┐ рдЕрдкрдбреЗрдЯрд╣рд░реВ рдмрд╛рд░реЗ рд╕реВрдЪрдирд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрдкрд░реНрдЫред рддреНрдпреЛ рд╣реЛ, рдХрд╕реИрд▓реЗ рдорд╛рдиреНрди рд╕рдХреНрдЫ рдХрд┐ рдбрдХреНрд╕рдХреЛ рд╕рд╛рде рд╕рд╛рдЗрдЯ рдХреЗрд╡рд▓ рддреНрдпрд╛рдЧрд┐рдПрдХреЛ рдерд┐рдпреЛ рд░ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВ рдмрдирд╛рдЙрди рдерд╛рд▓реЗрдХрд╛рд╣рд░реВрд╕рдБрдЧ рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдпреЛ, рдХрд┐рдирднрдиреЗ рдпреЛ рд╕рдЬрд┐рд▓реЛ рдЫред рддрд░ рдЕрд╣рдБ, рддреНрдпрд╕реНрддреЛ рдХреЗрд╣реА рджреЗрдЦрд┐рдПрдХреЛ рдЫреИрди, рдЬрд╛рдирдХрд╛рд░реА рдЖрдПрдХреЛ рдЫреИрди ред

рд░ рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рд▓реЗрдЦреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдкреНрд░рд╛рдкреНрдд рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдЕрдЭреИ рд▓рд╛рдореЛ рдмрд╛рдЯреЛ рдЫред рдпрджреНрдпрдкрд┐ https://core.telegram.org/ рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рд╕реБрд░реБ рдЧрд░реНрди рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╡рд╛рд╕реНрддрд╡рдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫ MTProto рдкреНрд░реЛрдЯреЛрдХрд▓ - рддрд░ рдпрджрд┐ рддрдкрд╛рдИрд▓реЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ OSI рдореЛрдбреЗрд▓ рдЕрдиреБрд╕рд╛рд░ рд▓реЗрдЖрдЙрдЯ рдкреНрд░реЛрдЯреЛрдХрд▓рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкреГрд╖реНрдардХреЛ рдЕрдиреНрддреНрдпрдорд╛, рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╡реНрдпрд░реНрде рдЫред

рд╡рд╛рд╕реНрддрд╡рдорд╛, MTProto рдЕрдШрд┐ рд░ рдкрдЫрд┐ рджреБрд╡реИ, рдПрдХреИ рдкрдЯрдХ рдзреЗрд░реИ рд╕реНрддрд░рд╣рд░реВрдорд╛ (OS рдХрд░реНрдиреЗрд▓рдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╡рд┐рджреЗрд╢реА рдиреЗрдЯрд╡рд░реНрдХрд░рд╣рд░реВрд▓реЗ рд▓реЗрдпрд░ рдЙрд▓реНрд▓рдЩреНрдШрди рднрдиреНрдЫрдиреН), рдПрдЙрдЯрд╛ рдареВрд▓реЛ, рдкреАрдбрд╛рджрд╛рдпреА рд░ рднрдпрд╛рдирдХ рд╡рд┐рд╖рдп рдЖрдЙрдиреЗрдЫ...

рдмрд╛рдЗрдирд░реА рдХреНрд░рдорд┐рдХрд░рдг: 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++ рдЬрд╕реНрддреИ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВ рдЫрдиреН (рд╡рд╛рд╕реНрддрд╡рдорд╛, рд╡рд╛рд╕реНрддрд╡рдорд╛ рд╣реЛрдЗрди)ред рд░ рдЕрдиреНрдп рд╕рдмреИ рдкреНрд░рддреАрдХрд╣рд░реВрдХреЛ рдЕрд░реНрде рдХреЗ рд╣реЛ, рдкреНрд░рд╢реНрди рдЪрд┐рдиреНрд╣, рд╡рд┐рд╕реНрдордпрд╛рджрд┐рдмреЛрдзрдХ рдЪрд┐рдиреНрд╣рд╣рд░реВ, рдкреНрд░рддрд┐рд╢рддрд╣рд░реВ, рд╣реНрдпрд╛рд╕ рдЪрд┐рдиреНрд╣рд╣рд░реВ (рд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдлрд░рдХ рдард╛рдЙрдБрд╣рд░реВрдорд╛ рдлрд░рдХ рдЪреАрдЬрд╣рд░реВрдХреЛ рдЕрд░реНрде рд░рд╛рдЦреНрдЫрдиреН), рдХрд╣рд┐рд▓реЗ рдЙрдкрд╕реНрдерд┐рдд рд░ рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рд╣реЛрдЗрди, рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд╕рдВрдЦреНрдпрд╛рд╣рд░реВ - рд░ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХреБрд░рд╛, рдпрд╕рдмрд╛рдЯ рдХрд╕рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗред рд╕рд╣рд┐ (рдЬрд╕рд▓рд╛рдИ рд╕рд░реНрднрд░рд▓реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджреИрди) рдмрд╛рдЗрдЯ рд╕реНрдЯреНрд░рд┐рдо? рддрдкрд╛рдИрдВрд▓реЗ рдХрд╛рдЧрдЬрд╛рдд рдкрдвреНрдиреБ рдкрд░реНрдЫ (рд╣реЛ, рддреНрдпрд╣рд╛рдБ рдирдЬрд┐рдХреИрдХреЛ JSON рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рд╕реНрдХреАрдорд╛рдХреЛ рд▓рд┐рдЩреНрдХрд╣рд░реВ рдЫрдиреН - рддрд░ рдпрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯ рдмрдирд╛рдЙрдБрджреИрди).

рдкреГрд╖реНрда рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН рдмрд╛рдЗрдирд░реА рдбрд╛рдЯрд╛ рдХреНрд░рдорд┐рдХрд░рдг рд░ рдЪреНрдпрд╛рдЙ рд░ рдЫреБрдЯреНрдЯреИ рдЧрдгрд┐рддрдХреЛ рдЬрд╛рджреБрдИ рд╕рдВрд╕рд╛рд░рдорд╛ рдбреБрдмреНрдиреБрд╣реЛрд╕реН, 4th рд╡рд░реНрд╖ рдорд╛ matan рдЬрд╕реНрддреИ рдХреЗрд╣рд┐ред рд╡рд░реНрдгрдорд╛рд▓рд╛, рдкреНрд░рдХрд╛рд░, рдорд╛рди, рдХрдореНрдмрд┐рдиреЗрдЯрд░, рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдХрдореНрдмрд┐рдиреЗрдЯрд░, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк, рдХрдореНрдкреЛрдЬрд┐рдЯ рдкреНрд░рдХрд╛рд░, рдмрд╣реБрд░реВрдкреА рдкреНрд░рдХрд╛рд░ ... рд░ рдпреЛ рдХреЗрд╡рд▓ рдкрд╣рд┐рд▓реЛ рдкреГрд╖реНрда рд╣реЛ! рдЕрд░реНрдХреЛ рддрдкрд╛рдИрд▓рд╛рдИ рдкрд░реНрдЦрд┐рд░рд╣реЗрдХреЛ рдЫ TL рднрд╛рд╖рд╛, рдЬрд╕рдорд╛, рдпрджреНрдпрдкрд┐ рдпрд╕рд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдорд╛рдореВрд▓реА рдЕрдиреБрд░реЛрдз рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХреЛ рдЙрджрд╛рд╣рд░рдг рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рдпрд╕рд▓реЗ рдердк рд╕рд╛рдорд╛рдиреНрдп рдХреЗрд╕рд╣рд░реВрдорд╛ рдХреБрдиреИ рдЬрд╡рд╛рдл рдкреНрд░рджрд╛рди рдЧрд░реНрджреИрди, рдЬрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЕрд░реНрдХреЛ рдЖрда рдПрдореНрдмреЗрдбреЗрдбрдорд╛ рд░реВрд╕реАрдмрд╛рдЯ рдЕрдВрдЧреНрд░реЗрдЬреАрдорд╛ рдЕрдиреБрд╡рд╛рдж рдЧрд░рд┐рдПрдХреЛ рдЧрдгрд┐рддрдХреЛ рд░рд┐рдЯреЗрд▓рд┐рдВрдЧ рдорд╛рд░реНрдлрдд рд╡реЗрдб рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫред рдкреГрд╖реНрдард╣рд░реВ!

рдХрд╛рд░реНрдпрд╛рддреНрдордХ рднрд╛рд╖рд╛рд╣рд░реВ рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдХрд╛рд░рдХреЛ рдЕрдиреБрдорд╛рдирд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рдкрд╛рдардХрд╣рд░реВрд▓реЗ рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдпрд╕ рднрд╛рд╖рд╛рдорд╛ рд╡рд░реНрдгрди рднрд╛рд╖рд╛ рджреЗрдЦреНрдиреЗрдЫрдиреН, рдЙрджрд╛рд╣рд░рдгрдмрд╛рдЯ рдкрдирд┐, рдзреЗрд░реИ рдкрд░рд┐рдЪрд┐рдд рд░реВрдкрдорд╛, рд░ рднрдиреНрди рд╕рдХреНрдЫрдиреН рдХрд┐ рдпреЛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛ рдЦрд░рд╛рдм рдЫреИрдиред рдпрд╕рдорд╛ рд░рд╣реЗрдХрд╛ рдЖрдкрддреНрддрд┐рд╣рд░реБ рдпрд╕реНрддрд╛ рдЫрдиреН :

  • рд╣реЛ, рд▓рдХреНрд╖реНрдп рд░рд╛рдореНрд░реЛ рд╕реБрдирд┐рдиреНрдЫ, рддрд░ рдЕрдлрд╕реЛрд╕, рдЙрдиреА рд╣рд╛рд╕рд┐рд▓ рдЧрд░реЗрдХреЛ рдЫреИрди
  • рд░реВрд╕реА рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдпрд╣рд░реВрдорд╛ рд╢рд┐рдХреНрд╖рд╛ рдЖрдИрдЯреА рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдорд╛ рдкрдирд┐ рднрд┐рдиреНрди рд╣реБрдиреНрдЫ - рд╕рдмреИрд▓реЗ рд╕рдорд╛рди рдкрд╛рдареНрдпрдХреНрд░рдо рд▓рд┐рдПрдХрд╛ рдЫреИрдирдиреН
  • рдЕрдиреНрддрдорд╛, рд╣рд╛рдореА рджреЗрдЦреНрдиреЗрдЫреМрдВ, рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛ рдпреЛ рдЫ рдЖрд╡рд╢реНрдпрдХ рдЫреИрди, рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ TL рдХреЛ рдорд╛рддреНрд░ рд╕реАрдорд┐рдд рдЙрдкрд╕реЗрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЫ

рдЬрд╕реНрддреЛ рднрдирд┐рдпреЛ рд▓рд┐рдпреЛрдиреЗрд░реНрдб рдЪреНрдпрд╛рдирд▓рдорд╛ #perl FreeNode IRC рдиреЗрдЯрд╡рд░реНрдХрдорд╛, рдЬрд╕рд▓реЗ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордмрд╛рдЯ рдореНрдпрд╛рдЯреНрд░рд┐рдХреНрд╕рдорд╛ рдЧреЗрдЯ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдпреЛ (рдЙрджреНрдзрд░рдгрдХреЛ рдЕрдиреБрд╡рд╛рдж рдореЗрдореЛрд░реАрдмрд╛рдЯ рдЧрд▓рдд рдЫ):

рдпрд╕реНрддреЛ рд▓рд╛рдЧреНрдЫ рдХрд┐ рдХрд╕реИрд▓рд╛рдИ рдкрд╣рд┐рд▓реЛ рдкрдЯрдХ рдереНрдпреЛрд░реА рдЯрд╛рдЗрдк рдЧрд░реНрди рдкреЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЙрддреНрд╕рд╛рд╣рд┐рдд рднрдпреЛ, рд░ рдпрд╕рдХреЛ рд╡рд░рд┐рдкрд░рд┐ рдЦреЗрд▓реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрди рдерд╛рд▓реНрдпреЛ, рд╡рд╛рд╕реНрддрд╡рдорд╛ рдпреЛ рдЕрднреНрдпрд╛рд╕рдорд╛ рдЖрд╡рд╢реНрдпрдХ рдЫ рдХрд┐ рдЫреИрди рд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрджреИрдиред

рдЖрдлреИрд▓рд╛рдИ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН, рдпрджрд┐ рдмреЗрдпрд░-рдЯрд╛рдЗрдкрд╣рд░реВ (int, long, etc.) рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╛рдердорд┐рдХ рдЪреАрдЬрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╢реНрди рдЙрдард╛рдЙрдБрджреИрди - рдЕрдиреНрддрддрдГ рддрд┐рдиреАрд╣рд░реВ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдиреБрдкрд░реНрдЫ - рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрд┐рдиреАрд╣рд░реВрдмрд╛рдЯ рд╡реНрдпреБрддреНрдкрдиреНрди рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВред рднреЗрдХреНрдЯрд░ред рддреНрдпреЛ рд╣реЛ, рд╡рд╛рд╕реНрддрд╡рдорд╛, рдПрд░реНрд░реЗ, рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдирддрд┐рдЬрд╛ рд╡рд╕реНрддреБрд╣рд░реВрд▓рд╛рдИ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЙрдЪрд┐рдд рдирд╛рдорд▓реЗ рдХрд▓ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред

рддрд░ рдкрд╣рд┐рд▓реЗ

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдирдкрдвреНрдиреЗрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ 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;

рдкрд░рд┐рднрд╛рд╖рд╛ рд╕рдзреИрдВ рд╕реБрд░реБ рд╣реБрдиреНрдЫ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░, рддреНрдпрд╕рдкрдЫрд┐ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдкрдорд╛ (рдЕрднреНрдпрд╛рд╕рдорд╛ - рд╕рдзреИрдВ) рдкреНрд░рддреАрдХ рдорд╛рд░реНрдлрдд # рд╣реБрдиреБрдкрд░реНрдЫ рд╕реАрдЖрд░рд╕реА рей32 рдпрд╕ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╡рд░реНрдгрди рд╕реНрдЯреНрд░рд┐рдЩрдмрд╛рдЯред рдЕрд░реНрдХреЛ рдлрд┐рд▓реНрдбрд╣рд░реВрдХреЛ рд╡рд┐рд╡рд░рдг рдЖрдЙрдБрдЫ; рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВ рдЕрд╡рд╕реНрдерд┐рдд рдЫрдиреН рднрдиреЗ, рдкреНрд░рдХрд╛рд░ рдЦрд╛рд▓реА рд╣реБрди рд╕рдХреНрдЫред рдпреЛ рд╕рдмреИ рдмрд░рд╛рдмрд░ рдЪрд┐рдиреНрд╣рдХреЛ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫ, рдпреЛ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рдХреЛ рдкреНрд░рдХрд╛рд░рдХреЛ рдирд╛рдо - рддреНрдпреЛ рд╣реЛ, рд╡рд╛рд╕реНрддрд╡рдорд╛, рдЙрдкрдкреНрд░рдХрд╛рд░ - рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫред рдмрд░рд╛рдмрд░ рдЪрд┐рдиреНрд╣рдХреЛ рджрд╛рдпрд╛рдБрдкрдЯреНрдЯрд┐рдХреЛ рдорд╛рдиреНрдЫреЗ рд╣реЛ рдмрд╣реБрд░реВрдкреА - рддреНрдпреЛ рд╣реЛ, рдзреЗрд░реИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдпрд╕рдХреЛ рдЕрдиреБрд░реВрдк рд╣реБрди рд╕рдХреНрдЫред

рдпрджрд┐ рдкрд░рд┐рднрд╛рд╖рд╛ рд░реЗрдЦрд╛ рдкрдЫрд┐ рд╣реБрдиреНрдЫ ---functions---, рддреНрдпрд╕рдкрдЫрд┐ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЙрд╕реНрддреИ рд░рд╣рдиреЗрдЫ, рддрд░ рдЕрд░реНрде рдлрд░рдХ рд╣реБрдиреЗрдЫ: рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ RPC рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рдирд╛рдо рд╣реБрдиреЗрдЫ, рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд╣реБрдиреЗрдЫрдиреН (рд░рд╛рдореНрд░реЛ, рддреНрдпреЛ рд╣реЛ, рдпреЛ рдареНрдпрд╛рдХреНрдХреИ рдПрдЙрдЯреИ рд╕рдВрд░рдЪрдирд╛ рд░рд╣рдиреЗрдЫ, рдЬрд╕реНрддреИ рддрд▓ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫред , рдпреЛ рдмрд╕ рддреЛрдХрд┐рдПрдХреЛ рдЕрд░реНрде рд╣реБрдиреЗрдЫ), рд░ "рдкреЛрд▓рд┐рдореЛрд░реНрдлрд┐рдХ рдкреНрд░рдХрд╛рд░ " - рдлрд┐рд░реНрддрд╛ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рдХрд╛рд░ред рд╕рд╛рдБрдЪреЛ, рдпреЛ рдЕрдЭреИ рдкрдирд┐ рдмрд╣реБрд░реВрдкреА рд░рд╣рдиреЗрдЫ - рдХреЗрд╡рд▓ рдЦрдгреНрдбрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд ---types---, рддрд░ рдпреЛ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ "рдорд╛рдирд┐рдиреЗрдЫреИрди"ред рддрд┐рдиреАрд╣рд░реВрдХрд╛ рддрд░реНрдХрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рднрдирд┐рдПрдХрд╛ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдУрднрд░рд▓реЛрдб рдЧрд░реНрджреИ, рдЕрд░реНрдерд╛рддреНред рдХреБрдиреИ рдХрд╛рд░рдгрд▓реЗ, рдПрдЙрдЯреИ рдирд╛рдордХрд╛ рддрд░ рдлрд░рдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ рднрдПрдХрд╛ рдзреЗрд░реИ рдХрд╛рд░реНрдпрд╣рд░реВ, рдЬрд╕реНрддреИ C++ рдорд╛, TL рдорд╛ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЗрдБрджреИрдиред

рдХрд┐рди "рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░" рд░ "рдкреЛрд▓рд┐рдореЛрд░реНрдлрд┐рдХ" рдпрджрд┐ рдпреЛ OOP рд╣реЛрдЗрди? рдареАрдХ рдЫ, рд╡рд╛рд╕реНрддрд╡рдорд╛, рдпреЛ OOP рд╕рд░реНрддрд╣рд░реВрдорд╛ рдХрд╕реИрдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рд╕реЛрдЪреНрди рд╕рдЬрд┐рд▓реЛ рд╣реБрдиреЗрдЫ - рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧрдХреЛ рд░реВрдкрдорд╛ рдмрд╣реБрд░реВрдкреА рдкреНрд░рдХрд╛рд░, рд░ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рд╣рд░реВ рдпрд╕рдХреЛ рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рдВрд╢рдЬ рд╡рд░реНрдЧрд╣рд░реВ рд╣реБрдиреН, рд░ final рдзреЗрд░реИ рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд╢рдмреНрджрд╛рд╡рд▓реАрдорд╛ред рд╡рд╛рд╕реНрддрд╡рдорд╛, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдпрд╣рд╛рдБ рдорд╛рддреНрд░ рд╕рдорд╛рдирддрд╛ OO рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдУрднрд░рд▓реЛрдб рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╡рд┐рдзрд┐рд╣рд░реВрд╕рдБрдЧред рдпрд╣рд╛рдБ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВ рднрдПрдХреЛрд▓реЗ, рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рд╡рд┐рдзрд┐рд╣рд░реВ рдЫреИрдирдиреН (рдпрджреНрдпрдкрд┐ рдХрд╛рд░реНрдпрд╣рд░реВ рд░ рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рд╡рд┐рд╡рд░рдгрд▓реЗ рддрд┐рдиреАрд╣рд░реВ рдЕрд╡рд╕реНрдерд┐рдд рдЫрдиреН рднрдиреНрдиреЗ рдХреБрд░рд╛рдорд╛ рднреНрд░рдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрд╖рдо рдЫ, рддрд░ рддреНрдпреЛ рдлрд░рдХ рдХреБрд░рд╛ рд╣реЛ) - рддрдкрд╛рдИрдВ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд▓рд╛рдИ рдорд╛рдирдХреЛ рд░реВрдкрдорд╛ рд╕реЛрдЪреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдЬреБрди рдирд┐рд░реНрдорд╛рдг рднрдЗрд░рд╣реЗрдХреЛ рдЫ рдмрд╛рдЗрдЯ рд╕реНрдЯреНрд░рд┐рдо рдкрдвреНрджрд╛ рдЯрд╛рдЗрдк рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдпреЛ рдХрд╕рд░реА рд╣реБрдиреНрдЫ? deserializer, рдЬрд╕рд▓реЗ рд╕рдзреИрдВ 4 рдмрд╛рдЗрдЯрд╣рд░реВ рдкрдвреНрдЫ, рдорд╛рди рджреЗрдЦреНрдЫ 0xcrc32 - рд░ рддреНрдпрд╕рдкрдЫрд┐ рдХреЗ рд╣реБрдиреЗрдЫ рдмреБрдЭреНрдЫ field1 рдкреНрд░рдХрд╛рд░ рд╕рдВрдЧ int, рдЕрд░реНрдерд╛рддреН рдареНрдпрд╛рдХреНрдХреИ рек рдмрд╛рдЗрдЯреНрд╕ рдкрдвреНрдЫ, рдпрд╕рдорд╛ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕рд╛рде рдУрднрд░рд▓рд╛рдЗрдЩ рдлрд┐рд▓реНрдб PolymorType рдкрдвреНрдиреБрд╣реЛрд╕реНред рджреЗрдЦреНрдЫ 0x2crc32 рд░ рдмреБрдЭреНрдЫ рдХрд┐ рддреНрдпрд╣рд╛рдБ рджреБрдИ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдЫрдиреН, рдкрд╣рд┐рд▓реЗ long, рдЬрд╕рдХреЛ рдорддрд▓рдм рд╣рд╛рдореА 8 рдмрд╛рдЗрдЯрд╣рд░реВ рдкрдвреНрдЫреМрдВред рд░ рддреНрдпрд╕рдкрдЫрд┐ рдлреЗрд░рд┐ рдПрдХ рдЬрдЯрд┐рд▓ рдкреНрд░рдХрд╛рд░, рдЬреЛ рдЙрд╣реА рддрд░рд┐рдХрд╛ deserialized рдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, Type3 рдХреНрд░рдорд╢рдГ рджреБрдИ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рдХреЛ рд░реВрдкрдорд╛ рд╕рд░реНрдХрд┐рдЯрдорд╛ рдШреЛрд╖рдгрд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рддреНрдпрд╕рдкрдЫрд┐ рддрд┐рдиреАрд╣рд░реВ рдпрд╛ рдд рднреЗрдЯреНрдиреБрдкрд░реНрдЫ 0x12abcd34, рдЬрд╕ рдкрдЫрд┐ рддрдкрд╛рдИрдВрд▓реЗ 4 рдердк рдмрд╛рдЗрдЯрд╣рд░реВ рдкрдвреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ int, рд╡рд╛ 0x6789cdef, рддреНрдпрд╕рдкрдЫрд┐ рддреНрдпрд╣рд╛рдБ рдХреЗрд╣рд┐ рд╣реБрдиреЗрдЫреИрдиред рдЕрд░реВ рдХреЗрд╣рд┐ - рддрдкрд╛рдЗрдБ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдЬреЗ рднрдП рдкрдирд┐, рдпрд╕ рдкрдЫрд┐ рд╣рд╛рдореА 4 рдмрд╛рдЗрдЯрд╣рд░реВ рдкрдвреНрди рдлрд░реНрдХрдиреНрдЫреМрдВ int рдХреНрд╖реЗрддреНрд░рд╣рд░реБ field_c ╨▓ constructorTwo рд░ рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдкрдврд╛рдЗ рд╕рдорд╛рдкреНрдд рдЧрд░реНрдЫреМрдВ PolymorType.

рдЕрдиреНрддрдорд╛, рдпрджрд┐ рддрдкрд╛рдИрдВ рд╕рдорд╛рддреНрдиреБ рднрдпреЛ 0xdeadcrc рд▓рд╛рдЧрд┐ constructorThreeрддреНрдпрд╕рдкрдЫрд┐ рд╕рдмреИ рдХреБрд░рд╛ рдердк рдЬрдЯрд┐рд▓ рд╣реБрдиреНрдЫред рд╣рд╛рдореНрд░реЛ рдкрд╣рд┐рд▓реЛ рдХреНрд╖реЗрддреНрд░ рд╣реЛ bit_flags_of_what_really_present рдкреНрд░рдХрд╛рд░ рд╕рдВрдЧ # - рд╡рд╛рд╕реНрддрд╡рдорд╛, рдпреЛ рдкреНрд░рдХрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдПрдХ рдЙрдкрдирд╛рдо рд╣реЛ nat, рдЕрд░реНрде "рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдВрдЦреНрдпрд╛"ред рддреНрдпреЛ рд╣реЛ, рд╡рд╛рд╕реНрддрд╡рдорд╛, рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд int, рд╡реИрд╕реЗ, рдПрдХ рдорд╛рддреНрд░ рдХреЗрд╕ рд╣реЛ рдЬрдм рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рдВрдЦреНрдпрд╛рд╣рд░реВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд░реНрдХрд┐рдЯрд╣рд░реВрдорд╛ рджреЗрдЦрд╛ рдкрд░реНрджрдЫред рддреНрдпрд╕реЛрднрдП, рдЕрд░реНрдХреЛ рдкреНрд░рд╢реНрди рдЪрд┐рдиреНрд╣ рд╕рд╣рд┐рддрдХреЛ рдирд┐рд░реНрдорд╛рдг рд╣реЛ, рдпрд╕рдХреЛ рдЕрд░реНрде рдпреЛ рдХреНрд╖реЗрддреНрд░ - рдпреЛ рддрд╛рд░рдорд╛ рдорд╛рддреНрд░ рдЙрдкрд╕реНрдерд┐рдд рд╣реБрдиреЗрдЫ рдпрджрд┐ рд╕рдореНрдмрдиреНрдзрд┐рдд рдмрд┐рдЯрд▓рд╛рдИ рд╕рдиреНрджрд░реНрдн рдЧрд░рд┐рдПрдХреЛ рдХреНрд╖реЗрддреНрд░рдорд╛ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ (рд▓рдЧрднрдЧ рдПрдХ рдЯрд░реНрдирд░реА рдЕрдкрд░реЗрдЯрд░ рдЬрд╕реНрддреИ)ред рддреНрдпрд╕реЛрднрдП, рдорд╛рдиреМрдВ рдХрд┐ рдпреЛ рдмрд┐рдЯ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЬрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рдЬрд╕реНрддреИ рдлрд┐рд▓реНрдб рдкрдвреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ Type, рдЬрд╕рдорд╛ рд╣рд╛рдореНрд░реЛ рдЙрджрд╛рд╣рд░рдгрдорд╛ реи рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд╣рд░реВ рдЫрдиреНред рдПрдЙрдЯрд╛ рдЦрд╛рд▓реА рдЫ (рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ рдорд╛рддреНрд░ рд╕рдорд╛рд╡реЗрд╢ рдЫ), рдЕрд░реНрдХреЛрдорд╛ рдлрд┐рд▓реНрдб рдЫ ids рдкреНрд░рдХрд╛рд░ рд╕рдВрдЧ ids:Vector<long>.

рддрдкрд╛рдЗрдБ рд╕реЛрдЪреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рджреБрдмреИ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд░ рдЬреЗрдиреЗрд░рд┐рдХрд╣рд░реВ рдкреЗрд╢реЗрд╡рд░ рд╡рд╛ Java рдорд╛ рдЫрдиреНред рддрд░ рд╣реЛрдЗрдиред рд▓рдЧрднрдЧред рдпреЛ рдПрдХрд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд░реНрдХрд┐рдЯрд╣рд░реВрдорд╛ рдХреЛрдг рдХреЛрд╖реНрдардХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдорд╛рдорд▓рд╛, рд░ рдпреЛ рднреЗрдХреНрдЯрд░рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдмрд╛рдЗрдЯ рд╕реНрдЯреНрд░рд┐рдордорд╛, рдпреА рднреЗрдХреНрдЯрд░ рдкреНрд░рдХрд╛рд░рдХрд╛ рд▓рд╛рдЧрд┐ 4 CRC32 рдмрд╛рдЗрдЯрд╣рд░реВ рд╣реБрдиреЗрдЫрдиреН, рд╕рдзреИрдВ рдЙрд╕реНрддреИ, рддреНрдпрд╕рдкрдЫрд┐ 4 рдмрд╛рдЗрдЯрд╣рд░реВ - array рддрддреНрд╡рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдпреА рддрддреНрд╡рд╣рд░реВ рдЖрдлреИрдВред

рдпрд╕ рддрдереНрдпрдорд╛ рдердкреНрдиреБрд╣реЛрд╕реН рдХрд┐ рдХреНрд░рдордмрджреНрдзрддрд╛ рд╕рдзреИрдВ 4 рдмрд╛рдЗрдЯрдХреЛ рд╢рдмреНрджрд╣рд░реВрдорд╛ рд╣реБрдиреНрдЫ, рд╕рдмреИ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдпрд╕рдХреЛ рдЧреБрдгрди рд╣реБрдиреН - рдирд┐рд░реНрдорд┐рдд рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдкрдирд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫред bytes ╨╕ string рд▓рдореНрдмрд╛рдЗрдХреЛ рдореНрдпрд╛рдиреБрдЕрд▓ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╕рдирдХреЛ рд╕рд╛рде рд░ 4 рджреНрд╡рд╛рд░рд╛ рдпреЛ рдкрдЩреНрдХреНрддрд┐рдмрджреНрдзрддрд╛ - рд░рд╛рдореНрд░реЛ, рдпреЛ рд╕рд╛рдорд╛рдиреНрдп рд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ? рдпрджреНрдпрдкрд┐ TL рд▓рд╛рдИ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рдмрд╛рдЗрдирд░реА рд╕рд┐рд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╕рди рднрдПрдХреЛ рджрд╛рдмреА рдЧрд░рд┐рдПрдХреЛ рдЫ, рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рдирд░рдХрдорд╛, рдХреЗрд╣рд┐ рдкрдирд┐ рд╡рд┐рд╕реНрддрд╛рд░рдХреЛ рд╕рд╛рде, рдмреБрд▓рд┐рдпрди рдорд╛рдирд╣рд░реВ рд░ рдПрдХрд▓-рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░ рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВ 4 рдмрд╛рдЗрдЯрд╣рд░реВрдорд╛, рдХреЗ JSON рдЕрдЭреИ рдзреЗрд░реИ рдореЛрдЯреЛ рд╣реБрдиреЗрдЫ? рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН, рдЕрдирд╛рд╡рд╢реНрдпрдХ рдлрд┐рд▓реНрдбрд╣рд░реВ рдкрдирд┐ рдмрд┐рдЯ рдлреНрд▓реНрдпрд╛рдЧрд╣рд░реВрд╕рдБрдЧ рдЫреЛрдбреНрди рд╕рдХрд┐рдиреНрдЫ, рд╕рдмреИ рдХреБрд░рд╛ рдПрдХрджрдо рд░рд╛рдореНрд░реЛ рдЫ, рд░ рднрд╡рд┐рд╖реНрдпрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╕реНрддрд╛рд░рдпреЛрдЧреНрдп рдкрдирд┐ рдЫ, рддреНрдпрд╕реЛрднрдП рдХрд┐рди рдкрдЫрд┐ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рдорд╛ рдирдпрд╛рдБ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдердкреНрдиреБ рд╣реБрдБрджреИрди?..

рддрд░ рд╣реЛрдЗрди, рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдореЗрд░реЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рд╣реЛрдЗрди, рддрд░ рдкреВрд░реНрдг рдХрд╛рдЧрдЬрд╛рдд рдкрдвреНрдиреБрднрдпреЛ рднрдиреЗ, рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реЛрдЪреНрдиреБрд╣реЛрд╕реНред рд╕рд░реНрд╡рдкреНрд░рдердо, рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рдХреЛ CRC32 рдпреЛрдЬрдирд╛рдХреЛ рдкрд╛рда рд╡рд┐рд╡рд░рдгрдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд░реЗрдЦрд╛ рдЕрдиреБрд╕рд╛рд░ рдЧрдгрдирд╛ рдЧрд░рд┐рдиреНрдЫ (рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реНрд╡рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рд╣рдЯрд╛рдЙрдиреБрд╣реЛрд╕реН, рдЗрддреНрдпрд╛рджрд┐) - рддреНрдпрд╕реИрд▓реЗ рдпрджрд┐ рдирдпрд╛рдБ рдлрд┐рд▓реНрдб рдердкрд┐рдпреЛ рднрдиреЗ, рдкреНрд░рдХрд╛рд░ рд╡рд┐рд╡рд░рдг рд░реЗрдЦрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреЗрдЫ, рд░ рддреНрдпрд╕реИрд▓реЗ рдпрд╕рдХреЛ CRC32 рд░ , рдлрд▓рд╕реНрд╡рд░реВрдк, рдХреНрд░рдордмрджреНрдзрддрд╛ред рд░ рдкреБрд░рд╛рдиреЛ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдХреЗ рдЧрд░реНрдЫ рдпрджрд┐ рдЙрд╕рд▓реЗ рдирдпрд╛рдБ рдЭрдгреНрдбрд╛ рд╕реЗрдЯрдХреЛ рд╕рд╛рде рдлрд┐рд▓реНрдб рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдпреЛ, рд░ рдЙрд╕рд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫреИрди рдХрд┐ рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рдХреЗ рдЧрд░реНрдиреЗ?..

рджреЛрд╕реНрд░реЛ, рдпрд╛рдж рдЧрд░реМрдВ рд╕реАрдЖрд░рд╕реА рей32, рдЬреБрди рдпрд╣рд╛рдБ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЫ рд╣реНрдпрд╛рд╕ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдХреБрди рдкреНрд░рдХрд╛рд░ (de) рдХреНрд░рдордмрджреНрдз рдЧрд░рд┐рдБрджреИрдЫ рднрдиреЗрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдкрдорд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрдиред рдпрд╣рд╛рдБ рд╣рд╛рдореА рдЯрдХреНрдХрд░рд╣рд░реВрдХреЛ рд╕рдорд╕реНрдпрд╛рдХреЛ рд╕рд╛рдордирд╛ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВ - рд░ рд╣реЛрдЗрди, рд╕рдореНрднрд╛рд╡реНрдпрддрд╛ 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) Lisp рдорд╛)ред рддрд░ рдпреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡рд▓реЗ рдпрд╕рдХреЛ рдкреНрд░рдХрд╛рд░ рд╡рд░реНрдгрди рдЧрд░реНрди рдердк 4 рдмрд╛рдЗрдЯрд╣рд░реВ рдЦрд░реНрдЪ рдЧрд░реНрджрдЫ (TL рдорд╛ CRC32)ред рдПрд░реЗ рдкрдирд┐ рд╕рдЬрд┐рд▓реИ рд╡рд░реНрдгрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░, рддрд░ рдЕрдЧреНрд░рд┐рдо рдЕрдЬреНрдЮрд╛рдд рд▓рдореНрдмрд╛рдЗрдХреЛ рдПрд░реНрд░реЗрдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореА рддреЛрдбреНрдЫреМрдВред

рддрд╕рд░реНрде, TL рд▓реЗ рднреЗрдХреНрдЯрд░ рдЖрдЙрдЯрдкреБрдЯ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИрди, рдпрд╕рд▓рд╛рдИ рдЫреЗрдЙрдорд╛ рдердкреНрдиреБрдкрд░реНрдереНрдпреЛред рдЕрдиреНрддрддрдГ рджрд╕реНрддрд╛рд╡реЗрдЬ рднрдиреНрдЫ:

рдХреНрд░рдорд┐рдХрд░рдгрд▓реЗ рд╕рдзреИрдВ рд╕рдорд╛рди рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ "рднреЗрдХреНрдЯрд░" (const 0x1cb5c415 = crc32("рднреЗрдХреНрдЯрд░ t:Type # [ t ] = рднреЗрдХреНрдЯрд░ t") рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рдЬреБрди t рдкреНрд░рдХрд╛рд░рдХреЛ рдЪрд░рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдирдорд╛ рдирд┐рд░реНрднрд░ рд╣реБрдБрджреИрдиред

рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ t рдХреЛ рдорд╛рди рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рдирдорд╛ рд╕рдВрд▓рдЧреНрди рд╣реБрдБрджреИрди рдХрд┐рдирднрдиреЗ рдпреЛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд░рдмрд╛рдЯ рд▓рд┐рдЗрдПрдХреЛ рд╣реЛ (рдЬрд╣рд┐рд▓реЗ рдкрдирд┐ рдбрд┐рд╕реЗрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╕рди рдЕрдШрд┐ рдерд╛рд╣рд╛ рд╣реБрдиреНрдЫ)ред

рдирдЬрд┐рдХрдмрд╛рдЯ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН: vector {t:Type} # [ t ] = Vector t - рддрд░ рдХрддреИ рдкрдирд┐ рдЫреИрди рдпреЛ рдкрд░рд┐рднрд╛рд╖рд╛ рдЖрдлреИрдВрд▓реЗ рдкрд╣рд┐рд▓реЛ рдирдореНрдмрд░ рднреЗрдХреНрдЯрд░рдХреЛ рд▓рдореНрдмрд╛рдЗ рдмрд░рд╛рдмрд░ рд╣реБрдиреБрдкрд░реНрдЫ рднрдиреЗрд░ рднрдиреНрджреИрди! рд░ рдпреЛ рдХрддреИрдмрд╛рдЯ рдЖрдЙрдБрджреИрдиред рдпреЛ рдПрдХ рджрд┐рдЗрдПрдХреЛ рдЫ рдЬреБрди рджрд┐рдорд╛рдЧрдорд╛ рд░рд╛рдЦреНрдиреБ рдкрд░реНрдЫ рд░ рдЖрдлреНрдиреЛ рд╣рд╛рддрд▓реЗ рд▓рд╛рдЧреВ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдЕрдиреНрдпрддреНрд░, рдХрд╛рдЧрдЬрд╛рддрд▓реЗ рдкрдирд┐ рдЗрдорд╛рдирджрд╛рд░реАрдкреВрд░реНрд╡рдХ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░реЗрдХреЛ рдЫ рдХрд┐ рдкреНрд░рдХрд╛рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫреИрди:

рднреЗрдХреНрдЯрд░ рдЯреА рдкреЛрд▓рд┐рдореЛрд░реНрдлрд┐рдХ рд╕реНрдпреВрдбреЛрдЯрд╛рдЗрдк рдПрдЙрдЯрд╛ "рдкреНрд░рдХрд╛рд░" рд╣реЛ рдЬрд╕рдХреЛ рдорд╛рди рдХреБрдиреИ рдкрдирд┐ рдкреНрд░рдХрд╛рд░рдХреЛ t, рдпрд╛ рдд рдмрдХреНрд╕ рдЧрд░рд┐рдПрдХреЛ рд╡рд╛ рдмреЗрдпрд░рдХреЛ рдорд╛рдирд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдо рд╣реЛред

... рддрд░ рддреНрдпрд╕рдорд╛ рдзреНрдпрд╛рди рджрд┐рдБрджреИрдиред рдЬрдм рддрдкрд╛рдИ, рдЧрдгрд┐рддрдХреЛ рд╕реНрдЯреНрд░реЗрдЪрд┐рдЩрдмрд╛рдЯ рдердХрд┐рдд рд╣реБрдиреБрднрдпреЛ (рд╕рд╛рдпрдж рддрдкрд╛рдИрд▓рд╛рдИ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдпрдХреЛ рдкрд╛рдареНрдпрдХреНрд░рдордмрд╛рдЯ рдкрдирд┐ рдерд╛рд╣рд╛ рдЫ), рд╣рд╛рд░ рдорд╛рдиреНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рд░ рд╡рд╛рд╕реНрддрд╡рдорд╛ рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛ рдпрд╕рд▓рд╛рдИ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╣реЗрд░реНрдиреБрд╣реБрдиреНрдЫ, рддрдкрд╛рдИрдХреЛ рджрд┐рдорд╛рдЧрдорд╛ рдЫрд╛рдк рдЫреЛрдбреНрдЫ рдХрд┐ рдпреЛ рдЧрдореНрднреАрд░ рдЫред рдХреЛрд░рдорд╛ рдЧрдгрд┐рдд, рдпреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдХреВрд▓ рдорд╛рдирд┐рд╕рд╣рд░реВ (рджреБрдИ рдЧрдгрд┐рддрдЬреНрдЮрд╣рд░реВ - ACM рд╡рд┐рдЬреЗрддрд╛) рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рд░ рдХрд╕реИрд▓рд╛рдИ рдорд╛рддреНрд░ рд╣реЛрдЗрдиред рд▓рдХреНрд╖реНрдп - рджреЗрдЦрд╛рдЙрдиреЗ - рд╣рд╛рд╕рд┐рд▓ рднрдПрдХреЛ рдЫред

рдЦреИрд░, рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрд╛рд░реЗ рдорд╛ред рд╣рд╛рдореА рддрдкрд╛рдИрдВрд▓рд╛рдИ рддреНрдпреЛ рд╕рдореНрдЭрдирд╛ рдЧрд░реМрдВ # рдпреЛ рдПрдХ рд╕рдорд╛рдирд╛рд░реНрдереА рд╢рдмреНрдж рд╣реЛ 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 VKontakte рдХреЛ рдЧрд╣рд┐рд░рд╛рдИ рдорд╛ Durov рдХреЛ рд╢реЗрдпрд░ рдХреЛ рдмрд┐рдХреНрд░реА рд╕рдВрдЧ рдкреНрд░рд╕рд┐рджреНрдз рдШрдЯрдирд╛рд╣рд░реБ рдЕрдШрд┐ рдкрдирд┐ рдЬрдиреНрдо рднрдПрдХреЛ рдерд┐рдпреЛ рд░ (рдкрдХреНрдХреИ рдкрдирд┐), рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдХреЛ рд╡рд┐рдХрд╛рд╕ рд╕реБрд░реБ рд╣реБрдиреБ рдЕрдШрд┐ рдиреИред рд░ рдЦреБрд▓рд╛ рд╕реНрд░реЛрддрдорд╛ рдкрд╣рд┐рд▓реЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рддрдкрд╛рдИрдВ рдзреЗрд░реИ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рдмреИрд╕рд╛рдЦреА рдкрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рд░ рднрд╛рд╖рд╛ рдЖрдлреИрдВ рддреНрдпрд╣рд╛рдБ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рдЕрд╣рд┐рд▓реЗ рднрдиреНрджрд╛ рдмрдвреА рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣реНрдпрд╛рд╕рд╣рд░реВ рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдБрджреИрди (рдЕрд░реНрдердорд╛ рдирд┐рд░реНрдорд┐рдд рд╕реНрдпреВрдбреЛрдЯрд╛рдЗрдк (рдПрдХ рднреЗрдХреНрдЯрд░ рдЬрд╕реНрддреИ) рд╡рд┐рдЪрд▓рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░рдХреЛ рд╕рд╛рде)ред рд╡рд╛

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>;

рдпреЛ int - Type рдЬреЛрдбреАрд╣рд░реВрдХреЛ рднреЗрдХреНрдЯрд░рдХреЛ рд░реВрдкрдорд╛ рд╣реНрдпрд╛рд╢рдореНрдпрд╛рдк рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкреНрд░рдХрд╛рд░рдХреЛ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЛред C++ рдорд╛ рдпреЛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

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

рддреНрдпрд╕реИрд▓реЗ, alpha - рдХреАрд╡рд░реНрдб! рддрд░ рдХреЗрд╡рд▓ C++ рдорд╛ рддрдкрд╛рдЗрдБ T рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рддрдкрд╛рдЗрдБрд▓реЗ рдЕрд▓реНрдлрд╛, рдмреАрдЯрд╛ рд▓реЗрдЦреНрдиреБ рдкрд░реНрдЫ ... рддрд░ 8 рдорд╛рдкрджрдгреНрдбрд╣рд░реВ рднрдиреНрджрд╛ рдмрдвреА рдЫреИрди, рдЬрд╣рд╛рдБ рдХрд▓реНрдкрдирд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫред рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдХрд┐ рдПрдХ рдкрдЯрдХ рд╕реЗрдиреНрдЯ рдкрд┐рдЯрд░реНрд╕рдмрд░реНрдЧрдорд╛ рдХреЗрд╣рд┐ рд╕рдВрд╡рд╛рджрд╣рд░реВ рдпрд╕ рдкреНрд░рдХрд╛рд░рдХрд╛ рдерд┐рдП:

-- ╨Э╨░╨┤╨╛ ╤Б╨┤╨╡╨╗╨░╤В╤М ╨▓ TL ╤И╨░╨▒╨╗╨╛╨╜╤Л
-- ╨С╨╗... ╨Э╤Г ╨┐╤Г╤Б╤В╤М ╨┐╨░╤А╨░╨╝╨╡╤В╤А╤Л ╨╖╨╛╨▓╤Г╤В ╨░╨╗╤М╤Д╨░, ╨▒╨╡╤В╨░,... ╨Ъ╨░╨║╨╕╨╡ ╤В╨░╨╝ ╨╡╤Й╤С ╨▒╤Г╨║╨▓╤Л ╨╡╤Б╤В╤М... ╨Ю, ╤В╤Н╤В╨░!
-- ╨У╤А╨░╨╝╨╝╨░╤В╨╕╨║╨░? ╨Э╤Г ╨┐╨╛╤В╨╛╨╝ ╨╜╨░╨┐╨╕╤И╨╡╨╝

-- ╨б╨╝╨╛╤В╤А╨╕╤В╨╡, ╨║╨░╨║╨╛╨╣ ╤П ╤Б╨╕╨╜╤В╨░╨║╤Б╨╕╤Б ╨┐╤А╨╕╨┤╤Г╨╝╨░╨╗ ╨┤╨╗╤П ╤И╨░╨▒╨╗╨╛╨╜╨╛╨▓ ╨╕ ╨▓╨╡╨║╤В╨╛╤А╨░!
-- ╨в╤Л ╨┤╨╛╨╗╨▒╨░╨╜╤Г╨╗╤Б╤П, ╨║╨░╨║ ╨╝╤Л ╤Н╤В╨╛ ╨┐╨░╤А╤Б╨╕╤В╤М ╨▒╤Г╨┤╨╡╨╝?
-- ╨Ф╨░ ╨╜╨╡ ╤Б╤Б╤Л╤В╨╡, ╨╛╨╜ ╤В╨░╨╝ ╨╛╨┤╨╕╨╜ ╨▓ ╤Б╤Е╨╡╨╝╨╡, ╨╖╨░╤Е╨░╤А╨║╨╛╨┤╨╕╤В╤М -- ╨╕ ╨╛╨║

рддрд░ рдпреЛ TL рдХреЛ "рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛" рдХреЛ рдкрд╣рд┐рд▓реЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдмрд╛рд░реЗрдорд╛ рдерд┐рдпреЛред рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреНрд▓рд╛рдЗрдиреНрдЯрд╣рд░реВ рдЖрдлреИрдВрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрди рдЕрдЧрд╛рдбрд┐ рдмрдвреМрдВред

Vasily рдХреЛ рд╢рдмреНрдж:

Vasily, [09.10.18 17:07] рд╕рдмреИ рднрдиреНрджрд╛, рдЧрдзрд╛ рддрд╛рддреЛ рдЫ рдХрд┐рдирднрдиреЗ рддрд┐рдиреАрд╣рд░реВрд▓реЗ abstractions рдХреЛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рддрд┐рдиреАрд╣рд░реВрдорд╛ рдмреЛрд▓реНрдЯ рд╣рдереМрдбрд╝рд╛, рд░ рдмреИрд╕рд╛рдЦреА рд╕рдВрдЧ рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рдЫреЛрдкреНрдпреЛред
рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдкрд╣рд┐рд▓реЗ рдбрдХ pilot.jpg рдмрд╛рдЯ
рддреНрдпрд╕рдкрдЫрд┐ рдХреЛрдб dzhekichan.webp рдмрд╛рдЯ

рдЕрд╡рд╢реНрдп рдкрдирд┐, рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд░ рдЧрдгрд┐рддрд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдмрд╛рдЯ, рд╣рд╛рдореА рдЖрд╢рд╛ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рдХрд┐ рдЙрдиреАрд╣рд░реВрд▓реЗ Aho, Ullmann рдкрдвреЗрдХрд╛ рдЫрдиреН, рд░ рдЙрдкрдХрд░рдгрд╣рд░реВрд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рдЫрдиреН рдЬреБрди рдЙрджреНрдпреЛрдЧрдорд╛ рджрд╢рдХреМрдВрджреЗрдЦрд┐ рдЙрдиреАрд╣рд░реВрдХреЛ DSL рдХрдореНрдкрд╛рдЗрд▓рд░рд╣рд░реВ рд▓реЗрдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдирдХ рдмрдиреЗрдХреЛ рдЫ, рд╣реИрди?

рджреНрд╡рд╛рд░рд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо-рдХреНрд▓рд┐ Vitaly Valtman рд╣реЛ, рдЬрд╕рд░реА TLO рдврд╛рдБрдЪрд╛ рдпрд╕рдХреЛ (cli) рд╕реАрдорд╛рдирд╛ рдмрд╛рд╣рд┐рд░ рднрдПрдХреЛ рдШрдЯрдирд╛рдмрд╛рдЯ рдмреБрдЭреНрди рд╕рдХрд┐рдиреНрдЫ, рдЯреЛрд▓реАрдХреЛ рд╕рджрд╕реНрдп - рдЕрдм TL рдкрд╛рд░реНрд╕рд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрд╡рдВрдЯрд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдЫреБрдЯреНрдЯреИ, рдЙрдирдХреЛ рдХрд╕реНрддреЛ рдЫрд╛рдк рдЫ TL рдкрд╛рд░реНрд╕рд░? ..

16.12 04:18 рднрд╛рд╕рд┐рд▓реА: рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рдХрд╕реИрд▓реЗ рд▓реЗрдХреНрд╕+рдпрд╛рдХрдорд╛ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдЧрд░реЗрдХреЛ рдЫреИрди
16.12 04:18 Vasily: рдо рдпрд╕рд▓рд╛рдИ рдЕрдиреНрдпрдерд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░реНрди рд╕рдХреНрджрд┐рди
16.12 04:18 Vasily: рдареАрдХ рдЫ, рд╡рд╛ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ VK рдорд╛ рд▓рд╛рдЗрдирд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рдХреЛ рд▓рд╛рдЧрд┐ рднреБрдХреНрддрд╛рди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ
16.12 04:19 Vasily: 3k+ рд░реЗрдЦрд╛рд╣рд░реВ рдЖрджрд┐ред<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 рдорд┐рд▓реЗрди рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдорд╛ рджреЗрдЦрд╛рдЗрдПрдХреЛ рдПрдХ рд╕рдВрдЧ!

Vasily, [18.12/22 49:XNUMX] рд░ рдпрд╣рд╛рдБ рдо рдпрд╕реНрддреЛ TL рдЖрд╡рд╢реНрдпрдХ рдЫ рдХрд┐ рднрдиреЗрд░ рд╕реЛрдЪреНрдиреЗрдЫреБ
рдпрджрд┐ рдо рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВрд╕рдБрдЧ рдЧрдбрдмрдб рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ рднрдиреЗ, рдо рд▓рд╛рдЗрди рдмреНрд░реЗрдХрд╣рд░реВ рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрди рд╕реБрд░реБ рдЧрд░реНрдиреЗрдЫреБ, рдЖрдзрд╛ рдкрд╛рд░реНрд╕рд░рд╣рд░реВ рдмрд╣реБ-рд▓рд╛рдЗрди рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рддреЛрдбрд┐рдиреЗрдЫрдиреНред
tdesktop, рддрдерд╛рдкрд┐, рдкрдирд┐

рдПрдХ-рд▓рд╛рдЗрдирд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рдмрд┐рдиреНрджреБ рд╕рдореНрдЭрдиреБрд╣реЛрд╕реН, рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдХреЗрд╣рд┐ рдкрдЫрд┐ рдлрд░реНрдХрд╛рдЙрдиреЗрдЫреМрдВред

рдареАрдХ рдЫ, рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо-рдХреНрд▓реА рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рдЫ, рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдбреЗрд╕реНрдХрдЯрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЫ, рддрд░ рдЕрд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗ рд╣реБрдиреНрдЫ? рдХрд╕рд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ?... рдПрдиреНрдбреНрд░реЛрдЗрдб рдХреНрд▓рд╛рдЗрдиреНрдЯ рдХреЛрдбрдорд╛ рдХреБрдиреИ рд╕реНрдХрд┐рдорд╛ рдкрд╛рд░реНрд╕рд░ рдерд┐рдПрди (рдЬрд╕рд▓реЗ рдЦреБрд▓рд╛ рд╕реНрд░реЛрддрдХреЛ рдмрд╛рд░реЗрдорд╛ рдкреНрд░рд╢реНрдирд╣рд░реВ рдЦрдбрд╛ рдЧрд░реНрдЫ, рддрд░ рдпреЛ рджреЛрд╕реНрд░реЛ рднрд╛рдЧрдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛ), рддрд░ рддреНрдпрд╣рд╛рдБ рдХреЛрдбрдХрд╛ рдЕрдиреНрдп рдзреЗрд░реИ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рдЯреБрдХреНрд░рд╛рд╣рд░реВ рдерд┐рдП, рддрд░ рддрд┐рдиреАрд╣рд░реВрдорд╛ рдердк рддрд▓рдХреЛ рдЙрдкрдЦрдгреНрдбред

рдХреНрд░рдордмрджреНрдзрддрд╛рд▓реЗ рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛ рдЕрд░реВ рдХреЗ рдкреНрд░рд╢реНрдирд╣рд░реВ рдЦрдбрд╛ рдЧрд░реНрдЫ? рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдзреЗрд░реИ рдЪреАрдЬрд╣рд░реВ рдЧрд░реЗ, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдмрд┐рдЯ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рд░ рд╕рд╢рд░реНрдд рдХреНрд╖реЗрддреНрд░рд╣рд░реВрд╕рдБрдЧ:

рднрд╛рд╕рд┐рд▓реА: flags.0? true
рдпрд╕рдХреЛ рдЕрд░реНрде рдХреНрд╖реЗрддреНрд░ рдЕрд╡рд╕реНрдерд┐рдд рдЫ рд░ рдЭрдгреНрдбрд╛ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ рдмрд░рд╛рдмрд░ рд╕рддреНрдп рд╣реБрдиреНрдЫ

рднрд╛рд╕рд┐рд▓реА: flags.1? int
рдпрд╕рдХреЛ рдорддрд▓рдм рдлрд┐рд▓реНрдб рдЕрд╡рд╕реНрдерд┐рдд рдЫ рд░ рдбрд┐рд╕реЗрд░рд┐рдпрд▓рд╛рдЗрдЬ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ

Vasily: рдЧрдзрд╛, рддрдкрд╛рдИ рдХреЗ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗрд░ рдЪрд┐рдиреНрддрд╛ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН!
Vasily: рдХрд╛рдЧрдЬрд╛рддрдорд╛ рдХрддреИ рдЙрд▓реНрд▓реЗрдЦ рдЫ рдХрд┐ рд╕рддреНрдп рдПрдХ рдЦрд╛рд▓реА рд╢реВрдиреНрдп-рд▓рдореНрдмрд╛рдЗ рдкреНрд░рдХрд╛рд░ рд╣реЛ, рддрд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдХрд╛рдЧрдЬрд╛рддрдмрд╛рдЯ рдХреЗрд╣рд┐ рдкрдирд┐ рднреЗрд▓рд╛ рдЧрд░реНрди рдЕрд╕рдореНрднрд╡ рдЫред
Vasily: рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВрдорд╛ рдпреЛ рдорд╛рдорд▓рд╛ рд╣реЛрдЗрди, рддрд░ рддреНрдпрд╣рд╛рдБ рдмреИрд╕рд╛рдЦреА рд░ рд╕рдорд░реНрдердирд╣рд░реВрдХреЛ рдЧреБрдЪреНрдЫрд╛ рдЫред

рдЯреЗрд▓рд┐рдердирдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗ рд╣реЛ? MTProto рдХреЛ рд╡рд┐рд╖рдпрдорд╛ рдЕрдЧрд╛рдбрд┐ рд╣реЗрд░реНрджреИ, рдПрдХ рдЙрджрд╛рд╣рд░рдг - рдХрд╛рдЧрдЬрд╛рддрдорд╛ рддреНрдпрд╕реНрддрд╛ рдЯреБрдХреНрд░рд╛рд╣рд░реВ рдЫрдиреН, рддрд░ рдЪрд┐рдиреНрд╣ % рдпрд╕рд▓рд╛рдИ рдХреЗрд╡рд▓ "рджрд┐рдИрдПрдХреЛ рдмреЗрдпрд░-рдкреНрд░рдХрд╛рд░рдХреЛ рдЕрдиреБрд░реВрдк" рднрдиреЗрд░ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЕрд░реНрдерд╛рддреНред рддрд▓рдХрд╛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛ рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рддреНрд░реБрдЯрд┐ рд╡рд╛ рдХрд╛рдЧрдЬрд╛рдд рдирднрдПрдХреЛ рдХреЗрд╣реА рдЫ:

Vasily, [22.06.18 18:38] рдПрдХ рдард╛рдЙрдБрдорд╛:

msg_container#73f1f8dc messages:vector message = MessageContainer;

рдПрдХ рдлрд░рдХ рдорд╛:

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

рд░ рдпреА рджреБрдИ рдареВрд▓рд╛ рднрд┐рдиреНрдирддрд╛рд╣рд░реВ рд╣реБрдиреН, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рдирдорд╛ рдХреБрдиреИ рдирдЧреНрди рднреЗрдХреНрдЯрд░ рдЖрдЙрдБрдЫ

рдореИрд▓реЗ рдмреЗрдпрд░ рднреЗрдХреНрдЯрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рджреЗрдЦреЗрдХреЛ рдЫреИрди рд░ рдПрдЙрдЯрд╛ рднреЗрдЯреЗрдХреЛ рдЫреИрди

рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЯреЗрд▓рд┐рдердирдорд╛ рд╣рд╛рддрд▓реЗ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ

рдЙрдирдХреЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдорд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдмрд╛рд╣рд┐рд░ рдЯрд┐рдкреНрдкрдгреА рдЧрд░рд┐рдПрдХреЛ рдЫ msg_container

рдлреЗрд░рд┐, рдкреНрд░рд╢реНрди % рдХреЛ рдмрд╛рд░реЗ рдорд╛ рд░рд╣рдиреНрдЫред рдпреЛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред

Vadim Goncharov, [22.06.18 19:22] рд░ tdesktop рдорд╛?

Vasily, [22.06.18 19:23] рддрд░ рдирд┐рдпрдорд┐рдд рдЗрдиреНрдЬрд┐рдирд╣рд░реВрдорд╛ рддрд┐рдиреАрд╣рд░реВрдХреЛ TL рдкрд╛рд░реНрд╕рд░рд▓реЗ рдпреЛ рдкрдирд┐ рдЦрд╛рдБрджреИрдирдиреНред

// parsed manually

TL рдПрдХ рд╕реБрдиреНрджрд░ рд╕рд╛рд░ рд╣реЛ, рдХрд╕реИрд▓реЗ рдпрд╕рд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрджреИрди

рд░ % рддрд┐рдиреАрд╣рд░реВрдХреЛ рдпреЛрдЬрдирд╛рдХреЛ рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рдЫреИрди

рддрд░ рдпрд╣рд╛рдБ рдХрд╛рдЧрдЬрд╛рдд рдЖрдлреИрдВрдорд╛ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рдЫ, рддреНрдпрд╕реИрд▓реЗ idk

рдпреЛ рд╡реНрдпрд╛рдХрд░рдгрдорд╛ рдлреЗрд▓рд╛ рдкрд░реНрдпреЛ, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдХреЗрд╡рд▓ рд╢рдмреНрджрд╛рд░реНрде рд╡рд░реНрдгрди рдЧрд░реНрди рдмрд┐рд░реНрд╕рди рд╕рдХреНрдереЗ

рддрдкрд╛рдИрдВрд▓реЗ TL рдорд╛ рдХрд╛рдЧрдЬрд╛рдд рд╣реЗрд░реНрдиреБрднрдпреЛ, рддрдкрд╛рдИрдВрд▓реЗ рдЖрдзрд╛ рд▓рд┐рдЯрд░ рдмрд┐рдирд╛ рдпреЛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрди

"рдареАрдХ рдЫ, рднрдиреМрдВ," рдЕрд░реНрдХреЛ рдкрд╛рдардХрд▓реЗ рднрдиреНрдиреЗрдЫ, "рддрдкрд╛рдИрд▓реЗ рдХреБрдиреИ рдХреБрд░рд╛рдХреЛ рдЖрд▓реЛрдЪрдирд╛ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдорд▓рд╛рдИ рдпреЛ рдХрд╕рд░реА рдЧрд░реНрдиреЗ рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрдиреБрд╣реЛрд╕реНред"

Vasily рдЬрд╡рд╛рдл рджрд┐рдиреНрдЫ: "рдкрд╛рд░реНрд╕рд░рдХреЛ рд▓рд╛рдЧрд┐, рдорд▓рд╛рдИ рдЪреАрдЬрд╣рд░реВ рдордирдкрд░реНрдЫ

    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 part_size рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рди рд░реВрдкрдорд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реБрдиреБрдкрд░реНрдЫ)

рдЕрдиреНрддрд┐рдо рднрд╛рдЧрд▓реЗ рдпреА рд╕рд░реНрддрд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрди, рдпрджрд┐ рдпрд╕рдХреЛ рдЖрдХрд╛рд░ part_size рднрдиреНрджрд╛ рдХрдо рдЫред

рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдПрдХ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рд╣реБрдиреБрдкрд░реНрдЫ, file_part, 0 рджреЗрдЦрд┐ 2,999 рд╕рдореНрдордХреЛ рдорд╛рдирдХреЛ рд╕рд╛рдеред

рдлрд╛рдЗрд▓ рд╡рд┐рднрд╛рдЬрди рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕рд░реНрднрд░рдорд╛ рдмрдЪрдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╡рд┐рдзрд┐ рдЫрдиреМрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН upload.saveBigFilePart рдлрд╛рдЗрд▓рдХреЛ рдкреВрд░реНрдг рд╕рд╛рдЗрдЬ резреж рдПрдордмреА рднрдиреНрджрд╛ рдмрдвреА рднрдПрдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рд░ upload.saveFilePart рд╕рд╛рдирд╛ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ред
[...] рдирд┐рдореНрди рдбреЗрдЯрд╛ рдЗрдирдкреБрдЯ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдлрд┐рд░реНрддрд╛ рд╣реБрди рд╕рдХреНрдЫ:

  • FILE_PARTS_INVALID тАФ рднрд╛рдЧрд╣рд░реВрдХреЛ рдЕрдорд╛рдиреНрдп рд╕рдВрдЦреНрдпрд╛ред рдореВрд▓реНрдп рдмреАрдЪрдорд╛ рдЫреИрди 1..3000

рдХреЗ рдпреЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдорд╛ рдЫ? рдХреЗ рдпреЛ TL рдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЕрднрд┐рд╡реНрдпрдХреНрдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ? рдЫреИрдиред рддрд░ рдорд▓рд╛рдИ рдорд╛рдл рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╣рдЬреБрд░рдмреБрдмрд╛рдХреЛ рдЯрд░реНрдмреЛ рдкрд╛рд╕реНрдХрд▓рд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрди рд╕рдХреНрд╖рдо рдерд┐рдП рджрд╛рдпрд░рд╛рд╣рд░реВред рд░ рдЙрд╕рд▓рд╛рдИ рдЕрд░реНрдХреЛ рдХреБрд░рд╛ рдерд╛рд╣ рдерд┐рдпреЛ, рдЕрдм рдЕрдЭ рд░рд╛рдореНрд░рд░реА рдЪрд┐рдирд┐рдиреНрдЫ enum - рдорд╛рдирд╣рд░реВрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд (рд╕рд╛рдиреЛ) рд╕рдВрдЦреНрдпрд╛рдХреЛ рдЧрдгрдирд╛ рд╕рдорд╛рд╡реЗрд╢ рднрдПрдХреЛ рдкреНрд░рдХрд╛рд░ред C - рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЬрд╕реНрддрд╛ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛, рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдХрд╛рд░рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рдХреБрд░рд╛ рдЧрд░реЗрдХрд╛ рдЫреМрдВ рд╕рдВрдЦреНрдпрд╛ред рддрд░ рддреНрдпрд╣рд╛рдБ рдкрдирд┐ arrays, strings... рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпреЛ рд╕реНрдЯреНрд░рд┐рдЩрд▓реЗ рдлреЛрди рдирдореНрдмрд░ рдорд╛рддреНрд░ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рд╕рдХреНрдЫ рднрдиреЗрд░ рд╡рд░реНрдгрди рдЧрд░реНрди рд░рд╛рдореНрд░реЛ рд╣реБрдиреЗрдЫ, рд╣реИрди?

рдпреА рдордзреНрдпреЗ рдХреБрдиреИ рдкрдирд┐ TL рдорд╛ рдЫреИрдиред рддрд░ рддреНрдпрд╣рд╛рдБ рдЫ, рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, JSON рд╕реНрдХреАрдорд╛ рдорд╛ред рд░ рдпрджрд┐ рдЕрд░реВ рдХрд╕реИрд▓реЗ 512 KB рдХреЛ рд╡рд┐рднрд╛рдЬреНрдпрддрд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рддрд░реНрдХ рдЧрд░реНрди рд╕рдХреНрдЫ, рдХрд┐ рдпреЛ рдЕрдЭреИ рдкрдирд┐ рдХреЛрдбрдорд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рддреНрдпрд╕рдкрдЫрд┐ рдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдорд╛рддреНрд░ рд╕рдХрд┐рдирдБ рджрд╛рдпрд░рд╛ рдмрд╛рд╣рд┐рд░ рдирдореНрдмрд░ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН 1..3000 (рд░ рд╕рдореНрдмрдиреНрдзрд┐рдд рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реБрди рд╕рдХреЗрди) рдпреЛ рд╕рдореНрднрд╡ рд╣реБрдиреНрдереНрдпреЛ, рд╣реИрди? ..

рд╡реИрд╕реЗ, рддреНрд░реБрдЯрд┐рд╣рд░реВ рд░ рдлрд┐рд░реНрддрд╛ рдорд╛рдирд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ред TL рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗрд╣рд░реВрд▓реЗ рдкрдирд┐ рдЖрдлреНрдиреЛ рдЖрдБрдЦрд╛ рдзрдорд┐рд▓реЛ рдкрд╛рд░реНрдЫрдиреН - рдпреЛ рд╣рд╛рдореАрд▓рд╛рдИ рддреБрд░реБрдиреНрддреИ рдерд╛рд╣рд╛ рднрдПрди рдкреНрд░рддреНрдпреЗрдХ рдПрдХ TL рдорд╛ рдПрдХ рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рд╡рд╛рд╕реНрддрд╡рдорд╛ рд╡рд░реНрдгрд┐рдд рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рдорд╛рддреНрд░ рд╣реЛрдЗрди, рддрд░ рддреНрд░реБрдЯрд┐ рдкрдирд┐ рдлрд░реНрдХрд╛рдЙрди рд╕рдХреНрдЫред рддрд░ рдпреЛ 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, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддреНрдпрд╕реНрддрд╛ рд▓рд╛рдореЛ рд▓рд╛рдЗрдирд╣рд░реВ рднрд┐рддреНрд░ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░реНрди рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫред рдЦреЗрд▓ "резреж рднрд┐рдиреНрдирддрд╛рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБрд╣реЛрд╕реН", рд░ рдорд╕реНрддрд┐рд╖реНрдХрд▓реЗ рддреБрд░реБрдиреНрддреИ рдХреЗ рджреЗрдЦреНрдЫ рдХрд┐ рджреБрдмреИ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛ рд╢реБрд░реБрд╡рд╛рдд рд░ рдЕрдиреНрддреНрдпрд╣рд░реВ рд╕рдорд╛рди рдЫрдиреН, рддрдкрд╛рдИрдВрд▓реЗ рдердХрд┐рдд рднрдПрд░ рдмреАрдЪрдорд╛ рдХрддреИ рдкрдвреНрдиреБ рдЖрд╡рд╢реНрдпрдХ рдЫ... рдореЗрд░реЛ рд╡рд┐рдЪрд╛рд░рдорд╛, рдпреЛ рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрди, рддрд░ рд╡рд┐рд╢реБрджреНрдз рджреГрд╖реНрдЯрд┐рд▓реЗ рдлреЛрд╣реЛрд░ рд░ рдлреЛрд╣реЛрд░.

рд╡реИрд╕реЗ, рд╕рд┐рджреНрдзрд╛рдиреНрдд рдХреЛ рд╢реБрджреНрдзрддрд╛ рдХреЛ рдмрд╛рд░реЗ рдорд╛ред рд╣рд╛рдореАрд▓рд╛рдИ рдмрд┐рдЯ рдлрд┐рд▓реНрдбрд╣рд░реВ рдХрд┐рди рдЪрд╛рд╣рд┐рдиреНрдЫ? рдЙрдиреАрд╣рд░реБрд▓рд╛рдИ рд▓рд╛рдЧреНрджреИрди рдЧрдиреНрдз рдкреНрд░рдХрд╛рд░ рд╕рд┐рджреНрдзрд╛рдиреНрдд рдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рджреЗрдЦрд┐ рдЦрд░рд╛рдм? рд╡реНрдпрд╛рдЦреНрдпрд╛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдХреЛ рдЕрдШрд┐рд▓реНрд▓реЛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ рджреЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫред рд╕реБрд░реБрдорд╛, рд╣реЛ, рдпреЛ рдХрд╕реНрддреЛ рдерд┐рдпреЛ, рд╣рд░реЗрдХ рд╣рд╛рдЪреНрдЫрд┐рдЙрдБрдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдкреНрд░рдХрд╛рд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдпреА рдкреВрд░реНрд╡рд╛рдзрд╛рд░рд╣рд░реВ рдЕрдЭреИ рдкрдирд┐ рдпрд╕ рдлрд╛рд░рдордорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫрдиреН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

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;

рдЕрднреНрдпрд╛рд╕рдорд╛, рдпрд╕рдХреЛ рдорддрд▓рдм рдкреНрд░рддреНрдпреЗрдХ рдПрдкреАрдЖрдИ рдХрд▓ рдЕрдШрд┐, рдорд╛рдирдХреЛ рд╕рд╛рде рдПрдХ int 0x289dd1f6 рд╡рд┐рдзрд┐ рдирдореНрдмрд░ рдЕрдШрд┐ рдердкреНрдиреБ рдкрд░реНрдЫред

рд╕рд╛рдорд╛рдиреНрдп рд╕реБрдирд┐рдиреНрдЫред рддрд░ рддреНрдпрд╕рдкрдЫрд┐ рдХреЗ рднрдпреЛ? рддреНрдпрд╕рдкрдЫрд┐ рджреЗрдЦрд╛ рдкрд░реНрдпреЛ

invokeWithLayer3#b7475268 query:!X = X;

рддреНрдпрд╕реЛрднрдП рдЕрд░реНрдХреЛ рдХреЗ рдЫ? рддрдкрд╛рдИрд▓реЗ рдЕрдиреБрдорд╛рди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ,

invokeWithLayer4#dea0d430 query:!X = X;

рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж? рд╣реЛрдЗрди, рд╣рд╛рдБрд╕реНрди рдзреЗрд░реИ рдЪрд╛рдБрдбреЛ рдЫ, рдпреЛ рддрдереНрдпрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реЛрдЪреНрдиреБрд╣реЛрд╕реН рдкреНрд░рддреНрдпреЗрдХ рдЕрд░реНрдХреЛ рддрд╣рдХреЛ рдЕрдиреБрд░реЛрдзрд▓рд╛рдИ рдпрд╕реНрддреЛ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░рдорд╛ рд░реНтАНрдпрд╛рдк рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ - рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВ рд╕рдмреИ рддрдкрд╛рдИрдВрдХреЛ рд▓рд╛рдЧрд┐ рдлрд░рдХ рдЫрдиреН рднрдиреЗ, рддрдкрд╛рдИрдВ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд╕рд░реА рдЫреБрдЯреНрдпрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ? рд░ рдЕрдЧрд╛рдбрд┐ рдорд╛рддреНрд░ 4 рдмрд╛рдЗрдЯрд╣рд░реВ рдердкреНрдиреБ рдПрдХ рд░рд╛рдореНрд░реЛ рдХреБрд╢рд▓ рд╡рд┐рдзрд┐ рд╣реЛред рддрд░,

invokeWithLayer5#417a57ae query:!X = X;

рддрд░ рдпреЛ рд╕реНрдкрд╖реНрдЯ рдЫ рдХрд┐ рдХреЗрд╣рд┐ рд╕рдордп рдкрдЫрд┐ рдпреЛ рдПрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рдмрдЪрдирд╛рд▓рд┐рдпрд╛ рд╣реБрдиреЗрдЫред рд░ рд╕рдорд╛рдзрд╛рди рдЖрдпреЛ:

рдЕрдкрдбреЗрдЯ: рд▓реЗрдпрд░ реп рдмрд╛рдЯ рд╕реБрд░реБ рдЧрд░реНрджреИ, рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзрд┐рд╣рд░реВ invokeWithLayerN рд╕рдВрдЧ рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ initConnection

рд╣реБрд░реНрд░реЗ! 9 рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдкрдЫрд┐, рд╣рд╛рдореА рдЕрдиреНрддрддрдГ 80 рдХреЛ рджрд╢рдХрдорд╛ рдЗрдиреНрдЯрд░рдиреЗрдЯ рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВрдорд╛ рдХреЗ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ - рдЬрдбрд╛рдирдХреЛ рд╕реБрд░реБрдорд╛ рдПрдХ рдкрдЯрдХ рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рд╕рд╣рдорддрд┐ рдЬрдирд╛рдЙрдБрджреИ рдЖрдПрдХрд╛ рдЫреМрдВ!

рддреНрдпрд╕реЛрднрдП рдЕрдм рдХреЗ рдЫ? ..

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

рддрд░ рдЕрдм рддрдкрд╛рдИрдВ рдЕрдЭреИ рд╣рд╛рдБрд╕реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдХреЗрд╡рд▓ рдЕрд░реНрдХреЛ 9 рддрд╣рд╣рд░реВ рдкрдЫрд┐, рд╕рдВрд╕реНрдХрд░рдг рдирдореНрдмрд░рдХреЛ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЕрдиреНрддрддрдГ рдердкрд┐рдпреЛ, рдЬрд╕рд▓рд╛рдИ рдЬрдбрд╛рдирдХреЛ рд╕реБрд░реБрдорд╛ рдПрдХ рдкрдЯрдХ рдорд╛рддреНрд░ рдХрд▓ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рд░ рддрд╣рд╣рд░реВрдХреЛ рдЕрд░реНрде рд╣рд░рд╛рдПрдХреЛ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдереНрдпреЛ, рдЕрдм рдпреЛ рдХреЗрд╡рд▓ рд╕рд╢рд░реНрдд рд╕рдВрд╕реНрдХрд░рдг рд╣реЛ, рдЬрд╕реНрддреИред рдЕрд░реВ рд╕рдмреИ рдард╛рдЙрдБрдорд╛ред рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рднрдпреЛред

рдареНрдпрд╛рдХреНрдХреИ?..

Vasily, [16.07.18 14:01] рд╢реБрдХреНрд░рдмрд╛рд░ рдкрдирд┐ рдореИрд▓реЗ рд╕реЛрдЪреЗ:
рдЯреЗрд▓рд┐рд╕рд░реНрднрд░рд▓реЗ рдЕрдиреБрд░реЛрдз рдмрд┐рдирд╛ рдШрдЯрдирд╛рд╣рд░реВ рдкрдард╛рдЙрдБрдЫред рдЕрдиреБрд░реЛрдзрд╣рд░реВ InvokeWithLayer рдорд╛ рдмреЗрд░рд┐рдПрдХреЛ рд╣реБрдиреБрдкрд░реНрдЫред рд╕рд░реНрднрд░рд▓реЗ рдЕрдкрдбреЗрдЯрд╣рд░реВ рд░реНтАНрдпрд╛рдк рдЧрд░реНрджреИрди; рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд░ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рд░реНтАНрдпрд╛рдк рдЧрд░реНрдиреЗ рдХреБрдиреИ рд╕рдВрд░рдЪрдирд╛ рдЫреИрдиред

рддреАред рдХреНрд▓рд╛рдЗрдиреНрдЯрд▓реЗ рд▓реЗрдпрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрджреИрди рдЬрд╕рдорд╛ рдЙрд╕рд▓реЗ рдЕрдкрдбреЗрдЯрд╣рд░реВ рдЪрд╛рд╣рдиреНрдЫ

Vadim Goncharov, [16.07.18 14:02] InvokeWithLayer рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛ рдПрдХ рдмреИрд╕рд╛рдЦреА рд╣реЛрдЗрди?

Vasily, [16.07.18 14:02] рдпреЛ рдПрдХ рдорд╛рддреНрд░ рддрд░рд┐рдХрд╛ рд╣реЛ

Vadim Goncharov, [16.07.18 14:02] рдЬрд╕рдХреЛ рдЕрд░реНрде рд╕рддреНрд░рдХреЛ рд╕реБрд░реБрдорд╛ рддрд╣рдорд╛ рд╕рд╣рдордд рд╣реБрдиреБ рд╣реЛред

рд╡реИрд╕реЗ, рдпреЛ рдЧреНрд░рд╛рд╣рдХ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫреИрди рдХрд┐ рдЕрдиреБрд╕рд░рдг рдЧрд░реНрджрдЫ

рдЕрдкрдбреЗрдЯрд╣рд░реВ, рдЕрд░реНрдерд╛рддреН рдкреНрд░рдХрд╛рд░ Updates рдпреЛрдЬрдирд╛рдорд╛, рдпреЛ рд╕рд░реНрднрд░рд▓реЗ рдЧреНрд░рд╛рд╣рдХрд▓рд╛рдИ API рдЕрдиреБрд░реЛрдзрдХреЛ рдЬрд╡рд╛рдлрдорд╛ рд╣реЛрдЗрди, рддрд░ рдШрдЯрдирд╛ рд╣реБрдБрджрд╛ рд╕реНрд╡рддрдиреНрддреНрд░ рд░реВрдкрдорд╛ рдкрдард╛рдЙрдБрдЫред рдпреЛ рдПрдХ рдЬрдЯрд┐рд▓ рд╡рд┐рд╖рдп рд╣реЛ рдЬреБрди рдЕрд░реНрдХреЛ рдкреЛрд╖реНрдЯрдорд╛ рдЫрд▓рдлрд▓ рдЧрд░рд┐рдиреЗрдЫ, рддрд░ рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдЬрд╛рдиреНрди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ рдХрд┐ рд╕рд░реНрднрд░рд▓реЗ рдХреНрд▓рд╛рдЗрдиреНрдЯ рдЕрдлрд▓рд╛рдЗрди рд╣реБрдБрджрд╛ рдкрдирд┐ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдмрдЪрдд рдЧрд░реНрджрдЫред

рдпрд╕рд░реА, рдпрджрд┐ рддрдкрд╛рдЗрдБ рд▓рдкреЗрдЯреНрди рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рдкреНрд░рддреНрдпреЗрдХ рдкреНрдпрд╛рдХреЗрдЬ рдпрд╕рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдХреЗрдд рдЧрд░реНрди, рдпрд╕рд▓реЗ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдкрдорд╛ рдирд┐рдореНрди рд╕рдореНрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫ:

  • рд╕рд░реНрднрд░рд▓реЗ рдХреНрд▓рд╛рдЗрдиреНрдЯрд▓реЗ рдХреБрди рд╕рдВрд╕реНрдХрд░рдгрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдЫ рднрдиреЗрд░ рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдиреБ рдЕрдШрд┐ рдиреИ рдЧреНрд░рд╛рд╣рдХрд▓рд╛рдИ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдкрдард╛рдЙрдБрдЫ
  • рдЧреНрд░рд╛рд╣рдХ рдЕрдкрдЧреНрд░реЗрдб рдЧрд░реЗрдкрдЫрд┐ рдореИрд▓реЗ рдХреЗ рдЧрд░реНрдиреБрдкрд░реНрдЫ?
  • рдХреЛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАрд▓реЗрдпрд░ рдирдореНрдмрд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рд░реНрднрд░рдХреЛ рд░рд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдХреНрд░рдордорд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреЗрдЫреИрди?

рдХреЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рдпреЛ рд╡рд┐рд╢реБрджреНрдз рд╕реИрджреНрдзрд╛рдиреНрддрд┐рдХ рдЕрдиреБрдорд╛рди рд╣реЛ, рд░ рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛ рдпреЛ рд╣реБрди рд╕рдХреНрджреИрди, рдХрд┐рдирдХрд┐ рд╕рд░реНрднрд░ рд╕рд╣реА рд░реВрдкрдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ (рдХрдореНрддреАрдорд╛, рдпреЛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдкрд░реАрдХреНрд╖рдг рдЧрд░рд┐рдПрдХреЛ рдЫ)? рд╣рд╛! рдЬрддрд┐рд╕реБрдХреИ рднрдП рдкрдирд┐ !

рдареНрдпрд╛рдХреНрдХреИ рдпрд╣реА рд╣реЛ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдЕрдЧрд╕реНрдЯрдорд╛ рджреМрдбреНрдпреМрдВред рдЕрдЧрд╕реНрдЯ резрек рдорд╛, рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рд╕рд░реНрднрд░рдорд╛ рдХреЗрд╣реА рдЕрдкрдбреЗрдЯ рднреИрд░рд╣реЗрдХреЛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдерд┐рдП... рд░ рддреНрдпрд╕рдкрдЫрд┐ рд▓рдЧрд╣рд░реВрдорд╛:

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 рдорд╛ рдХрд╛рдо рдЧрд░реНрдпреМрдВред рд╣рд╛рдореА рд▓рдЧрд╣рд░реВрдорд╛ рдзреНрдпрд╛рдирдкреВрд░реНрд╡рдХ рд╣реЗрд░реНрдЫреМрдВ - рддреНрдпрд╣рд╛рдБ рджреБрдИ рдлрд░рдХ рдпреЛрдЬрдирд╛рд╣рд░реВрдмрд╛рдЯ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рд╣рд░реВ рдЫрдиреН!

рд╕рд╛рдпрдж рд╕рдорд╕реНрдпрд╛ рд╣рд╛рдореНрд░реЛ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рдЧреНрд░рд╛рд╣рдХ рдорд╛ рд╡рд┐рд╢реБрджреНрдз рдЫ? рд╣реЛрдЗрди, рд╣рд╛рдореА Telegram Desktop 1.2.17 (Linux рд╡рд┐рддрд░рдгрдХреЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдЖрдкреВрд░реНрддрд┐ рдЧрд░рд┐рдПрдХреЛ рд╕рдВрд╕реНрдХрд░рдг) рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВ, рдпрд╕рд▓реЗ рдЕрдкрд╡рд╛рдж рд▓рдЧрдорд╛ рд▓реЗрдЦреНрдЫ: MTP рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдкреНрд░рдХрд╛рд░ id #b5223b0f MTPMessageMedia рдорд╛ рдкрдврд┐рдпреЛ...

рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордХреЛ рдкреНрд░реЛрдЯреЛрдХрд▓ рд░ рд╕рдВрдЧрдардирд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рдЖрд▓реЛрдЪрдирд╛ред рднрд╛рдЧ рез, рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ: рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рдЧреНрд░рд╛рд╣рдХ рд▓реЗрдЦреНрдиреЗ рдЕрдиреБрднрд╡ - TL, MT

рдЧреБрдЧрд▓рд▓реЗ рджреЗрдЦрд╛рдпреЛ рдХрд┐ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рдХреНрд▓рд╛рдЗрдиреНрдЯрд╣рд░реВ рдордзреНрдпреЗ рдПрдХрдорд╛ рднрдПрдХреЛ рдерд┐рдпреЛ, рддрд░ рддреНрдпрд╕рдкрдЫрд┐ рд╕рдВрд╕реНрдХрд░рдг рдирдореНрдмрд░рд╣рд░реВ рд░, рддрджрдиреБрд╕рд╛рд░, рдЕрдиреБрдорд╛рдирд╣рд░реВ рдлрд░рдХ рдерд┐рдП ...

рддреНрдпрд╕реЛрднрдП рд╣рд╛рдореАрд▓реЗ рдХреЗ рдЧрд░реНрдиреБрдкрд░реНрдЫ? рднрд╛рд╕рд┐рд▓реА рд░ рдо рдЫреБрдЯреНрдЯрд┐рдП: рдЙрд╕рд▓реЗ рд╕рд░реНрдХрд┐рдЯрд▓рд╛рдИ 91 рдорд╛ рдЕрдкрдбреЗрдЯ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗ, рдореИрд▓реЗ рдХреЗрд╣реА рджрд┐рди рдкрд░реНрдЦрдиреЗ рд░ 73 рдорд╛ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗред рджреБрдмреИ рд╡рд┐рдзрд┐рд╣рд░реВрд▓реЗ рдХрд╛рдо рдЧрд░реЗ, рддрд░ рддрд┐рдиреАрд╣рд░реВ рдЕрдиреБрднрд╡рдЬрдиреНрдп рднрдПрдХрд╛рд▓реЗ, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрддрд┐ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдорд╛рдерд┐ рд╡рд╛ рддрд▓ рдЪрд╛рд╣рд┐рдиреНрдЫ рднрдиреНрдиреЗ рдХреБрдиреИ рдмреБрдЭрд╛рдЗ рдЫреИрдиред рд╣рд╛рдо рдлрд╛рд▓реНрди, рд╡рд╛ рддрдкрд╛рдИрд▓реЗ рдХрддрд┐ рд╕рдордп рдкрд░реНрдЦрдиреБ рдкрд░реНрдЫред

рдкрдЫрд┐ рдореИрд▓реЗ рд╕реНрдерд┐рддрд┐ рдкреБрди: рдЙрддреНрдкрд╛рджрди рдЧрд░реНрди рд╕рдХреНрд╖рдо рднрдПрдБ: рд╣рд╛рдореАрд▓реЗ рдХреНрд▓рд╛рдЗрдиреНрдЯ рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВ, рдпрд╕рд▓рд╛рдИ рдмрдиреНрдж рдЧрд░реНрдЫреМрдВ, рд╕рд░реНрдХрд┐рдЯрд▓рд╛рдИ рдЕрд░реНрдХреЛ рддрд╣рдорд╛ рдкреБрди: рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрдЫреМрдВ, рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВ, рдлреЗрд░рд┐ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рддреНрдЫреМрдВ, рдЕрдШрд┐рд▓реНрд▓реЛрдорд╛ рдлрд░реНрдХрдиреНрдЫреМрдВ - рдЙрдлреН, рд╕рд░реНрдХрд┐рдЯ рд╕реНрд╡рд┐рдЪрд┐рдЩрдХреЛ рдХреБрдиреИ рдорд╛рддреНрд░рд╛ рдЫреИрди рд░ рдЧреНрд░рд╛рд╣рдХ рдкреБрди: рд╕реБрд░реБ рд╣реБрдиреНрдЫред рдХреЗрд╣реА рдорд┐рдиреЗрдЯ рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫред рддрдкрд╛рдИрдВрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рддрд╣рд╣рд░реВрдмрд╛рдЯ рдбрд╛рдЯрд╛ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВрдХреЛ рдорд┐рд╢реНрд░рдг рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫред

рд╡реНрдпрд╛рдЦреНрдпрд╛? рддрдкрд╛рдИрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд▓рдХреНрд╖рдгрд╣рд░реВрдмрд╛рдЯ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд╕рд░реНрднрд░рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░рдХрд╛ рдзреЗрд░реИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рд╕рдореНрднрд╡рддрдГ, "рдмрдлрд░рд┐рдЩ" рдХреЛ рд▓рд╛рдЧреА рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рд╕рд░реНрднрд░рд▓реЗ рд▓рд╛рдордорд╛ рд░рд╛рдЦреНрдпреЛ рдЬреБрди рдпрд╕рдХрд╛ рд╡рд░рд┐рд╖реНрдард╣рд░реВрд▓реЗ рджрд┐рдПрдХрд╛ рдерд┐рдП, рд░ рдЙрдиреАрд╣рд░реВрд▓реЗ рдпреЛ рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрджрд┐рдП рдЬреБрди рдкреБрд╕реНрддрд╛рдХреЛ рд╕рдордпрдорд╛ рдерд┐рдпреЛред рд░ рдпреЛ рд▓рд╛рдо "рд╕рдбреЗрд░" рд╕рдореНрдо, рдпрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗрд╣рд┐ рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрдиред

рд╕рд╛рдпрдж... рддрд░ рдпреЛ рдПрдХ рднрдпрд╛рдирдХ рдмреИрд╕рд╛рдЦреА рд╣реЛ?!.. рд╣реЛрдЗрди, рдкрд╛рдЧрд▓ рд╡рд┐рдЪрд╛рд░рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реЛрдЪреНрдиреБ рдЕрдШрд┐, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХреЛ рдХреЛрдб рд╣реЗрд░реМрдВред рдПрдиреНрдбреНрд░реЛрдЗрдб рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рд╣рд╛рдореАрд▓реЗ рдХреБрдиреИ рдкрдирд┐ TL рдкрд╛рд░реНрд╕рд░ рдлреЗрд▓рд╛ рдкрд╛рд░реЗрдиреМрдВ, рддрд░ рд╣рд╛рдореАрд▓реЗ (de) рдХреНрд░рдорд┐рдХрд░рдгрдХреЛ рд╕рд╛рде рдПрдХ рднрд╛рд░реА рдлрд╛рдЗрд▓ (GitHub рд▓реЗ рдпрд╕рд▓рд╛рдИ рдЫреЛрдЙрди рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдЫ) рдлреЗрд▓рд╛ рдкрд╛рд░реНрдЫреМрдВред рдпрд╣рд╛рдБ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯрд╣рд░реВ рдЫрдиреН:

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 рдмреНрд▓рдмрд╣рд░реВ), рддрд░ рдпреЛ рдкрд╣рд┐рд▓реЗ рдиреИ рджреЛрд╕реНрд░реЛ рднрд╛рдЧрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╖рдп рд╣реЛред

рддрд░ рдкрд░реНрдпрд╛рдкреНрддред рдкреНрд░реЛрдЯреЛрдХрд▓рдорд╛ рдЬрд╛рдФрдВ рдЬрд╕рдХреЛ рд╢реАрд░реНрд╖рдорд╛ рдпреЛ рд╕рдмреИ рдХреНрд░рдорд┐рдХрд░рдг рдЪрд▓реНрдЫред

MT рдкреНрд░реЛрдЯреЛ

рддреНрдпрд╕реЛрднрдП, рдЦреЛрд▓реМрдВ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг ╨╕ рдкреНрд░реЛрдЯреЛрдХрд▓рдХреЛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рд░ рд╣рд╛рдореАрд▓реЗ рдареЗрд╕ рд▓рд╛рдЧреНрдиреЗ рдкрд╣рд┐рд▓реЛ рдХреБрд░рд╛ рднрдиреЗрдХреЛ рд╢рдмреНрджрд╛рд╡рд▓реА рд╣реЛред рд░ рд╕рдмреИ рдЪреАрдЬрдХреЛ рдкреНрд░рд╢рд╕реНрддрддрд╛ рд╕рдВрдЧред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдпреЛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордХреЛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ - рдЪреАрдЬрд╣рд░реВрд▓рд╛рдИ рдлрд░рдХ рдард╛рдЙрдБрдорд╛ рдлрд░рдХ рддрд░рд┐рдХрд╛рд▓реЗ рдХрд▓ рдЧрд░реНрдиреЗ, рд╡рд╛ рдПрдХ рд╢рдмреНрджрдХреЛ рд╕рд╛рде рдлрд░рдХ рдЪреАрдЬрд╣рд░реВ, рд╡рд╛ рдпрд╕рдХреЛ рд╡рд┐рдкрд░реАрдд (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЙрдЪреНрдЪ-рд╕реНрддрд░ API рдорд╛, рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдЯрд┐рдХрд░ рдкреНрдпрд╛рдХ рджреЗрдЦреНрдиреБрднрдпреЛ рднрдиреЗ, рдпреЛ рд╣реЛрдЗрдиред рддрдкрд╛рдИрд▓реЗ рдХреЗ рд╕реЛрдЪреНрдиреБрднрдпреЛ)ред

рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, "рд╕рдиреНрджреЗрд╢" рд░ "рд╕рддреНрд░" рдХреЛ рдЕрд░реНрде рдпрд╣рд╛рдБ рд╕рд╛рдорд╛рдиреНрдп рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдХреНрд▓рд╛рдЗрдиреНрдЯ рдЗрдиреНрдЯрд░рдлреЗрд╕ рднрдиреНрджрд╛ рдлрд░рдХ рдЫред рдареАрдХ рдЫ, рд╕рдиреНрджреЗрд╢рд╕рдБрдЧ рд╕рдмреИ рдХреБрд░рд╛ рд╕реНрдкрд╖реНрдЯ рдЫ, рдпрд╕рд▓рд╛рдИ OOP рд╕рд░реНрддрд╣рд░реВрдорд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд╡рд╛ рдХреЗрд╡рд▓ "рдкреНрдпрд╛рдХреЗрдЯ" рд╢рдмреНрдж рднрдирд┐рдиреНрдЫ - рдпреЛ рдХрдо, рдпрд╛рддрд╛рдпрд╛рдд рд╕реНрддрд░ рд╣реЛ, рддреНрдпрд╣рд╛рдБ рдЗрдиреНрдЯрд░рдлреЗрд╕рдорд╛ рдЬрд╕реНрддреИ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЫреИрдирдиреН, рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рд╕реЗрд╡рд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЫрдиреНред ред рддрд░ рд╕рддреНрд░ ... рддрд░ рдкрд╣рд┐рд▓реЛ рдЪреАрдЬрд╣рд░реВ рдкрд╣рд┐рд▓реЗред

рдпрд╛рддрд╛рдпрд╛рдд рддрд╣

рдкрд╣рд┐рд▓реЛ рдХреБрд░рд╛ рдпрд╛рддрд╛рдпрд╛рдд рд╣реЛред рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ 5 рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдмрддрд╛рдЙрдиреЗрдЫрдиреН:

  • рдЯреАрд╕реАрдкреА
  • рд╡реЗрдмрд╕рд╛рдЗрдЯ
  • HTTPS рдорд╛ рд╡реЗрдмрд╕рдХреЗрдЯ
  • HTTP
  • HTTPS

Vasily, [15.06.18 15:04] рддреНрдпрд╣рд╛рдБ UDP рдпрд╛рддрд╛рдпрд╛рдд рдкрдирд┐ рдЫ, рддрд░ рдпреЛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди

рд░ TCP рддреАрди рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛

рдкрд╣рд┐рд▓реЛ TCP рдорд╛ UDP рдЬрд╕реНрддреИ рдЫ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрдпрд╛рдХреЗрдЯ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рд░ crc рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ
рдХрд╛рд░реНрдЯрдорд╛ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдкрдвреНрди рдХрд┐рди рдпрддрд┐ рдкреАрдбрд╛рджрд╛рдпреА рдЫ?

рдЦреИрд░, рдпреЛ рдЕрд╣рд┐рд▓реЗ рдЫ TCP рдкрд╣рд┐рд▓реЗ рдиреИ 4 рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛:

  • рд╕рдВрдХреНрд╖рд┐рдкреНрдд
  • рдордзреНрдпрд╡рд░реНрддреА
  • рдкреНрдпрд╛рдб рдЧрд░рд┐рдПрдХреЛ рдордзреНрдпрд╡рд░реНрддреА
  • рдкреВрд░реНрдг

рдареАрдХ рдЫ, MTProxy рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрдпрд╛рдбреЗрдб рдордзреНрдпрд╡рд░реНрддреА, рдпреЛ рдкрдЫрд┐ рдкреНрд░рд╕рд┐рджреНрдз рдШрдЯрдирд╛рд╣рд░реВрдХреЛ рдХрд╛рд░рдг рдердкрд┐рдПрдХреЛ рдерд┐рдпреЛред рддрд░ рдХрд┐рди рджреБрдИ рдердк рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ (рдХреБрд▓рдорд╛ рддреАрди) рдЬрдм рддрдкрд╛рдИрдВ рдПрдХрдХреЛ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ? рд╕рдмреИ рдЪрд╛рд░ рдореБрдЦреНрдп MTProto рдХреЛ рд▓рдореНрдмрд╛рдЗ рд░ рдкреЗрд▓реЛрдб рдХрд╕рд░реА рд╕реЗрдЯ рдЧрд░реНрдиреЗ рдорд╛ рдорд╛рддреНрд░ рдлрд░рдХ рдЫ, рдЬрд╕рд▓рд╛рдИ рдердк рдЫрд▓рдлрд▓ рдЧрд░рд┐рдиреЗрдЫ:

  • рд╕рдВрдХреНрд╖рд┐рдкреНрддрдорд╛ рдпреЛ 1 рд╡рд╛ 4 рдмрд╛рдЗрдЯ рд╣реЛ, рддрд░ 0xef рд╣реЛрдЗрди, рддреНрдпрд╕рдкрдЫрд┐ рд╢рд░реАрд░
  • рдордзреНрдпрд╡рд░реНрддреА рдорд╛ рдпреЛ рд▓рдореНрдмрд╛рдЗрдХреЛ 4 рдмрд╛рдЗрдЯ рд░ рдПрдХ рдлрд┐рд▓реНрдб рд╣реЛ, рд░ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдкрд╣рд┐рд▓реЛ рдкрдЯрдХ рдкрдард╛рдЙрдиреБ рдкрд░реНрдЫ 0xeeeeeeee рдпреЛ рдордзреНрдпрд╡рд░реНрддреА рд╣реЛ рднрдиреЗрд░ рд╕рдВрдХреЗрдд рдЧрд░реНрди
  • рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рд▓рдд, рдиреЗрдЯрд╡рд░реНрдХрд░рдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ: рд▓рдореНрдмрд╛рдЗ, рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛, рд░ рдореБрдЦреНрдп рд░реВрдкрдорд╛ MTProto, рд╢рд░реАрд░, CRC32 рд╣реЛрдЗрдиред рд╣реЛ, рдпреЛ рд╕рдмреИ TCP рдорд╛ рдЫред рдЬрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдХреНрд░рдорд┐рдХ рдмрд╛рдЗрдЯ рд╕реНрдЯреНрд░рд┐рдордХреЛ рд░реВрдкрдорд╛ рднрд░рдкрд░реНрджреЛ рдпрд╛рддрд╛рдпрд╛рдд рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ; рдХреБрдиреИ рдЕрдиреБрдХреНрд░рдо рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдЪреЗрдХрд╕рдорд╣рд░реВред рдареАрдХ рдЫ, рдЕрдм рдХрд╕реИрд▓реЗ рдорд▓рд╛рдИ рдЖрдкрддреНрддрд┐ рдЧрд░реНрдиреЗрдЫ рдХрд┐ TCP рдорд╛ 16-рдмрд┐рдЯ рдЪреЗрдХрд╕рдо рдЫ, рддреНрдпрд╕реИрд▓реЗ рдбрд╛рдЯрд╛ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рд╣реБрдиреНрдЫред рдЙрддреНрдХреГрд╖реНрдЯ, рддрд░ рд╣рд╛рдореАрд╕рдБрдЧ 16 рдмрд╛рдЗрдЯреНрд╕ рднрдиреНрджрд╛ рд▓рд╛рдореЛ рд╣реНрдпрд╛рд╕ рднрдПрдХреЛ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдкреНрд░реЛрдЯреЛрдХрд▓ рдЫ, рдпреА рд╕рдмреИ рддреНрд░реБрдЯрд┐рд╣рд░реВ - рд░ рдЕрдЭ рдмрдвреА - рдЙрдЪреНрдЪ рд╕реНрддрд░рдорд╛ SHA рдмреЗрдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рддрд┐рдиреЗрдЫрдиреНред рдпрд╕рдХреЛ рд╢реАрд░реНрд╖рдорд╛ CRC32 рдорд╛ рдХреБрдиреИ рдмрд┐рдиреНрджреБ рдЫреИрдиред

рд╕рдВрдХреНрд╖рд┐рдкреНрдд рддреБрд▓рдирд╛ рдЧрд░реМрдВ, рдЬрд╕рдорд╛ рд▓рдореНрдмрд╛рдЗрдХреЛ рдПрдХ рдмрд╛рдЗрдЯ рд╕рдореНрднрд╡ рдЫ, рдордзреНрдпрд╡рд░реНрддреАрд╕рдБрдЧ, рдЬрд╕рд▓реЗ "рдпрджрд┐ 4-рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛ рдкрдЩреНрдХреНрддрд┐рдмрджреНрдзрддрд╛ рдЖрд╡рд╢реНрдпрдХ рдЫ" рд▓рд╛рдИ рдЬрд╛рдпрдЬ рдард╣рд░рд╛рдЙрдБрдЫ, рдЬреБрди рдПрдХрджрдореИ рдмрдХрд╡рд╛рд╕ рд╣реЛред рдХреЗ, рдпреЛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░рд┐рдиреНрдЫ рдХрд┐ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рд╣рд░реВ рдпрддрд┐ рдЕрдпреЛрдЧреНрдп рдЫрдиреН рдХрд┐ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╕рдХреЗрдЯрдмрд╛рдЯ рдкрдЩреНрдХреНрддрд┐рдмрджреНрдз рдмрдлрд░рдорд╛ рдбрд╛рдЯрд╛ рдкрдвреНрди рд╕рдХреНрджреИрдирдиреН? рддрдкрд╛рдИрдВрд▓реЗ рдЕрдЭреИ рдкрдирд┐ рдпреЛ рдЧрд░реНрдиреИ рдкрд░реНрдЫ, рдХрд┐рдирднрдиреЗ рдкрдврд╛рдЗрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдмрд╛рдЗрдЯрд╣рд░реВ рдлрд░реНрдХрд╛рдЙрди рд╕рдХреНрдЫ (рд░ рддреНрдпрд╣рд╛рдБ рдкреНрд░реЛрдХреНрд╕реА рд╕рд░реНрднрд░рд╣рд░реВ рдкрдирд┐ рдЫрдиреН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐...)ред рд╡рд╛ рдЕрд░реНрдХреЛрддрд░реНрдл, рдХрд┐рди рдмреНрд▓рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдпрджрд┐ рд╣рд╛рдореАрд╕рдБрдЧ рдЕрдЭреИ рдкрдирд┐ 16 рдмрд╛рдЗрдЯрд╣рд░реВрдХреЛ рдорд╛рдерд┐ рднрд╛рд░реА рдкреНрдпрд╛рдбрд┐рдЩ рд╣реБрдиреЗрдЫ - 3 рдмрд╛рдЗрдЯрд╣рд░реВ рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдВ ?

рдирд┐рдХреЛрд▓рд╛рдИ рдбреБрд░реЛрднрд▓реЗ рдХреБрдиреИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдмрд┐рдирд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВ рд╕рд╣рд┐рдд рдкрд╛рдЩреНрдЧреНрд░рд╛рд╣рд░реВ рдкреБрди: рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдЧрд░реНрди рдорди рдкрд░рд╛рдЙрдБрдЫрдиреН рднрдиреНрдиреЗ рдзрд╛рд░рдгрд╛ рдкрд╛рдЙрдБрдЫред

рдЕрдиреНрдп рдпрд╛рддрд╛рдпрд╛рдд рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ, рд╕рд╣рд┐рддред рд╡реЗрдм рд░ MTProxy, рд╣рд╛рдореА рдЕрдм рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрджреИрдиреМрдВ, рд╣реБрдирд╕рдХреНрдЫ рдЕрд░реНрдХреЛ рдкреЛрд╕реНрдЯрдорд╛, рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рдЕрдиреБрд░реЛрдз рдЫред рдпрд╣реА MTProxy рдХреЛ рдмрд╛рд░реЗрдорд╛, рд╣рд╛рдореА рдЕрдм рдорд╛рддреНрд░ рд╕рдореНрдЭрдиреНрдЫреМрдВ рдХрд┐ 2018 рдорд╛ рдпрд╕рдХреЛ рд░рд┐рд▓реАрдЬрдХреЛ рдХреЗрд╣реА рд╕рдордп рдкрдЫрд┐, рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрд▓реЗ рдЪрд╛рдБрдбреИ рдпрд╕рд▓рд╛рдИ рдмреНрд▓рдХ рдЧрд░реНрди рд╕рд┐рдХреЗрдХрд╛ рдерд┐рдП, рдЬрд╕рдХреЛ рдЙрджреНрджреЗрд╢реНрдп рдмрд╛рдЗрдкрд╛рд╕ рдЕрд╡рд░реБрджреНрдзрджреНрд╡рд╛рд░рд╛ рдкреНрдпрд╛рдХреЗрдЬ рдЖрдХрд╛рд░! рд░ рдпреЛ рддрдереНрдп рдкрдирд┐ рдХрд┐ рд╕реА рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ MTProxy рд╕рд░реНрднрд░ (рдлреЗрд░рд┐ Waltman рджреНрд╡рд╛рд░рд╛) рд▓рд╛рдИ рд▓рд┐рдирдХреНрд╕ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдорд╛ рдзреЗрд░реИ рдЬреЛрдбрд┐рдПрдХреЛ рдерд┐рдпреЛ, рдпрджреНрдпрдкрд┐ рдпреЛ рдЖрд╡рд╢реНрдпрдХ рдерд┐рдПрди (рдлрд┐рд▓ рдХреБрд▓рд┐рдирд▓реЗ рдкреБрд╖реНрдЯрд┐ рдЧрд░реНрдиреЗрдЫ), рд░ рддреНрдпреЛ рд╕рдорд╛рди рд╕рд░реНрднрд░ рдпрд╛ рдд Go рд╡рд╛ Node.js рдорд╛ рд╣реБрдиреЗрдЫред рдПрдХ рд╕рдп рднрдиреНрджрд╛ рдХрдо рд▓рд╛рдЗрди рдорд╛ рдлрд┐рдЯред

рддрд░ рд╣рд╛рдореА рдпреА рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдХреЛ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╕рд╛рдХреНрд╖рд░рддрд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЦрдгреНрдбрдХреЛ рдЕрдиреНрддреНрдпрдорд╛, рдЕрдиреНрдп рдореБрджреНрджрд╛рд╣рд░реВрд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реЗрдкрдЫрд┐ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓реНрдиреЗрдЫреМрдВред рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐, OSI рддрд╣ 5, рд╕рддреНрд░рдорд╛ рдЬрд╛рдФрдВ - рдЬрд╕рдорд╛ рдЙрдиреАрд╣рд░реВрд▓реЗ MTProto рд╕рддреНрд░ рд░рд╛рдЦреЗрдХрд╛ рдерд┐рдПред

рдХреБрдЮреНрдЬреАрд╣рд░реВ, рд╕рдиреНрджреЗрд╢рд╣рд░реВ, рд╕рддреНрд░рд╣рд░реВ, Diffie-Hellman

рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдпрд╕рд▓рд╛рдИ рддреНрдпрд╣рд╛рдБ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рд╣реА рд░реВрдкрдорд╛ рд░рд╛рдЦреЗрдирдиреН... рдПрдХ рд╕рддреНрд░ рд╕рдХреНрд░рд┐рдп рд╕рддреНрд░рд╣рд░реВ рдЕрдиреНрддрд░реНрдЧрдд рдЗрдиреНрдЯрд░рдлреЗрд╕рдорд╛ рджреЗрдЦрд┐рдиреЗ рдПрдЙрдЯреИ рд╕рддреНрд░ рд╣реЛрдЗрдиред рддрд░ рдХреНрд░рдо рдорд╛ред

рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордХреЛ рдкреНрд░реЛрдЯреЛрдХрд▓ рд░ рд╕рдВрдЧрдардирд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рдЖрд▓реЛрдЪрдирд╛ред рднрд╛рдЧ рез, рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ: рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рдЧреНрд░рд╛рд╣рдХ рд▓реЗрдЦреНрдиреЗ рдЕрдиреБрднрд╡ - TL, MT

рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рдпрд╛рддрд╛рдпрд╛рдд рддрд╣рдмрд╛рдЯ рдЬреНрдЮрд╛рдд рд▓рдореНрдмрд╛рдЗрдХреЛ рдмрд╛рдЗрдЯ рд╕реНрдЯреНрд░рд┐рдЩ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдпреМрдВред рдпреЛ рдХрд┐ рдд рдПрдХ рдЧреБрдкреНрддрд┐рдХрд░рдг рд╕рдиреНрджреЗрд╢ рд╡рд╛ рд╕рд╛рджрд╛ рдкрд╛рда рд╣реЛ - рдпрджрд┐ рд╣рд╛рдореА рдЕрдЭреИ рдкрдирд┐ рдореБрдЦреНрдп рд╕рдореНрдЭреМрддрд╛ рдЪрд░рдгрдорд╛ рдЫреМрдВ рд░ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдпреЛ рдЧрд░реНрджреИрдЫреМрдВред рд╣рд╛рдореАрд▓реЗ "рдХреБрдЮреНрдЬреА" рднрдирд┐рдиреЗ рдЕрд╡рдзрд╛рд░рдгрд╛рд╣рд░реВрдХреЛ рдХреБрди рд╕рдореВрд╣рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВ? рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЯреЛрд▓реАрдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдореБрджреНрджрд╛рд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯ рдкрд╛рд░реМрдВ (рдо рдмрд┐рд╣рд╛рди 4 рдмрдЬреЗ рдердХрд┐рдд рджрд┐рдорд╛рдЧрд▓реЗ рдореЗрд░реЛ рдЖрдлреНрдиреИ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдЕрдВрдЧреНрд░реЗрдЬреАрдмрд╛рдЯ рдЕрдиреБрд╡рд╛рдж рдЧрд░реЗрдХреЛрдорд╛ рдорд╛рдлреА рдЪрд╛рд╣рдиреНрдЫреБ, рдХреЗрд╣реА рд╡рд╛рдХреНрдпрд╛рдВрд╢рд╣рд░реВ рдЬрд╕реНрддреИ рдЫреЛрдбреНрди рд╕рдЬрд┐рд▓реЛ рднрдпреЛ):

рддреНрдпрд╣рд╛рдБ рджреБрдИ рд╕рдВрд╕реНрдерд╛ рднрдирд┐рдиреНрдЫ рд╕рддреНрд░ - "рд╡рд░реНрддрдорд╛рди рд╕рддреНрд░рд╣рд░реВ" рдЕрдиреНрддрд░реНрдЧрдд рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХреЛ UI рдорд╛ рдПрдХ, рдЬрд╣рд╛рдБ рдкреНрд░рддреНрдпреЗрдХ рд╕рддреНрд░ рд╕рдореНрдкреВрд░реНрдг рдпрдиреНрддреНрд░ / OS рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред
рджреЛрд╕реНрд░реЛ - MTProto рд╕рддреНрд░, рдЬрд╕рдорд╛ рд╕рдиреНрджреЗрд╢рдХреЛ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ (рдирд┐рдореНрди-рд╕реНрддрд░рдХреЛ рдЕрд░реНрдердорд╛) рдЫ, рд░ рдХреБрди рд╡рд┐рднрд┐рдиреНрди TCP рдЬрдбрд╛рдирд╣рд░реВ рдмреАрдЪрдорд╛ рд░рд╣рди рд╕рдХреНрдЫред рдзреЗрд░реИ MTProto рд╕рддреНрд░рд╣рд░реВ рдПрдХреИ рд╕рдордпрдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдлрд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдЧрддрд┐ рдмрдврд╛рдЙрдиред

рдпреА рджреБрдИ рдмрд┐рдЪрдорд╛ рд╕рддреНрд░ рддреНрдпрд╣рд╛рдБ рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рдЫ рдкреНрд░рд╛рдзрд┐рдХрд░рдгред рдкрддрд┐рдд рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореА рдпреЛ рднрдиреНрди рд╕рдХреНрдЫреМрдВ UI рд╕рддреНрд░ рдЬрд╕реНрддреИ рдЫ рдкреНрд░рд╛рдзрд┐рдХрд░рдг, рддрд░ рдЕрдлрд╕реЛрд╕, рд╕рдмреИ рдХреБрд░рд╛ рдЬрдЯрд┐рд▓ рдЫред рд╣реЗрд░реМрдВ:

  • рдирдпрд╛рдБ рдпрдиреНрддреНрд░рдорд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ рдкрд╣рд┐рд▓реЗ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдЫ auth_key рд░ рдпрд╕рд▓рд╛рдИ рдЦрд╛рддрд╛рдорд╛ рдмрд╛рдБрдзреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ SMS рдорд╛рд░реНрдлрдд - рддреНрдпрд╕реИрд▓реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг
  • рдпреЛ рдкрд╣рд┐рд▓реЛ рднрд┐рддреНрд░ рднрдпреЛ MTProto рд╕рддреНрд░, рдЬрд╕рдорд╛ рдЫ session_id рдЖрдлреИ рднрд┐рддреНрд░ред
  • рдпрд╕ рдЪрд░рдгрдорд╛, рд╕рдВрдпреЛрдЬрди рдкреНрд░рд╛рдзрд┐рдХрд░рдг ╨╕ session_id рдмреЛрд▓рд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ рдЙрджрд╛рд╣рд░рдг - рдпреЛ рд╢рдмреНрдж рдХреЗрд╣реА рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХреЛ рдХрд╛рдЧрдЬрд╛рдд рд░ рдХреЛрдбрдорд╛ рджреЗрдЦрд┐рдиреНрдЫ
  • рддреНрдпрд╕рдкрдЫрд┐, рдЧреНрд░рд╛рд╣рдХ рдЦреЛрд▓реНрди рд╕рдХреНрдЫ рдзреЗрд░реИ MTProto рд╕рддреНрд░рд╣рд░реВ рдПрдЙрдЯреИ рдЕрдиреНрддрд░реНрдЧрдд auth_key - рдПрдЙрдЯреИ рдбреАрд╕реАрдорд╛ред
  • рддреНрдпрд╕рдкрдЫрд┐, рдПрдХ рджрд┐рди рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдлрд╛рдЗрд▓ рдЕрдиреБрд░реЛрдз рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫ рдЕрд░реНрдХреЛ рдбреАрд╕реА - рд░ рдпреЛ DC рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдирдпрд╛рдБ рдЙрддреНрдкрдиреНрди рд╣реБрдиреЗрдЫ auth_key !
  • рдкреНрд░рдгрд╛рд▓реАрд▓рд╛рдИ рд╕реВрдЪрд┐рдд рдЧрд░реНрди рдХрд┐ рдпреЛ рджрд░реНрддрд╛ рдЧрд░реНрдиреЗ рдирдпрд╛рдБ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╣реЛрдЗрди, рддрд░ рдЙрд╕реНрддреИ рд╣реЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг (UI рд╕рддреНрд░), рдЧреНрд░рд╛рд╣рдХрд▓реЗ API рдХрд▓рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ auth.exportAuthorization рдШрд░ DC рдорд╛ auth.importAuthorization рдирдпрд╛рдБ DC рдорд╛ред
  • рд╕рдмреИ рдЙрд╕реНрддреИ рдЫ, рдзреЗрд░реИ рдЦреБрд▓рд╛ рд╣реБрди рд╕рдХреНрдЫ MTProto рд╕рддреНрд░рд╣рд░реВ (рдкреНрд░рддреНрдпреЗрдХрдХреЛ рдЖрдлреНрдиреИ session_id) рдпрд╕ рдирдпрд╛рдБ DC рд▓рд╛рдИ, рдЕрдиреНрддрд░реНрдЧрдд рдЖрдлреНрдиреЛ auth_key.
  • рдЕрдиреНрддрдорд╛, рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд╕рд╣реА рдлрд░реНрд╡рд╛рд░реНрдб рдЧреЛрдкрдиреАрдпрддрд╛ рдЪрд╛рд╣рди рд╕рдХреНрдЫред рд╣рд░реЗрдХ auth_key рдерд┐рдпреЛ рд╕реНрдерд╛рдпреА рдХреБрдЮреНрдЬреА - рдкреНрд░рддрд┐ DC - рд░ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдХрд▓ рдЧрд░реНрди рд╕рдХреНрдЫ auth.bindTempAuthKey рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдЕрд╕реНрдерд╛рдпреА auth_key - рд░ рдлреЗрд░рд┐, рдХреЗрд╡рд▓ рдПрдХ temp_auth_key рдкреНрд░рддрд┐ DC, рд╕рдмреИрдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рдЭрд╛ MTProto рд╕рддреНрд░рд╣рд░реВ рдпрд╕ DC рд▓рд╛рдИред

рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН, рддреНрдпреЛ рдирдордХ (рд░ рднрд╡рд┐рд╖реНрдпрдХреЛ рдиреБрди) рдкрдирд┐ рдПрдХ рд╣реЛ auth_key рддреАред рд╕рдмреИрдХреЛ рдмреАрдЪ рд╕рд╛рдЭрд╛ MTProto рд╕рддреНрд░рд╣рд░реВ рдПрдЙрдЯреИ DC рд▓рд╛рдИред

"рднрд┐рдиреНрди TCP рдЬрдбрд╛рдирд╣рд░реВ рдмреАрдЪ" рднрдиреЗрдХреЛ рдХреЗ рд╣реЛ? рддреНрдпрд╕реИрд▓реЗ рдпреЛ рдорддрд▓рдм рдЫ рдХреЗрд╣рд┐ рдЬрд╕реНрддреИ рд╡реЗрдмрд╕рд╛рдЗрдЯрдорд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреБрдХреА - рдпреЛ рджрд┐рдЗрдПрдХреЛ рд╕рд░реНрднрд░рдорд╛ рдзреЗрд░реИ TCP рдЬрдбрд╛рдирд╣рд░реВ рд░рд╣рдиреНрдЫ (рдмрд╛рдБрдЪреНрджрдЫ), рддрд░ рдПрдХ рджрд┐рди рдпреЛ рдЦрд░рд╛рдм рд╣реБрдиреНрдЫред HTTP рдХреЛ рд╡рд┐рдкрд░реАрдд рдорд╛рддреНрд░, MTProto рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдПрдХ рд╕рддреНрд░ рднрд┐рддреНрд░ рдХреНрд░рдорд┐рдХ рд░реВрдкрдорд╛ рдирдореНрдмрд░ рд░ рдкреБрд╖реНрдЯрд┐ рд╣реБрдиреНрдЫрдиреН; рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВ рд╕реБрд░реБрдЩрдорд╛ рдкреНрд░рд╡реЗрд╢ рдЧрд░реЗ, рдЬрдбрд╛рди рдЯреБрдЯреЗрдХреЛ рдерд┐рдпреЛ - рдирдпрд╛рдБ рдЬрдбрд╛рди рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реЗрдкрдЫрд┐, рд╕рд░реНрднрд░рд▓реЗ рдпрд╕ рд╕рддреНрд░рдорд╛ рдЕрдШрд┐рд▓реНрд▓реЛрдорд╛ рдбреЗрд▓рд┐рднрд░ рдирдЧрд░реЗрдХреЛ рд╕рдмреИ рдХреБрд░рд╛ рдкрдард╛рдЙрдиреЗрдЫред TCP рдЬрдбрд╛рдиред

рдпрджреНрдпрдкрд┐, рдорд╛рдерд┐рдХреЛ рдЬрд╛рдирдХрд╛рд░реА рдзреЗрд░реИ рдорд╣рд┐рдирд╛рдХреЛ рдЕрдиреБрд╕рдиреНрдзрд╛рди рдкрдЫрд┐ рд╕рдВрдХреНрд╖реЗрдк рдЧрд░рд┐рдПрдХреЛ рдЫред рдпрд╕ рдмреАрдЪрдорд╛, рдХреЗ рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдЧреНрд░рд╛рд╣рдХрд▓рд╛рдИ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рд▓рд╛рдЧреВ рдЧрд░реНрджреИрдЫреМрдВ? - рд╕реБрд░реБрдорд╛ рдлрд░реНрдХреМрдВред

рддреНрдпрд╕реИрд▓реЗ рдЙрддреНрдкрдиреНрди рдЧрд░реМрдВ auth_key рдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордмрд╛рдЯ Diffie-Hellman рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВред рджрд╕реНрддрд╛рд╡реЗрдЬ рдмреБрдЭреНрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВ ...

Vasily, [19.06.18 20:05] data_with_hash := SHA1(рдбреЗрдЯрд╛) + рдбрд╛рдЯрд╛ + (рдХреБрдиреИ рдкрдирд┐ рдЕрдирд┐рдпрдорд┐рдд рдмрд╛рдЗрдЯреНрд╕); рд▓рдореНрдмрд╛рдЗ рдмрд░рд╛рдмрд░ 255 рдмрд╛рдЗрдЯ;
encrypted_data := RSA(data_with_hash, server_public_key); 255-рдмрд╛рдЗрдЯ рд▓рд╛рдореЛ рдирдореНрдмрд░ (рдареВрд▓реЛ рдПрдиреНрдбрд┐рдпрди) рдЖрд╡рд╢реНрдпрдХ рдореЛрдбреНрдпреБрд▓рд╕рдорд╛ рдЖрд╡рд╢реНрдпрдХ рд╢рдХреНрддрд┐рдорд╛ рдЙрдард╛рдЗрдПрдХреЛ рдЫ, рд░ рдкрд░рд┐рдгрд╛рдорд▓рд╛рдИ 256-рдмрд╛рдЗрдЯ рдирдореНрдмрд░рдХреЛ рд░реВрдкрдорд╛ рднрдгреНрдбрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫред

рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рдХреЗрд╣реА рдбреЛрдк DH рдЫ

рд╕реНрд╡рд╕реНрде рд╡реНрдпрдХреНрддрд┐рдХреЛ DH рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рджреИрди
dx рдорд╛ рдХреБрдиреИ рджреБрдИ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдЫреИрдирдиреН

рдареАрдХ рдЫ, рдЕрдиреНрддрдорд╛ рдпреЛ рдХреНрд░рдордмрджреНрдз рднрдпреЛ, рддрд░ рдЕрд╡рд╢реЗрд╖ рдмрд╛рдБрдХреА рд░рд╣реНрдпреЛ - рдХрд╛рдордХреЛ рдкреНрд░рдорд╛рдг рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдЧрд░реЗрдХреЛ рдЫ рдХрд┐ рдЙрд╕рд▓реЗ рд╕рдВрдЦреНрдпрд╛ рдХрд╛рд░рдХ рдЧрд░реНрди рд╕рдХреНрд╖рдо рдерд┐рдпреЛред DoS рдЖрдХреНрд░рдордгрд╣рд░реВ рд╡рд┐рд░реБрджреНрдз рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рдкреНрд░рдХрд╛рд░ред рд░ RSA рдХреБрдЮреНрдЬреА рдПрдХ рдкрдЯрдХ рдорд╛рддреНрд░ рдПрдХ рджрд┐рд╢рд╛рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рдЧреБрдкреНрддрд┐рдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ new_nonceред рддрд░ рдпреЛ рд╕рд╛рдзрд╛рд░рдг рджреЗрдЦрд┐рдиреЗ рдЕрдкрд░реЗрд╢рди рд╕рдлрд▓ рд╣реБрдБрджрд╛, рддрдкрд╛рдИрдВрд▓реЗ рдХреЗ рд╕рд╛рдордирд╛ рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫ?

Vasily, [20.06.18/00/26 XNUMX:XNUMX] рдореИрд▓реЗ рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рдПрдкрд┐рдб рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдХреЛ рдЫреИрди

рдореИрд▓реЗ рдпреЛ рдЕрдиреБрд░реЛрдз DH рд▓рд╛рдИ рдкрдард╛рдПрдБ

рд░, рдпрд╛рддрд╛рдпрд╛рдд рдбрдХрдорд╛ рдпрд╕рд▓реЗ рддреНрд░реБрдЯрд┐ рдХреЛрдбрдХреЛ 4 рдмрд╛рдЗрдЯреНрд╕рд╕рдБрдЧ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рди рд╕рдХреНрдЫ рднрдиреА рднрдиреНрдЫред рдпрддрд┐ рдиреИ

рдЦреИрд░, рдЙрд╣рд╛рдБрд▓реЗ рдорд▓рд╛рдИ рднрдиреНрдиреБрднрдпреЛ -404, рддреНрдпрд╕реЛрднрдП рдХреЗ рд╣реЛ?

рддреНрдпрд╕реИрд▓реЗ рдореИрд▓реЗ рдЙрд╕рд▓рд╛рдИ рднрдиреЗрдВ: "рдпрд╕ рдкреНрд░рдХрд╛рд░рдХреЛ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдиреНрдЯрдХреЛ рд╕рд╛рде рд╕рд░реНрднрд░ рдХреБрдЮреНрдЬреАрд╕рдБрдЧ рдЗрдиреНрдХреНрд░рд┐рдкреНрдЯ рдЧрд░рд┐рдПрдХреЛ рддрдкрд╛рдИрдВрдХреЛ рдмреБрд▓рд╢рд┐рдЯ рд╕рдорд╛рддреНрдиреБрд╣реЛрд╕реН, рдорд▓рд╛рдИ DH рдЪрд╛рд╣рд┐рдПрдХреЛ рдЫ," рд░ рдпрд╕рд▓реЗ рдореВрд░реНрдЦ 404 рд╕рдБрдЧ рдЬрд╡рд╛рдл рджрд┐рдпреЛред

рддрдкрд╛рдЗрдБ рдпреЛ рд╕рд░реНрднрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕реЛрдЪреНрдиреБрд╣реБрдиреНрдЫ? рдХреЗ рдЧрд░реНрдиреЗ? рд╕реЛрдзреНрдиреЗ рдХреЛрд╣реА рдЫреИрди (рддрд░ рджреЛрд╕реНрд░реЛ рднрд╛рдЧрдорд╛ рдердк)ред

рдпрд╣рд╛рдБ рд╕рдмреИ рдЪрд╛рд╕реЛ рдбрдХрдорд╛ рдЧрд░рд┐рдиреНрдЫ

рдорд╕рдБрдЧ рдЕрд░реВ рдХреЗрд╣реА рдЧрд░реНрди рдЫреИрди, рдореИрд▓реЗ рд╕рдВрдЦреНрдпрд╛рд╣рд░реВ рдЕрдЧрд╛рдбрд┐ рд░ рдкрдЫрд╛рдбрд┐ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ рд╕рдкрдирд╛ рджреЗрдЦреЗрдХреЛ рдЫреБ

рджреБрдИ 32 рдмрд┐рдЯ рдирдореНрдмрд░рд╣рд░реВред рдореИрд▓реЗ рд╕рдмреИрд▓рд╛рдИ рдЬрд╕реНрддреИ рдкреНрдпрд╛рдХ рдЧрд░реЗрдВ

рддрд░ рд╣реЛрдЗрди, рдпреА рджреБрдИ рд▓рд╛рдИ рдкрд╣рд┐рд▓реЗ BE рдХреЛ рд░реВрдкрдорд╛ рд▓рд╛рдЗрдирдорд╛ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ

Vadim Goncharov, [20.06.18 15:49] рд░ рдпреЛ 404 рдХреЛ рдХрд╛рд░рдг?

Vasily, [20.06.18 15:49] рд╣реЛ!

Vadim Goncharov, [20.06.18 15:50] рддреНрдпрд╕реИрд▓реЗ рдореИрд▓реЗ рдмреБрдЭрд┐рди рдХрд┐ рдЙрд╕рд▓реЗ "рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреЗрди"

рднрд╛рд╕рд┐рд▓реА, [реиреж.режрем.резрео резрел:релреж] рд▓рдЧрднрдЧ

рдореИрд▓реЗ рдкреНрд░рд╛рдЗрдо рдХрд╛рд░рдХ% рдорд╛ рдпрд╕реНрддреЛ рд╡рд┐рдШрдЯрди рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рди)

рд╣рд╛рдореАрд▓реЗ рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯрд┐рдЩ рдкрдирд┐ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реЗрдХрд╛ рдЫреИрдиреМрдВ

Vasily, [20.06.18 20:18] рдУрд╣, рддреНрдпрд╣рд╛рдБ MD5 рдкрдирд┐ рдЫред рдкрд╣рд┐рд▓реЗ рдиреИ рддреАрди рдлрд░рдХ рд╣реНрдпрд╛рд╕рд╣рд░реВ

рдХреБрдЮреНрдЬреА рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдиреНрдЯ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ:

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

SHA1 рд░ sha2

рддреНрдпрд╕реИрд▓реЗ рд░рд╛рдЦреМрдВ auth_key рд╣рд╛рдореАрд▓реЗ Diffie-Hellman рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЖрдХрд╛рд░рдорд╛ 2048 рдмрд┐рдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдпреМрдВред рдЕрдм рдХреЗ? рдЕрд░реНрдХреЛ рд╣рд╛рдореАрд▓реЗ рдкрддреНрддрд╛ рд▓рдЧрд╛рдпреМрдВ рдХрд┐ рдпреЛ рдХреБрдЮреНрдЬреАрдХреЛ рддрд▓реНрд▓реЛ 1024 рдмрд┐рдЯрд╣рд░реВ рдХреБрдиреИ рдкрдирд┐ рд╣рд┐рд╕рд╛рдмрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди... рддрд░ рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕ рдмрд╛рд░реЗ рд╕реЛрдЪреМрдВред рдпрд╕ рдЪрд░рдгрдорд╛, рд╣рд╛рдореАрд╕рдБрдЧ рд╕рд░реНрднрд░рд╕рдБрдЧ рд╕рд╛рдЭрд╛ рдЧреЛрдкреНрдп рдЫред TLS рд╕рддреНрд░рдХреЛ рдПрдирд╛рд▓рдЧ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреБрди рдзреЗрд░реИ рдорд╣рдБрдЧреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛред рддрд░ рд╕рд░реНрднрд░рд▓реЗ рдЕрдЭреИ рдкрдирд┐ рд╣рд╛рдореА рдХреЛ рд╣реМрдВ рднрдиреЗрд░ рдХреЗрд╣рд┐ рдерд╛рд╣рд╛ рдЫреИрди! рдЕрдЭреИ рдЫреИрди, рд╡рд╛рд╕реНрддрд╡рдорд╛ред рдкреНрд░рд╛рдзрд┐рдХрд░рдгред рддреАред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ "рд▓рдЧрдЗрди-рдкрд╛рд╕рд╡рд░реНрдб" рдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рд╕реЛрдЪреНрдиреБрднрдпреЛ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рдПрдХ рдкрдЯрдХ ICQ рдорд╛ рдЧрд░реНрдиреБрднрдПрдХреЛ рдерд┐рдпреЛ, рд╡рд╛ рдХрдореНрддрд┐рдорд╛ "рд▓рдЧрдЗрди-рдХреБрдЮреНрдЬреА", SSH рдорд╛ рдЬрд╕реНрддреИ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдХреЗрд╣реА gitlab/github рдорд╛)ред рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдЧреБрдордирд╛рдо рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдпреМрдВред рдХреЗ рд╣реБрдиреНрдЫ рдпрджрд┐ рд╕рд░реНрднрд░рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ "рдпреА рдлреЛрди рдирдореНрдмрд░рд╣рд░реВ рдЕрд░реНрдХреЛ DC рджреНрд╡рд╛рд░рд╛ рд╕рд░реНрднрд┐рд╕ рдЧрд░рд┐рдПрдХреЛ рдЫ" рдмрддрд╛рдЙрдБрдЫ? рд╡рд╛ "рддрдкрд╛рдИрдВрдХреЛ рдлреЛрди рдирдореНрдмрд░ рдкреНрд░рддрд┐рдмрдиреНрдзрд┐рдд рдЫ"? рд╣рд╛рдореАрд▓реЗ рдЧрд░реНрди рд╕рдХреНрдиреЗ рд╕рдмреИ рднрдиреНрджрд╛ рд░рд╛рдореНрд░реЛ рдХреБрдЮреНрдЬреАрд▓рд╛рдИ рдЖрд╢рд╛рдорд╛ рд░рд╛рдЦреНрдиреБ рд╣реЛ рдХрд┐ рдпреЛ рдЙрдкрдпреЛрдЧреА рд╣реБрдиреЗрдЫ рд░ рддреНрдпрддрд┐рдиреНрдЬреЗрд▓ рдХреБрд╣рд┐рдиреЗ рдЫреИрдиред

рд╡реИрд╕реЗ, рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ рдЖрд░рдХреНрд╖рдгрдХреЛ рд╕рд╛рде "рдкреНрд░рд╛рдкреНрдд" рдЧрд░реНрдпреМрдВред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдХреЗ рд╣рд╛рдореА рд╕рд░реНрднрд░рдорд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрдЫреМрдВ? рдХреЗ рдпреЛ рдирдХреНрдХрд▓реА рдЫ рднрдиреЗ? рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЬрд╛рдБрдЪрд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫ:

Vasily, [21.06.18 17:53] рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдореЛрдмрд╛рдЗрд▓ рдХреНрд▓рд╛рдЗрдиреНрдЯрд╣рд░реВрд▓рд╛рдИ 2kbit рдирдореНрдмрд░ primality% рдЬрд╛рдБрдЪ рдЧрд░реНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрдЫрдиреН)

рддрд░ рдпреЛ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдкрд╖реНрдЯ рдЫреИрди, nafeijoa

Vasily, [21.06.18 18:02] рдХрд╛рдЧрдЬрд╛рдд рд╕рд░рд▓ рдирднрдПрдХреЛ рдЦрдгреНрдбрдорд╛ рдХреЗ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдмрддрд╛рдЙрджреИрди

рднрдирд┐рдПрди ред рдЖрдЙрдиреБрд╣реЛрд╕реН рд╣реЗрд░реМрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдПрдиреНрдбреНрд░реЛрдЗрдб рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдХреЗ рдЧрд░реНрдЫ? рдП рддреНрдпреЛ рдХреЗ рд╣реЛ (рд░ рд╣реЛ, рд╕рдореНрдкреВрд░реНрдг рдлрд╛рдЗрд▓ рдЪрд╛рдЦрд▓рд╛рдЧреНрджреЛ рдЫ) - рддрд┐рдиреАрд╣рд░реВрд▓реЗ рднрдиреЗ, рдо рдпрд╕рд▓рд╛рдИ рдпрд╣рд╛рдБ рдЫреЛрдбреНрдиреЗрдЫреБ:

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

рд╣реЛрдЗрди, рдкрдХреНрдХреИ рдкрдирд┐ рдпреЛ рддреНрдпрд╣рд╛рдБ рдЫ рдХреЗрд╣рд┐ рддреНрдпрд╣рд╛рдБ рд╕рдВрдЦреНрдпрд╛рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЫрдиреН, рддрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдкрдорд╛ рдорд╕рдБрдЧ рдЧрдгрд┐рддрдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рдЬреНрдЮрд╛рди рдЫреИрдиред

рдареАрдХ рдЫ, рд╣рд╛рдореАрд▓реЗ рдорд╛рд╕реНрдЯрд░ рдХреБрдЮреНрдЬреА рдкрд╛рдпреМрдВред рд▓рдЧ рдЗрди рдЧрд░реНрди, i.e. рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН, рддрдкрд╛рдИрдВрд▓реЗ AES рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдердк рдЗрдиреНрдХреНрд░рд┐рдкреНрд╕рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рд╕рдиреНрджреЗрд╢ рдХреБрдЮреНрдЬреАрд▓рд╛рдИ рд╕рдиреНрджреЗрд╢рдХреЛ рдореБрдЦреНрдп рднрд╛рдЧрдХреЛ SHA128 рдХреЛ 256 рдордзреНрдп рдмрд┐рдЯреНрд╕рдХреЛ рд░реВрдкрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ (рд╕рддреНрд░, рд╕рдиреНрджреЗрд╢ ID, рдЖрджрд┐ рд╕рд╣рд┐рдд), рдкреНрдпрд╛рдбрд┐рдЩ рдмрд╛рдЗрдЯрд╣рд░реВ рд╕рд╣рд┐рдд, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреБрдЮреНрдЬреАрдмрд╛рдЯ рд▓рд┐рдЗрдПрдХреЛ 32 рдмрд╛рдЗрдЯрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдкреВрд░реНрд╡-рдкреЗрдиреНрдб рдЧрд░рд┐рдПрдХреЛред

Vasily, [22.06.18 14:08] рдФрд╕рдд, рдХреБрддрд┐рдпрд╛, рдмрд┐рдЯ

рдкреНрд░рд╛рдкреНрдд рднрдпреЛ auth_keyред рд╕рдмреИред рддрд┐рдиреАрд╣рд░реВ рдкрд░реЗ ... рдпреЛ рдХрд╛рдЧрдЬрд╛рддрдмрд╛рдЯ рд╕реНрдкрд╖реНрдЯ рдЫреИрдиред рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдЕрдзреНрдпрдпрди рдЧрд░реНрди рд╕реНрд╡рддрдиреНрддреНрд░ рдорд╣рд╕реБрд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ MTProto 2.0 рд▓рд╛рдИ 12 рджреЗрдЦрд┐ 1024 рдмрд╛рдЗрдЯреНрд╕ рдкреНрдпрд╛рдбрд┐рдЩ рдЪрд╛рд╣рд┐рдиреНрдЫ, рдЕрдЭреИ рдкрдирд┐ рдкрд░рд┐рдгрд╛рдо рд╕рдиреНрджреЗрд╢рдХреЛ рд▓рдореНрдмрд╛рдЗ 16 рдмрд╛рдЗрдЯреНрд╕рд▓реЗ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрди рд╕рдХрд┐рдиреЗ рд╢рд░реНрддрдХреЛ рдЕрдзреАрдирдорд╛ рдЫред

рддреНрдпрд╕реЛрднрдП рддрдкрд╛рдИрд▓реЗ рдХрддрд┐ рдкреНрдпрд╛рдбрд┐рдЩ рдердкреНрдиреБрдкрд░реНрдЫ?

рд░ рд╣реЛ, рддреНрдпрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рдХреЛ рдорд╛рдорд▓рд╛ рдорд╛ 404 рдкрдирд┐ рдЫ

рдпрджрд┐ рдХрд╕реИрд▓реЗ рдзреНрдпрд╛рдирдкреВрд░реНрд╡рдХ рдХрд╛рдЧрдЬрд╛рддрдХреЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рд░ рдкрд╛рда рдЕрдзреНрдпрдпрди рдЧрд░реЗ рднрдиреЗ, рдЙрдиреАрд╣рд░реВрд▓реЗ рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ MAC рдЫреИрди рднрдиреЗрд░ рдпрд╛рдж рдЧрд░реЗред рд░ рддреНрдпреЛ AES рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд IGE рдореЛрдбрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ рдЬреБрди рдХрддреИ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред рддрд┐рдиреАрд╣рд░реВ рдЕрд╡рд╢реНрдп рдкрдирд┐, рддрд┐рдиреАрд╣рд░реВрдХреЛ FAQ рдорд╛ рдпрд╕ рдмрд╛рд░реЗ рд▓реЗрдЦреНрдЫрдиреН... рдпрд╣рд╛рдБ, рдЬрд╕реНрддреИ, рд╕рдиреНрджреЗрд╢ рдХреБрдЮреНрдЬреА рдЖрдлреИрдВ рдкрдирд┐ рдбрд┐рдХреНрд░рд┐рдкреНрдЯреЗрдб рдбрд╛рдЯрд╛рдХреЛ SHA рд╣реНрдпрд╛рд╕ рд╣реЛ, рдЕрдЦрдгреНрдбрддрд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ - рд░ рдмреЗрдореЗрд▓рдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдХреБрдиреИ рдХрд╛рд░рдгрд▓реЗ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдЪреБрдкрдЪрд╛рдк рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫ (рддрд░ рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗ рд╣реЛ, рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рддреЛрдбреНрдЫрдиреН?)

рдо рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд░ рд╣реЛрдЗрди, рд╕рд╛рдпрдж рд╕реИрджреНрдзрд╛рдиреНрддрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдпрд╕ рдореЛрдбрдорд╛ рдХреЗрд╣рд┐ рдЧрд▓рдд рдЫреИрдиред рддрд░ рдо рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдбреЗрд╕реНрдХрдЯрдк рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдирд╛рдо рджрд┐рди рд╕рдХреНрдЫреБред рдпрд╕рд▓реЗ рд╕реНрдерд╛рдиреАрдп рдХреНрдпрд╛рд╕ (рдпреА рд╕рдмреИ D877F783D5D3EF8C) рд▓рд╛рдИ MTProto рдорд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЬрд╕реНрддреИ (рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рд╕рдВрд╕реНрдХрд░рдг 1.0 рдорд╛ рдорд╛рддреНрд░) рдЗрдиреНрдХреНрд░рд┐рдкреНрдЯ рдЧрд░реНрджрдЫ, рдЕрд░реНрдерд╛рддреНред рдкрд╣рд┐рд▓реЗ рд╕рдиреНрджреЗрд╢ рдХреБрдЮреНрдЬреА, рддреНрдпрд╕рдкрдЫрд┐ рдбрд╛рдЯрд╛ рдЖрдлреИрдВ (рд░ рдХрддреИ рдореБрдЦреНрдп рдареВрд▓реЛ auth_key 256 рдмрд╛рдЗрдЯреНрд╕, рдмрд┐рдирд╛ msg_key рдмреЗрдХрд╛рд░)ред рддреНрдпрд╕реЛрднрдП, рд╕рдорд╕реНрдпрд╛ рдареВрд▓рд╛ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реБрдиреНрдЫред рдЕрд░реНрдерд╛рддреН, рддрдкрд╛рдИрдВрд▓реЗ рдбрд╛рдЯрд╛рдХреЛ рджреБрдИ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐рд╣рд░реВ рд░рд╛рдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ - рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд░ рдбрд┐рдХреНрд░рд┐рдкреНрдЯреЗрдбред рд░ рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рдореЗрдЧрд╛рдмрд╛рдЗрдЯрд╣рд░реВ рдЫрдиреН, рд╡рд╛ рд╕реНрдЯреНрд░рд┐рдорд┐рдЩ рднрд┐рдбрд┐рдпреЛрд╣рд░реВ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐?... MAC рд╕рдБрдЧ рд╕рд┐рдлрд░рдЯреЗрдХреНрд╕реНрдЯ рдкрдЫрд┐ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕реНрдХрд┐рдорд╣рд░реВрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдпрд╕рд▓рд╛рдИ рд╕реНрдЯреНрд░рд┐рдо рдкрдвреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рддреБрд░реБрдиреНрддреИ рдкреНрд░рд╕рд╛рд░рдг рдЧрд░реНрджреИред рддрд░ MTProto рдХреЛ рд╕рд╛рде рддрдкрд╛рдИрд▓реЗ рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫ рд╕реБрд░реБрдорд╛ рд╕рдореНрдкреВрд░реНрдг рд╕рдиреНрджреЗрд╢рд▓рд╛рдИ рдЧреБрдкреНрддрд┐рдХрд░рдг рд╡рд╛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рддреНрдпрд╕рдкрдЫрд┐ рдорд╛рддреНрд░ рдпрд╕рд▓рд╛рдИ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╛ рдбрд┐рд╕реНрдХрдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддрд╕рд░реНрде, рдХреНрдпрд╛рд╕ рдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдбреЗрд╕реНрдХрдЯрдк рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдорд╛ user_data рдЕрд░реНрдХреЛ рдврд╛рдБрдЪрд╛ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ - CTR рдореЛрдбрдорд╛ AES рд╕рдВрдЧред

Vasily, [21.06.18 01:27] рдУрд╣, рдореИрд▓реЗ IGE рднрдиреЗрдХреЛ рдХреЗ рд╣реЛ рднрдиреЗрд░ рдерд╛рд╣рд╛ рдкрд╛рдП: IGE рдореВрд▓рддрдГ Kerberos рдХреЛ рд▓рд╛рдЧрд┐ "рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЧрд░реНрдиреЗ рдИрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдореЛрдб" рдорд╛ рдкрд╣рд┐рд▓реЛ рдкреНрд░рдпрд╛рд╕ рдерд┐рдпреЛред рдпреЛ рдПрдХ рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕ рдерд┐рдпреЛ (рдпрд╕рд▓реЗ рдЕрдЦрдгреНрдбрддрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджреИрди), рд░ рд╣рдЯрд╛рдЙрдиреБ рдерд┐рдпреЛред рддреНрдпреЛ рдХрд╛рдо рдЧрд░реНрдиреЗ рдкреНрд░рдорд╛рдгрд┐рдХрд░рдг рдИрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдореЛрдбрдХреЛ рд▓рд╛рдЧрд┐ реиреж рд╡рд░реНрд╖рдХреЛ рдЦреЛрдЬрдХреЛ рд╕реБрд░реБрд╡рд╛рдд рдерд┐рдпреЛ, рдЬреБрди рд╣рд╛рд▓реИ OCB рд░ GCM рдЬрд╕реНрддрд╛ рдореЛрдбрд╣рд░реВрдорд╛ рдкрд░рд┐рдгрдд рднрдпреЛред

рд░ рдЕрдм рдХрд╛рд░реНрдЯ рдкрдХреНрд╖рдмрд╛рдЯ рддрд░реНрдХрд╣рд░реВ:

рдирд┐рдХреЛрд▓рд╛рдИ рджреБрд░реЛрднрдХреЛ рдиреЗрддреГрддреНрд╡рдорд╛ рд░рд╣реЗрдХреЛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдкрдЫрд╛рдбрд┐рдХреЛ рдЯреЛрд▓реАрдорд╛ рдЫ рдПрд╕реАрдПрдо рдЪреНрдпрд╛рдореНрдкрд┐рдпрдирд╣рд░реВ рдЫрдиреН, рдЬрд╕рдордзреНрдпреЗ рдЖрдзрд╛ рдЧрдгрд┐рддрдорд╛ рдкреАрдПрдЪ.рдбреА. MTProto рдХреЛ рд╣рд╛рд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрди рд▓рдЧрднрдЧ рджреБрдИ рд╡рд░реНрд╖ рд▓рд╛рдЧреНрдпреЛред

рддреНрдпреЛ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рдЫред рддрд▓реНрд▓реЛ рддрд╣рдорд╛ рджреБрдИ рд╡рд░реНрд╖

рд╡рд╛ рддрдкрд╛рдЗрдБ рдХреЗрд╡рд▓ tls рд▓рд┐рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ

рдареАрдХ рдЫ, рдорд╛рдиреМрдВ рд╣рд╛рдореАрд▓реЗ рдЗрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд░ рдЕрдиреНрдп рд╕реВрдХреНрд╖реНрдорддрд╛рд╣рд░реВ рдЧрд░реЗрдХрд╛ рдЫреМрдВред рдХреЗ рдпреЛ TL рдорд╛ рдХреНрд░рдордмрджреНрдз рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкрдард╛рдЙрди рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВ deserialize рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫ? рддреНрдпрд╕реЛрднрдП рддрдкрд╛рдИрд▓реЗ рдХреЗ рд░ рдХрд╕рд░реА рдкрдард╛рдЙрдиреБ рдкрд░реНрдЫ? рдпрд╣рд╛рдБ, рд╡рд┐рдзрд┐ рднрдиреМрдВ initConnection, рд╕рд╛рдпрдж рдпреЛ рд╣реЛ?

Vasily, [25.06.18 18:46] рдЬрдбрд╛рди рдкреНрд░рд╛рд░рдореНрдн рдЧрд░реНрджрдЫ рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдЙрдкрдХрд░рдг рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдмрдЪрдд рдЧрд░реНрджрдЫред

рдпрд╕рд▓реЗ app_id, device_model, system_version, app_version рд░ lang_code рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдЫред

рд░ рдХреЗрд╣рд┐ рдкреНрд░рд╢реНрди

рд╕рдзреИрдВ рдЬрд╕реНрддреИ рджрд╕реНрддрд╛рд╡реЗрдЬред рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЕрдзреНрдпрдпрди рдЧрд░реНрди рд╕реНрд╡рддрдиреНрддреНрд░ рдорд╣рд╕реБрд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдпрджрд┐ invokeWithLayer рд╕рдБрдЧ рд╕рдмреИ рдХреБрд░рд╛ рд▓рдЧрднрдЧ рд╕реНрдкрд╖реНрдЯ рдерд┐рдпреЛ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдпрд╣рд╛рдБ рдХреЗ рдЧрд▓рдд рдЫ? рдпреЛ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ, рдорд╛рдиреМрдВ рд╣рд╛рдореАрд╕рдБрдЧ рдЫ - рдЧреНрд░рд╛рд╣рдХрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рд░реНрднрд░рд▓рд╛рдИ рд╕реЛрдзреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдХреЗрд╣рд┐ рдерд┐рдпреЛ - рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рдЕрдиреБрд░реЛрдз рдЫ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдкрдард╛рдЙрди рдЪрд╛рд╣рдиреНрдереНрдпреМрдВ:

Vasily, [25.06.18 19:13] рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдиреНрдпрд╛рдп, рдкрд╣рд┐рд▓реЛ рдХрд▓ рдпреЛ рдмрдХрд╡рд╛рд╕ рдорд╛ рдмреЗрд░рд┐рдПрдХреЛ рдЫ, рд░ рдмрдХрд╡рд╛рд╕ рдЖрдлреИ invokewithlayer рдорд╛ рдмреЗрд░рд┐рдПрдХреЛ рдЫред

рдХрд┐рди initConnection рдЫреБрдЯреНрдЯреИ рдХрд▓ рд╣реБрди рд╕рдХреЗрди, рддрд░ рд░реНрдпрд╛рдкрд░ рд╣реБрдиреБрдкрд░реНрдЫ? рд╣реЛ, рдпреЛ рдмрд╛рд╣рд┐рд░ рдирд┐рд╕реНрдХрд┐рдпреЛ, рдпреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рддреНрд░рдХреЛ рд╕реБрд░реБрдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдкрдЯрдХ рдЧрд░реНрдиреБрдкрд░реНрдЫ, рд░ рдПрдХ рдкрдЯрдХ рд╣реЛрдЗрди, рдореБрдЦреНрдп рдХреБрдЮреНрдЬреАрдХреЛ рд░реВрдкрдорд╛ред рддрд░! рдпреЛ рдПрдХ рдЕрдирд╛рдзрд┐рдХреГрдд рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд▓ рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрди! рдЕрдм рд╣рд╛рдореА рдпреЛ рд▓рд╛рдЧреВ рд╣реБрдиреЗ рдЪрд░рдгрдорд╛ рдкреБрдЧреЗрдХрд╛ рдЫреМрдВ рдпреЛ рдЪрд╛рд╣рд┐рдБ рдХрд╛рдЧрдЬрд╛рдд рдкреГрд╖реНрда - рд░ рдпрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдмрддрд╛рдЙрдБрдЫ рдХрд┐ ...

API рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рд╕рд╛рдиреЛ рдЕрдВрд╢ рдорд╛рддреНрд░ рдЕрдирдзрд┐рдХреГрдд рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдз рдЫ:

  • auth.sendCode
  • auth.resendCode
  • account.getPassword
  • auth.checkPassword
  • auth.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, рд░ рддреНрдпрд╣рд╛рдБ рддреНрдпреЛ рдкреНрдпрд╛рд░реЛ рдкрд╣рд┐рд▓реЛ рдЕрдиреБрд░реЛрдз рдЫ рдЬрд╕рдорд╛ рд╣рд╛рдореА api_id рд░ api_hash рдкрдард╛рдЙрдБрдЫреМрдВ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореАрд▓реЗ рдХреЛрдб рд╕рд╣рд┐рддрдХреЛ SMS рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫреМрдВред рд░ рдпрджрд┐ рд╣рд╛рдореА рдЧрд▓рдд DC рдорд╛ рдЫреМрдВ (рдпрд╕ рджреЗрд╢рдорд╛ рдЯреЗрд▓рд┐рдлреЛрди рдирдореНрдмрд░рд╣рд░реВ рдЕрд░реНрдХреЛрджреНрд╡рд╛рд░рд╛ рд╕реЗрд╡рд╛ рдЧрд░рд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐), рддрдм рд╣рд╛рдореАрд▓реЗ рдЗрдЪреНрдЫрд┐рдд DC рдХреЛ рдирдореНрдмрд░рдХреЛ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫреМрдВред DC рдирдореНрдмрд░ рджреНрд╡рд╛рд░рд╛ рдХреБрди IP рдареЗрдЧрд╛рдирд╛рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди, рд╣рд╛рдореАрд▓рд╛рдИ рдорджреНрджрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН help.getConfigред рдПрдХ рд╕рдордпрдорд╛ рддреНрдпрд╣рд╛рдБ рдХреЗрд╡рд▓ 5 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рд╣рд░реВ рдерд┐рдП, рддрд░ 2018 рдХреЛ рдкреНрд░рд╕рд┐рджреНрдз рдШрдЯрдирд╛рд╣рд░реВ рдкрдЫрд┐, рд╕рдВрдЦреНрдпрд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдмрдвреЗрдХреЛ рдЫред

рдЕрдм рдпрд╛рдж рдЧрд░реМрдВ рдХрд┐ рд╣рд╛рдореА рдЕрдЬреНрдЮрд╛рдд рд░реВрдкрдорд╛ рд╕рд░реНрднрд░рдорд╛ рдпрд╕ рдЪрд░рдгрдорд╛ рдкреБрдЧреНрдпреМрдВред IP рдареЗрдЧрд╛рдирд╛ рдорд╛рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдзреЗрд░реИ рдорд╣рдБрдЧреЛ рдЫреИрди? MTProto рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдирдЧрд░рд┐рдПрдХреЛ рднрд╛рдЧрдорд╛ рдпреЛ рд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╣рд░реВ рдХрд┐рди рдирдЧрд░реНрдиреЗ? рдо рдЖрдкрддреНрддрд┐ рд╕реБрдиреНрдЫреБ: "рд╣рд╛рдореА рдХрд╕рд░реА рдкрдХреНрдХрд╛ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рдХрд┐ рдпреЛ RKN рд╣реЛрдЗрди рдЬрд╕рд▓реЗ рдЭреВрдЯрд╛ рдареЗрдЧрд╛рдирд╛рд╣рд░реВрдХреЛ рд╕рд╛рде рдЬрд╡рд╛рдл рджрд┐рдиреЗрдЫ?" рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореА рд╕рдореНрдЭрдиреНрдЫреМрдВ, рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВ RSA рдХреБрдЮреНрдЬреАрд╣рд░реВ рд╕рдореНрдорд┐рд▓рд┐рдд рдЫрдиреН, рдЕрд░реНрдерд╛рддреН рддрдкрд╛рдИрдВ рдорд╛рддреНрд░ рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЪрд┐рдиреНрд╣ рдпреЛ рд╕реВрдЪрдирд╛ред рд╡рд╛рд╕реНрддрд╡рдорд╛, рдпреЛ рдкрд╣рд┐рд▓реЗ рдиреИ рдХреНрд▓рд╛рдЗрдиреНрдЯрд╣рд░реВрд▓реЗ рдЕрдиреНрдп рдЪреНрдпрд╛рдирд▓рд╣рд░реВ рдорд╛рд░реНрдлрдд рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдмреНрд▓рдХрд┐рдЩрд▓рд╛рдИ рдмрд╛рдЗрдкрд╛рд╕ рдЧрд░реНрдиреЗ рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд▓рд╛рдЧрд┐ рдЧрд░рд┐рдБрджреИ рдЫ (рддрд╛рд░реНрдХрд┐рдХ рд░реВрдкрдорд╛, рдпреЛ MTProto рдорд╛ рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрди; рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрд╣рд╛рдБ рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдкрдирд┐ рдЬрд╛рдиреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ)ред

рдард┐рдХ рдЫред рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдгрдХреЛ рдпрд╕ рдЪрд░рдгрдорд╛, рд╣рд╛рдореА рдЕрдЭреИ рдЕрдзрд┐рдХреГрдд рдЫреИрдиреМрдВ рд░ рд╣рд╛рдореНрд░реЛ рдЖрд╡реЗрджрди рджрд░реНрддрд╛ рдЧрд░реЗрдХрд╛ рдЫреИрдиреМрдВред рд╣рд╛рдореА рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐ рд╣реЗрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ рдХрд┐ рд╕рд░реНрднрд░рд▓реЗ рдЕрдирд╛рдзрд┐рдХреГрдд рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдзрд┐рд╣рд░реВрдорд╛ рдХреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рдиреНрдЫред рд░ рдпрд╣рд╛рдБтАж

рднрд╛рд╕рд┐рд▓реА, [реиреж.режрем.резрео резрел:релреж] 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 рд╕реНрдХреАрдорд╛рдорд╛ рддреЗрд╕реНрд░реЛ рдорд╛рди рд╣реЛ

рд╣реЛ, рддрдм рджреЗрдЦрд┐, рдЕрд╡рд╢реНрдп рдкрдирд┐, рдХрд╛рдЧрдЬрд╛рдд рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдЫред рдпрджреНрдпрдкрд┐ рдпреЛ рдЪрд╛рдБрдбреИ рдлреЗрд░рд┐ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реБрди рд╕рдХреНрдЫред рдПрдХ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдХрд╕рд░реА рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫ? рд╣реБрдирд╕рдХреНрдЫ рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рдЖрд╡реЗрджрди рджрд░реНрддрд╛ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕реВрдЪрд┐рдд рдЧрд░реНрдиреЗрдЫрдиреН? Vasily рдпреЛ рдЧрд░реЗ, рддрд░ рдЕрдлрд╕реЛрд╕, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдЙрд╣рд╛рдБрд▓рд╛рдИ рдХреЗрд╣рд┐ рдкрдард╛рдПрдирдиреН (рдлреЗрд░рд┐, рд╣рд╛рдореА рджреЛрд╕реНрд░реЛ рднрд╛рдЧрдорд╛ рдпрд╕ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВ)ред

...рддрдкрд╛рдИрд▓реЗ рдпрд╛рдж рдЧрд░реНрдиреБрднрдпреЛ рдХрд┐ рд╣рд╛рдореА рдкрд╣рд┐рд▓реЗ рдиреИ рдХреБрдиреИ рди рдХреБрдиреИ рд░реВрдкрдорд╛ API рдорд╛ рд╕рд░реЗрдХрд╛ рдЫреМрдВ, рдЕрд░реНрдерд╛рддреНред рдЕрд░реНрдХреЛ рд╕реНрддрд░рдорд╛, рд░ MTProto рд╡рд┐рд╖рдпрдорд╛ рдХреЗрд╣рд┐ рдЫреБрдЯреЗрдХреЛ рдЫ? рдХреБрдиреИ рдЖрд╢реНрдЪрд░реНрдп рдЫреИрди:

Vasily, [28.06.18 02:04] Mm, рддрд┐рдиреАрд╣рд░реВ e2e рдорд╛ рдХреЗрд╣реА рдПрд▓реНрдЧреЛрд░рд┐рджрдорд╣рд░реВ рдорд╛рд░реНрдлрдд рдЧрдл рдЧрд░реНрджреИрдЫрдиреНред

Mtproto рджреБрдмреИ рдбреЛрдореЗрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд░ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫ, рд╕рд╛рдерд╕рд╛рдереИ рд░реНрдпрд╛рдкрд░ рд╕рдВрд░рдЪрдирд╛рдХреЛ рдПрдХ рдмрд┐рдЯ

рддрд░ рддрд┐рдиреАрд╣рд░реВ рдирд┐рд░рдиреНрддрд░ рд╕реНрдЯреНрдпрд╛рдХрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░рд╣рд░реВ рдорд┐рд▓рд╛рдЙрдБрдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рдпреЛ рд╕рдзреИрдВ рд╕реНрдкрд╖реНрдЯ рд╣реБрдБрджреИрди рдХрд┐ mtproto рдХрд╣рд╛рдБ рд╕рдорд╛рдкреНрдд рднрдпреЛ рд░ рдЕрд░реНрдХреЛ рд╕реНрддрд░ рд╕реБрд░реБ рднрдпреЛред

рддрд┐рдиреАрд╣рд░реВ рдХрд╕рд░реА рдорд┐рд╢реНрд░рдг рдЧрд░реНрдЫрдиреН? рдареАрдХ рдЫ, рдпрд╣рд╛рдБ PFS рдХреЛ рд▓рд╛рдЧреА рдЙрд╣реА рдЕрд╕реНрдерд╛рдпреА рдХреБрдЮреНрдЬреА рдЫ, рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА (рд╡реИрд╕реЗ, рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдбреЗрд╕реНрдХрдЯрдкрд▓реЗ рдпреЛ рдЧрд░реНрди рд╕рдХреНрджреИрди)ред рдпреЛ рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдз рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдЫ auth.bindTempAuthKey, рдЕрд░реНрдерд╛рддреН рд╢реАрд░реНрд╖ рд╕реНрддрд░рдмрд╛рдЯред рддрд░ рдПрдХреИ рд╕рдордпрдорд╛ рдпрд╕рд▓реЗ рддрд▓реНрд▓реЛ рд╕реНрддрд░рдорд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рдирдорд╛ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдЧрд░реНрджрдЫ - рдпрд╕рдХреЛ рдкрдЫрд┐, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рдлреЗрд░рд┐ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред initConnection рдЖрджрд┐, рдпреЛ рд╣реЛрдЗрди рдмрд╕ рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрд░реЛрдзред рдХреЗ рдкрдирд┐ рд╡рд┐рд╢реЗрд╖ рдЫ рдХрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдкреНрд░рддрд┐ DC рдорд╛рддреНрд░ рдПрдЙрдЯрд╛ рдЕрд╕реНрдерд╛рдпреА рдХреБрдЮреНрдЬреА рд╣реБрди рд╕рдХреНрдЫ, рдпрджреНрдпрдкрд┐ рдлрд┐рд▓реНрдб auth_key_id рдкреНрд░рддреНрдпреЗрдХ рд╕рдиреНрджреЗрд╢рдорд╛ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдХрдореНрддрд┐рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдиреНрджреЗрд╢ рдХреБрдЮреНрдЬреА рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рд░ рд╕рд░реНрднрд░рд╕рдБрдЧ рдХреБрдиреИ рдкрдирд┐ рд╕рдордпрдорд╛ рдЕрд╕реНрдерд╛рдпреА рдХреБрдЮреНрдЬреА "рдмрд┐рд░реНрд╕рдиреЗ" рдЕрдзрд┐рдХрд╛рд░ рдЫ - рдХрд╛рдЧрдЬрд╛рддрд▓реЗ рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдХреЗ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдмрддрд╛рдЙрдБрджреИрди ... рдареАрдХ рдЫ, рдХрд┐рди рд╣реБрди рд╕рдХреНрдЫред рддрдкрд╛рдИрдВрд╕рдБрдЧ рдзреЗрд░реИ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдЫреИрдирдиреН, рдЬрд╕реНрддреИ рднрд╡рд┐рд╖реНрдпрдХреЛ рдиреБрдирдХреЛ рд╕реЗрдЯрдХреЛ рд╕рд╛рде, рд░?..

MTProto рд╡рд┐рд╖рдпрд╡рд╕реНрддреБрдХреЛ рдмрд╛рд░реЗрдорд╛ рдзреНрдпрд╛рди рджрд┐рди рд▓рд╛рдпрдХ рдХреЗрд╣рд┐ рдЕрдиреНрдп рдЪреАрдЬрд╣рд░реВ рдЫрдиреНред

рд╕рдиреНрджреЗрд╢ рд╕рдиреНрджреЗрд╢рд╣рд░реВ, msg_id, msg_seqno, рдкреБрд╖реНрдЯрд┐рдХрд░рдгрд╣рд░реВ, рдЧрд▓рдд рджрд┐рд╢рд╛рдорд╛ рдкрд┐рдВрдЧрд╣рд░реВ рд░ рдЕрдиреНрдп idiosyncrasies

рддрдкрд╛рдИрдВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХрд┐рди рдЬрд╛рдиреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ? рдХрд┐рдирднрдиреЗ рддрд┐рдиреАрд╣рд░реВ рдЙрдЪреНрдЪ рд╕реНрддрд░рдорд╛ "рд▓реАрдХ" рд╣реБрдиреНрдЫрдиреН, рд░ рдПрдкреАрдЖрдИрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрд╛ рддрдкрд╛рдИрд▓рд╛рдИ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рдЪреЗрдд рд╣реБрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдорд╛рдиреМрдВ рд╣рд╛рдореА msg_key рдорд╛ рд░реБрдЪрд┐ рд░рд╛рдЦреНрджреИрдиреМрдВ; рддрд▓реНрд▓реЛ рддрд╣рд▓реЗ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рд╕рдмреИ рдХреБрд░рд╛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдЧрд░реЗрдХреЛ рдЫред рддрд░ рдбрд┐рдХреНрд░рд┐рдкреНрдЯреЗрдб рдбрд╛рдЯрд╛ рднрд┐рддреНрд░ рд╣рд╛рдореАрд╕рдБрдЧ рдирд┐рдореНрди рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдЫрдиреН (рдбреЗрдЯрд╛рдХреЛ рд▓рдореНрдмрд╛рдЗ рдкрдирд┐, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдкреНрдпрд╛рдбрд┐рдЩ рдХрд╣рд╛рдБ рдЫ, рддрд░ рддреНрдпреЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫреИрди):

  • рдирдордХ - int64
  • рд╕рддреНрд░_рдЖрдИрдбреА - int64
  • рд╕рдиреНрджреЗрд╢_рдЖрдИрдбреА - int64
  • seq_no - int32

рд╣рд╛рдореА рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рдореНрдЭрдирд╛ рдЧрд░реМрдВ рдХрд┐ рд╕рдореНрдкреВрд░реНрдг DC рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдорд╛рддреНрд░ рдиреБрди рдЫред рдЙрдирдХреЛ рдмрд╛рд░реЗрдорд╛ рдХрд┐рди рдерд╛рд╣рд╛ рдЫ? рдЕрдиреБрд░реЛрдз рдЫ рднрдиреЗрд░ рдорд╛рддреНрд░ рд╣реЛрдЗрди get_future_salts, рдЬрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдмрддрд╛рдЙрдБрдЫ рдХрд┐ рдХреБрди рдЕрдиреНрддрд░рд╛рд▓ рдорд╛рдиреНрдп рд╣реБрдиреЗрдЫ, рддрд░ рдпреЛ рдкрдирд┐ рдХрд┐ рдпрджрд┐ рддрдкрд╛рдЗрдБрдХреЛ рдиреБрди "рд╕рдбреЗрдХреЛ" рдЫ рднрдиреЗ, рд╕рдиреНрджреЗрд╢ (рдЕрдиреБрд░реЛрдз) рдорд╛рддреНрд░ рд╣рд░рд╛рдЙрдиреЗрдЫред рд╕рд░реНрднрд░рд▓реЗ, рдЕрд╡рд╢реНрдп рдкрдирд┐, рдЬрд╛рд░реА рдЧрд░реЗрд░ рдирдпрд╛рдБ рдиреБрди рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрдиреЗрдЫ new_session_created - рддрд░ рдкреБрд░рд╛рдиреЛрдХреЛ рд╕рд╛рде рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдХреБрдиреИ рди рдХреБрдиреИ рд░реВрдкрдорд╛ рдкреБрди: рдкрдард╛рдЙрдиреБрдкрд░реНрдиреЗрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ред рд░ рдпреЛ рдореБрджреНрджрд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдЫред

рд╕рд░реНрднрд░рд▓рд╛рдИ рд╕рддреНрд░рд╣рд░реВ рдкреВрд░реИ рдЫреЛрдбреНрди рд░ рдзреЗрд░реИ рдХрд╛рд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕ рддрд░рд┐рдХрд╛рдорд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рди рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдЫред рд╡рд╛рд╕реНрддрд╡рдорд╛, рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖рдмрд╛рдЯ MTProto рд╕рддреНрд░ рдХреЗ рд╣реЛ? рдпреА рджреБрдИ рдирдореНрдмрд░ рд╣реБрдиреН session_id ╨╕ seq_no рдпрд╕ рд╕рддреНрд░ рднрд┐рддреНрд░ рд╕рдиреНрджреЗрд╢рд╣рд░реВред рдареАрдХ рдЫ, рд░ рдЕрдиреНрддрд░реНрдирд┐рд╣рд┐рдд TCP рдЬрдбрд╛рди, рдЕрд╡рд╢реНрдп рдкрдирд┐ред рдорд╛рдиреМрдВ рд╣рд╛рдореНрд░реЛ рдЧреНрд░рд╛рд╣рдХрд▓рд╛рдИ рдЕрдЭреИ рдзреЗрд░реИ рдХреБрд░рд╛рд╣рд░реВ рдХрд╕рд░реА рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдерд╛рд╣рд╛ рдЫреИрди, рдЙрд╕рд▓реЗ рд╡рд┐рдЪреНрдЫреЗрдж рдЧрд░реНрдпреЛ, рдкреБрди: рдЬрдбрд╛рди рднрдпреЛред рдпрджрд┐ рдпреЛ рдЫрд┐рдЯреЛ рднрдпреЛ рднрдиреЗ - рдирдпрд╛рдБ TCP рдЬрдбрд╛рдирдорд╛ рдкреБрд░рд╛рдиреЛ рд╕рддреНрд░ рдЬрд╛рд░реА рд░рд╣реНрдпреЛ, рдмрдврд╛рдЙрдиреБрд╣реЛрд╕реН seq_no рдердкред рдпрджрд┐ рдпрд╕рд▓реЗ рд▓рд╛рдореЛ рд╕рдордп рд▓рд┐рдиреНрдЫ рднрдиреЗ, рд╕рд░реНрднрд░рд▓реЗ рдпрд╕рд▓рд╛рдИ рдореЗрдЯрд╛рдЙрди рд╕рдХреНрдЫ, рдХрд┐рдирднрдиреЗ рдпрд╕рдХреЛ рдЫреЗрдЙрдорд╛ рдпреЛ рдкрдирд┐ рдПрдХ рд▓рд╛рдо рд╣реЛ, рдЬрд╕реНрддреЛ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рдкрддреНрддрд╛ рд▓рдЧрд╛рдпреМрдВред

рдпреЛ рдХреЗ рд╣реБрдиреБрдкрд░реНрдЫ seq_no? рдУрд╣, рдпреЛ рдПрдХ рдХрдард┐рди рдкреНрд░рд╢реНрди рд╣реЛред рдЗрдорд╛рдирджрд╛рд░реАрдкреВрд░реНрд╡рдХ рдмреБрдЭреНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХреЗ рдорддрд▓рдм рдерд┐рдпреЛ:

рд╕рд╛рдордЧреНрд░реА-рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдиреНрджреЗрд╢

рд╕реНрдкрд╖реНрдЯ рд╕реНрд╡реАрдХреГрддрд┐ рдЪрд╛рд╣рд┐рдиреЗ рд╕рдиреНрджреЗрд╢ред рдпрд╕рдорд╛ рд╕рдмреИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд░ рдзреЗрд░реИ рд╕реЗрд╡рд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН, рд╡рд╕реНрддреБрддрдГ рд╕рдмреИ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд░ рд╕реНрд╡реАрдХреГрддрд┐рд╣рд░реВ рдмрд╛рд╣реЗрдХред

рд╕рдиреНрджреЗрд╢ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ (msg_seqno)

рдпреЛ рд╕рдиреНрджреЗрд╢ рдЕрдШрд┐ рдкреНрд░реЗрд╖рдХрджреНрд╡рд╛рд░рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ "рд╕рд╛рдордЧреНрд░реА-рд╕рдореНрдмрдиреНрдзрд┐рдд" рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рджреЛрдмреНрдмрд░ рд╕рдВрдЦреНрдпрд╛ рдмрд░рд╛рдмрд░рдХреЛ 32-рдмрд┐рдЯ рдирдореНрдмрд░ (рдЬрд╕рд▓рд╛рдИ рд╕реНрд╡реАрдХреГрддрд┐ рдЪрд╛рд╣рд┐рдиреНрдЫ, рд░ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рддреА рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдЫреИрдирдиреН) рд░ рд╣рд╛рд▓рдХреЛ рд╕рдиреНрджреЗрд╢ рд╣реЛ рднрдиреЗ рдПрдХрджреНрд╡рд╛рд░рд╛ рдмрдврд╛рдЗрдПрдХреЛред рд╕рд╛рдордЧреНрд░реА рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдиреНрджреЗрд╢ред рдХрдиреНрдЯреЗрдирд░ рд╕рдзреИрдВ рдпрд╕рдХреЛ рд╕рдореНрдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рдкрдЫрд┐ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫ; рддреНрдпрд╕рдХрд╛рд░рдг, рдпрд╕рдХреЛ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рдпрд╕рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рднрдиреНрджрд╛ рдареВрд▓реЛ рд╡рд╛ рдмрд░рд╛рдмрд░ рдЫред

рдпреЛ рдХрд╕реНрддреЛ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕рд░реНрдХрд╕ рд╣реЛ рдЬрд╕рдорд╛ 1 рдХреЛ рд╡реГрджреНрдзрд┐ рд╣реБрдиреНрдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЕрд░реНрдХреЛ 2 рджреНрд╡рд╛рд░рд╛?... рдорд▓рд╛рдИ рд╢рдВрдХрд╛ рдЫ рдХрд┐ рд╕реБрд░реБрдорд╛ рддрд┐рдиреАрд╣рд░реВрд▓реЗ "ACK рдХреЛ рд▓рд╛рдЧрд┐ рдХрдореНрддрд┐рдорд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ, рдмрд╛рдБрдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛ", рддрд░ рдирддрд┐рдЬрд╛ рдПрдХрджрдо рд╕рдорд╛рди рдЫреИрди - рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рдпреЛ рдмрд╛рд╣рд┐рд░ рдЖрдЙрдБрдЫ, рдкрдард╛рдЙрди рд╕рдХрд┐рдиреНрдЫ рдзреЗрд░реИ рд╕рдорд╛рди рднрдПрдХреЛ рдкреБрд╖реНрдЯрд┐рд╣рд░реВ seq_no! рдХрд╕рд░реА? рдареАрдХ рдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╕рд░реНрднрд░рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдХреЗрд╣рд┐ рдкрдард╛рдЙрдБрдЫ, рдкрдард╛рдЙрдБрдЫ, рд░ рд╣рд╛рдореА рдЖрдлреИ рдореМрди рд░рд╣рдиреНрдЫреМрдВ, рдХреЗрд╡рд▓ рд╕реЗрд╡рд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рдБрджреИ рдпрд╕рдХреЛ рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рдкреНрд░рд╛рдкреНрддрд┐ рдкреБрд╖реНрдЯрд┐ рдЧрд░реНрджрдЫред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореНрд░реЛ рдмрд╣рд┐рд░реНрдЧрдорди рдкреБрд╖реНрдЯрд┐рдХрд░рдгрд╣рд░реВ рдПрдЙрдЯреИ рдмрд╣рд┐рд░реНрдЧрдорди рдирдореНрдмрд░ рд╣реБрдиреЗрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ TCP рд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрд╣реБрдиреНрдЫ рд░ рд╕реЛрдЪреНрдиреБрднрдПрдХреЛ рдЫ рдХрд┐ рдпреЛ рдХреБрдиреИ рдкреНрд░рдХрд╛рд░рд▓реЗ рдЬрдВрдЧрд▓реА рд╕реБрдирд┐рдиреНрдЫ, рддрд░ рдпреЛ рдзреЗрд░реИ рдЬрдВрдЧрд▓реА рджреЗрдЦрд┐рджреИрди, рдХрд┐рдирднрдиреЗ TCP рдорд╛ seq_no рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдБрджреИрди, рддрд░ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдЬрд╛рдиреНрдЫ seq_no рдЕрд░реНрдХреЛ рддрд┐рд░, рдо рддрд┐рдореАрд▓рд╛рдИ рдирд┐рд░рд╛рд╢ рдкрд╛рд░реНрди рд╣рддрд╛рд░ рдЧрд░реНрдиреЗрдЫреБред MTProto рдорд╛ рдкреБрд╖реНрдЯрд┐рдХрд░рдгрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдиреНрдЫ рд╣реЛрдЗрди рдорд╛ seq_no, TCP рдорд╛ рдЬрд╕реНрддреИ, рддрд░ рджреНрд╡рд╛рд░рд╛ 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;

рдУрд╣, рдХрд╕реИрд▓реЗ рдЪрд┐рдЪреНрдпрд╛рдЙрдиреЗрдЫ, рдпрд╣рд╛рдБ рдПрдХ рдЕрдзрд┐рдХ рдорд╛рдирд╡реАрдп рдврд╛рдБрдЪрд╛ рдЫ - рддреНрдпрд╣рд╛рдБ рдПрдХ рд░реЗрдЦрд╛ рдЫ! рдЖрдлреНрдиреЛ рд╕рдордп рд▓рд┐рдиреБрд╣реЛрд╕реНред рдпрд╣рд╛рдБ рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рд╕реВрдЪреА, рддрд░ рдкрдХреНрдХреИ рдкрдирд┐ рдкреВрд░реНрдг рдЫреИрдиред рдпрд╕рдмрд╛рдЯ рд╣рд╛рдореАрд▓реЗ рд╕рд┐рдХреНрдпреМрдВ рдХрд┐ рдХреЛрдб рд╣реЛ рдХреЗрд╣рд┐ рдЬрд╕реНрддреИ HTTP рддреНрд░реБрдЯрд┐рд╣рд░реВ (рдареАрдХ рдЫ, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░рд▓рд╛рдИ рд╕рдореНрдорд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫреИрди, рдХреЗрд╣реА рдард╛рдЙрдБрд╣рд░реВрдорд╛ рддрд┐рдиреАрд╣рд░реВ рдХреЛрдбрд╣рд░реВ рдмреАрдЪ рдЕрдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛ рд╡рд┐рддрд░рд┐рдд рд╣реБрдиреНрдЫрдиреН), рд░ рд░реЗрдЦрд╛ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫред CAPITAL_LETTERS_AND_NUMBERSред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, PHONE_NUMBER_OCCUPIED рд╡рд╛ FILE_PART_╨е_MISSINGред рдареАрдХ рдЫ, рддреНрдпреЛ рд╣реЛ, рддрдкрд╛рдИрд▓рд╛рдИ рдЕрдЭреИ рдкрдирд┐ рдпреЛ рд▓рд╛рдЗрди рдЪрд╛рд╣рд┐рдиреНрдЫ рдкрд╛рд░реНрд╕ред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА FLOOD_WAIT_3600 рдпрд╕рдХреЛ рдорддрд▓рдм рддрдкрд╛рдИрд▓реЗ рдПрдХ рдШрдгреНрдЯрд╛ рдкрд░реНрдЦрдиреБ рдкрд░реНрдЫ, рд░ PHONE_MIGRATE_5, рдпреЛ рдЙрдкрд╕рд░реНрдЧ рднрдПрдХреЛ рдЯреЗрд▓рд┐рдлреЛрди рдирдореНрдмрд░ 5th DC рдорд╛ рджрд░реНрддрд╛ рд╣реБрдиреБрдкрд░реНрдЫред рд╣рд╛рдореАрд╕рдБрдЧ рдПрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рднрд╛рд╖рд╛ рдЫ, рд╣реИрди? рд╣рд╛рдореАрд▓рд╛рдИ рд╕реНрдЯреНрд░рд┐рдЩрдмрд╛рдЯ рддрд░реНрдХ рдЪрд╛рд╣рд┐рдБрджреИрди, рдирд┐рдпрдорд┐рддрд╣рд░реВрд▓реЗ рдЧрд░реНрдиреЗрдЫрдиреН, рдареАрдХ рдЫред

рдлреЗрд░рд┐, рдпреЛ рд╕реЗрд╡рд╛ рд╕рдиреНрджреЗрд╢ рдкреГрд╖реНрдардорд╛ рдЫреИрди, рддрд░, рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рд╛рдорд╛рдиреНрдп рдЫ, рдЬрд╛рдирдХрд╛рд░реА рдкрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫред рдЕрд░реНрдХреЛ рдХрд╛рдЧрдЬрд╛рдд рдкреГрд╖реНрдардорд╛ред рд╡рд╛ рдЖрд╢рдВрдХрд╛ рд╡реНрдпрдХреНрдд рдЧрд░реНрдиреЗред рдкрд╣рд┐рд▓реЗ, рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН, рдЯрд╛рдЗрдкрд┐рдЩ/рд▓реЗрдпрд░ рдЙрд▓реНрд▓рдЩреНрдШрди - 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... рдЕрдиреНрдп рдирдореНрдмрд░рд╣рд░реВ рдХрд╣рд╛рдБ рдЫрдиреН, рдЯрдореА?

рдХрд╛рдЧрдЬрд╛рдд рднрдиреНрдЫ:

рдЗрд░рд╛рджрд╛ рдпреЛ рд╣реЛ рдХрд┐ error_code рдорд╛рдирд╣рд░реВ рд╕рдореВрд╣рдмрджреНрдз рдЫрдиреН (error_code >> 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 рдХреЛ рдХрд╛рди рдмрд╛рд╣рд┐рд░ рдЯрд╛рдБрд╕рд┐рдПрдХреЛ рдЫ (рд╣рд╛рдореАрд▓рд╛рдИ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдПрдХ рднреЗрдХреНрдЯрд░ рдЪрд╛рд╣рд┐рдиреНрдЫ, рд░ рддрд▓реНрд▓реЛ рджреБрдИ рдмрд┐рдЯ рдорд╛ рдПрдХ enum рдерд┐рдпреЛ, рд░ рдорд╛рдерд┐ рджреБрдИ рдмрд┐рдЯ рдорд╛ рдЭрдгреНрдбрд╛ рдерд┐рдпреЛ)ред рдХреБрд░реЛ рдлрд░рдХ рдЫ ред рдпреЛ рд╕рдмреИ рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛ рдХрд┐рди рднреИрд░рд╣реЗрдХреЛ рдЫ рдХрд╕реИрд▓реЗ рдмреБрдЭреЗрдХреЛ рдЫ ? рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧреНрд░рд╛рд╣рдХ рдорд╛ рдЖрд╡рд╢реНрдпрдХ?... рдХрдард┐рдирд╛рдИ рд╕рдВрдЧ, рддрд░ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдбрд┐рдмрдЧрд┐рдЩ рдорд╛ рд╕рдВрд▓рдЧреНрди рдЫ рднрдиреЗ рдХреЗрд╣рд┐ рд▓рд╛рдн рдХрд▓реНрдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд░ рдПрдХ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореЛрдб рдорд╛ - рдХреЗ рд░ рдХрд╕рд░реА рд╕рд░реНрднрд░ рд╕реЛрдзреНрдиреБрд╣реЛрд╕реНред рддрд░ рдпрд╣рд╛рдБ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ рдЧреЛрд▓ рдпрд╛рддреНрд░рд╛.

рдпрд╕рд▓реЗ рдкрдЫреНрдпрд╛рдЙрдБрдЫ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрдХреНрд╖рд▓реЗ рдЧреБрдкреНрддрд┐рдХрд░рдг рд░ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдорд╛рддреНрд░ рдкрдард╛рдЙрди рд╣реБрдБрджреИрди, рддрд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА, рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛, рдЕрдЬреНрдЮрд╛рдд рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиреБрдкрд░реНрдЫред рдХрд╛рдЧрдЬрд╛рддрд▓реЗ рдпреА рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрдХреЛ рд╕рдордп рд╡рд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд▓рд╛рдЧреВрддрд╛рдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрджреИрдиред рдХреБрдиреИ рдмрд╛рдЯреЛ рдЫреИрдиред рд╕рдмреИрднрдиреНрджрд╛ рдЕрдЪрдореНрдордХреЛ рдХреБрд░рд╛ рдХреЗ рдЫ рдХрд┐ рддрд┐рдиреАрд╣рд░реВ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХреЛ рдХреЛрдбрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ! рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ рдХреЗрд╣рд┐ рднрдирд┐рдПрдХреЛ рдерд┐рдпреЛ рдЬреБрди рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рдЧрдЬрд╛рддрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдПрдиред рдХреЛрдбрдмрд╛рдЯ рдмреБрдЭреНрдиреБрд╣реЛрд╕реН рдХрд┐рди, рдЕрдм TL рдХреЛ рдорд╛рдорд▓рд╛рдорд╛ рдЬрддреНрддрд┐рдХреИ рд╕рд░рд▓ рдЫреИрди - рдпреЛ (рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд) рддрд╛рд░реНрдХрд┐рдХ рд░реВрдкрдорд╛ рдкреГрдердХ рднрд╛рдЧ рд╣реЛрдЗрди, рддрд░ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдорд╛ рдмрд╛рдБрдзрд┐рдПрдХреЛ рдЯреБрдХреНрд░рд╛ рд╣реЛ, рдЕрд░реНрдерд╛рддреНред рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдХреЛрдб рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рд╕рдордп рдЪрд╛рд╣рд┐рдиреНрдЫред

рдкрд┐рдВрдЧ рд░ рд╕рдордпред рд▓рд╛рдорд╣рд░реВред

рд╕рдмреИ рдХреБрд░рд╛рдмрд╛рдЯ, рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рд╕рд░реНрднрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ (рдмреНрдпрд╛рдХрдПрдиреНрдбрд╣рд░реВрдорд╛ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рд╡рд┐рддрд░рдг) рдХреЛ рдмрд╛рд░реЗ рдорд╛ рдЕрдиреБрдорд╛рдирд╣рд░реВ рд╕рдореНрдЭрдиреНрдЫреМрдВ рднрдиреЗ, рдПрдХ рдмрд░реБ рджреБрдЦрдж рдХреБрд░рд╛ рдкрдЫреНрдпрд╛рдЙрдБрдЫ - TCP рдорд╛ рд╕рдмреИ рдбреЗрд▓рд┐рднрд░реА рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАрд╣рд░реВрдХреЛ рдмрд╛рд╡рдЬреБрдж (рдпрд╛ рдд рдбрд╛рдЯрд╛ рдбреЗрд▓рд┐рднрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, рд╡рд╛ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЕрдиреНрддрд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реВрдЪрд┐рдд рдЧрд░рд┐рдиреЗрдЫ, рддрд░ред рд╕рдорд╕реНрдпрд╛ рдЖрдЙрдиреБ рдЕрдШрд┐ рдбрд╛рдЯрд╛ рдбреЗрд▓рд┐рднрд░ рдЧрд░рд┐рдиреЗрдЫ), рддреНрдпреЛ MTProto рдорд╛ рдкреБрд╖реНрдЯрд┐рдХрд░рдгрд╣рд░реВ - рдХреБрдиреИ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рдЫреИрдиред рд╕рд░реНрднрд░рд▓реЗ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рддрдкрд╛рдИрдВрдХреЛ рд╕рдиреНрджреЗрд╢ рд╣рд░рд╛рдЙрди рд╡рд╛ рдмрд╛рд╣рд┐рд░ рдлрд╛рд▓реНрди рд╕рдХреНрдЫ, рд░ рдпрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗрд╣рд┐ рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрди, рдХреЗрд╡рд▓ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░рдХрд╛ рдмреИрд╕рд╛рдЦреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд░ рд╕рдмреИ рднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ - рд╕рдиреНрджреЗрд╢ рд▓рд╛рдорд╣рд░реВред рдареАрдХ рдЫ, рдПрдЙрдЯрд╛ рдХреБрд░рд╛рдХреЛ рд╕рд╛рде рд╕рдмреИ рдХреБрд░рд╛ рд╕реБрд░реБрджреЗрдЦрд┐ рдиреИ рд╕реНрдкрд╖реНрдЯ рдерд┐рдпреЛ - рдПрдХ рдЕрдкреБрд╖реНрдЯ рд╕рдиреНрджреЗрд╢ рднрдгреНрдбрд╛рд░рдг рд░ рд░рд┐рд╕реЗрдиреНрдЯ рд╣реБрдиреБрдкрд░реНрдЫред рдЕрдирд┐ рдХрддрд┐ рд╕рдордп рдкрдЫрд┐ ? рд░ рдЬреЛрд╕реНрдЯрд░рд▓реЗ рдЙрд╕рд▓рд╛рдИ рдЪрд┐рдиреНрдЫред рд╣реБрдирд╕рдХреНрдЫ рддреА рд▓рдд рд╕реЗрд╡рд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВрд▓реЗ рдХреБрдиреИ рди рдХреБрдиреИ рд░реВрдкрдорд╛ рдпреЛ рд╕рдорд╕реНрдпрд╛рд▓рд╛рдИ рдмреИрд╕рд╛рдЦреАрдХреЛ рд╕рд╛рде рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджрдЫ, рднрдиреНрдиреБрд╣реЛрд╕реН, рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдбреЗрд╕реНрдХрдЯрдкрдорд╛ рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ 4 рд▓рд╛рдорд╣рд░реВ рдЫрдиреН (рд╣реБрдирд╕рдХреНрдЫ, рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдЭреИрдВ, рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рдХреЛ рдХреЛрдб рд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рд▓рд╛рдИ рдЕрдЭ рдЧрдореНрднреАрд░рддрд╛рдХрд╛ рд╕рд╛рде рдЦреЛрдЬреНрдиреБ рдЖрд╡рд╢реНрдпрдХ рдЫ; рдЙрд╣реА рд░реВрдкрдорд╛ред рд╕рдордп, рд╣рд╛рдореАрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдХрд┐ рдпрд╕рд▓рд╛рдИ рдирдореВрдирд╛рдХреЛ рд░реВрдкрдорд╛ рд▓рд┐рди рд╕рдХрд┐рдБрджреИрди; MTProto рдпреЛрдЬрдирд╛рдмрд╛рдЯ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛рдорд╛ рдпрд╕рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди)ред

рдпреЛ рдХрд┐рди рднрдЗрд░рд╣реЗрдХреЛ рдЫ? рд╕рдореНрднрд╡рддрдГ, рд╕рд░реНрднрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рд╣рд░реВрд▓реЗ рдХреНрд▓рд╕реНрдЯрд░ рднрд┐рддреНрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЕрд╕рдорд░реНрде рднрдП, рд╡рд╛ рдЕрдЧрд╛рдбрд┐ рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░рдорд╛ рдмрдлрд░рд┐рдЩ рдкрдирд┐ рдЧрд░реЗ, рд░ рдпреЛ рд╕рдорд╕реНрдпрд╛ рдЧреНрд░рд╛рд╣рдХрд▓рд╛рдИ рд╣рд╕реНрддрд╛рдиреНрддрд░рдг рдЧрд░реЗред рдирд┐рд░рд╛рд╢рд╛рдХреЛ рдХрд╛рд░рдг, Vasily TCP рдмрд╛рдЯ рдПрд▓реНрдЧреЛрд░рд┐рджрдорд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХреЗрд╡рд▓ рджреБрдИ рд▓рд╛рдорд╣рд░реВ рд╕рд╣рд┐рдд рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдХрд▓реНрдк рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдпреЛ - рд╕рд░реНрднрд░рдорд╛ RTT рдорд╛рдкрди рдЧрд░реНрджреИ рд░ рдЕрдкреБрд╖реНрдЯ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдЖрдзрд╛рд░рд┐рдд "рд╕рдЮреНрдЭреНрдпрд╛рд▓" (рд╕рдиреНрджреЗрд╢рд╣рд░реВрдорд╛) рдХреЛ рдЖрдХрд╛рд░ рд╕рдорд╛рдпреЛрдЬрди рдЧрд░реНрджреИред рддреНрдпреЛ рд╣реЛ, рд╕рд░реНрднрд░рдХреЛ рд▓реЛрдб рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕реНрддреЛ рдирд░рд╛рдореНрд░реЛ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реЛ рдХрд┐ рд╣рд╛рдореНрд░рд╛ рдХрддрд┐ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдпрд╕рд▓реЗ рдПрдХреИ рд╕рдордпрдорд╛ рдЪрдкрд╛рдЙрди рд╕рдХреНрдЫ рд░ рд╣рд░рд╛рдЙрди рд╕рдХреНрджреИрдиред

рдЦреИрд░, рддреНрдпреЛ рд╣реЛ, рддрдкрд╛рдИрдВрд▓реЗ рдмреБрдЭреНрдиреБрднрдпреЛ, рд╣реИрди? рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ TCP рдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдкреНрд░реЛрдЯреЛрдХрд▓рдХреЛ рд╢реАрд░реНрд╖рдорд╛ TCP рдкреБрди: рд▓рд╛рдЧреВ рдЧрд░реНрдиреБ рдкрд░реНрдЫ рднрдиреЗ, рдпрд╕рд▓реЗ рдзреЗрд░реИ рдЦрд░рд╛рдм рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдкреНрд░реЛрдЯреЛрдХрд▓рд▓рд╛рдИ рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫред

рдУрд╣ рд╣реЛ, рддрдкрд╛рдИрд▓рд╛рдИ рдХрд┐рди рдПрдХ рднрдиреНрджрд╛ рдмрдврд┐ рд▓рд╛рдо рдЪрд╛рд╣рд┐рдиреНрдЫ, рд░ рдпрд╕рд▓реЗ рдЬреЗ рднрдП рдкрдирд┐ рдЙрдЪреНрдЪ-рд╕реНрддрд░ API рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╡реНрдпрдХреНрддрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдХреЗ рдЕрд░реНрде рд░рд╛рдЦреНрдЫ? рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН, рддрдкрд╛рдЗрдБ рдЕрдиреБрд░реЛрдз рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рдпрд╕рд▓рд╛рдИ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рдкреНрд░рд╛рдпрдГ рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рддреБрд░реБрдиреНрддреИ рдкрдард╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдиред рдХрд┐рди? рдХрд┐рдирднрдиреЗ рдЬрд╡рд╛рдл рд╣реБрдиреЗрдЫ msg_id, рдЬреБрди рдЕрд╕реНрдерд╛рдпреА рд╣реЛ╨░рдо рдПрдХ рд▓реЗрдмрд▓ рд╣реБрдБ, рдЬрд╕рдХреЛ рдЕрд╕рд╛рдЗрдирдореЗрдиреНрдЯ рд╕рдХреЗрд╕рдореНрдо рдврд┐рд▓реЛ рд╕рдореНрдо рд╕реНрдердЧрд┐рдд рд╣реБрдиреНрдЫ - рдпрджрд┐ рд╕рд░реНрднрд░рд▓реЗ рд╣рд╛рдореА рд░ рдЙрд╣рд╛рдБрдХреЛ рдмреАрдЪрдХреЛ рд╕рдордпрдХреЛ рдмреЗрдореЗрд▓рдХреЛ рдХрд╛рд░рдгрд▓реЗ рдпрд╕рд▓рд╛рдИ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫ (рдЕрд╡рд╢реНрдп рдкрдирд┐, рд╣рд╛рдореАрд▓реЗ рд╡рд░реНрддрдорд╛рдирдмрд╛рдЯ рд╣рд╛рдореНрд░реЛ рд╕рдордп рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ рдХреНрд░рдЪ рдмрдирд╛рдЙрди рд╕рдХреНрдЫреМрдВред рд╕рд░реНрднрд░рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдмрд╛рдЯ рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдбреЗрд▓реНрдЯрд╛ рдердкреЗрд░ рд╕рд░реНрднрд░рдорд╛ - рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓реЗ рдпреЛ рдЧрд░реНрдЫрдиреН, рддрд░ рдпреЛ рдХрдЪреНрдЪрд╛ рд░ рдмрдлрд░рд┐рдЩрдХреЛ рдХрд╛рд░рдг рдЧрд▓рдд рдЫ)ред рддреНрдпрд╕рдХрд╛рд░рдг, рдЬрдм рддрдкрд╛рдЗрдБ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдмрд╛рдЯ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдХрд╛рд░реНрдп рдХрд▓рдХреЛ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рд╕рдиреНрджреЗрд╢ рдирд┐рдореНрди рдЪрд░рдгрд╣рд░реВрдорд╛ рдЬрд╛рдиреНрдЫ:

  1. рдпреЛ рдПрдХ рд▓рд╛рдо рдорд╛ рдЫ рд░ рдЧреБрдкреНрддрд┐рдХрд░рдг рдкрд░реНрдЦрд┐рд░рд╣реЗрдХреЛ рдЫред
  2. рдирд┐рдпреБрдХреНрдд рдЧрд░рд┐рдпреЛ msg_id рд░ рд╕рдиреНрджреЗрд╢ рдЕрд░реНрдХреЛ рд▓рд╛рдордорд╛ рдЧрдпреЛ - рд╕рдореНрднрд╛рд╡рд┐рдд рдлрд░реНрд╡рд╛рд░реНрдбрд┐рдЩ; рд╕рдХреЗрдЯрдорд╛ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реНред
  3. a) рд╕рд░реНрднрд░рд▓реЗ MsgsAck рд▓рд╛рдИ рдЬрд╡рд╛рдл рджрд┐рдпреЛ - рд╕рдиреНрджреЗрд╢ рдбреЗрд▓рд┐рднрд░ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ "рдЕрдиреНрдп рд▓рд╛рдо" рдмрд╛рдЯ рдореЗрдЯрд╛рдЙрдБрдЫреМрдВред
    рдЦ) рд╡рд╛ рдЙрд▓реНрдЯреЛ, рдЙрд╕рд▓рд╛рдИ рдХреЗрд╣рд┐ рдорди рдкрд░реЗрди, рдЙрд╕рд▓реЗ рдЬрд╡рд╛рдл рджрд┐рдпреЛ badmsg - "рдЕрд░реНрдХреЛ рд▓рд╛рдо" рдмрд╛рдЯ рдкреБрди: рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН
    рдЧ) рдХреЗрд╣рд┐ рдерд╛рд╣рд╛ рдЫреИрди, рд╕рдиреНрджреЗрд╢ рдЕрд░реНрдХреЛ рд▓рд╛рдордмрд╛рдЯ рд░рд┐рд╕реЗрдиреНрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ - рддрд░ рдпреЛ рдареНрдпрд╛рдХреНрдХреИ рдХрд╣рд┐рд▓реЗ рдерд╛рд╣рд╛ рдЫреИрдиред
  4. рд╕рд░реНрднрд░рд▓реЗ рдЕрдиреНрддрддрдГ рдЬрд╡рд╛рдл рджрд┐рдпреЛ RpcResult - рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ (рд╡рд╛ рддреНрд░реБрдЯрд┐) - рдбреЗрд▓рд┐рднрд░ рдорд╛рддреНрд░ рд╣реЛрдЗрди, рддрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрдирд┐ред

рд╕рдореНрднрд╡рддрдГрдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрд▓реЗ рдЖрдВрд╢рд┐рдХ рд░реВрдкрдорд╛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╕рдХреНрдЫред рдпреЛ рддрдм рд╣реБрдиреНрдЫ рдЬрдм рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рдЧреБрдЪреНрдЫрд╛ рдПрдЙрдЯреИрдорд╛ рдкреНрдпрд╛рдХ рдЧрд░рд┐рдиреНрдЫ, рд░ рд╕рд░реНрднрд░рд▓реЗ рддреА рд╕рдмреИрд▓рд╛рдИ рдПрдХреИрдЪреЛрдЯрд┐ рдкреБрд╖реНрдЯрд┐рдХрд░рдгрдХреЛ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рдиреНрдЫред msg_idред рддрд░ рдЙрд╕рд▓реЗ рдпреЛ рдкреНрдпрд╛рдХрд▓рд╛рдИ рдкрдирд┐ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреЗрдЫ, рдпрджрд┐ рдХреЗрд╣рд┐ рдЧрд▓рдд рднрдпреЛ рднрдиреЗ, рдкреВрд░реНрдг рд░реВрдкрдорд╛ред

рд░ рдпрд╕ рдмрд┐рдиреНрджреБрдорд╛ рдЧреИрд░-рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рдЦреЗрд▓рдорд╛ рдЖрдЙрдБрдЫрдиреНред рдЕрдиреБрднрд╡рдмрд╛рдЯ, рд╣рд╛рдореАрд▓реЗ рдзреЗрд░реИ рдмреИрд╕рд╛рдЦреАрд╣рд░реВ рджреЗрдЦреЗрдХрд╛ рдЫреМрдВ, рд░ рдпрд╕рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рд╛рдореА рдЕрдм рдЦрд░рд╛рдм рд╕рд▓реНрд▓рд╛рд╣ рд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рдХреЛ рдердк рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рджреЗрдЦреНрдиреЗрдЫреМрдВ - рддреНрдпрд╕реНрддрд╛ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВрдорд╛, рдХреЗ рдпреЛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрди рд░ рддреНрдпрд╕реНрддрд╛ рдирд┐рд░реНрдгрдпрд╣рд░реВ рдЧрд░реНрди рд▓рд╛рдпрдХ рдЫ? рдкреНрд░рд╢реНрди рдмрдпрд╛рдирдмрд╛рдЬреА рд╣реЛ (рдЕрд╡рд╢реНрдп рдкрдирд┐ рд╣реЛрдЗрди)ред

рд╣рд╛рдореА рдХреЗ рдХреБрд░рд╛ рдЧрд░реНрджреИрдЫреМрдВ? рдпрджрд┐ "рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдмрд╛рд░реЗ рдФрд╖рдзрд┐ рд╕рдиреНрджреЗрд╢рд╣рд░реВ" рдХреЛ рд╡рд┐рд╖рдпрдорд╛ рддрдкрд╛рдИрдВ рдЕрдЭреИ рдкрдирд┐ "рддрдкрд╛рдИрдВ рдореВрд░реНрдЦ рд╣реБрдиреБрд╣реБрдиреНрдЫ, рддрдкрд╛рдИрдВрд▓реЗ рд╣рд╛рдореНрд░реЛ рд╢рд╛рдирджрд╛рд░ рдпреЛрдЬрдирд╛ рдмреБрдЭреНрдиреБрднрдПрди!" рдЬрд╕реНрддрд╛ рдЖрдкрддреНрддрд┐рд╣рд░реВрдХреЛ рд╕рд╛рде рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред (рддреНрдпрд╕реИрд▓реЗ рдкрд╣рд┐рд▓реЗ рдХрд╛рдЧрдЬрд╛рдд рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН, рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдирд┐рд╕рд╣рд░реВрд▓реЗ рдЬрд╕реНрддреИ, рддрд░реНрдХ рд░ рдкреНрдпрд╛рдХреЗрдЯ рдПрдХреНрд╕рдЪреЗрдиреНрдЬрдХреЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рд╕рд╣рд┐рдд, рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВ), рддреНрдпрд╕рдкрдЫрд┐ рд╕рдордп/рдЯрд╛рдЗрдордЖрдЙрдЯрд╣рд░реВ рдПрдХ рд╡рд┐рд╢реБрджреНрдз рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╢реНрди рд╣реЛ, рдпрд╣рд╛рдБ рд╕рдмреИ рдХреБрд░рд╛ рд▓рд╛рдореЛ рд╕рдордпрджреЗрдЦрд┐ рдЬреНрдЮрд╛рдд рдЫред рдХрд╛рдЧрдЬрд╛рддрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЯрд╛рдЗрдордЖрдЙрдЯрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗ рдмрддрд╛рдЙрдБрдЫ?

рд╕рд░реНрднрд░рд▓реЗ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдПрдХ RPC рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЧреНрд░рд╛рд╣рдХ (рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдПрдХ RPC рдХреНрд╡реЗрд░реА) рдмрд╛рдЯ рд╕рдиреНрджреЗрд╢рдХреЛ рдкреНрд░рд╛рдкреНрддрд┐ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫред рдпрджрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдЙрди рд▓рд╛рдореЛ рд╕рдордп рдЫ рднрдиреЗ, рд╕рд░реНрднрд░рд▓реЗ рдкрд╣рд┐рд▓реЗ рд░рд╕рд┐рдж рд╕реНрд╡реАрдХреГрддрд┐ рдкрдард╛рдЙрди рд╕рдХреНрдЫ, рд░ рдХреЗрд╣рд┐ рд╣рджрд╕рдореНрдо рдкрдЫрд┐, RPC рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдлреИрдВред

рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╕рд░реНрднрд░рдмрд╛рдЯ рд╕рдиреНрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рднрдПрдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫ (рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдПрдХ RPC рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) рдЕрд░реНрдХреЛ RPC рдХреНрд╡реЗрд░реАрдорд╛ рдПрдХ рд╕реНрд╡реАрдХреГрддрд┐ рдердкреЗрд░ рдпрджрд┐ рдпреЛ рдзреЗрд░реИ рдврд┐рд▓реЛ рдкреНрд░рд╕рд╛рд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫреИрди (рдпрджрд┐ рдпреЛ рдЙрддреНрдкрдиреНрди рднрдПрдХреЛ рдЫ рднрдиреЗ, рднрдиреНрдиреБрд╣реЛрд╕реН, рд░рд╕рд┐рдж рдкрдЫрд┐ 60-120 рд╕реЗрдХреЗрдиреНрдбред рд╕рд░реНрднрд░рдмрд╛рдЯ рд╕рдиреНрджреЗрд╢)ред рдпрджреНрдпрдкрд┐, рдпрджрд┐ рд▓рд╛рдореЛ рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рд╕рд░реНрднрд░рдорд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЙрдиреЗ рдХреБрдиреИ рдХрд╛рд░рдг рдЫреИрди рд╡рд╛ рдпрджрд┐ рд╕рд░реНрднрд░рдмрд╛рдЯ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдЕрдкрд░рд┐рдЪрд┐рдд рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЫрдиреН (рднрдиреНрдиреБрд╣реЛрд╕реН, 16 рднрдиреНрджрд╛ рдмрдвреА), рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд╕реНрдЯреНрдпрд╛рдиреНрдб-рдЕрд▓реЛрди рд╕реНрд╡реАрдХреГрддрд┐ рдкрдард╛рдЙрдБрджрдЫред

... рдо рдЕрдиреБрд╡рд╛рдж рдЧрд░реНрдЫреБ: рд╣рд╛рдореА рдЖрдлреИрдВрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫреИрди рдХрд┐ рд╣рд╛рдореАрд▓рд╛рдИ рдпрд╕рдХреЛ рдХрддрд┐ рд░ рдХрд╕рд░реА рдЖрд╡рд╢реНрдпрдХ рдЫ, рддреНрдпрд╕реИрд▓реЗ рдорд╛рдиреМрдВ рдХрд┐ рдпреЛ рдпрд╕реНрддреИ рд╣реБрди рджрд┐рдиреБрд╣реЛрд╕реНред

рд░ рдкрд┐рдВрдЧрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛:

рдкрд┐рдЩ рд╕рдиреНрджреЗрд╢рд╣рд░реВ (PING/PONG)

ping#7abe77ec ping_id:long = Pong;

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдЙрд╣реА рдЬрдбрд╛рдирдорд╛ рдлрд░реНрдХрд╛рдЗрдиреНрдЫ:

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

рдпреА рд╕рдиреНрджреЗрд╢рд╣рд░реВрд▓рд╛рдИ рд╕реНрд╡реАрдХреГрддрд┐ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред рдПрдХ рдкрд┐рдВрдЧ рдкрд┐рдВрдЧрдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдорд╛ рдорд╛рддреНрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реБрдиреНрдЫ рдЬрдмрдХрд┐ рдкрд┐рдВрдЧ рджреБрдмреИ рдкрдХреНрд╖рдмрд╛рдЯ рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рд╕реНрдердЧрд┐рдд рдЬрдбрд╛рди рдмрдиреНрдж + PING

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

рдкрд┐рдВрдЧ рдЬрд╕реНрддреИ рдХрд╛рдо рдЧрд░реНрджрдЫред рдердк рд░реВрдкрдорд╛, рдпреЛ рдкреНрд░рд╛рдкреНрдд рднрдПрдкрдЫрд┐, рд╕рд░реНрднрд░рд▓реЗ рдЯрд╛рдЗрдорд░ рд╕реБрд░реБ рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рд╣рд╛рд▓рдХреЛ рдЬрдбрд╛рди disconnect_delay рд╕реЗрдХреЗрдиреНрдб рдкрдЫрд┐ рдмрдиреНрдж рдЧрд░реНрдиреЗрдЫ рдЬрдмрд╕рдореНрдо рдпрд╕рд▓реЗ рд╕рдорд╛рди рдкреНрд░рдХрд╛рд░рдХреЛ рдирдпрд╛рдБ рд╕рдиреНрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИрди рдЬреБрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд╕рдмреИ рдЕрдШрд┐рд▓реНрд▓реЛ рдЯрд╛рдЗрдорд░рд╣рд░реВ рд░рд┐рд╕реЗрдЯ рд╣реБрдиреНрдЫред рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдпреА рдкрд┐рдЩрд╣рд░реВ рдкреНрд░рддреНрдпреЗрдХ 60 рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдПрдХ рдкрдЯрдХ рдкрдард╛рдЙрдБрдЫ рднрдиреЗ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрд╕рд▓реЗ 75 рд╕реЗрдХреЗрдиреНрдбрдХреЛ рдмрд░рд╛рдмрд░ disconnect_delay рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХреНрдЫред

рдХреЗ рддрд┐рдореА рдкрд╛рдЧрд▓ рд╣реЛ ?! 60 рд╕реЗрдХреЗрдиреНрдбрдорд╛, рдЯреНрд░реЗрди рд╕реНрдЯреЗрд╢рдирдорд╛ рдкреНрд░рд╡реЗрд╢ рдЧрд░реНрдиреЗрдЫ, рдпрд╛рддреНрд░реБрд╣рд░реВрд▓рд╛рдИ рдЫреЛрдбреНрдиреЗрдЫ рд░ рдЙрдард╛рдЙрдиреЗрдЫ, рд░ рдлреЗрд░рд┐ рд╕реБрд░реБрдЩрдорд╛ рд╕рдореНрдкрд░реНрдХ рдЧреБрдорд╛рдЙрдиреЗрдЫред 120 рд╕реЗрдХреЗрдиреНрдбрдорд╛, рдЬрдм рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рд╕реБрдиреНрдиреБрд╣реБрдиреНрдЫ, рдпреЛ рдЕрд░реНрдХреЛрдорд╛ рдЖрдЗрдкреБрдЧреНрдЫ, рд░ рдЬрдбрд╛рди рдкреНрд░рд╛рдпрдГ рдмрд┐рдЪреНрдЫреЗрдж рд╣реБрдиреЗрдЫред рдЦреИрд░, рдЦреБрдЯреНрдЯрд╛рд╣рд░реВ рдХрд╣рд╛рдБрдмрд╛рдЯ рдЖрдЙрдБрджреИрдЫрдиреН рднрдиреНрдиреЗ рдХреБрд░рд╛ рд╕реНрдкрд╖реНрдЯ рдЫ - "рдореИрд▓реЗ рдШрдгреНрдЯреА рдмрдЬрд┐рд░рд╣реЗрдХреЛ рд╕реБрдиреЗрдВ, рддрд░ рдерд╛рд╣рд╛ рдЫреИрди рдпреЛ рдХрд╣рд╛рдБ рд╣реЛ", рддреНрдпрд╣рд╛рдБ Nagl рдХреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд░ TCP_NODELAY рд╡рд┐рдХрд▓реНрдк рдЫ, рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдХрд╛рд░реНрдпрдХреЛ рд▓рд╛рдЧрд┐ред рддрд░, рдорд╛рдл рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдпрд╕рдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рди рд╣реЛрд▓реНрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН - 200 рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдб рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕рд╛рдБрдЪреНрдЪреИ рдпрд╕реНрддреИ рдХреЗрд╣рд┐ рдЪрд┐рддреНрд░рдг рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рд░ рд╕рдореНрднрд╛рд╡рд┐рдд рджреБрдИ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдорд╛ рдмрдЪрдд рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдпрд╕рд▓рд╛рдИ 5 рд╕реЗрдХреЗрдиреНрдбрдХрд╛ рд▓рд╛рдЧрд┐ рдмрдиреНрдж рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╡рд╛ "рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ рдЯрд╛рдЗрдк рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ..." рд╕рдиреНрджреЗрд╢рдХреЛ рд╕рдордп рд╕рдорд╛рдкреНрдд рднрдПрдХреЛ рдЫред рддрд░ рдердк рдЫреИрдиред

рд░ рдЕрдиреНрддрдорд╛, рдкрд┐рдВрдЧрд╣рд░реВред рддреНрдпреЛ рд╣реЛ, TCP рдЬрдбрд╛рдирдХреЛ рдЬреАрд╡рдиреНрддрддрд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрджреИред рдпреЛ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рдЫ, рддрд░ рд▓рдЧрднрдЧ 10 рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ рдореИрд▓реЗ рд╣рд╛рдореНрд░реЛ рд╕рдВрдХрд╛рдпрдХреЛ рдЫрд╛рддреНрд░рд╛рд╡рд╛рд╕рдХреЛ рдореЗрд╕реЗрдиреНрдЬрд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рдПрдЙрдЯрд╛ рдЖрд▓реЛрдЪрдирд╛рддреНрдордХ рдкрд╛рда рд▓реЗрдЦреЗрдХреЛ рдерд┐рдПрдБ - рддреНрдпрд╣рд╛рдБрдХрд╛ рд▓реЗрдЦрдХрд╣рд░реВрд▓реЗ рдкрдирд┐ рдЧреНрд░рд╛рд╣рдХрдмрд╛рдЯ рд╕рд░реНрднрд░ рдкрд┐рдВрдЧ рдЧрд░реЗ, рд░ рдЙрд▓реНрдЯреЛ рд╣реЛрдЗрдиред рддрд░ рддреЗрд╕реНрд░реЛ рд╡рд░реНрд╖рдХрд╛ рд╡рд┐рджреНрдпрд╛рд░реНрдереАрд╣рд░реВ рдПрдЙрдЯрд╛ рдХреБрд░рд╛ рд╣реБрдиреН, рд░ рдЕрдиреНрддрд░реНрд░рд╛рд╖реНрдЯреНрд░рд┐рдп рдХрд╛рд░реНрдпрд╛рд▓рдп рдЕрд░реНрдХреЛ рд╣реЛ, рд╣реИрди?

рдкрд╣рд┐рд▓реЛ, рд╕рд╛рдиреЛ рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдоред TCP рдЬрдбрд╛рди, рдкреНрдпрд╛рдХреЗрдЯ рдПрдХреНрд╕рдЪреЗрдиреНрдЬрдХреЛ рдЕрднрд╛рд╡рдорд╛, рд╣рдкреНрддрд╛рд╕рдореНрдо рдмрд╛рдБрдЪреНрди рд╕рдХреНрдЫред рдпреЛ рд░рд╛рдореНрд░реЛ рд░ рдирд░рд╛рдореНрд░реЛ рджреБрдмреИ рд╣реЛ, рдЙрджреНрджреЗрд╢реНрдпрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рд╕рд░реНрднрд░рдорд╛ SSH рдЬрдбрд╛рди рдЦреБрд▓рд╛ рдЫ рднрдиреЗ рдпреЛ рд░рд╛рдореНрд░реЛ рдЫ, рддрдкрд╛рдЗрдБ рдХрдореНрдкреНрдпреБрдЯрд░рдмрд╛рдЯ рдЙрдареНрдиреБрднрдпреЛ, рд░рд╛рдЙрдЯрд░ рд░рд┐рдмреБрдЯ рдЧрд░реНрдиреБрднрдпреЛ, рддрдкрд╛рдЗрдБрдХреЛ рдард╛рдЙрдБрдорд╛ рдлрд░реНрдХрдиреБрднрдпреЛ - рдпреЛ рд╕рд░реНрднрд░ рдорд╛рд░реНрдлрдд рд╕рддреНрд░ рдЪреНрдпрд╛рддрд┐рдПрдХреЛ рдерд┐рдПрди (рддрдкрд╛рдИрдВрд▓реЗ рдХреЗрд╣рд┐ рдЯрд╛рдЗрдк рдЧрд░реНрдиреБрднрдПрди, рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдерд┐рдПрдирдиреН) , рдпреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫред рдпреЛ рдЦрд░рд╛рдм рдЫ рдпрджрд┐ рд╕рд░реНрднрд░рдорд╛ рд╣рдЬрд╛рд░реМрдВ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВ рдЫрдиреН, рдкреНрд░рддреНрдпреЗрдХрд▓реЗ рд╕реНрд░реЛрддрд╣рд░реВ рд▓рд┐рдЗрд░рд╣реЗрдХрд╛ рдЫрдиреН (рдирдорд╕реНрддреЗ, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕!), рд░ рдЧреНрд░рд╛рд╣рдХрдХреЛ рд╣реЛрд╕реНрдЯрд▓реЗ рд▓рд╛рдореЛ рд╕рдордп рдкрд╣рд┐рд▓реЗ рд░рд┐рдмреБрдЯ рдЧрд░реЗрдХреЛ рд╣реБрди рд╕рдХреНрдЫ - рддрд░ рд╣рд╛рдореАрд▓рд╛рдИ рдпрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рдерд╛рд╣рд╛ рдЫреИрдиред

рдЪреНрдпрд╛рдЯ/рдЖрдИрдПрдо рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рджреЛрд╕реНрд░реЛ рдХреЗрд╕рдорд╛ рдкрд░реНрдЫрдиреН - рдЕрдирд▓рд╛рдЗрди рд╕реНрдерд┐рддрд┐рд╣рд░реВред рдпрджрд┐ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ "рдЦрд┐рд░реНрдпреЛ" рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рд╡рд╛рд░реНрддрд╛рд▓рд╛рдкрд╣рд░реВрд▓рд╛рдИ рдпрд╕ рдмрд╛рд░реЗ рд╕реВрдЪрд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдЕрдиреНрдпрдерд╛, рддрдкрд╛рдИрдВрд▓реЗ рдЬрдмреНрдмрд░рдХрд╛ рд╕рд┐рд░реНрдЬрдирд╛рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдЧрд░реЗрдХреЛ рдЧрд▓реНрддреАрдХреЛ рдЕрдиреНрддреНрдп рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫ (рд░ реиреж рд╡рд░реНрд╖рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдЪреНрдпрд╛рдЗрдпреЛ) - рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ рд╡рд┐рдЪреНрдЫреЗрдж рдЧрд░реЗрдХреЛ рдЫ, рддрд░ рдЙрдиреАрд╣рд░реВрд▓реЗ рдЙрд╣рд╛рдБрд▓рд╛рдИ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд▓реЗрдЦреНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдЫрдиреН, рдЙрд╣рд╛рдБ рдЕрдирд▓рд╛рдЗрди рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреНрдиреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрджреИ (рдЬреБрди рдкрдирд┐ рдпреА рдХреБрд░рд╛рд╣рд░реВрдорд╛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╣рд░рд╛рдПрдХрд╛ рдерд┐рдПред рд╡рд┐рдЪреНрдЫреЗрджрди рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдХреЗрд╣реА рдорд┐рдиреЗрдЯ рдЕрдШрд┐)ред рд╣реЛрдЗрди, TCP_KEEPALIVE рд╡рд┐рдХрд▓реНрдк, рдЬрд╕рд▓рд╛рдИ рдзреЗрд░реИ рдорд╛рдирд┐рд╕рд╣рд░реВ рдЬрд╕рд▓реЗ TCP рдЯрд╛рдЗрдорд░рд╣рд░реВрд▓реЗ рдЕрдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛ (рджрд╕реМрдВ рд╕реЗрдХреЗрдиреНрдбрд╣рд░реВ рдЬрд╕реНрддреИ рдЬрдВрдЧрд▓реА рдорд╛рдирд╣рд░реВ рд╕реЗрдЯ рдЧрд░реЗрд░) рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреЗрд░ рдмреБрдЭреНрджреИрдирдиреН, рдпрд╣рд╛рдБ рдорджреНрджрдд рдЧрд░реНрджреИрди - рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдХрд┐ рдУрдПрд╕ рдХрд░реНрдиреЗрд▓ рдорд╛рддреНрд░ рд╣реЛрдЗрдиред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдореЗрд╕рд┐рди рдЬреАрд╡рд┐рдд рдЫ, рддрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рди рд╕рдХреНрд╖рдо рдЫ, рд░ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдЖрдлреИрдВ (рддрдкрд╛рдИрд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рдпреЛ рдлреНрд░рд┐рдЬ рд╣реБрди рд╕рдХреНрджреИрди? рдЙрдмреБрдиреНрдЯреБ 20 рдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдбреЗрд╕реНрдХрдЯрдк рдореЗрд░реЛ рд▓рд╛рдЧрд┐ рдПрдХ рдкрдЯрдХ рднрдиреНрджрд╛ рдмрдвреА рдлреНрд░рд┐рдЬ рднрдпреЛ)ред

рддреНрдпрд╕реИрд▓реЗ рдкрд┐рдЩ рдЧрд░реНрдиреБ рдкрд░реНрдЫ рд╕рд░реНрднрд░ рдЧреНрд░рд╛рд╣рдХ, рд░ рдпрд╕рдХреЛ рд╡рд┐рдкрд░рд┐рдд рд╣реЛрдЗрди - рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдпреЛ рдЧрд░реНрдЫ рднрдиреЗ, рдЬрдбрд╛рди рдмрд┐рдЧреНрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ, рдкрд┐рдЩ рдбреЗрд▓рд┐рднрд░ рд╣реБрдиреЗ рдЫреИрди, рд▓рдХреНрд╖реНрдп рд╣рд╛рд╕рд┐рд▓ рд╣реБрдиреЗ рдЫреИрдиред

рд╣рд╛рдореА рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рдХреЗ рджреЗрдЦреНрдЫреМрдВ? рдпреЛ рдареНрдпрд╛рдХреНрдХреИ рдЙрд▓реНрдЯреЛ рдЫ! рдЦреИрд░, рддреНрдпреЛ рд╣реЛред рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдкрдорд╛, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рджреБрд╡реИ рдкрдХреНрд╖рд▓реЗ рдПрдХрдЕрд░реНрдХрд╛рд▓рд╛рдИ рдкрд┐рдВрдЧ рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛, рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓реЗ рдмреИрд╕рд╛рдЦреА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреН ping_delay_disconnect, рдЬрд╕рд▓реЗ рд╕рд░реНрднрд░рдорд╛ рдЯрд╛рдЗрдорд░ рд╕реЗрдЯ рдЧрд░реНрджрдЫред рдареАрдХ рдЫ, рдорд▓рд╛рдИ рдорд╛рдл рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдпреЛ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрди рд╕рдХреНрджреИрди рдХрд┐ рдК рддреНрдпрд╣рд╛рдБ рдкрд┐рдВрдЧ рдмрд┐рдирд╛ рдХрддрд┐ рд╕рдордп рдмрд╕реНрди рдЪрд╛рд╣рдиреНрдЫред рд╕рд░реНрднрд░, рдпрд╕рдХреЛ рд▓реЛрдбрдорд╛ рдЖрдзрд╛рд░рд┐рдд, рд░рд╛рдореНрд░реЛ рдЬрд╛рдиреНрджрдЫрдиреНред рддрд░, рдкрдХреНрдХреИ рдкрдирд┐, рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕реНрд░реЛрддрд╣рд░реВ рдорди рдкрд░рд╛рдЙрдиреБрд╣реБрдиреНрди рднрдиреЗ, рддрдм рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрдХреЛ рдЖрдлреНрдиреИ рджреБрд╖реНрдЯ рдкрд┐рдиреЛрдЪрд┐рдпреЛ рд╣реБрдиреБрд╣реБрдиреЗрдЫ, рд░ рдПрдХ рдмреИрд╕рд╛рдЦреАрд▓реЗ рдЧрд░реНрдиреЗрдЫ ...

рдпрд╕рд▓рд╛рдИ рдХрд╕рд░реА рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рд╣реБрдиреБрдкрд░реНрдЫ?

рдорд▓рд╛рдИ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЫ рдХрд┐ рдорд╛рдерд┐рдХрд╛ рддрдереНрдпрд╣рд░реВрд▓реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫ рдХрд┐ Telegram/VKontakte рдЯреЛрд▓реА рдХрдореНрдкреНрдпреВрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХрдХреЛ рдпрд╛рддрд╛рдпрд╛рдд (рд░ рддрд▓реНрд▓реЛ) рд╕реНрддрд░ рд░ рд╕рд╛рдиреНрджрд░реНрднрд┐рдХ рдорд╛рдорд┐рд▓рд╛рд╣рд░реВрдорд╛ рдЙрдиреАрд╣рд░реВрдХреЛ рдХрдо рдпреЛрдЧреНрдпрддрд╛рдХреЛ рдХреНрд╖реЗрддреНрд░рдорд╛ рдзреЗрд░реИ рд╕рдХреНрд╖рдо рдЫреИрдиред

рдпреЛ рдХрд┐рди рдпрддрд┐ рдЬрдЯрд┐рд▓ рднрдпреЛ, рд░ рдХрд╕рд░реА рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯрд╣рд░реВрд▓реЗ рдЖрдкрддреНрддрд┐ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрди рд╕рдХреНрдЫрдиреН? рддрдереНрдп рдпреЛ рд╣реЛ рдХрд┐ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдПрдХ рд╕рддреНрд░ рдмрдирд╛рдЙрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗ рдЬреБрди TCP рдЬрдбрд╛рди рд╡рд┐рдЪреНрдЫреЗрджрд╣рд░реВ рдмрд╛рдБрдЪреЗрдХрд╛ рдЫрдиреН, рдЕрд░реНрдерд╛рддреН, рдХреЗ рдЕрд╣рд┐рд▓реЗ рдбреЗрд▓рд┐рднрд░ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди, рд╣рд╛рдореА рдкрдЫрд┐ рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрдиреЗрдЫреМрдВред рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╕рдореНрднрд╡рддрдГ UDP рдпрд╛рддрд╛рдпрд╛рдд рдмрдирд╛рдЙрди рдкрдирд┐ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗ, рддрд░ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдХрдард┐рдирд╛рдЗрд╣рд░реВрдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реЗ рд░ рдпрд╕рд▓рд╛рдИ рддреНрдпрд╛рдЧреЗ (рддреНрдпрд╕реИрд▓реЗ рдХрд╛рдЧрдЬрд╛рдд рдЦрд╛рд▓реА рдЫ - рддреНрдпрд╣рд╛рдБ рдШрдордгреНрдб рдЧрд░реНрди рдХреЗрд╣реА рдерд┐рдПрди)ред рддрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рдХрд╕рд░реА рдиреЗрдЯрд╡рд░реНрдХрд╣рд░реВ рд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛ TCP рд▓реЗ рдХрд╛рдо рдЧрд░реНрджрдЫ, рддрдкрд╛рдИрдВ рдпрд╕рдорд╛ рднрд░ рдкрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд░ рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдХрд╣рд╛рдБ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ (рд░ рдХрд╕рд░реА), рд░ рдпрд╕рд▓рд╛рдИ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреАрд╕рдБрдЧ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕рдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ "рджреБрдИ рдЪрд░рд╛рд╣рд░реВрд╕рдБрдЧред рдПрдХ рдвреБрдЩреНрдЧрд╛", рдпреЛ рдкрд░рд┐рдгрд╛рдо рд╣реЛред

рдпреЛ рдХрд╕рд░реА рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛ? рднрдиреНрдиреЗ рддрдереНрдпрдХрд╛ рдЖрдзрд╛рд░рдорд╛ msg_id рд░рд┐рдкреНрд▓реЗ рдЖрдХреНрд░рдордгрд╣рд░реВ рд░реЛрдХреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ рдЖрд╡рд╢реНрдпрдХ рдЯрд╛рдЗрдорд╕реНрдЯреНрдпрд╛рдореНрдк рд╣реЛ, рдпрд╕рдорд╛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░реНрдп рд╕рдВрд▓рдЧреНрди рдЧрд░реНрдиреБ рдЧрд▓реНрддреА рд╣реЛред рддреНрдпрд╕рдХрд╛рд░рдг, рдореМрд▓рд┐рдХ рд░реВрдкрдорд╛ рд╣рд╛рд▓рдХреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрд░реАрдХрди (рдЬрдм рдЕрдкрдбреЗрдЯ рд╕реНрдЯреНрд░рд┐рдо рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫ, рддреНрдпреЛ рдкреЛрд╖реНрдЯрд╣рд░реВрдХреЛ рдпрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛рдХреЛ рдЕрд░реНрдХреЛ рднрд╛рдЧрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдЪреНрдЪ-рд╕реНрддрд░ API рд╡рд┐рд╖рдп рд╣реЛ), рдПрдХрд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫ:

  1. рдХреНрд▓рд╛рдЗрдиреНрдЯрдорд╛ TCP рдЬрдбрд╛рди рд░рд╛рдЦреЗрдХреЛ рд╕рд░реНрднрд░рд▓реЗ рдЬрд┐рдореНрдореЗрд╡рд╛рд░реА рд▓рд┐рдиреНрдЫ - рдпрджрд┐ рдпреЛ рд╕рдХреЗрдЯрдмрд╛рдЯ рдкрдвреЗрдХреЛ рдЫ рднрдиреЗ, рдХреГрдкрдпрд╛ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╡рд╛ рддреНрд░реБрдЯрд┐ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдХреБрдиреИ рд╣рд╛рдирд┐ рдЫреИрдиред рддреНрдпрд╕рдкрдЫрд┐ рдкреБрд╖реНрдЯрд┐рдХрд░рдг id рдХреЛ рднреЗрдХреНрдЯрд░ рд╣реЛрдЗрди, рддрд░ рдХреЗрд╡рд▓ "рдкрдЫрд┐рд▓реНрд▓реЛ рдкреНрд░рд╛рдкреНрдд seq_no" - рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдЦреНрдпрд╛, TCP рдорд╛ рдЬрд╕реНрддреИ (рджреБрдИ рд╕рдВрдЦреНрдпрд╛ - рддрдкрд╛рдИрдВрдХреЛ seq рд░ рдкреБрд╖реНрдЯрд┐ рдЧрд░рд┐рдПрдХреЛ рдПрдХ)ред рд╣рд╛рдореА рд╕рдБрдзреИ рд╕рддреНрд░ рднрд┐рддреНрд░ рдЫреМрдВ, рд╣реЛрдЗрди рд░?
  2. рд░рд┐рдкреНрд▓реЗ рдЖрдХреНрд░рдордгрд╣рд░реВ рд░реЛрдХреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЯрд╛рдЗрдорд╕реНрдЯреНрдпрд╛рдореНрдк рдПрдХ рдЕрд▓рдЧ рдХреНрд╖реЗрддреНрд░, рдПрдХ рд▓рд╛ рдиреЛрдиреНрд╕ рд╣реБрдиреНрдЫред рдпреЛ рдЬрд╛рдБрдЪ рдЧрд░рд┐рдПрдХреЛ рдЫ, рддрд░ рдЕрд░реВ рдХреЗрд╣рд┐ рдЕрд╕рд░ рдЧрд░реНрджреИрдиред рдкрд░реНрдпрд╛рдкреНрдд рд░ uint32 - рдпрджрд┐ рд╣рд╛рдореНрд░реЛ рдиреБрди рдХрдореНрддрд┐рдорд╛ рд╣рд░реЗрдХ рдЖрдзрд╛ рджрд┐рдирдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫ рднрдиреЗ, рд╣рд╛рдореА рд╣рд╛рд▓рдХреЛ рд╕рдордпрдХреЛ рдкреВрд░реНрдгрд╛рдВрдХ рднрд╛рдЧрдХреЛ рдХрдо-рдЕрд░реНрдбрд░ рдмрд┐рдЯрд╣рд░реВрдорд╛ 16 рдмрд┐рдЯрд╣рд░реВ рдЖрд╡рдВрдЯрд┐рдд рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рдмрд╛рдБрдХреА - рд╕реЗрдХреЗрдиреНрдбрдХреЛ рдЖрдВрд╢рд┐рдХ рднрд╛рдЧрдорд╛ (рдЕрд╣рд┐рд▓реЗрдХреЛ рд░реВрдкрдорд╛)ред
  3. рд╣рдЯрд╛рдЗрдпреЛ msg_id рд╕рдмреИрдорд╛ - рдмреНрдпрд╛рдХрдПрдиреНрдбрд╣рд░реВрдорд╛ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЫреБрдЯреНрдпрд╛рдЙрдирдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ, рддреНрдпрд╣рд╛рдБ, рдкрд╣рд┐рд▓реЗ, рдЧреНрд░рд╛рд╣рдХ рдЖрдИрдбреА, рд░ рджреЛрд╕реНрд░реЛ, рд╕рддреНрд░ рдЖрдИрдбреА, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЬреЛрдбреНрдиреБрд╣реЛрд╕реНред рддрджрдиреБрд╕рд╛рд░, рдЕрдиреБрд░реЛрдз рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рдХреЛ рд░реВрдкрдорд╛ рдорд╛рддреНрд░ рдПрдХ рдЪреАрдЬ рдкрд░реНрдпрд╛рдкреНрдд рдЫ seq_no.

рдпреЛ рдкрдирд┐ рд╕рдмреИрднрдиреНрджрд╛ рд╕рдлрд▓ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЗрди; рдПрдХ рдкреВрд░реНрдг рдЕрдирд┐рдпрдорд┐рдд рдПрдХ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рд░реВрдк рдорд╛ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдЫ - рдпреЛ рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрдЪреНрдЪ-рд╕реНрддрд░ API рдорд╛ рдПрдХ рд╕рдиреНрджреЗрд╢ рдкрдард╛рдЙрдБрджрд╛ рдЧрд░рд┐рд╕рдХрд┐рдПрдХреЛ рдЫред рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓рд╛рдИ рд╕рд╛рдкреЗрдХреНрд╖рд┐рдХрдмрд╛рдЯ рдирд┐рд░рдкреЗрдХреНрд╖рдорд╛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд░рд┐рдореЗрдХ рдЧрд░реНрдиреБ рд░рд╛рдореНрд░реЛ рд╣реБрдиреЗрдЫ, рддрд░ рдпреЛ рдЕрд░реНрдХреЛ рднрд╛рдЧрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╖рдп рд╣реЛ, рдпреЛ рдкреЛрд╕реНрдЯ рд╣реЛрдЗрдиред

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 рдорд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реЗрдм API рдХреЛ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реЛ, рдмрд╛рд╣реЗрдХ рдХрдХреНрд╖рд╛рд╣рд░реВ рдкрдирд┐ рд╡рд╕реНрддреБрд╣рд░реВрдорд╛ рд╕рдВрд▓рдЧреНрди рдЫрдиреН? ..

рддреНрдпрд╕реЛрднрдП рдпреЛ рдпрд╕рд░реА рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ ... рдпреЛ рд╕рдмреИ рдХреЗ рд╣реЛ, рдХрдорд░реЗрдбрд╣рд░реВ? ... рдпрддрд┐ рдзреЗрд░реИ рдкреНрд░рдпрд╛рд╕ - рд░ рд╣рд╛рдореА рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рд╣рд░реВ рдЬрд╣рд╛рдБ рдЖрд░рд╛рдо рдЧрд░реНрди рд░реЛрдХреНрдпреМрдВред рднрд░реНрдЦрд░ рд╕реБрд░реБ рдЧрд░реНрджреИ?.. HTTPS рдорд╛ JSON рдорд╛рддреНрд░ рд╕рд░рд▓ рд╣реБрдиреЗрдЫреИрди?! рдмрджрд▓рд╛рдорд╛ рдХреЗ рдкрд╛рдпреМрдВ ? рдХреЗ рдкреНрд░рдпрд╛рд╕ рдпрд╕рдХреЛ рд▓рд╛рдпрдХ рдерд┐рдпреЛ?

TL+MTProto рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдХреЗ рджрд┐рдпреЛ рд░ рдХрд╕реНрддрд╛ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рд╕рдореНрднрд╡ рдЫрдиреН рднрдиреЗрд░ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реМрдВред рдареАрдХ рдЫ, HTTP, рдЬреБрди рдЕрдиреБрд░реЛрдз-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЛрдбреЗрд▓рдорд╛ рдХреЗрдиреНрджреНрд░рд┐рдд рдЫ, рдПрдХ рдЦрд░рд╛рдм рдлрд┐рдЯ рд╣реЛ, рддрд░ рдХрдореНрддрд┐рдорд╛ TLS рдХреЛ рд╢реАрд░реНрд╖рдорд╛ рдХреЗрд╣рд┐ рдЫ?

рдХрдореНрдкреНрдпрд╛рдХреНрдЯ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рдиред рдпреЛ рдбрд╛рдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рджреЗрдЦреЗрд░, JSON рдЬрд╕реНрддреИ, рдорд▓рд╛рдИ рдпрд╛рдж рдЫ рдХрд┐ рддреНрдпрд╣рд╛рдБ рдпрд╕рдХреЛ рдмрд╛рдЗрдирд░реА рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдЫрдиреНред MsgPack рд▓рд╛рдИ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд░реВрдкрдорд╛ рдПрдХреНрд╕реНрдЯреЗрдиреНрд╕рд┐рдмрд▓рдХреЛ рд░реВрдкрдорд╛ рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЙрдиреБрд╣реЛрд╕реН, рддрд░ рддреНрдпрд╣рд╛рдБ рдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, CBOR - рд╡реИрд╕реЗ, рдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдорд╛рдирдХ RFC 7049ред рдпрд╕рд▓реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реЗрдХреЛ рддрдереНрдпрдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЫ рдЯреНрдпрд╛рдЧрд╣рд░реВ, рд╡рд┐рд╕реНрддрд╛рд░ рд╕рдВрдпрдиреНрддреНрд░рдХреЛ рд░реВрдкрдорд╛, рд░ рдмреАрдЪрдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдорд╛рдирдХреАрдХреГрдд рдЙрдкрд▓рдмреНрдз:

  • 25 + 256 - рд▓рд╛рдЗрди рдирдореНрдмрд░рдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рджреЛрд╣реЛрд░реНрдпрд╛рдЗрдПрдХреЛ рд░реЗрдЦрд╛рд╣рд░реВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрджреИ, рдпрд╕реНрддреЛ рд╕рд╕реНрддреЛ рдХрдореНрдкреНрд░реЗрд╕рди рд╡рд┐рдзрд┐
  • 26 - рд╡рд░реНрдЧ рдирд╛рдо рд░ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рддрд░реНрдХ рд╕рдВрдЧ рдХреНрд░рдордмрджреНрдз рдкрд░реНрд▓ рд╡рд╕реНрддреБ
  • 27 - рдкреНрд░рдХрд╛рд░рдХреЛ рдирд╛рдо рд░ рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЖрд░реНрдЧреБрдореЗрдиреНрдЯрдХреЛ рд╕рд╛рде рдХреНрд░рдордмрджреНрдз рднрд╛рд╖рд╛-рд╕реНрд╡рддрдиреНрддреНрд░ рд╡рд╕реНрддреБ

рдард┐рдХ рдЫ, рдореИрд▓реЗ TL рд░ CBOR рдорд╛ рд╕реНрдЯреНрд░рд┐рдЩ рд░ рд╡рд╕реНрддреБ рдкреНрдпрд╛рдХрд┐рдЩ рд╕рдХреНрд╖рдо рдЧрд░реА рд╕рдорд╛рди рдбреЗрдЯрд╛ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗрдВред рдирддрд┐рдЬрд╛ рдореЗрдЧрд╛рдмрд╛рдЗрдЯрдмрд╛рдЯ рдХрддреИ CBOR рдХреЛ рдкрдХреНрд╖рдорд╛ рднрд┐рдиреНрди рд╣реБрди рдерд╛рд▓реНрдпреЛ:

cborlen=1039673 tl_len=1095092

рд░ рддреНрдпрд╕реИрд▓реЗ, рдирд┐рд╖реНрдХрд░реНрд╖: рддреНрдпрд╣рд╛рдБ рдкрд░реНрдпрд╛рдкреНрдд рд╕рд░рд▓ рдврд╛рдБрдЪрд╛рд╣рд░реВ рдЫрдиреН рдЬреБрди рддреБрд▓рдирд╛рддреНрдордХ рджрдХреНрд╖рддрд╛рдХреЛ рд╕рд╛рде, рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬреЗрд╕рди рд╡рд┐рдлрд▓рддрд╛ рд╡рд╛ рдЕрдЬреНрдЮрд╛рдд рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рдХреЛ рд╕рдорд╕реНрдпрд╛рдХреЛ рдЕрдзреАрдирдорд╛ рдЫреИрдирдиреНред

рджреНрд░реБрдд рдЬрдбрд╛рди рд╕реНрдерд╛рдкрдирд╛ред рдпрд╕рдХреЛ рдорддрд▓рдм рдкреБрди: рдЬрдбрд╛рди рдкрдЫрд┐ рд╢реВрдиреНрдп рдЖрд░рдЯреАрдЯреА рд╣реБрдиреНрдЫ (рдЬрдм рдХреБрдЮреНрдЬреА рдкрд╣рд┐рд▓реЗ рдиреИ рдПрдХ рдкрдЯрдХ рдЙрддреНрдкрдиреНрди рднрдЗрд╕рдХреЗрдХреЛ рдЫ) - рдкрд╣рд┐рд▓реЛ MTProto рд╕рдиреНрджреЗрд╢рдмрд╛рдЯ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫ, рддрд░ рдХреЗрд╣реА рд░рд┐рдЬрд░реНрднреЗрд╕рдирдХрд╛ рд╕рд╛рде - рдЙрд╣реА рдиреБрди рд╣рд┐рдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╕рддреНрд░ рд╕рдбреЗрдХреЛ рдЫреИрди, рдЖрджрд┐ред рдпрд╕рдХреЛ рд╕рдЯреНрдЯрд╛ TLS рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрдЫ? рд╡рд┐рд╖рдпрдорд╛ рдЙрджреНрдзрд░рдг:

TLS рдорд╛ PFS рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛, TLS рд╕рддреНрд░ рдЯрд┐рдХрдЯ (RFC 5077) рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреБрди: рд╡рд╛рд░реНрддрд╛ рдирдЧрд░реА рд░ рд╕рд░реНрднрд░рдорд╛ рдореБрдЦреНрдп рдЬрд╛рдирдХрд╛рд░реА рднрдгреНрдбрд╛рд░рдг рдирдЧрд░реА рдЧреБрдкреНрддрд┐рдХрд░рдг рдЧрд░рд┐рдПрдХреЛ рд╕рддреНрд░ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрдиред рдкрд╣рд┐рд▓реЛ рдЬрдбрд╛рди рдЦреЛрд▓реНрджрд╛ рд░ рдХреБрдЮреНрдЬреАрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛, рд╕рд░реНрднрд░рд▓реЗ рдЬрдбрд╛рди рд╕реНрдерд┐рддрд┐ рдЗрдиреНрдХреНрд░рд┐рдкреНрдЯ рдЧрд░реНрджрдЫ рд░ рдЧреНрд░рд╛рд╣рдХрд▓рд╛рдИ (рд╕рддреНрд░ рдЯрд┐рдХрдЯрдХреЛ рд░реВрдкрдорд╛) рдкрдард╛рдЙрдБрдЫред рддрджрдиреБрд╕рд╛рд░, рдЬрдм рдЬрдбрд╛рди рдкреБрди: рд╕реБрд░реБ рд╣реБрдиреНрдЫ, рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд╕рддреНрд░ рдХреБрдЮреНрдЬреА рд╕рд╣рд┐рдд, рд╕рд░реНрднрд░рдорд╛ рдлрд┐рд░реНрддрд╛ рд╕рддреНрд░ рдЯрд┐рдХрдЯ рдкрдард╛рдЙрдБрдЫред рдЯрд┐рдХрдЯ рдЖрдлреИрдВ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдХреБрдЮреНрдЬреА (рд╕рддреНрд░ рдЯрд┐рдХрдЯ рдХреБрдЮреНрдЬреА) рд╕рдВрдЧ рдЧреБрдкреНрддрд┐рдХрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреБрди рд╕рд░реНрднрд░рдорд╛ рднрдгреНрдбрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рдХреНрд▓рд╕реНрдЯрд░ рд╕рдорд╛рдзрд╛рдирд╣рд░реВрдорд╛ SSL рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдиреЗ рд╕рдмреИ рдлреНрд░рдиреНрдЯрдПрдиреНрдб рд╕рд░реНрднрд░рд╣рд░реВ рдмреАрдЪ рд╡рд┐рддрд░рд┐рдд рд╣реБрдиреБрдкрд░реНрдЫред [резреж]ред рддрд╕рд░реНрде, рд╕рддреНрд░ рдЯрд┐рдХрдЯрдХреЛ рдкрд░рд┐рдЪрдпрд▓реЗ PFS рд▓рд╛рдИ рдЙрд▓реНрд▓рдЩреНрдШрди рдЧрд░реНрди рд╕рдХреНрдЫ рдпрджрд┐ рдЕрд╕реНрдерд╛рдпреА рд╕рд░реНрднрд░ рдХреБрдЮреНрдЬреАрд╣рд░реВ рд╕рдореНрдЭреМрддрд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЬрдм рддрд┐рдиреАрд╣рд░реВ рд▓рд╛рдореЛ рд╕рдордпрд╕рдореНрдо рднрдгреНрдбрд╛рд░рдг рд╣реБрдиреНрдЫрдиреН (OpenSSL, nginx, Apache рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд╛рд░реНрдпрдХреНрд░рдордХреЛ рд╕рдореНрдкреВрд░реНрдг рдЕрд╡рдзрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рднрдгреНрдбрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН; рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рд╛рдЗрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреНред рдзреЗрд░реИ рдШрдгреНрдЯрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдХреБрдЮреНрдЬреА, рджрд┐рди рд╕рдореНрдо)ред

рдпрд╣рд╛рдБ RTT рд╢реВрдиреНрдп рд╣реЛрдЗрди, рддрдкрд╛рдИрдВрд▓реЗ рдХрдореНрддрд┐рдорд╛ ClientHello рд░ ServerHello рд╕рд╛рдЯрд╛рд╕рд╛рдЯ рдЧрд░реНрдиреБрдкрд░реНрдЫ, рддреНрдпрд╕рдкрдЫрд┐ рдЧреНрд░рд╛рд╣рдХрд▓реЗ Finished рд╕рдБрдЧ рдбрд╛рдЯрд╛ рдкрдард╛рдЙрди рд╕рдХреНрдЫред рддрд░ рдпрд╣рд╛рдБ рд╣рд╛рдореАрд▓реЗ рдпреЛ рдпрд╛рдж рдЧрд░реНрдиреБрдкрд░реНрдЫ рдХрд┐ рд╣рд╛рдореАрд╕рдБрдЧ рд╡реЗрдм рдЫреИрди, рдпрд╕рдХреЛ рднрд░реНрдЦрд░реИ рдЦреЛрд▓рд┐рдПрдХреЛ рдЬрдбрд╛рдирд╣рд░реВрдХреЛ рдЧреБрдЪреНрдЫрд╛рдХреЛ рд╕рд╛рде, рддрд░ рдПрдХ рдореЗрд╕реЗрдиреНрдЬрд░, рдЬрд╕рдХреЛ рдЬрдбрд╛рди рдкреНрд░рд╛рдпрдГ рдПрдХ рд░ рдзреЗрд░реИ рд╡рд╛ рдХрдо рд▓рд╛рдореЛ рд╕рдордпрд╕рдореНрдо рд░рд╣рдиреНрдЫ, рд╡реЗрдм рдкреГрд╖реНрдард╣рд░реВрдорд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреЛ рдЕрдиреБрд░реЛрдзрд╣рд░реВ - рд╕рдмреИ рдХреБрд░рд╛ рдорд▓реНрдЯрд┐рдкреНрд▓реЗрдХреНрд╕ рдЧрд░рд┐рдПрдХреЛ рдЫред рдЖрдиреНрддрд░рд┐рдХ рд░реВрдкрдорд╛ред рддреНрдпреЛ рд╣реЛ, рдпреЛ рдПрдХрджрдо рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЫ рдпрджрд┐ рд╣рд╛рдореА рд╡рд╛рд╕реНрддрд╡рдореИ рдЦрд░рд╛рдм рд╕рдмрд╡реЗ рдЦрдгреНрдбрдорд╛ рдЖрдПрдиреМрдВред

рдЕрд░реБ рдХреЗрд╣рд┐ рдмрд┐рд░реНрд╕рдиреБрднрдпреЛ? рдХрдореЗрдиреНрдЯрдорд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕ ред

рдлреЗрд░рд┐ рдЬрд╛рд░реА рд░рд╛рдЦреМрдВрд▓рд╛!

рдкреЛрд╖реНрдЯрд╣рд░реВрдХреЛ рдпрд╕ рд╢реГрдЩреНрдЦрд▓рд╛рдХреЛ рджреЛрд╕реНрд░реЛ рднрд╛рдЧрдорд╛ рд╣рд╛рдореА рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╣реЛрдЗрди, рддрд░ рд╕рдВрдЧрдардирд╛рддреНрдордХ рдореБрджреНрджрд╛рд╣рд░реВ - рджреГрд╖реНрдЯрд┐рдХреЛрдг, рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛, рдЗрдиреНрдЯрд░рдлреЗрд╕, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдкреНрд░рддрд┐рдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рдЖрджрд┐рд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреЗрдЫреМрдВред рдпрджреНрдпрдкрд┐, рдпрд╣рд╛рдБ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХреЛ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рдЖрдзрд╛рд░рдорд╛ред

рддреЗрд╕реНрд░реЛ рднрд╛рдЧ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдШрдЯрдХ / рд╡рд┐рдХрд╛рд╕ рдЕрдиреБрднрд╡ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╣рдиреЗрдЫред рддрдкрд╛рдИрд▓реЗ рд╕рд┐рдХреНрдиреБрд╣реБрдиреЗрдЫ, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА:

  • TL рдкреНрд░рдХрд╛рд░ рдХреЛ рд╡рд┐рд╡рд┐рдзрддрд╛ рд╕рдВрдЧ pandemonium рдХреЛ рдирд┐рд░рдиреНрддрд░рддрд╛
  • рдЪреНрдпрд╛рдирд▓рд╣рд░реВ рд░ рд╕реБрдкрд░рд╕рдореВрд╣рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЕрдЬреНрдЮрд╛рдд рдХреБрд░рд╛рд╣рд░реВ
  • рдХрд┐рди рд╕рдВрд╡рд╛рджрд╣рд░реВ рд░реЛрд╕реНрдЯрд░ рднрдиреНрджрд╛ рдЦрд░рд╛рдм рдЫрдиреН
  • рдирд┐рд░рдкреЗрдХреНрд╖ рдмрдирд╛рдо рд╕рд╛рдкреЗрдХреНрд╖ рд╕рдиреНрджреЗрд╢ рдареЗрдЧрд╛рдирд╛ рдмрд╛рд░реЗ
  • рддрд╕реНрдмрд┐рд░ рд░ рдЫрд╡рд┐рдорд╛ рдХреЗ рдлрд░рдХ рдЫ
  • рдЗрдореЛрдЬреАрд▓реЗ рдЗрдЯрд╛рд▓рд┐рдХ рдкрд╛рдардорд╛ рдХрд╕рд░реА рд╣рд╕реНрддрдХреНрд╖реЗрдк рдЧрд░реНрдЫ

рд░ рдЕрдиреНрдп рдмреИрд╕рд╛рдЦреА! рд╕рдореНрдкрд░реНрдХрдорд╛ рд░рд╣рдиреБрд╣реЛрд╕реН!

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди