рд╡реНрд╣реАрд▓рд╕реЗрдЯрд╕рд╛рдареА рд╡рд┐рддрд░рд┐рдд рд▓реЗрдЬрд░: рд╣рд╛рдпрдкрд░рд▓реЗрдЬрд░ рдлреЕрдмреНрд░рд┐рдХрдЪрд╛ рдЕрдиреБрднрд╡

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

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

рд╕рдорд╕реНрдпрд╛: рдмреНрд▓реЙрдХрдЪреЗрди рдЕрджреНрдпрд╛рдк рдореЛрдЬрд▓реЗрд▓реЗ рдирд╛рд╣реАрдд

рдЖрдЬ, рдЕрдиреЗрдХ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдЪреЗ рдкреНрд░рдпрддреНрди рд╣реЗ рдмреНрд▓реЙрдХрдЪреЗрдирд▓рд╛ рдЦрд░реЛрдЦрд░рдЪ рд╕реЛрдпреАрд╕реНрдХрд░ рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдмрдирд╡рдгреНрдпрд╛рдЪреНрдпрд╛ рдЙрджреНрджреЗрд╢рд╛рдиреЗ рдЖрд╣реЗрдд, рдЖрдгрд┐ рд╕реБрдВрджрд░ рд░реЕрдкрд░рдордзреНрдпреЗ рдЯрд╛рдЗрдо рдмреЙрдореНрдм рдирд╛рд╣реА. рд░рд╛рдЬреНрдп рдЪреЕрдиреЗрд▓, рдЖрд╢рд╛рд╡рд╛рджреА рд░реЛрд▓рдЕрдк, рдкреНрд▓рд╛рдЭреНрдорд╛ рдЖрдгрд┐ рд╢рд╛рд░реНрдбрд┐рдВрдЧ рд╕рд╛рдорд╛рдиреНрдп рд╣реЛрдК рд╢рдХрддрд╛рдд. рдХрд╛рд╣реА рджрд┐рд╡рд╕. рдХрд┐рдВрд╡рд╛ рдХрджрд╛рдЪрд┐рдд TON рдкреБрдиреНрд╣рд╛ рд╕рд╣рд╛ рдорд╣рд┐рдиреНрдпрд╛рдВрд╕рд╛рдареА рд▓рд╛рдБрдЪ рдкреБрдвреЗ рдврдХрд▓реЗрд▓ рдЖрдгрд┐ рдкреБрдвреАрд▓ рдкреНрд▓рд╛рдЭреНрдорд╛ рдЧреНрд░реБрдк рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдирд╛рд╣реА. рдЖрдореНрд╣реА рдкреБрдвреАрд▓ рд░реЛрдбрдореЕрдкрд╡рд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдареЗрд╡реВ рд╢рдХрддреЛ рдЖрдгрд┐ рд░рд╛рддреНрд░реА рдЪрдордХрджрд╛рд░ рд╢реНрд╡реЗрддрдкрддреНрд░рд┐рдХрд╛ рд╡рд╛рдЪреВ рд╢рдХрддреЛ, рдкрд░рдВрддреБ рдпреЗрдереЗ рдЖрдгрд┐ рдЖрддрд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЬреЗ рдХрд╛рд╣реА рдЖрд╣реЗ рддреНрдпрд╛рд╕рд╣ рдХрд╛рд╣реАрддрд░реА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдмрдХрд╡рд╛рд╕ рдХрд░рд╛.

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

рд╢реНрд╡реЗрддрдкрддреНрд░рд┐рдХреЗрддреАрд▓ рдШреЛрд╖рдгрд╛ рдЖрдгрд┐ рдкреНрд░рд╕рд╛рд░рдорд╛рдзреНрдпрдореЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╡рдЪрди рджреЗрддрд╛рдд рдХреА рдкреБрдвреАрд▓ рд╡рд┐рдХрд╛рд╕ рдЖрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рд▓рд╛рдЦреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реВ рджреЗрдИрд▓. рдЦрд░рдВрдЪ рдХрд╛рдп рдЖрд╣реЗ?

Mainnet Ethereum рд╕рдзреНрдпрд╛ ~30 tps рд╡рд░ рдЪрд╛рд▓реВ рдЖрд╣реЗ. рдХреЗрд╡рд│ рдпрд╛ рдХрд╛рд░рдгрд╛рд╕реНрддрд╡, рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдЧрд░рдЬрд╛рдВрд╕рд╛рдареА рдпреЛрдЧреНрдп рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХрд╛рд░реЗ рдмреНрд▓реЙрдХрдЪреЗрди рдореНрд╣рдгреВрди рд╣реЗ рд╕рдордЬрдгреЗ рдХрдареАрдг рдЖрд╣реЗ. рдкрд░рд╡рд╛рдирдЧреА рджрд┐рд▓реЗрд▓реНрдпрд╛ рдЙрдкрд╛рдпрд╛рдВрдордзреНрдпреЗ 2000 tps рджрд░реНрд╢рд╡рд┐рдгрд╛рд░реЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЖрд╣реЗрдд (рд╕рджрд╕реНрдпрд╛рдВрдиреА рдЧрдгрдкреВрд░реНрддреА) рдХрд┐рдВрд╡рд╛ 3000 рдЯреАрдкреАрдПрд╕ (рд╣рд╛рдпрдкрд░рд▓реЗрдЬрд░ рдлреЕрдмреНрд░рд┐рдХ, рдкреНрд░рдХрд╛рд╢рдирд╛рдд рдереЛрдбреЗ рдХрдореА рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХреА рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЬреБрдиреНрдпрд╛ рдПрдХрдордд рдЗрдВрдЬрд┐рдирд╡рд░ рдЪрд╛рд▓рд╡рд┐рд▓рд╛ рдЧреЗрд▓рд╛ рд╣реЛрддрд╛). рд╣реЛрддреЗ рдореВрд▓рдЧрд╛рдореА рдлреЕрдмреНрд░рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рдкреНрд░рдпрддреНрди, рдЬреНрдпрд╛рдиреЗ рд╕рд░реНрд╡рд╛рдд рд╡рд╛рдИрдЯ рдкрд░рд┐рдгрд╛рдо рджрд┐рд▓реЗ рдирд╛рд╣реАрдд, 20000 tps, рдкрд░рдВрддреБ рдЖрддрд╛рдкрд░реНрдпрдВрдд рд╣реЗ рдХреЗрд╡рд│ рд╢реИрдХреНрд╖рдгрд┐рдХ рд╕рдВрд╢реЛрдзрди рдЖрд╣реЗ, рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрдерд┐рд░ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдЖрд╣реЗ. рдмреНрд▓реЙрдХрдЪреЗрди рдбреЗрд╡реНрд╣рд▓рдкрд░реНрд╕рдЪрд╛ рд╡рд┐рднрд╛рдЧ рд░рд╛рдЦрдгреЗ рдкрд░рд╡рдбрдгрд╛рд░реЗ рдХреЙрд░реНрдкреЛрд░реЗрд╢рди рдЕрд╕реЗ рд╕рдВрдХреЗрддрдХ рдареЗрд╡рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдирд╛рд╣реА. рдкрд░рдВрддреБ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд│ рдереНрд░реВрдкреБрдЯрдЪреА рдирд╛рд╣реА рддрд░ рд╡рд┐рд▓рдВрдм рджреЗрдЦреАрд▓ рдЖрд╣реЗ.

рд▓реЗрдЯреЗрдВрд╕реА

рдкреНрд░рдгрд╛рд▓реАрджреНрд╡рд╛рд░реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реБрд░реВ рдХреЗрд▓реНрдпрд╛рдкрд╛рд╕реВрди рддреНрдпрд╛рдЪреНрдпрд╛ рдЕрдВрддрд┐рдо рдордВрдЬреБрд░реАрдкрд░реНрдпрдВрдд рд╣реЛрдгрд╛рд░рд╛ рд╡рд┐рд▓рдВрдм рдХреЗрд╡рд│ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЖрдгрд┐ рдСрд░реНрдбрд░рд┐рдВрдЧрдЪреНрдпрд╛ рд╕рд░реНрд╡ рдЯрдкреНрдкреНрдпрд╛рдВрддреВрди рд╕рдВрджреЗрд╢ рдХреЛрдгрддреНрдпрд╛ рдЧрддреАрдиреЗ рдЬрд╛рддреЛ рдпрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдирд╛рд╣реА рддрд░ рдмреНрд▓реЙрдХ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╡рд░ рджреЗрдЦреАрд▓ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЛ. рдЬрд░реА рдЖрдордЪреА рдмреНрд▓реЙрдХрдЪреЗрди рдЖрдореНрд╣рд╛рд▓рд╛ 1000000 tps рд╡реЗрдЧрд╛рдиреЗ рдХрдорд┐рдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ, рдкрд░рдВрддреБ 10 MB рдмреНрд▓реЙрдХ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА 488 рдорд┐рдирд┐рдЯреЗ рд▓рд╛рдЧрддрд╛рдд, рд╣реЗ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рд╕реЛрдкреЗ рд╣реЛрдИрд▓ рдХрд╛?

рд╡реЗрд│ рдХреБрдареЗ рдШрд╛рд▓рд╡рд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдмреНрд▓реЙрдХ рдЬрдирд░реЗрд╢рди рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╢реА рддреНрдпрд╛рдЪрд╛ рдХрд╕рд╛ рд╕рдВрдмрдВрдз рдЖрд╣реЗ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╣рд╛рдпрдкрд░рд▓реЗрдЬрд░ рдлреЕрдмреНрд░рд┐рдХрдордзреАрд▓ рд╡реНрдпрд╡рд╣рд╛рд░ рдЬреАрд╡рдирдЪрдХреНрд░ рдЬрд╡рд│реВрди рдкрд╛рд╣реВ.

рд╡реНрд╣реАрд▓рд╕реЗрдЯрд╕рд╛рдареА рд╡рд┐рддрд░рд┐рдд рд▓реЗрдЬрд░: рд╣рд╛рдпрдкрд░рд▓реЗрдЬрд░ рдлреЕрдмреНрд░рд┐рдХрдЪрд╛ рдЕрдиреБрднрд╡
рдпреЗрдереВрди рдШреЗрддрд▓реЗ: hyperledger-fabric.readthedocs.io/en/release-1.4/arch-deep-dive.html#swimlane

(1) рдХреНрд▓рд╛рдпрдВрдЯ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рддрдпрд╛рд░ рдХрд░рддреЛ, рддреЛ рд╕рдорд╡рдпрд╕реНрдХрд╛рдВрдирд╛ рдкрд╛рдард╡рддреЛ, рдирдВрддрд░рдЪреЗ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдЪреЗ рдЕрдиреБрдХрд░рдг рдХрд░рддреЛ (рдЪреЗрдирдХреЛрдбрджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗрд▓реЗ рдмрджрд▓ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддреАрдд рд▓рд╛рдЧреВ рдХрд░рд╛, рдкрд░рдВрддреБ рдЦрд╛рддреЗрд╡рд╣реАрд▓рд╛ рд╡рдЪрдирдмрджреНрдз рдХрд░реВ рдирдХрд╛) рдЖрдгрд┐ RWSet рдкреНрд░рд╛рдкреНрдд рдХрд░рд╛ - рдореБрдЦреНрдп рдирд╛рд╡реЗ, рдЖрд╡реГрддреНрддреНрдпрд╛ рдЖрдгрд┐ рдореВрд▓реНрдпреЗ CouchDB рдордзреАрд▓ рд╕рдВрдЧреНрд░рд╣рд╛рддреВрди рдШреЗрддрд▓реЗрд▓реЗ, (2) рдЕрдиреБрдореЛрджрдХ рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХреЗрд▓реЗрд▓рд╛ RWSet рдкрд░рдд рдкрд╛рдард╡рддрд╛рдд, (3) рдХреНрд▓рд╛рдпрдВрдЯ рдПрдХрддрд░ рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рд╕рдорд╡рдпрд╕реНрдХрд╛рдВрдЪреНрдпрд╛ (рдЕрдиреБрдореЛрджрдХрд╛рдВрдЪреНрдпрд╛) рд╕реНрд╡рд╛рдХреНрд╖рд░реАрдЪреА рдЙрдкрд╕реНрдерд┐рддреА рддрдкрд╛рд╕рддреЛ рдЖрдгрд┐ рдирдВрддрд░ рдСрд░реНрдбрд░рд┐рдВрдЧ рд╕реЗрд╡реЗрдХрдбреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд╛рдард╡рддреЛ. , рдХрд┐рдВрд╡рд╛ рдкрдбрддрд╛рд│рдгреАрд╢рд┐рд╡рд╛рдп рдкрд╛рдард╡рддреЗ (рддрдкрд╛рд╕рдгреА рдирдВрддрд░ рдХреЗрд▓реА рдЬрд╛рдИрд▓), рдСрд░реНрдбрд░рд┐рдВрдЧ рд╕реЗрд╡рд╛ рдПрдХ рдмреНрд▓реЙрдХ рдмрдирд╡рддреЗ рдЖрдгрд┐ (4) рдлрдХреНрдд рд╕рдорд░реНрдердирдХрд░реНрддреНрдпрд╛рдВрдирд╛рдЪ рдирд╛рд╣реА рддрд░ рд╕рд░реНрд╡ рд╕рдорд╡рдпрд╕реНрдХрд╛рдВрдирд╛ рдкрд░рдд рдкрд╛рдард╡рддреЗ; рд╕рдорд╡рдпрд╕реНрдХрд╛рдВрдиреА рддрдкрд╛рд╕рд╛ рдХреА рд╡рд╛рдЪрд▓реЗрд▓реНрдпрд╛ рд╕рдВрдЪрд╛рддреАрд▓ рдореБрдЦреНрдп рдЖрд╡реГрддреНрддреНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрд╢реА рдЬреБрд│рддрд╛рдд, рд╕рд░реНрд╡ рд╕рдорд░реНрдердирдХрд░реНрддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рд╛рдХреНрд╖рд▒реНрдпрд╛ рдЖрд╣реЗрдд рдЖрдгрд┐ рд╢реЗрд╡рдЯреА рдмреНрд▓реЙрдХ рдХрдорд┐рдЯ рдХрд░рддрд╛рдд.

рдкрдг рдПрд╡рдвреЗрдЪ рдирд╛рд╣реА. "рдСрд░реНрдбрд░рд░ рдПрдХ рдмреНрд▓реЙрдХ рдмрдирд╡рддреЛ" рд╣реЗ рд╢рдмреНрдж рдХреЗрд╡рд│ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪреЗ рдСрд░реНрдбрд░рд┐рдВрдЧрдЪ рд▓рдкрд╡рдд рдирд╛рд╣реАрдд, рддрд░ рдиреЗрддреНрдпрд╛рдХрдбреВрди рдЕрдиреБрдпрд╛рдпрд╛рдВрдирд╛ рдЖрдгрд┐ рдорд╛рдЧреЗ 3 рдЕрдиреБрдХреНрд░рдорд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рдирдВрддреНрдпрд╛ рджреЗрдЦреАрд▓ рд▓рдкрд╡рддрд╛рдд: рдиреЗрддрд╛ рд▓реЙрдЧрдордзреНрдпреЗ рд╕рдВрджреЗрд╢ рдЬреЛрдбрддреЛ, рдЕрдиреБрдпрд╛рдпрд╛рдВрдирд╛ рдкрд╛рдард╡рддреЛ, рдирдВрддрд░ рддреЛ рдЬреЛрдбрддреЛ. рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд▓реЙрдЧрд╡рд░, рдиреЗрддреНрдпрд╛рд▓рд╛ рдпрд╢рд╕реНрд╡реА рдкреНрд░рддрд┐рдХреГрддреАрдЪреА рдкреБрд╖реНрдЯреА рдкрд╛рдард╡рддреЗ, рдиреЗрддрд╛ рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рддреЛ, рдЕрдиреБрдпрд╛рдпрд╛рдВрдирд╛ рдХрдорд┐рдЯ рдХрдиреНрдлрд░реНрдореЗрд╢рди рдкрд╛рдард╡рддреЛ, рдЕрдиреБрдпрд╛рдпреА рдХрдорд┐рдЯ рдХрд░рддрд╛рдд. рдмреНрд▓реЙрдХ рдирд┐рд░реНрдорд┐рддреАрдЪрд╛ рдЖрдХрд╛рд░ рдЖрдгрд┐ рд╡реЗрд│ рдЬрд┐рддрдХрд╛ рд▓рд╣рд╛рди рдЕрд╕реЗрд▓ рддрд┐рддрдХреНрдпрд╛ рд╡реЗрд│рд╛ рдСрд░реНрдбрд░рд┐рдВрдЧ рд╕реЗрд╡реЗрд▓рд╛ рдПрдХрдордд рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓. рд╣рд╛рдпрдкрд░рд▓реЗрдЬрд░ рдлреЕрдмреНрд░рд┐рдХрдордзреНрдпреЗ рдмреНрд▓реЙрдХ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреЛрди рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдЖрд╣реЗрдд: рдмреЕрдЪрдЯрд╛рдЗрдордЖрдЙрдЯ - рдмреНрд▓реЙрдХ рдмрдирд╡рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрдгрд┐ рдмреЕрдЪрд╕рд╛рдЗрдЬ - рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ (рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдЖрдгрд┐ рдмреНрд▓реЙрдХрдЪрд╛ рдЖрдХрд╛рд░ рдмрд╛рдЗрдЯреНрд╕рдордзреНрдпреЗ). рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдкреИрдХреА рдПрдХ рдорд░реНрдпрд╛рджреЗрдкрд░реНрдпрдВрдд рдкреЛрд╣реЛрдЪрддрд╛рдЪ, рдПрдХ рдирд╡реАрди рдмреНрд▓реЙрдХ рд╕реЛрдбрд▓рд╛ рдЬрд╛рдИрд▓. рдЕрдзрд┐рдХ рдСрд░реНрдбрд░ рдиреЛрдбреНрд╕, рдпрд╛рд╕ рдЬрд╛рд╕реНрдд рд╡реЗрд│ рд▓рд╛рдЧреЗрд▓. рдореНрд╣рдгреВрди, рддреБрдореНрд╣рд╛рд▓рд╛ BatchTimeout рдЖрдгрд┐ BatchSize рд╡рд╛рдврд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдкрд░рдВрддреБ RWSets рд╡рд░реНрдЬрди рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЖрдореНрд╣реА рдЬрд┐рддрдХрд╛ рдореЛрдард╛ рдмреНрд▓реЙрдХ рдмрдирд╡рддреЛ, рддрд┐рддрдХрд╛ MVCC рд╕рдВрдШрд░реНрд╖ рд╣реЛрдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдЬрд╛рд╕реНрдд рдЕрд╕рддреЗ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, BatchTimeout рдЬрд╕рдЬрд╕рд╛ рд╡рд╛рдврдд рдЬрд╛рддреЛ, UX рдЖрдкрддреНрддреАрдЬрдирдХрд░рд┐рддреНрдпрд╛ рдХрдореА рд╣реЛрддреЛ. рдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЦрд╛рд▓реАрд▓ рдпреЛрдЬрдирд╛ рдорд▓рд╛ рд╡рд╛рдЬрд╡реА рдЖрдгрд┐ рд╕реНрдкрд╖реНрдЯ рд╡рд╛рдЯрддреЗ.

рдмреНрд▓реЙрдХ рдлрд╛рдпрдирд▓ рд╣реЛрдгреНрдпрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╢реА рдЯрд╛рд│рд╛рдпрдЪреА рдЖрдгрд┐ рдЯреНрд░рд╛рдиреНрдЭреЕрдХреНрд╢рди рд╕реНрдЯреЗрдЯрд╕ рдЯреНрд░реЕрдХ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЧрдорд╛рд╡реВ рдирдпреЗ

рдирд┐рд░реНрдорд┐рддреА рд╡реЗрд│ рдЖрдгрд┐ рдмреНрд▓реЙрдХрдЪрд╛ рдЖрдХрд╛рд░ рдЬрд┐рддрдХрд╛ рдЬрд╛рд╕реНрдд рдЕрд╕реЗрд▓ рддрд┐рддрдХрд╛ рдмреНрд▓реЙрдХрдЪреЗрдирдЪрд╛ рдереНрд░реВрдкреБрдЯ рдЬрд╛рд╕реНрдд рдЕрд╕реЗрд▓. рдПрдХ рдереЗрдЯ рджреБрд╕рд░реНтАНрдпрд╛рдХрдбреВрди рдЕрдиреБрд╕рд░рдг рдХрд░рдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ рдХреА RAFT рдордзреНрдпреЗ рдПрдХрдордд рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдиреЗрддреНрдпрд╛рдХрдбреВрди рдЕрдиреБрдпрд╛рдпрд╛рдВрдирд╛ рдЖрдгрд┐ рдорд╛рдЧреЗ рддреАрди рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд. рдЕрдзрд┐рдХ рдСрд░реНрдбрд░ рдиреЛрдбреНрд╕, рдпрд╛рд╕ рдЬрд╛рд╕реНрдд рд╡реЗрд│ рд▓рд╛рдЧреЗрд▓. рдмреНрд▓реЙрдХ рддрдпрд╛рд░ рд╣реЛрдгреНрдпрд╛рдЪрд╛ рдЖрдХрд╛рд░ рдЖрдгрд┐ рд╡реЗрд│ рдЬрд┐рддрдХрд╛ рд▓рд╣рд╛рди рдЕрд╕реЗрд▓ рддрд┐рддрдХреЗ рдЕрд╕реЗ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж рдЬрд╛рд╕реНрдд рдЕрд╕рддреАрд▓. рдЕрдВрддрд┐рдо рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╕рд╛рдареА рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рддрд┐рд╕рд╛рдж рд╡реЗрд│ рди рд╡рд╛рдврд╡рддрд╛ рдЬрдирд░реЗрд╢рди рд╡реЗрд│ рдЖрдгрд┐ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХрд╕рд╛ рд╡рд╛рдврд╡рд╛рдпрдЪрд╛?

рдкреНрд░рдердо, рдЖрдореНрд╣рд╛рд▓рд╛ рдореЛрдареНрдпрд╛ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░рд╛рдореБрд│реЗ рдЭрд╛рд▓реЗрд▓реНрдпрд╛ MVCC рд╡рд┐рд╡рд╛рджрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕рдорд╛рди рдЖрд╡реГрддреНрддреАрд╕рд╣ рднрд┐рдиреНрди RWSets рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕реВ рд╢рдХрддрд╛рдд. рдЕрд░реНрдерд╛рдд, рдХреНрд▓рд╛рдпрдВрдЯрдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ (рдмреНрд▓реЙрдХрдЪреЗрди рдиреЗрдЯрд╡рд░реНрдХрдЪреНрдпрд╛ рд╕рдВрдмрдВрдзрд╛рдд, рд╣реЗ рдмреЕрдХрдПрдВрдб рдЕрд╕реВ рд╢рдХрддреЗ рдЖрдгрд┐ рдорд▓рд╛ рддреЗ рдореНрд╣рдгрд╛рдпрдЪреЗ рдЖрд╣реЗ) рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ MVCC рд╕рдВрдШрд░реНрд╖ рд╣рдБрдбрд▓рд░, рдЬреА рдПрдХрддрд░ рд╕реНрд╡рддрдВрддреНрд░ рд╕реЗрд╡рд╛ рдХрд┐рдВрд╡рд╛ рдХреЙрд▓рдЪреНрдпрд╛ рд╡рд░ рдПрдХ рдирд┐рдпрдорд┐рдд рдбреЗрдХреЛрд░реЗрдЯрд░ рдЕрд╕реВ рд╢рдХрддреЗ рдЬреА рдкреБрдиреНрд╣рд╛ рдкреНрд░рдпрддреНрди рддрд░реНрдХрд╛рдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реБрд░реВ рдХрд░рддреЗ.

рдШрд╛рддрд╛рдВрдХреАрдп рд░рдгрдиреАрддреАрд╕рд╣ рдкреБрдиреНрд╣рд╛ рдкреНрд░рдпрддреНрди рдХрд░рдгреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдкрд░рдВрддреБ рдирдВрддрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдШрд╛рддрд╛рдВрдХрд░реАрддреНрдпрд╛ рдХрдореА рд╣реЛрдИрд▓. рддреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣реА рдард░рд╛рд╡рд┐рдХ рд▓рд╣рд╛рди рдорд░реНрдпрд╛рджреЗрдд рдПрдХрддрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреБрди:рдкреНрд░рдпрддреНрди рдХрд┐рдВрд╡рд╛ рд╕реНрдерд┐рд░ рд╡рд╛рдкрд░ рдХрд░рд╛рд╡рд╛. рдкрд╣рд┐рд▓реНрдпрд╛ рдкрд░реНрдпрд╛рдпрд╛рддреАрд▓ рд╕рдВрднрд╛рд╡реНрдп рдЯрдХреНрдХрд░рд╛рдВрд╡рд░ рд▓рдХреНрд╖ рдареЗрд╡реВрди.

рдкреБрдвреАрд▓ рдкрд╛рдпрд░реА рдореНрд╣рдгрдЬреЗ рдХреНрд▓рд╛рдпрдВрдЯрдЪрд╛ рд╕рд┐рд╕реНрдЯреАрдорд╢реА рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдмрдирд╡рдгреЗ рдЬреЗрдгреЗрдХрд░реВрди рддреЗ 15, 30 рдХрд┐рдВрд╡рд╛ 10000000 рд╕реЗрдХрдВрджрд╛рдВрдкрд░реНрдпрдВрдд рдерд╛рдВрдмрдгрд╛рд░ рдирд╛рд╣реА, рдЬреЗ рдЖрдореНрд╣реА BatchTimeout рдореНрд╣рдгреВрди рд╕реЗрдЯ рдХрд░реВ. рдкрд░рдВрддреБ рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рд╡реНрдпрд╡рд╣рд╛рд░рд╛рджреНрд╡рд╛рд░реЗ рд╕реБрд░реВ рдХреЗрд▓реЗрд▓реЗ рдмрджрд▓ рдмреНрд▓реЙрдХрдЪреЗрдирдордзреНрдпреЗ рдиреЛрдВрджрд╡рд▓реЗрд▓реЗ рдирд╛рд╣реАрдд/рдирд╕рд▓реНрдпрд╛рдЪреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рд░рд╛рдЦрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдЪреА рд╕реНрдерд┐рддреА рд╕рд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА рдбреЗрдЯрд╛рдмреЗрд╕рдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкрд╛ рдкрд░реНрдпрд╛рдп рдореНрд╣рдгрдЬреЗ CouchDB рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕реЛрдпреАрдореБрд│реЗ: рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдмреЙрдХреНрд╕рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдПрдХ UI рдЖрд╣реЗ, рдПрдХ REST API рдЖрд╣реЗ рдЖрдгрд┐ рддреБрдореНрд╣реА рддреНрдпрд╛рдЪреА рдкреНрд░рддрд┐рдХреГрддреА рдЖрдгрд┐ рд╢рд╛рд░реНрдбрд┐рдВрдЧ рд╕рд╣рдЬрдкрдгреЗ рд╕реЗрдЯ рдХрд░реВ рд╢рдХрддрд╛. рддреБрдореНрд╣реА рдлрдХреНрдд рддреНрдпрд╛рдЪ CouchDB рдЙрджрд╛рд╣рд░рдгрд╛рдордзреНрдпреЗ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рд╕рдВрдЧреНрд░рд╣ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛ рдЬреЗ рдлреЕрдмреНрд░рд┐рдХрдЪрд╛ рдЬрд╛рдЧрддрд┐рдХ рд╕реНрдерд┐рддреА рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рддреЗ. рдЖрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреА рдХрд╛рдЧрджрдкрддреНрд░реЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

{
 Status string // ╨б╤В╨░╤В╤Г╤Б ╤В╤А╨░╨╜╨╖╨░╨║╤Ж╨╕╨╕: "pending", "done", "failed"
 TxID: string // ID ╤В╤А╨░╨╜╨╖╨░╨║╤Ж╨╕╨╕
 Error: string // optional, ╤Б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╡ ╨╛╨▒ ╨╛╤И╨╕╨▒╨║╨╡
}

рд╣рд╛ рджрд╕реНрддрдРрд╡рдЬ рд╣рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдорд╡рдпрд╕реНрдХрд╛рдВрдирд╛ рдкрд╛рдард╡рдгреНрдпрд╛рдкреВрд░реНрд╡реА рдбреЗрдЯрд╛рдмреЗрд╕рд╡рд░ рд▓рд┐рд╣рд┐рд▓рд╛ рдЬрд╛рддреЛ, рдЬрд░ рд╣реЗ рдХреНрд░рд┐рдПрд╢рди рдСрдкрд░реЗрд╢рди рдЕрд╕реЗрд▓, рддрд░ рдПрдВрдЯрд┐рдЯреА рдЖрдпрдбреА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдкрд░рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ (рддреНрдпрд╛рдЪ рдЖрдпрдбреАрдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ) рдЖрдгрд┐ рдирдВрддрд░ рд╕реНрдерд┐рддреА, TxID рдЖрдгрд┐ рддреНрд░реБрдЯреА рдлреАрд▓реНрдб рдЖрд╣реЗрдд рд╕рдорд╡рдпрд╕реНрдХрд╛рдВрдХрдбреВрди рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рд╣рд┐рддреА рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реНрдпрд╛рдореБрд│реЗ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реЗ.

рд╡реНрд╣реАрд▓рд╕реЗрдЯрд╕рд╛рдареА рд╡рд┐рддрд░рд┐рдд рд▓реЗрдЬрд░: рд╣рд╛рдпрдкрд░рд▓реЗрдЬрд░ рдлреЕрдмреНрд░рд┐рдХрдЪрд╛ рдЕрдиреБрднрд╡

рдпрд╛ рдпреЛрдЬрдиреЗрдордзреНрдпреЗ, рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╢реЗрд╡рдЯреА рдмреНрд▓реЙрдХ рддрдпрд╛рд░ рд╣реЛрдгреНрдпрд╛рдЪреА рд╡рд╛рдЯ рдкрд╛рд╣рдд рдирд╛рд╣реА, 10 рд╕реЗрдХрдВрдж рд╕реНрдХреНрд░реАрдирд╡рд░ рдлрд┐рд░рдгрд╛рд░реЗ рдЪрд╛рдХ рдкрд╛рд╣рддреЛ, рддреНрдпрд╛рд▓рд╛ рд╕рд┐рд╕реНрдЯрдордХрдбреВрди рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рд╕рд╛рдж рдорд┐рд│рддреЛ рдЖрдгрд┐ рддреЛ рдХрд╛рд░реНрдп рдХрд░рдгреЗ рд╕реБрд░реВ рдареЗрд╡рддреЛ.

рдЖрдореНрд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реНрдерд┐рддреА рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА BoltDB рдирд┐рд╡рдбрд▓реЗ рдХрд╛рд░рдг рдЖрдореНрд╣рд╛рд▓рд╛ рдореЗрдорд░реА рд╡рд╛рдЪрд╡рд╛рдпрдЪреА рдЖрд╣реЗ рдЖрдгрд┐ рд╡реЗрдЧрд│реНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡реНрд╣рд░рд╕рд╣ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджрд╛рд╡рд░ рд╡реЗрд│ рд╡рд╛рдпрд╛ рдШрд╛рд▓рд╡рд╛рдпрдЪрд╛ рдирд╛рд╣реА, рд╡рд┐рд╢реЗрд╖рдд: рдЬреЗрд╡реНрд╣рд╛ рд╣рд╛ рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрд╛ рдордЬрдХреВрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд╛рдкрд░реВрди рд╣реЛрддреЛ. рддрд╕реЗ, рддреБрдореНрд╣реА рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдпреЛрдЬрдиреЗрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА CouchDB рд╡рд╛рдкрд░рдд рдЕрд╕рд▓рд╛рдд рдХрд┐рдВрд╡рд╛ рдлрдХреНрдд рдЬрд╛рдЧрддрд┐рдХ рд╕реНрдерд┐рддреА рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдд CouchDB рдордзреНрдпреЗ рдбреЗрдЯрд╛ рдХрд╕рд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рддреЗ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреЗ рдЕрд░реНрдердкреВрд░реНрдг рдЖрд╣реЗ. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, CouchDB рдордзреНрдпреЗ, b-рдЯреНрд░реА рдиреЛрдбреНрд╕рдЪрд╛ рдЖрдХрд╛рд░ 1279 рдмрд╛рдЗрдЯреНрд╕ рдЖрд╣реЗ, рдЬреЛ рдбрд┐рд╕реНрдХрд╡рд░реАрд▓ рд╕реЗрдХреНрдЯрд░ рдЖрдХрд╛рд░рд╛рдкреЗрдХреНрд╖рд╛ рдЦреВрдкрдЪ рд▓рд╣рд╛рди рдЖрд╣реЗ, рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЯреНрд░реА рд╡рд╛рдЪрдгреЗ рдЖрдгрд┐ рдкреБрдирд░реНрд╕рдВрддреБрд▓рд┐рдд рдХрд░рдгреЗ рдпрд╛ рджреЛрдиреНрд╣реАрд╕рд╛рдареА рдбрд┐рд╕реНрдХрд╡рд░ рдЕрдзрд┐рдХ рднреМрддрд┐рдХ рдкреНрд░рд╡реЗрд╢ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓. рдЗрд╖реНрдЯрддрдо рдЖрдХрд╛рд░ рдорд╛рдирдХрд╛рдВрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ рдкреНрд░рдЧрдд рд╕реНрд╡рд░реВрдк рдЖрдгрд┐ 4 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдЖрд╣реЗ. рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣рд╛рд▓рд╛ рдкреЕрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ btree_chunk_size рд╕рдорд╛рди 4096 CouchDB рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ. BoltDB рд╕рд╛рдареА рдЕрд╢рд╛ рдореЕрдиреНрдпреБрдЕрд▓ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА.

рдмреЕрдХрдкреНрд░реЗрд╢рд░: рдмрдлрд░ рдзреЛрд░рдг

рдкрд░рдВрддреБ рдмрд░реЗрдЪ рд╕рдВрджреЗрд╢ рдЕрд╕реВ рд╢рдХрддрд╛рдд. рдкреНрд░рдгрд╛рд▓реА рд╣рд╛рддрд╛рд│реВ рд╢рдХрддреЗ рддреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд, рдЖрдХреГрддреАрдордзреНрдпреЗ рджрд░реНрд╢рд╡рд┐рд▓реНрдпрд╛ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рдбрдЭрдирднрд░ рдЗрддрд░ рд╕реЗрд╡рд╛рдВрд╕рд╣ рд╕рдВрд╕рд╛рдзрдиреЗ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рдгреЗ - рдЖрдгрд┐ рд╣реЗ рд╕рд░реНрд╡ рдорд╢реАрдирд╡рд░ рджреЗрдЦреАрд▓ рдирд┐рд░реНрджреЛрд╖рдкрдгреЗ рдХрд╛рд░реНрдп рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ рдЬреНрдпрд╛рд╡рд░ Intellij Idea рдЪрд╛рд▓рд╡рдгреЗ рдЕрддреНрдпрдВрдд рддреНрд░рд╛рд╕рджрд╛рдпрдХ рдЕрд╕реЗрд▓.

рд╕рдВрдкреНрд░реЗрд╖рдг рдкреНрд░рдгрд╛рд▓реА, рдЙрддреНрдкрд╛рджрдХ рдЖрдгрд┐ рдЧреНрд░рд╛рд╣рдХ рдпрд╛рдВрдЪреНрдпрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдХреНрд╖рдорддреЗрдЪреА рд╕рдорд╕реНрдпрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕реЛрдбрд╡рд▓реА рдЬрд╛рддреЗ. рдЖрдкрдг рдХрд╛рдп рдХрд░реВ рд╢рдХрддреЛ рддреЗ рдкрд╛рд╣реВрдпрд╛.

рд╕реЛрдбрдд рдЖрд╣реЗ: рдЖрдореНрд╣реА рджрд╛рд╡рд╛ рдХрд░реВ рд╢рдХрддреЛ рдХреА рдЖрдореНрд╣реА T рд╕реЗрдХрдВрджрд╛рдд рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд X рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЖрд╣реЛрдд. рдпрд╛ рдорд░реНрдпрд╛рджреЗрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рд╡рд┐рдирдВрддреНрдпрд╛ рдЯрд╛рдХреВрди рджрд┐рд▓реНрдпрд╛ рдЖрд╣реЗрдд. рд╣реЗ рдЕрдЧрджреА рд╕реЛрдкреЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдирдВрддрд░ рдЖрдкрдг UX рдмрджреНрджрд▓ рд╡рд┐рд╕рд░реВ рд╢рдХрддрд╛.

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

рдмрдлрд░рд┐рдВрдЧ: рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдЪрд╛ рдкреНрд░рддрд┐рдХрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА, рдЖрдореНрд╣реА рд╣рд╛ рдкреНрд░рд╡рд╛рд╣ рдмрдлрд░ рдХрд░реВ рд╢рдХрддреЛ рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХ рд╡реЗрдЧрд╛рдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реВ рд╢рдХрддреЛ. рдЬрд░ рдЖрдореНрд╣рд╛рд▓рд╛ рдЪрд╛рдВрдЧрд▓рд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рджреНрдпрд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓ рддрд░ рдирдХреНрдХреАрдЪ рд╣рд╛ рд╕рд░реНрд╡реЛрддреНрддрдо рдЙрдкрд╛рдп рдЖрд╣реЗ. рдЖрдореНрд╣реА RabbitMQ рдордзреНрдпреЗ рд░рд╛рдВрдЧ рд╡рд╛рдкрд░реВрди рдмрдлрд░ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ.

рд╡реНрд╣реАрд▓рд╕реЗрдЯрд╕рд╛рдареА рд╡рд┐рддрд░рд┐рдд рд▓реЗрдЬрд░: рд╣рд╛рдпрдкрд░рд▓реЗрдЬрд░ рдлреЕрдмреНрд░рд┐рдХрдЪрд╛ рдЕрдиреБрднрд╡

рдпреЛрдЬрдиреЗрдордзреНрдпреЗ рджреЛрди рдирд╡реАрди рдХреНрд░рд┐рдпрд╛ рдЬреЛрдбрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд: (рез) API рд▓рд╛ рд╡рд┐рдирдВрддреА рдЖрд▓реНрдпрд╛рдирдВрддрд░, рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╣ рд╕рдВрджреЗрд╢ рд░рд╛рдВрдЧреЗрдд рдареЗрд╡рд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЛ рдХреА рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реНрд╡реАрдХрд╛рд░рд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ. рдкреНрд░рдгрд╛рд▓реА, (1) рдмреЕрдХрдПрдВрдб рд░рд╛рдВрдЧреЗрддреВрди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЧрддреАрдиреЗ рдбреЗрдЯрд╛ рд╡рд╛рдЪрддреЛ; рд╕реНрдЯреЗрдЯрд╕ рд╕реНрдЯреЛрдЕрд░рдордзреНрдпреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реБрд░реВ рдХрд░рддреЛ рдЖрдгрд┐ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЛ.
рдЖрддрд╛ рддреБрдореНрд╣реА рдлреЙрд░реНрдореЗрд╢рди рд╡реЗрд│ рд╡рд╛рдврд╡реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдкрд╛рд╕реВрди рд╡рд┐рд▓рдВрдм рд▓рдкрд╡реВрди рддреБрдореНрд╣рд╛рд▓рд╛ рдкрд╛рд╣рд┐рдЬреЗ рддрд┐рддрдХреА рдмреНрд▓реЙрдХ рдХрд░реВ рд╢рдХрддрд╛.

рдЗрддрд░ рд╕рд╛рдзрдиреЗ

рдЪреЗрдирдХреЛрдбрдмрджреНрджрд▓ рдпреЗрдереЗ рдХрд╛рд╣реАрд╣реА рд╕рд╛рдВрдЧрд┐рддрд▓реЗ рдЧреЗрд▓реЗ рдирд╛рд╣реА, рдХрд╛рд░рдг, рдирд┐рдпрдорд╛рдиреБрд╕рд╛рд░, рддреНрдпрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд╣реАрд╣реА рдирд╛рд╣реА. рдЪреЗрдирдХреЛрдб рд╢рдХреНрдп рддрд┐рддрдХреЗ рд╕реЛрдкреЗ рдЖрдгрд┐ рд╕реБрд░рдХреНрд╖рд┐рдд рдЕрд╕рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ - рдЗрддрдХреЗрдЪ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рд╣рдЬ рдЖрдгрд┐ рд╕реБрд░рдХреНрд╖рд┐рддрдкрдгреЗ рдЪреЗрдирдХреЛрдб рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕ рдорджрдд рдХрд░рддреЗ CCKit S7 рдЯреЗрдХрд▓реЕрдм рдЖрдгрд┐ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрдбреВрди ^CC рдкреБрдирд░реБрдЬреНрдЬреАрд╡рд┐рдд рдХрд░рд╛.

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдордЪрд╛ рдХрд╛рд░реНрдпрд╕рдВрдШ рдлреЕрдмреНрд░рд┐рдХрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ рд╕реЛрдкреЗ рдЖрдгрд┐ рдЖрдирдВрджрджрд╛рдпрдХ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрддрддреЗрдЪрд╛ рдПрдХ рд╕рдВрдЪ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдд рдЖрд╣реЗ: рдмреНрд▓реЙрдХрдЪреЗрди рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░, рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрддрддрд╛ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрджрд▓ (рд╕рдВрд╕реНрдерд╛ рдЬреЛрдбрдгреЗ/рдХрд╛рдврдгреЗ, RAFT рдиреЛрдбреНрд╕), рдпрд╛рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрддрддрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рд░рджреНрдж рдХрд░рдгреЗ рдЖрдгрд┐ рдУрд│рдЦ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреЗ. рдЖрдкрдг рдпреЛрдЧрджрд╛рди рджреЗрдК рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рдЖрдкрд▓реЗ рд╕реНрд╡рд╛рдЧрдд рдЖрд╣реЗ.

рдирд┐рд╖реНрдХрд░реНрд╖

рд╣рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрди рддреБрдореНрд╣рд╛рд▓рд╛ рдХреЛрд░рдо, рдЗрддрд░ рдЦрд╛рдЬрдЧреА рдЗрдерд░рд┐рдпрдо рдиреЗрдЯрд╡рд░реНрдХ (PoA рдХрд┐рдВрд╡рд╛ рдЕрдЧрджреА PoW) рд╕рд╣ рд╣рд╛рдпрдкрд░рд▓реЗрдЬрд░ рдлреЕрдмреНрд░рд┐рдХ рд╕рд╣рдЬрдкрдгреЗ рдмрджрд▓реВ рджреЗрддреЛ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдереНрд░реВрдкреБрдЯ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдХрдореА рдХрд░рддреЛ, рдкрд░рдВрддреБ рддреНрдпрд╛рдЪ рд╡реЗрд│реА рд╕рд╛рдорд╛рдиреНрдп UX (рдмреНрд░рд╛рдЙрдЭрд░рдордзреАрд▓ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рдЖрдгрд┐ рдПрдХрд╛рддреНрдорд┐рдХ рдкреНрд░рдгрд╛рд▓реАрд╕рд╛рдареА рджреЛрдиреНрд╣реА) рд░рд╛рдЦрддреЛ. рд╕реНрдХреАрдордордзреНрдпреЗ рдлреЕрдмреНрд░рд┐рдХрдЪреНрдпрд╛ рдЬрд╛рдЧреА рдЗрдерд░рд┐рдпрдо рд╡рд╛рдкрд░рддрд╛рдирд╛, рддреБрдореНрд╣рд╛рд▓рд╛ MVCC рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рдкрд╛рд╕реВрди рддреЗ рдЕрдгреВ рдиреЙрдиреНрд╕ рдЗрдиреНрдХреНрд░рд┐рдореЗрдВрдЯ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рдкрд╛рдард╡рдгреНрдпрд╛рдкрд░реНрдпрдВрдд рдкреБрдиреНрд╣рд╛ рдкреНрд░рдпрддреНрди рд╕реЗрд╡рд╛/рдбреЗрдХреЛрд░реЗрдЯрд░рдЪреЗ рддрд░реНрдХ рдмрджрд▓рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдмрдлрд░рд┐рдВрдЧ рдЖрдгрд┐ рд╕реНрдЯреЗрдЯрд╕ рд╕реНрдЯреЛрд░реЗрдЬрдореБрд│реЗ рдмреНрд▓реЙрдХ рдмрдирд╡рдгреНрдпрд╛рдЪреНрдпрд╛ рд╡реЗрд│реЗрдкрд╛рд╕реВрди рдкреНрд░рддрд┐рд╕рд╛рдж рд╡реЗрд│ рджреБрдкреНрдкрдЯ рдХрд░рдгреЗ рд╢рдХреНрдп рдЭрд╛рд▓реЗ. рдЖрддрд╛ рдЖрдкрдг рд╣рдЬрд╛рд░реЛ рдСрд░реНрдбрд░ рдиреЛрдбреНрд╕ рдЬреЛрдбреВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдШрд╛рдмрд░реВ рдирдХрд╛ рдХреА рдмреНрд▓реЙрдХреНрд╕ рдЦреВрдк рд╡реЗрд│рд╛ рддрдпрд╛рд░ рд╣реЛрддрд╛рдд рдЖрдгрд┐ рдСрд░реНрдбрд░рд┐рдВрдЧ рд╕реЗрд╡рд╛ рд▓реЛрдб рдХрд░рддрд╛рдд.

рдореБрд│рд╛рдд рдорд▓рд╛ рдПрд╡рдвреЗрдЪ рд╢реЗрдЕрд░ рдХрд░рд╛рдпрдЪреЗ рд╣реЛрддреЗ. рд╣реЗ рдПрдЦрд╛рджреНрдпрд╛рд▓рд╛ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХрд╛рдорд╛рдд рдорджрдд рдХрд░рдд рдЕрд╕рд▓реНрдпрд╛рд╕ рдорд▓рд╛ рдЖрдирдВрдж рд╣реЛрдИрд▓.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛