áááºá¹ááá¬áá«á áá»áœááºá¯ááºááẠDRD KP ááá±á¬áá»ááºá á¡ááœá²á·ááœáẠá¡áá¯ááºáá¯ááºáá«ááẠ(áá®ážá¡á
á¯á¶áá»á¬ážá ááá
ááºáááºážááᯠá
á±á¬áá·áºááŒáá·áºáááºá¡ááœáẠááŒáá·áºáá±áá¬ážáá±á¬ áá±áá¬ááŸááºáá¯á¶áááºááŒááºáž)á á€áá±áá¬ááœáẠáá»áœááºá¯ááºááẠáááºážááá¬áááá·áºáááºáá»ááºáá»á¬ážá¡á±á¬ááºááœáẠá€ááá±á¬áá»ááºá¡ááœáẠáá¯ááºáááºáž blockchain áá
áºáá¯ááᯠáá®ááœááºáá¬ááœáẠáá»áœááºá¯ááºááá¯á·áá¡ááœá²á·áá¡ááœá±á·á¡ááŒá¯á¶ááᯠáá»áŸáá±ááá¯áá«áááºá á¡áá»á¬ážá
á¯á¡ááœááºá áá»áœááºá¯ááºááẠHyperledger Fabric á¡ááŒá±á¬ááºážááŒá±á¬áá±áááºááŒá
áºáá±á¬áºáááºážá á€áá±áá¬ááœááºáá±á¬áºááŒáá¬ážáá±á¬áá»ááºážáááºááŸá¯áááºááœáá·áºááŒá¯áá»ááºá blockchain áá
áºáá¯áá¯á¡ááœáẠá¡ááá¯áá»á²á·ááœááºááá¯ááºáááºá áá»áœááºá¯ááºááá¯á·ááá¯áá±ááááŒá¯ááŸá¯áá¡áá¯á¶ážá
áœááºáááºážááá¯ááºááŸá¬ á
á®ážááœá¬ážáá±ážáá¯ááºáááºážááá¯ááºáᬠblockchain ááŒá±ááŸááºážáá»ááºáá»á¬ážááᯠááŒááºáááºáááºááŒá
áºááŒá®áž áá±á¬ááºáá¯á¶ážáá¯ááºáá¯ááºááẠá¡áá¯á¶ážááŒá¯áá¡áááºááŒá±ááŒá®áž ááááºážááááºážááááºáá²áá±á¬áááºážáááºážááŒáá·áº ááŒááºáááºáááºááŒá
áºáááºá
ááŸá¬ááœá±ááœá±á·ááŸáááŸá¯áá»á¬ážá ááá»áŸá±á¬áºááá·áºáá¬ážáá±á¬ ááŒá±ááŸááºážáá»ááºáá»á¬ážááŸáá·áº áá°ážááŒá¬ážáá±á¬ááá¯ážáááºááŸá¯áá»á¬ážááᯠá€áá±áá¬ááœáẠáá¯á¶ážá¡á¯ááºáá¬ážáááºááá¯ááºáá« (áá»áœááºáá±á¬á·áºááœáẠáááºážááá¯á·áááŸááá±á¬ááŒá±á¬áá·áº)á áá»áœááºá¯ááºááẠáá»áœááºá¯ááºá ááŸááá·áºáá»áá±á¬á¡ááœá±á·á¡ááŒá¯á¶ááᯠáá»áŸáá±ááá¯áááºá "ááŒá
áºááá¯ááºáááº" ááá¯ááŒáááŒá®áž áá±á¬ááºážáá±á¬áá¯á¶ážááŒááºáá»ááºáá»á¬ážáá»áá¬ááœáẠá¡ááŒá¬ážáá°áá¡ááœá±á·á¡ááŒá¯á¶á¡ááŒá±á¬ááºáž ááŸááºáá»ááºáá»á¬ážááœáẠáááºááŸá¯ááá¯ááºáá«áááºá
ááŒá¿áá¬- blockchains áá»á¬ážááẠá¡ááœááºá¡á á¬áž ááá±ážáá«á
ááá±á·ááœááºá developer á¡áá»á¬ážá¡ááŒá¬ážáááŒáá¯ážáááºážá¡á¬ážáá¯ááºááŸá¯ááẠblockchain ááá¯ááááºá¡áááºááŒá±áá±á¬áááºážááá¬áá áºáá¯ááŒá áºá á±áááºáááºááœááºáááºá ááŸááá±á¬áá¯ááºááá¯ážááŸá¯ááœááºá¡áá»áááºááá¯ááºáá¯á¶ážááá¯ááºáá±á ááŒááºáááºáá»ááºáááºáá»á¬ážá á¡áá±á¬ááºážááŒááºá ááẠá á¯á ááºážááŸá¯á ááá¬á áá¬ááŸáá·áº ááœá²ááŒááºážá áááºááŒá¬ááŸá¯áá»á¬ážááẠáá¬áááºá¡ááŒá áºáá»á¬áž ááŒá áºáá¬ááá¯ááºáááºá áá áºáá±á·áá áºáá»áá¯ážá ááá¯á·ááá¯áẠTON ááẠááœáŸááºáááºááŸá¯ááᯠááŒá±á¬ááºáááŒá¬ áááºáá¶ááœáŸá±á·ááá¯ááºážáááºááŒá áºááŒá®áž áá±á¬áẠPlasma Group ááẠáááºááŸááá±á¬á·áááºááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá¬ážáá±á¬ áááºážááŒááŒá±áá¯á¶ááᯠáá¯á¶ááŒááºááá¯ááºááŒá®áž ááááºááœáẠáá±á¬ááºááá±á¬ á á¬ááœááºááŒá°á á¬áááºážáá»á¬ážááᯠáááºááá¯ááºáá±á¬áºáááºážá á€ááœááºááŸáá·áº ááᯠáá»áœááºá¯ááºááá¯á·ááœáẠáá áºáá¯áá¯ááᯠáá¯ááºáá±á¬ááºááẠááá¯á¡ááºáá«áááºá á áááºáá áºá áá¬ááœá± ááŒá®ážá¡á±á¬ááºáá¯ááºáá«á
áááºááŸáááá±á¬áá»ááºááœáẠáá»áœááºá¯ááºááá¯á·áá¡ááœá²á·á¡á¬áž áá±ážá¡ááºááá·áºáá¬áááºááŸá¬ áá±áá¯áá»á¡á¬ážááŒáá·áº á€áá²á·ááá¯á·ááŒá áºáááº- áá¬áá¬áááºáá»á¬ážá áœá¬ááŸáááŒá®ážá áá±á¬ááºááŸáá·áºáá»á®áá±á¬á áá¯á¶ááŒááºááŸá¯á¡áá±á«áº áááºáá¶áá±ážááááºáá±á¬ááºááá¯áá±á¬ áá¬áá¬áááºáá»á¬ážá áœá¬ááŸááá«áááºá á¡áá°ážá áœááºážáá±á¬ááºááẠáááºááŸááºáá»ááºáá»á¬áž áááá¯á¡ááºáá² áá¬ááẠPC áá»á¬ážááœáẠá¡áá¯ááºáá¯ááºááá¯ááºááŒá®áž áááá¯áá»á¯ááºááá¯ááºááŸá¯ááŸááá±á¬ á á¬áááºážááá¯ááºá áá áºáá»á¬ážááẠááá¯ááá¯ážááŒááºážáááŸááá±á¬ áá¯á¶ážá áœá²áá°á¡ááœá±á·á¡ááŒá¯á¶ááᯠáá±ážáá±á¬ááºááá·áº DLT ááŒá±ááŸááºážáá»ááºáá áºáá¯ááᯠáááºáá±á¬ááºááẠááá¯á¡ááºáá«áááºá ááŒá±ááŸááºážáá»ááºáá±á¬ááºááœááºááŸááááºážááá¬ááẠá¡áá¹ááá¬ááºááŸááá±á¬áá±áá¬ááᯠááá¯ááºááœááºááŒá±ááŸááºážááá¯ááºááŒá±ááᯠáá»áŸá±á¬á·áá»ááá·áºááẠ- ááá¯á·ááŒá±á¬áá·áº blockchain ááẠá€áá±áá¬ááœáẠááŸááá±áá«áááºá
á áá¹áá°ááŒá°áá»á¬ážááŸáá·áº áá®áá®áá¬áá»á¬ážá០ááŒáœá±ážááŒá±á¬áºáá¶áá»á¬ážá áá¬ááá·áº ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááẠáá áºá áá¹ááá·áºáá»áŸáẠááœá±áá±ážááœá±áá° áááºážáá±á«ááºážáá»á¬ážá áœá¬ááᯠááœáá·áºááŒá¯áá±ážáááºáᯠáááááŒá¯áá«áááºá ááááºá áá¬áá²?
Mainnet Ethereum ááẠáááºááŸáááœáẠ~ 30 tps ááŒáá·áº áá¯ááºáá±á¬ááºáá±áááºá á€á¡áá¬áá
áºáá¯áááºážááŒá±á¬áá·áºá áá±á¬áºááá¯ááááºááá¯á¡ááºáá»ááºáá»á¬ážá¡ááœááºáááºááá·áºáááºážáááºážááŒáá·áºáááá¯ááá·áºáá»á±á¬áºáá±á¬ blockchain áá
áºáá¯á¡ááŒá
áºáá¬ážáááºáááºáááºáá²áááºá ááœáá·áºááŒá¯áá¬ážáá±á¬ááŒá±ááŸááºážáááºážáá»á¬ážáá²ááœáẠ2000 tps ááŒáááá·áº á
á¶áááºááŸááºáá»ááºáá»á¬ážááᯠááááŸáááẠ(
latency
ááœá±áá±ážááœá±áá°áá áºáá¯á áááºááá·áºá¡áá»áááºááŸá ááŒá®áž á áá áºááá±á¬ááºáá¯á¶ážá¡áááºááŒá¯áá»ááºá¡áá ááŒáá·áºááŒá¬ááŸá¯ááẠááá¬ážáááºá¡áááºááŒá¯ááŒááºážááŸáá·áº ááŸá¬áá°ááŒááºážá¡ááá·áºá¡á¬ážáá¯á¶ážááœáẠááŒááºáááºážááœá¬ážáá±á¬ áááºáá±á·áá»áºáá¡ááŒááºááŸá¯ááºážáá±á«áºááœááºáá¬áá ááááºááá¯á·ááœá²á·á ááºážááŒááºážááá¯ááºáᬠááá·áºáááºáá±á¬ááºáá»á¬ážáá±á«áºááœááºáááºáž áá°áááºáá«áááºá áá»áœááºá¯ááºááá¯á·á blockchain ááẠáá»áœááºá¯ááºááá¯á·á¡á¬áž tps 1000000 ááŒáá·áº áááááŒá¯ááœáá·áºááŒá¯áá»áŸááºáááºá ááá¯á·áá±á¬áº 10MB ááá±á¬ááºáá áºáá¯ááœá²á·á ááºážááẠáá áááá áºá¡áá»áááºáá°ááá»áŸáẠáá»áœááºá¯ááºááá¯á·á¡ááœáẠááá¯ááá¯ááœááºáá°áá¬áááºáá¬ážá
á¡áá»áááºáá°áááá·áºá¡áá¬ááŸáá·áº ááááºááá¯á·ááœá²á·á ááºážááŒááºážááá¯ááºáᬠááá·áºáááºáá±á¬ááºáá»á¬ážááŸáá·áº áááºááá¯á·áááºá ááºááŒá±á¬ááºáž áá¬ážáááºááẠHyperledger Fabric ááœáẠááœá±áá±ážááœá±áá°ááááá¶ááá¬ááᯠá¡áá®ážáááºááŒáá·áºááŸá¯ááŒáá«á áá¯á·á
áá®ááá±áá°áááºá:
(1) áá±á¬ááºáááºááẠááœá±áá±ážááœá±áá°áá¯á¶á á¶ááŒá¯áá¯ááºáᬠáá±á¬ááºáá¶ááá·áºáá¯ááºáá±á¬áºááá¯ááºáááºáá»á¬ážáᶠáá±ážááá¯á·áá¬á áá±á¬ááºááá¯ááºážááœáẠááœá±áá±ážááœá±áá°ááᯠáá¯á¶á á¶áá°áá¯ááºáá« (ááœááºážáááºáá¯ááºááŒáá·áº ááŒá¯áá¯ááºáá¬ážáá±á¬ á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáááºááŸáá¡ááŒá±á¡áá±ááœáẠá¡áá¯á¶ážááŒá¯áá±á¬áºáááºáž áááºáá»á¬ááœáẠááá»á°ážááœááºáá«ááŸáá·áº) RWset ááᯠáááºáá¶áááŸáááẠ- áá±á¬á·á¡áááºáá»á¬ážá áá¬ážááŸááºážáá»á¬ážááŸáá·áº CouchDB ááŸá á á¯áá±á¬ááºážááŸá¯á០ááá°áá¬ážáá±á¬ áááºááá¯ážáá»á¬ážá (á) áá±á¬ááºáá¶áá°áá»á¬ážááẠáááºááŸááºáá±ážááá¯ážáá¬ážáá±á¬ RWSet ááᯠclient ááá¯á· ááŒááºáááºáá±ážááá¯á·áááºá (á) client ááẠááá¯á¡ááºáá±á¬ áááºáá°ááœááºáá°áá»á¬áž (áá±á¬ááºáá¶áá°áá»á¬áž) á áááºááŸááºáá»á¬ážááᯠá á áºáá±ážááŒá®áž ááœá±áá±ážááœá±áá°ááᯠá¡á±á¬áºáá«áááºááá·áº áááºáá±á¬ááºááŸá¯ááá¯á· ááá¯á·áá±ážáááºá ááá¯á·ááá¯áẠá¡áááºááŒá¯ááŒááºážáááŸááá² áá±ážááá¯á·ááŒááºáž (á¡áááºááŒá¯áá»ááºááẠáá±á¬ááºááá¯ááºážááœáẠáááºáááºááŒá áºáá±á«áºáá±áŠážáááº)á ááŸá¬áá°ááŒááºážáááºáá±á¬ááºááŸá¯ááẠááááºááá¯á·ááŒááºážáá¯á¶á á¶ááŒá áºááŒá®áž (á) áá±á¬ááºáá¶áá°áá»á¬ážáá¬áá áááºáá°ááœááºáá°áá»á¬ážá¡á¬ážáá¯á¶ážáá¶ááá¯á· ááŒááºáááºáá±ážááá¯á·áá«áááºá ááœááºáá°áá»á¬ážááẠread set ááŸá áá±á¬á·áá»á¬ážá áá¬ážááŸááºážáá»á¬ážááẠáá±áá¬áá±á·á áºááŸá áá¬ážááŸááºážáá»á¬ážááŸáá·áº ááá¯ááºáá®ááŸá¯ááŸááááŸáá áá±á¬ááºáá¶áá°á¡á¬ážáá¯á¶ážá áááºááŸááºáá»á¬ážááᯠá á áºáá±ážááŒá®áž áá±á¬ááºáá¯á¶ážááœáẠááá±á¬ááºááᯠáá»á°ážááœááºáá«áááºá
áá«ááœá±á¡á¬ážáá¯á¶ážáá±á¬á· ááá¯ááºáá«áá°ážá âá¡áááá·áºáá±ážáá°ááẠááááºááá¯á·ááŒááºážááœá²á·áááºâ áá°áá±á¬ á áá¬ážáá¯á¶ážáá»á¬ážá áá±á¬ááºááœááºááœáẠá¡áá±á¬ááºážá¡áááºááŒá¯áá¯ááºááŒááºážáá¬áá áá±á«ááºážáá±á¬ááºáá¶á០áá±á¬ááºááá¯ááºáá»á¬ážááŸáá·áº áá±á¬ááºááá¯ááºáá»á¬ážáᶠáááºááá¯áẠááœááºáááºáá±á¬ááºážááá¯ááŸá¯ 3 ááŒáááºááá¯áááºáž ááŸááºáá¬ážáá«áááº- áá±á«ááºážáá±á¬ááºááẠááŸááºáááºážááá¯á· áááºáá±á·áá»áºááá·áºáááºá áá±á¬ááºááá¯ááºáá»á¬ážáᶠáá±ážááá¯á·áááºá áá±á¬ááºáá¯á¶ážááœáẠáááºááá·áºáááºá áááºážááá¯á·áááŸááºáááºážá áá±á«ááºážáá±á¬ááºáá¶ááá¯á· á¡á±á¬ááºááŒááºáá±á¬áá¯á¶áá°ááœá¬ážááŒááºážáá¡áááºááŒá¯áá»ááºááᯠáá±ážááá¯á·áá«á áá±á«ááºážáá±á¬ááºááẠáááºáá±á·áá»áºááᯠáááááŒá¯áááºá áá±á¬ááºááá¯ááºáá»á¬ážáᶠá¡áááºááŒá¯áá»ááºáá±ážááá¯á·áááºá áá±á¬ááºááá¯ááºáá»á¬ážá áááááŒá¯áááºá ááá±á¬ááºá¡ááœááºá¡á á¬ážááŸáá·áº á¡áá»ááẠáá±ážáááºáá±á á¡á±á¬áºáá«ááŸá¬áá±á¬ áááºáá±á¬ááºááŸá¯ááẠá¡áá»á¬ážááá¹áááᯠáááŒá¬áá áá»ááŸááºááá±áá±á. Hyperledger Fabric ááœáẠááá±á¬ááºááœá²á·á ááºážááŒááºážááá¯ááºáᬠááá·áºáááºáá»ááºááŸá áºáá¯áá«ááŸááááº- BatchTimeout - ááááºááá¯á·ááœá²á·á ááºážáá»áááºááŸáá·áº BatchSize - ááááºááá¯á·ááŒááºážá¡ááœááºá¡á á¬áž (ááœá±áá±ážááœá±áá°á¡áá±á¡ááœááºááŸáá·áº ááá¯ááºáá»á¬ážááá¯ááºááá¯ááºááŒá¯áá¯ááºáá¬ážáá±á¬ ááááºááá¯á·ááá·áºá¡ááœááºá¡á á¬áž)á ááá·áºáááºáá±á¬ááºáá»á¬ážáá²ááŸáá áºáá¯ááẠááá·áºáááºáá»ááºááá¯á·áá±á¬ááºááŸááááºááŸáá·áºáá áºááŒáá¯ááºáááºá ááááºááá¯á·ááŒááºážá¡áá áºáá áºáá¯áá¯ááºáá±ážáááºá á¡ááŸá¬á ᬠnode áá»á¬ážáá±á áááºážááẠááŒá¬áá±ááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áº BatchTimeout ááŸáá·áº BatchSize ááá¯ááá¯ážááŒáŸáá·áºáááºááá¯á¡ááºáááºá RWSets áá»á¬ážááᯠáá¬ážááŸááºážááŒá±á¬ááºážáá¬ážáá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠááááºááá¯á·ááŒááºážááᯠááá¯ááŒá®ážáá±á MVCC áááááá¹ááá»á¬áž ááŒá áºááá¯ááºááŒá± ááá¯áá»á¬ážáá±ááŒá áºáááºá ááá¯á·á¡ááŒááºá BatchTimeout ááá¯ážáá¬áááºááŸáá·áºá¡áá»áŸ UX ááẠáá±ážá¥áááºááŒá áºá á±áááºá á€ááŒá¿áá¬áá»á¬ážááá¯ááŒá±ááŸááºážááẠá¡á±á¬ááºáá«á¡á á®á¡á á¥áºááẠáá»áá¯ážááŒá±á¬ááºážáá®áá»á±á¬áºááŒá®áž áááá¬áááºááŸá¬ážáááºáᯠáá»áœááºá¯ááºáááºááŒááºáá«áááºá
ááááºááá¯á·ááŒááºáž á¡ááŒá®ážáááºááŒááºážááᯠá á±á¬áá·áºááá¯ááºážááŒá®áž ááœá±áá±ážááœá±áá° á¡ááŒá±á¡áá±ááᯠááŒá±áá¬áá¶ááá»á±á¬ááºá á±ááẠáááºááá¯á·ááŒá¯áá¯ááºáááºáááºážá
ááœá²á·á ááºážáá»áááºááŸáá·áºááááºááá¯á·á¡ááœááºá¡á á¬ážááá¯ááŒá¬áá±á blockchain áááŒááºáááºážááŸá¯ááá¯ááá¯ááŒáá·áºáá¬ážáááºá áá áºáá¯á á¡ááŒá¬ážáá áºáŠážáá¶á០ááá¯ááºááá¯ááºáááá¯ááºáá¬áá±á¬áºáááºáž RAFT ááœáẠá¡áá»á¬ážááá¹áááᯠáá»ááŸááºáá¬ááœáẠáá±á«ááºážáá±á¬ááºáá¶á០áá±á¬ááºááá¯ááºáá»á¬ážááŸáá·áº áá±á¬ááºááá¯ááºáᶠááœááºáááºáá±á¬ááºážááá¯áá»ááºáá¯á¶ážáᯠááá¯á¡ááºááŒá±á¬ááºáž ááááááá·áºáááºá á¡ááŸá¬á ᬠnode áá»á¬ážáá±á ááŒá¬áá± ááá¯ááŒá¬áá±ááŒá áºáááºá ááááºááá¯á·ááœá²á·á ááºážááŸá¯á á¡ááœááºá¡á á¬ážááŸáá·áº á¡áá»ááẠáá±ážáááºáá±á ááá¯ááá¯á·áá±á¬ á¡ááŒááºá¡ááŸááºáááºááœááºááŸá¯áá»á¬áž ááá¯áá»á¬ážáá±ááŒá áºáááºá á¡áá¯á¶ážááŒá¯áá°á¡ááœáẠá áá áºáá¯á¶á·ááŒááºáá»áááºááᯠáááá¯ážááŒáŸáá·áºáá² ááœá²á·á ááºážáá»áááºááŸáá·áº ááááºááá¯á·á¡ááœááºá¡á á¬ážááᯠáááºááá¯á·ááá¯ážááŒáŸáá·áºáááºáááºážá
ááááŠážá áœá¬á áááºááẠáá°áá®áá±á¬áá¬ážááŸááºážááŸáá·áº ááá°áá®áá±á¬ RWSets áá»á¬ážáá«áááºááá¯ááºááá·áº ááŒá®ážáá¬ážáá±á¬ááááºááá¯á·á¡ááœááºá¡á á¬ážááŒá±á¬áá·áº ááŒá áºáá±á«áºáá¬áá±á¬ MVCC áááááá¹ááá»á¬ážááᯠáá áºáááºážáááºážááŒáá·áº ááŒá±ááŸááºážááẠááá¯á¡ááºáááºá áááá¬áááºááŸá¬ážáááºáá client áááºááœáẠ(blockchain ááœááºáááºááŸáá·áºá ááºáá»ááºážá áááºážááẠbackend ááŒá áºááá¯ááºáááºá áá«ááá¯ááá¯áááº) MVCC áááááá¹áááá¯ááºááœááºáá°áá®ážááŒá¬ážáááºáá±á¬ááºááŸá¯áá áºáᯠááá¯á·ááá¯áẠáá¯á¶ááŸááºá¡ááŸáááºáá°ááŒá áºááá¯ááºáááº
áááºá ááºážááŒáá·áºááŒááºážá¡á¬áž á¡ááœáŸááºážááááºážáá»á°áá¬áá áºáá¯ááŒáá·áº á¡áá±á¬ááºá¡áááºáá±á«áºááá¯ááºáá±á¬áºáááºážá ááá¯á·áá±á¬ááºááœáẠlatency áááºáááºáž á¡áááºááááºážáá»á±á¬á·ááœá¬ážáá«áááºá ááá¯á·ááŒá±á¬áá·áº áááºááẠá¡áá»áá¯á·áá±á¬ ááá·áºáááºáá»ááºáá±ážáá»á¬ážá¡ááœááºáž ááá¯á·ááá¯áẠááááºážáá±áá áºáá¯á¡ááœááºáž áá»áááºážááŒááºá ááºážááŒááºážááᯠáá¯á¶ážááá·áºáááºá ááááá°ááœá²ááœáẠáá¬ááºááá¯ááºááŸá¯ááŒá áºááá¯ááºáá»á±ááᯠáá»ááºá áááŒáá·áºááŒáá·áºáá«á
áá±á¬ááºáá
áºááá·áºááŸá¬ áá»áœááºá¯ááºááá¯á·ááẠBatchTimeout á¡ááŒá
ẠáááºááŸááºááá·áº 15á 30 ááá¯á·ááá¯áẠ10000000 á
áá¹ááá·áºááᯠáá
á±á¬áá·áºáá² á
áá
áºááŸáá·áº áá±á¬ááºáááºá á¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºááŸá¯ááᯠáááŒáá¯ááºáááºáááºážááŒá
áºá¡á±á¬áẠááŒá¯áá¯ááºáááºááŒá
áºáááºá ááá¯á·áá±á¬áºáá
áºáá»áááºáááºážááŸá¬áááºá á¡áá±á¬ááºážá¡ á ááºááŸá
áááºáá±á¬á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠblockchain ááœááºááŸááºáááºážáááºáá¬ážááẠ/ áááŸááºáááºážáááºáá¬ážááŒá±á¬ááºážáá±áá»á¬á
á±áááºá
áœááºážáááºááá¯ááááºážááááºážáá¬ážáááºááá¯á¡ááºáááºá
á¡áá±á¬ááºážá¡áááºáá»á¬ážá á¡ááŒá±á¡áá±ááᯠááááºážáááºážááẠáá±áá¬áá±á·á
áºááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá á¡ááœááºáá¯á¶ážááœá±ážáá»ááºááŸá¯ááŸá¬ CouchDB ááẠáááºážáá¡áá¯á¶ážááŒá¯áááœááºáá°ááŒááºážááŒá±á¬áá·áºááŒá
áºáááº- áá±áá¬áá±á·á
áºááœáẠá¡ááœááºá¡ááŒááºááŸá UI áá
áºáá¯á REST API áá«ááŸáááŒá®áž áááºážá¡ááœáẠáá¯á¶áá°áá°ážáá»ááŒááºážááŸáá·áº ááœá²ááŒááºážááŒááºážááá¯á·ááᯠá¡ááœááºááá° áááºááŸááºááá¯ááºáááºá Fabric ááẠáááºážáááá¹áá¬á·á¡ááŒá±á¡áá±ááᯠááááºážáááºážááẠá¡áá¯á¶ážááŒá¯ááá·áº CouchDB ááŒá
áºáááºááœáẠáá®ážááŒá¬ážá
á¯á
ááºážááŸá¯áá
áºáá¯ááᯠáááºáá®ážááá¯ááºáááºá áá®ááá¯áá»áá¯áž á
á¬ááœááºá
á¬áááºážááœá±ááᯠááááºážáááºážáá¬ážááá¯á· ááá¯áá«áááºá
{
Status string // СÑаÑÑÑ ÑÑаМзакÑОО: "pending", "done", "failed"
TxID: string // ID ÑÑаМзакÑОО
Error: string // optional, ÑППбÑеМОе Пб ПÑОбке
}
ááœá±áá±ážááœá±áá°ááᯠááœááºáá°áá»á¬ážáᶠáááá¯á·áá® á€á á¬ááœááºá á¬áááºážááᯠáá±áá¬áá±á·á áºááá¯á· áá±ážááŸááºáá¬ážááŒá®ážá á¡ááœá²á·á¡á ááºáž ID ááᯠá¡áá¯á¶ážááŒá¯áá°áᶠááŒááºááá¯á·áá±ážááẠ(ááᯠID ááᯠáá±á¬á·áá áºáá¯á¡áá±ááŒáá·áº á¡áá¯á¶ážááŒá¯áááº) áááºážááẠáááºáá®ážááŸá¯áá¯ááºáá±á¬ááºááŸá¯áá áºáá¯ááŒá áºááŒá®ážá ááá¯á·áá±á¬áẠá¡ááŒá±á¡áá±á TxID ááŸáá·áº á¡ááŸá¬ážá¡ááœááºážá¡ááœááºáá»á¬ážááẠáááºáá°ááœááºáá°áá»á¬ážáá¶á០áááŸáááá·áº áááºááá¯ááºáᬠá¡áá»ááºá¡áááºáá»á¬ážááᯠá¡ááºááááºáá¯ááºáá¬ážáááºá
á€á¡á
á®á¡á
á¥áºááœááºá á¡áá¯á¶ážááŒá¯áá°ááẠáá±á¬ááºáá¯á¶ážááœáẠááá±á¬ááºáá¯á¶á
á¶ááŒá
áºáá¬ááẠáá
á±á¬áá·áºáá²á áááºáá¬ážááŒááºáá±á«áºááœáẠáááºáááºáá±áá±á¬áá®ážááᯠ10 á
áá¹ááá·áºááŒá¬ááŒáá·áºááŸá¯áá¬á áá°ááẠá
áá
áºááŸáá»ááºáá»ááºážáá¯á¶á·ááŒááºááŸá¯ááᯠáááŸáááŒá®áž áááºáááºáá¯ááºáá±á¬ááºáá±áá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠááŸááºáá¬ááºááááºážáááºážááẠááá¯á¡ááºááŒá®áž áá®ážááá·áºáá±áá¬áá±á·á
áºáá¬áá¬ááŸáá·áº ááœááºáááºá¡ááŒááºá¡ááŸááºáááºááœááºááŸá¯ááœáẠá¡áá»áááºáááŒá¯ááºážáá»ááºáá±á¬ááŒá±á¬áá·áº á¡áá±á¬ááºážá¡áááºá¡ááŒá±á¡áá±áá»á¬ážááᯠááááºážáááºážááẠBoltDB ááᯠááœá±ážáá»ááºáá²á·áááºá á
áá¬ážáá
ááºá áááºááẠá¡áááºáá±á¬áºááŒáá« á¡á
á®á¡á
ááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠCouchDB ááᯠá¡áá¯á¶ážááŒá¯áááºááŒá
áºá
á± ááá¯á·ááá¯áẠááá¹áá¬á·á¡ááŒá±á¡áá±á¡á¬áž ááááºážáááºážáááºá¡ááœááºáááºááŒá
áºá
á±á áááºááá¯á·áááºááá¯á
á±á CouchDB ááœáẠáá±áá¬ááááºážáááºážáááºážááᯠá¡áá±á¬ááºážáá¯á¶ážááŒá
áºá¡á±á¬áẠááŒá¯áá¯ááºááẠááá·áºáá»á±á¬áºáááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áº CouchDB ááœááºá b-tree nodes áá»á¬ážá á¡ááœááºá¡á
á¬ážááẠdisk áá±á«áºááŸá ááá¹áá¡ááœááºá¡á
á¬ážááẠáá»á¬ážá
áœá¬áááºážáá±á¬ 1279 bytes ááŒá
áºáááºá ááá¯ááá¯áááºááŸá¬ áá
áºáááºááá¯áááºááŸá¯ááŒááºážááŸáá·áº ááŒááºáááºáá»áááºááŸáááŒááºážááŸá
áºáá¯á
áá¯á¶ážááẠáá¯ááºááá¯ááºážááá¯ááºáá¬áá
áºááºáááºáá±á¬ááºááœáá·áºáá»á¬áž ááá¯ááá¯ááá¯á¡ááºáááºááŒá
áºáááºá á¡áá±á¬ááºážáá¯á¶ážá¡ááœááºá¡á
á¬ážááẠá
á¶áááºááŸááºáá»ááºááŸáá·áº ááá¯ááºáá®áááºá
Backpressure- ááŒá¬ážáá¶áá»á°áá¬
áá«áá±ááá·áº áááºáá±á·áá»áºááœá±á¡áá»á¬ážááŒá®ážááŸáááá¯ááºáá«áááºá á áá áºá á áœááºážáá±á¬ááºááá¯ááºáááºááẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠáá¯á¶ááœááºááŒáá¬ážááá·áºá¡áá¬áá»á¬ážá¡ááŒáẠá¡ááŒá¬ážáááºáá±á¬ááºááŸá¯áá áºáá«áááºááŸáá·áº áá»áŸáá±ááŒááºáž - á€á¡áá¬á¡á¬ážáá¯á¶ážááẠIntellij Idea áááºáááºáá±ááá·áº á ááºáá»á¬ážááœááºááẠáá»áœááºááœááºážáá»ááºáááŸá á¡áá¯ááºáá¯ááºááá·áºáááºá
ááœá²ááŒá¬ážáá±á¬ áááºááœááºááŸá¯á áá áºáá»á¬ážá áá¯ááºáá¯ááºáá°ááŸáá·áº á á¬ážáá¯á¶ážáá°áá»á¬ážá ááŒá¿áá¬ááᯠááá°áá®áá±á¬ áááºážáááºážáá»á¬ážááŒáá·áº ááŒá±ááŸááºážáááºá áá«ááá¯á·áá¬áá¯ááºááá¯ááºáá² ááŒáá·áºáá¡á±á¬ááºá
áá»áááºážáá±áááº: T á áá¹ááá·áºá¡ááœááºáž X á¡áá±á¬ááºážá¡áááºá¡áá»á¬ážá á¯ááᯠáá¯ááºáá±á¬ááºááá¯ááºáááºáᯠáá»áœááºá¯ááºááá¯á·áá±á¬ááºážááá¯ááá¯ááºáá«áááºá á€ááá·áºáááºáá»ááºáááºáá»á±á¬áºááœááºáá±á¬ áá±á¬ááºážááá¯ááŸá¯á¡á¬ážáá¯á¶ážááᯠáá¯ááºááááºážááá¯ááºáá«áááºá áá«áᬠáá±á¬áºáá±á¬áºááá¯ážááŸááºážáá±ááá·áº UX ááᯠáá±á·ááœá¬ážááá¯ááºáá«áááºá
ááááºážáá»á¯ááºááŒááºáž: áá¯á¶ážá áœá²áá°ááẠáááºáá±á«áº áá°áááºá áá¯ááºáá¯ááºáá°á tps ááᯠááááºážáá»á¯ááºááá¯ááºáá±á¬ á¡áá»áá¯á·áá±á¬ á¡ááºáá¬áá±á·á ẠááŸáááá«áááºá áááá¯ážáá±á¬áºáááºáž áááºážááẠá€á¡ááºáá¬áá±á·á áºááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºááẠload client á developer áá»á¬ážáá¶ááœáẠáá¬áááºáá áºáá¯áá»ááŸááºáá¬ážáááºá á¡áá¬áááºááœáẠblockchain ááẠáá¬áááŒá¬ááŸááºáááºáá²á áá áºáá»á¬ážá áœá¬ááœáẠáá±á«ááºážá ááºážááœá¬ážáááºááŒá áºáá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·á¡ááœááºá áááºážááẠáááºááá¶ááá¯ááºáá«á
á¡ááŸáááºáá»á±á¬á·áá±áááº: ááá·áºááœááºážáá±áá¬á á®ážááŒá±á¬ááºážááᯠááœááºážááŸááºááẠááŒá¶ááœááºááá·áºá¡á á¬ážá áá»áœááºá¯ááºááá¯á·ááẠá€á á®ážááŒá±á¬ááºážááᯠááŒá¬ážáá¶ááŒá®áž ááá¯á¡ááºáá±á¬ ááŒááºááŸá¯ááºážááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºáá«áááºá áá±á¬ááºážá áœá¬á¡áá¯á¶ážááŒá¯áá°á¡ááœá±á·á¡ááŒá¯á¶ááᯠáá±ážáá±á¬ááºááá¯áá«á á€áááºááŸá¬ á¡áá±á¬ááºážáá¯á¶ážááŒá±ááŸááºážáá»ááºááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááẠRabbitMQ ááŸá áááºážá á®ááŒááºážááᯠá¡áá¯á¶ážááŒá¯á ááŒá¬ážáá¶ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá
á¡á
á®á¡á
ááºááœáẠáá¯ááºáá±á¬ááºáá»ááºá¡áá
áºááŸá
áºáá¯ááᯠááá·áºááœááºážááá¯ááºáááº- (1) API áá±á¬ááºážááá¯ááŸá¯áá
áºáᯠáááºáá¶áááŸáááŒá®ážáá±á¬ááºá ááœá±áá±ážááœá±áá°áá±á«áºááá¯ááẠááá¯á¡ááºáá±á¬ ááá·áºáááºáá±á¬ááºáá»á¬ážááŒáá·áº áááºáá±á·áá»áºááᯠá
á®áááºážáá¬ážááŒá®ážá á¡áá±á¬ááºážá¡áááºá
áá
áºá áááºáá¶áá¬ážááá·áº áááºáá±á·áá»áºáá
áºá
á±á¬ááºááᯠáááºáá¶áááŸááááºá ( 2) backend ááẠáááºážá
á®á០config ááœáẠáááºááŸááºáá¬ážáá±á¬ á¡ááŒááºááŸá¯ááºážááŒáá·áº áá±áá¬ááᯠáááºáááºá ááœá±áá±ážááœá±áá°áá
áºáá¯á
áááºááŒá®áž á¡ááŒá±á¡áá±á
ááá¯ážááŸááá±áá¬ááᯠá¡ááºááááºáá¯ááºáá«á
ááᯠáááºááẠá¡áá¯á¶ážááŒá¯áá°áá¶á០ááŸá±á¬áá·áºááŸá±ážááŸá¯áá»á¬ážááᯠáá¯á¶ážááœááºáá¬ážááŒá®áž áááºáá±á¬ááºáá»áááºááŸáá·áº ááááºááá¯á·ááá¯ááºá
áœááºážááᯠáááºá¡ááá¯ááŸáááá±á¬áẠááá¯ážááŒáŸáá·áºááá¯ááºáááºá
á¡ááŒá¬ážáááááá¬áá»á¬áž
chaincode ááŸáá·áºáááºáááºááŒá®áž á€áá±áá¬ááœáẠáááºááá·áºá¡áá¬á០áááŒá±á¬áá²á·áá«á ááœááºážáááºáá¯ááºááẠáááºááá¯ááºááá»áŸ ááá¯ážááŸááºážááŒá®áž áá¯á¶ááŒá¯á¶ááá·áºááẠ- áá«áá²ááá¯á¡ááºáá«áááºá framework á chaincode ááᯠááá¯ážááá¯ážááŸááºážááŸááºážáá²á· áá±ážáááºážá
áœá¬áá±ážááá¯á· á¡áá»á¬ážááŒá®áž áá°áá®áá±ážáá«áááºá
ááá¯á·á¡ááŒááºá áá»áœááºá¯ááºááá¯á·áá¡ááœá²á·ááẠFabric ááŸáá·áº á¡áá¯ááºáá¯ááºáá¬ááœáẠááá¯ážááŸááºážááŒá®áž áá»á±á¬áºá
áá¬áá±á¬ááºážá
á±ááẠá¡áá¯á¶ážáááºááŸá¯á¡á
á¯á¶ááᯠáá®ááœááºáá±áááº-
áá±á¬ááºáá»ááº
á€áááºážáááºážááẠHyperledger Fabric ááᯠQuorumá á¡ááŒá¬ážáá¯áá¹áááá Ethereum ááœááºáááºáá»á¬áž (PoA ááá¯á·ááá¯áẠPoW) ááŒáá·áº á¡á á¬ážááá¯ážááẠááœááºáá°á á±ááẠ) á¡á á®á¡á á¥áºááœáẠFabric ááᯠEthereum ááŒáá·áº á¡á á¬ážááá¯ážááá·áºá¡áá«á ááŒááºáááºááŒáá¯ážá á¬ážááŒááºáž áááºáá±á¬ááºááŸá¯/á¡ááŸáááºáá°á áá¯áá¹ááááá¯áá¬áá»áŸáẠMVCC áááááá¹ááá»á¬ážááᯠááá¯ááºááœááºááŒááºážá០á¡áá¯ááŒá°ááá¯ááºáá±á¬ á¡ááá¯ážááŸá¯ááºážááŸáá·áº ááŒááºáááºáá±ážááá¯á·ááŒááºážááá¯á· ááŒá±á¬ááºážáá²ááẠááá¯á¡ááºáá«áááºá buffering ááŸáá·áº status storage ááẠblock formation time á០áá¯á¶á·ááŒááºááŸá¯á¡áá»áááºááᯠááá¯ááºážááŒá¬ážááá¯ááºá á±áááºá ááᯠáááºááẠá¡ááŸá¬á ᬠnode áá±á¬ááºáá±á«ááºážáá»á¬ážá áœá¬ááᯠááá·áºááœááºážááá¯ááºááŒá®áž ááá±á¬ááºáá»á¬ážááᯠáááŒá¬ááááœá²á·á ááºážááŒá®áž á¡á±á¬áºáá«ááŸá¬áá°ááá·áºáááºáá±á¬ááºááŸá¯ááᯠáááºáááºááᯠáááŒá±á¬ááºáá«ááŸáá·áºá
áá±áá°áá»á¡á¬ážááŒáá·áº á€á¡áá¬ááẠáá»áœááºá¯áẠáá»áŸáá±ááá¯áá±á¬ á¡áá¬ááŒá
áºáááºá áá
áºáá±á¬ááºáá±á¬ááºá áá°ááá¯á·áá²á·á¡áá¯ááºááŸá¬ áá°áá®áá±ážááẠáááºážáá¬áááºá
source: www.habr.com