ืจื™ืฉื•ื ืžื‘ื•ื–ืจ ืขื‘ื•ืจ ืขืจื›ื•ืช ื’ืœื’ืœื™ื: ื—ื•ื•ื™ื” ืขื Hyperledger Fabric

ืฉืœื•ื, ืื ื™ ืขื•ื‘ื“ ื‘ืฆื•ื•ืช ืฉืœ ืคืจื•ื™ืงื˜ DRD KP (ืจื™ืฉื•ื ื ืชื•ื ื™ื ืžื‘ื•ื–ืจ ืœื ื™ื˜ื•ืจ ืžื—ื–ื•ืจ ื”ื—ื™ื™ื ืฉืœ ืขืจื›ื•ืช ื’ืœื’ืœื™ื). ื›ืืŸ ืื ื™ ืจื•ืฆื” ืœื—ืœื•ืง ืืช ื”ื ื™ืกื™ื•ืŸ ืฉืœ ื”ืฆื•ื•ืช ืฉืœื ื• ื‘ืคื™ืชื•ื— ื‘ืœื•ืงืฆ'ื™ื™ืŸ ืืจื’ื•ื ื™ ืขื‘ื•ืจ ื”ืคืจื•ื™ืงื˜ ื”ื–ื” ืชื—ืช ืžื’ื‘ืœื•ืช ื”ื˜ื›ื ื•ืœื•ื’ื™ื”. ืื ื™ ื‘ืขื™ืงืจ ืื“ื‘ืจ ืขืœ ื”-Hyperledger Fabric, ืื‘ืœ ื”ื’ื™ืฉื” ื”ืžืชื•ืืจืช ื›ืืŸ ื ื™ืชื ืช ืœืืงืกื˜ืจืคื•ืœืฆื™ื” ืœื›ืœ ื‘ืœื•ืงืฆ'ื™ื™ืŸ ืžื•ืจืฉื”. ื”ืžื˜ืจื” ื”ืกื•ืคื™ืช ืฉืœ ื”ืžื—ืงืจ ืฉืœื ื• ื”ื™ื ืœื”ื›ื™ืŸ ืคืชืจื•ื ื•ืช ื‘ืœื•ืงืฆ'ื™ื™ืŸ ืืจื’ื•ื ื™ื™ื ื›ืš ืฉื”ืžื•ืฆืจ ื”ืกื•ืคื™ ื™ื”ื™ื” ื ืขื™ื ืœืฉื™ืžื•ืฉ ื•ืœื ืงืฉื” ืžื“ื™ ืœืชื—ื–ื•ืงื”.

ืœื ื™ื”ื™ื• ื’ื™ืœื•ื™ื™ื, ืคืชืจื•ื ื•ืช ื‘ืœืชื™ ืฆืคื•ื™ื™ื, ื•ืœื ื™ื•ื“ื’ืฉื• ื›ืืŸ ื”ืชืคืชื—ื•ื™ื•ืช ื™ื™ื—ื•ื“ื™ื•ืช (ื›ื™ ืื™ืŸ ืœื™ ื›ืืœื”). ืื ื™ ืจืง ืจื•ืฆื” ืœื—ืœื•ืง ืืช ื”ื—ื•ื•ื™ื” ื”ืฆื ื•ืขื” ืฉืœื™, ืœื”ืจืื•ืช ืฉ"ื–ื” ื”ื™ื” ืืคืฉืจื™" ื•ืื•ืœื™, ืœืงืจื•ื ืขืœ ื—ื•ื•ื™ื•ืช ืฉืœ ืื ืฉื™ื ืื—ืจื™ื ืœืงื‘ืœ ื”ื—ืœื˜ื•ืช ื˜ื•ื‘ื•ืช ื•ืœื ื›ืœ ื›ืš ื˜ื•ื‘ื•ืช ื‘ืชื’ื•ื‘ื•ืช.

ื‘ืขื™ื”: ื”ื‘ืœื•ืงืฆ'ื™ื™ืŸ ืขื“ื™ื™ืŸ ืœื ืžืชืจื—ื‘

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

ื”ืžืฉื™ืžื” ืฉื”ื•ืฆื‘ื” ืœืฆื•ื•ืช ืฉืœื ื• ื‘ืคืจื•ื™ืงื˜ ื”ื ื•ื›ื—ื™ ื ืจืื™ืช ื‘ืื•ืคืŸ ื›ืœืœื™ ื›ืš: ื™ืฉ ื”ืจื‘ื” ื ื•ืฉืื™ื, ืฉืžื’ื™ืขื™ื ืœื›ืžื” ืืœืคื™ื, ืฉืœื ืจื•ืฆื™ื ืœื‘ื ื•ืช ืžืขืจื›ื•ืช ื™ื—ืกื™ื ืขืœ ืืžื•ืŸ; ื™ืฉ ืฆื•ืจืš ืœื‘ื ื•ืช ืคืชืจื•ืŸ ืขืœ DLT ืฉื™ืขื‘ื•ื“ ืขืœ ืžื—ืฉื‘ื™ PC ืจื’ื™ืœื™ื ืœืœื ื“ืจื™ืฉื•ืช ื‘ื™ืฆื•ืขื™ื ืžื™ื•ื—ื“ื•ืช ื•ื™ืกืคืง ื—ื•ื•ื™ืช ืžืฉืชืžืฉ ืฉืื™ื ื” ื’ืจื•ืขื” ืžื›ืœ ืžืขืจื›ื•ืช ื”ื ื”ืœืช ื—ืฉื‘ื•ื ื•ืช ืžืจื›ื–ื™ื•ืช. ื”ื˜ื›ื ื•ืœื•ื’ื™ื” ืฉืžืื—ื•ืจื™ ื”ืคืชืจื•ืŸ ื—ื™ื™ื‘ืช ืœืžื–ืขืจ ืืช ื”ืืคืฉืจื•ืช ืฉืœ ืžื ื™ืคื•ืœืฆื™ื” ื–ื“ื•ื ื™ืช ืฉืœ ื ืชื•ื ื™ื โ€“ ื–ื• ื”ืกื™ื‘ื” ืฉื‘ืœื•ืงืฆ'ื™ื™ืŸ ื ืžืฆื ื›ืืŸ.

ืกื™ืกืžืื•ืช ืžื”ืกืคืจื™ื ื”ืœื‘ื ื™ื ื•ืžื”ืชืงืฉื•ืจืช ืžื‘ื˜ื™ื—ื•ืช ืœื ื• ืฉื”ืคื™ืชื•ื— ื”ื‘ื ื™ืืคืฉืจ ืœื ื• ืœื‘ืฆืข ืžื™ืœื™ื•ื ื™ ืขืกืงืื•ืช ื‘ืฉื ื™ื™ื”. ืžื” ื–ื” ื‘ืืžืช?

Mainnet Ethereum ืคื•ืขืœ ื›ืขืช ื‘-~30 tps. ืจืง ื‘ื’ืœืœ ื–ื”, ืงืฉื” ืœืชืคื•ืก ืื•ืชื• ื›ื‘ืœื•ืงืฆ'ื™ื™ืŸ ื‘ืฉื•ื ืฆื•ืจื” ื”ืžืชืื™ืžื” ืœืฆืจื›ื™ื ื”ืืจื’ื•ื ื™ื™ื. ื‘ื™ืŸ ื”ืคืชืจื•ื ื•ืช ื”ืžื•ืจืฉื™ื ื™ืฉื ื ืžื“ื“ื™ื ื”ืžืฆื™ื’ื™ื 2000 tps (ืžึดื ื™ึธืŸ) ืื• 3000 ื˜ืคืก (ื‘ื“ ื”ื™ืคืจืคืœื’ืจ, ื™ืฉ ืงืฆืช ืคื—ื•ืช ื‘ืคืจืกื•ื, ืื‘ืœ ืืชื” ืฆืจื™ืš ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ืฉื”ืžื“ื“ ื‘ื•ืฆืข ืขืœ ืžื ื•ืข ื”ืงื•ื ืฆื ื–ื•ืก ื”ื™ืฉืŸ). ื”ื™ื” ื ื™ืกื™ื•ืŸ ืœืขื™ื‘ื•ื“ ื‘ื“ ืจื“ื™ืงืœื™, ืฉื ืชืŸ ืืช ื”ืชื•ืฆืื•ืช ืœื ื”ื›ื™ ื’ืจื•ืขื•ืช, 20000 tps, ืื‘ืœ ืขื“ ื›ื” ื–ื”ื• ืจืง ืžื—ืงืจ ืืงื“ืžื™, ืฉืžื—ื›ื” ืœื™ื™ืฉื•ืžื• ื”ื™ืฆื™ื‘. ืœื ืกื‘ื™ืจ ืฉืชืื’ื™ื“ ืฉื™ื›ื•ืœ ืœื”ืจืฉื•ืช ืœืขืฆืžื• ืœื”ื—ื–ื™ืง ืžื—ืœืงื” ืฉืœ ืžืคืชื—ื™ ื‘ืœื•ืงืฆ'ื™ื™ืŸ ื™ืฉืœื™ื ืขื ืื™ื ื“ื™ืงื˜ื•ืจื™ื ื›ืืœื”. ืื‘ืœ ื”ื‘ืขื™ื” ื”ื™ื ืœื ืจืง ื‘ืชืคื•ืงื”, ื™ืฉ ื’ื ื—ื‘ื™ื•ืŸ.

ื—ึถื‘ึดื™ื•ึนืŸ

ื”ืขื™ื›ื•ื‘ ืžืจื’ืข ืชื—ื™ืœืช ื”ืขืกืงื” ื•ืขื“ ืœืื™ืฉื•ืจื” ื”ืกื•ืคื™ ืขืœ ื™ื“ื™ ื”ืžืขืจื›ืช ืชืœื•ื™ ืœื ืจืง ื‘ืžื”ื™ืจื•ืช ืฉื‘ื” ื”ื”ื•ื“ืขื” ืขื•ื‘ืจืช ื‘ื›ืœ ืฉืœื‘ื™ ื”ืื™ืžื•ืช ื•ื”ื”ื–ืžื ื”, ืืœื ื’ื ื‘ืคืจืžื˜ืจื™ื ืฉืœ ื™ืฆื™ืจืช ื”ื‘ืœื•ืง. ื’ื ืื ื”ื‘ืœื•ืงืฆ'ื™ื™ืŸ ืฉืœื ื• ื™ืืคืฉืจ ืœื ื• ืœื”ืชื—ื™ื™ื‘ ื‘ืžื”ื™ืจื•ืช ืฉืœ 1000000 tps, ืืš ื“ื•ืจืฉ 10 ื“ืงื•ืช ื›ื“ื™ ืœื™ืฆื•ืจ ื‘ืœื•ืง ืฉืœ 488 ืžื’ื”-ื‘ื™ื™ื˜, ื”ืื ื–ื” ื™ื”ืคื•ืš ืœื ื• ืงืœ ื™ื•ืชืจ?

ื‘ื•ืื• ื ืกืชื›ืœ ืžืงืจื•ื‘ ืขืœ ืžื—ื–ื•ืจ ื”ื—ื™ื™ื ืฉืœ ื”ืขืกืงืื•ืช ื‘-Hyperledger Fabric ื›ื“ื™ ืœื”ื‘ื™ืŸ ื”ื™ื›ืŸ ืžื•ืฉืงืข ื”ื–ืžืŸ ื•ื›ื™ืฆื“ ื”ื•ื ืงืฉื•ืจ ืœืคืจืžื˜ืจื™ื ืฉืœ ื™ืฆื™ืจืช ื‘ืœื•ืง.

ืจื™ืฉื•ื ืžื‘ื•ื–ืจ ืขื‘ื•ืจ ืขืจื›ื•ืช ื’ืœื’ืœื™ื: ื—ื•ื•ื™ื” ืขื Hyperledger Fabric
ื ืœืงื— ืžื›ืืŸ: hyperledger-fabric.readthedocs.io/en/release-1.4/arch-deep-dive.html#swimlane

(1) ื”ืœืงื•ื— ื™ื•ืฆืจ ืขืกืงื”, ืฉื•ืœื— ืื•ืชื” ืœืขืžื™ืชื™ื ื”ืžืืฉืจื™ื, ื”ืื—ืจื•ื ื™ื ืžื“ืžื™ื ืืช ื”ืขืกืงื” (ื”ื—ืœ ืฉื™ื ื•ื™ื™ื ืฉื‘ื•ืฆืขื• ืขืœ ื™ื“ื™ chaincode ืœืžืฆื‘ ื”ื ื•ื›ื—ื™, ืืš ืืœ ืชืชื—ื™ื™ื‘ ืœืคื ืงืก ื”ื—ืฉื‘ื•ื ื•ืช) ื•ืžืงื‘ืœ RWSet - ืฉืžื•ืช ืžืคืชื—, ื’ืจืกืื•ืช ื•ืขืจื›ื™ื โ€‹ื ืœืงื— ืžื”ืื•ืกืฃ ื‘-CouchDB, (2) ื ื•ืชื ื™ ืชืžื™ื›ื” ืฉื•ืœื—ื™ื ื—ื–ืจื” RWSet ื—ืชื•ื ืœืœืงื•ื—, (3) ื”ืœืงื•ื— ื‘ื•ื“ืง ืื ืงื™ื™ืžื•ืช ื—ืชื™ืžื•ืช ืฉืœ ื›ืœ ื”ืขืžื™ืชื™ื ื”ื“ืจื•ืฉื™ื (ื”ื ื•ืชื ื™ื), ื•ืœืื—ืจ ืžื›ืŸ ืฉื•ืœื— ืืช ื”ืขืกืงื” ืœืฉื™ืจื•ืช ื”ื”ื–ืžื ื” , ืื• ืฉื•ืœื— ืื•ืชื• ืœืœื ืื™ืžื•ืช (ื”ื‘ื“ื™ืงื” ืขื“ื™ื™ืŸ ืชืชื‘ืฆืข ืžืื•ื—ืจ ื™ื•ืชืจ), ืฉื™ืจื•ืช ื”ื”ื–ืžื ื” ื™ื•ืฆืจ ื—ืกื™ืžื” ื•- (4) ืฉื•ืœื— ื‘ื—ื–ืจื” ืœื›ืœ ื”ืขืžื™ืชื™ื, ืœื ืจืง ืœืื™ืฉื•ืจื™ื; ืขืžื™ืชื™ื ื‘ื•ื“ืงื™ื ืฉื’ืจืกืื•ืช ื”ืžืคืชื— ื‘ืขืจื›ืช ื”ืงืจื™ืื” ืชื•ืืžื•ืช ืœื’ืจืกืื•ืช ื‘ืžืกื“ ื”ื ืชื•ื ื™ื, ืฉืœื›ืœ ื”ื ื•ืชื ื™ื ื™ืฉ ื—ืชื™ืžื•ืช, ื•ืœื‘ืกื•ืฃ ืžื‘ืฆืขื™ื ืืช ื”ื—ืกื™ืžื”.

ืื‘ืœ ื–ื” ืœื ื”ื›ืœ. ื”ืžื™ืœื™ื "ืžื–ืžื™ืŸ ื™ื•ืฆืจ ื‘ืœื•ืง" ืžืกืชื™ืจื•ืช ืœื ืจืง ืืช ื”ื–ืžื ืช ื”ืขืกืงืื•ืช, ืืœื ื’ื 3 ื‘ืงืฉื•ืช ืจืฉืช ืขื•ืงื‘ื•ืช ืžื”ืžื ื”ื™ื’ ืœืขื•ืงื‘ื™ื ื•ื‘ื—ื–ืจื”: ื”ืžื ื”ื™ื’ ืžื•ืกื™ืฃ ื”ื•ื“ืขื” ืœื™ื•ืžืŸ, ืฉื•ืœื— ืื•ืชื” ืœืขื•ืงื‘ื™ื, ื”ืื—ืจื•ืŸ ืžื•ืกื™ืฃ ืื•ืชื” ืœื™ื•ืžืŸ ืฉืœื”ื, ืฉื•ืœื— ืื™ืฉื•ืจ ืœืฉื›ืคื•ืœ ืžื•ืฆืœื— ืœืžื ื”ื™ื’, ื”ืžื ื”ื™ื’ ืžื—ื™ื™ื‘ ืืช ื”ื”ื•ื“ืขื”, ืฉื•ืœื— ืื™ืฉื•ืจ ื”ืชื—ื™ื™ื‘ื•ืช ืœืขื•ืงื‘ื™ื, ืขื•ืงื‘ื™ื ืžืชื—ื™ื™ื‘ื™ื. ื›ื›ืœ ืฉื”ื’ื•ื“ืœ ื•ื–ืžืŸ ื”ื™ื•ื•ืฆืจื•ืช ื”ื‘ืœื•ืง ืงื˜ื ื™ื ื™ื•ืชืจ, ื›ืš ืฉื™ืจื•ืช ื”ื”ื–ืžื ื” ื™ืฆื˜ืจืš ืœื™ืฆื•ืจ ืงื•ื ืฆื ื–ื•ืก ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื™ื•ืชืจ. ืœ-Hyperledger Fabric ืฉื ื™ ืคืจืžื˜ืจื™ื ืœื™ืฆื™ืจืช ื‘ืœื•ืง: BatchTimeout - ื–ืžืŸ ื™ืฆื™ืจืช ื‘ืœื•ืง ื•-BatchSize - ื’ื•ื“ืœ ื‘ืœื•ืง (ืžืกืคืจ ื”ืขืกืงืื•ืช ื•ื’ื•ื“ืœ ื”ื‘ืœื•ืง ืขืฆืžื• ื‘ื‘ืชื™ื). ื‘ืจื’ืข ืฉืื—ื“ ืžื”ืคืจืžื˜ืจื™ื ืžื’ื™ืข ืœื’ื‘ื•ืœ, ืžืฉืชื—ืจืจ ื‘ืœื•ืง ื—ื“ืฉ. ื›ื›ืœ ืฉื™ื•ืชืจ ืฆืžืชื™ ืกื“ืจ, ื›ืš ื–ื” ื™ื™ืงื— ื™ื•ืชืจ ื–ืžืŸ. ืœื›ืŸ, ืขืœื™ืš ืœื”ื’ื“ื™ืœ ืืช BatchTimeout ื•ืืช BatchSize. ืื‘ืœ ืžื›ื™ื•ื•ืŸ ืฉ-RWSets ื”ื ื‘ืขืœื™ ื’ืจืกื”, ื›ื›ืœ ืฉื”ื‘ืœื•ืง ืฉืื ื• ืขื•ืฉื™ื ื’ื“ื•ืœ ื™ื•ืชืจ, ื›ืš ื”ืกื‘ื™ืจื•ืช ืœื”ืชื ื’ืฉื•ื™ื•ืช MVCC ื’ื‘ื•ื”ื” ื™ื•ืชืจ. ื‘ื ื•ืกืฃ, ื›ื›ืœ ืฉื”-BatchTimeout ื’ื“ืœ, ื”-UX ืžืชื“ืจื“ืจ ื‘ืฆื•ืจื” ืงื˜ืกื˜ืจื•ืคืœื™ืช. ื”ืชื›ื ื™ืช ื”ื‘ืื” ืœืคืชืจื•ืŸ ื‘ืขื™ื•ืช ืืœื• ื ืจืื™ืช ืœื™ ื”ื’ื™ื•ื ื™ืช ื•ื‘ืจื•ืจื”.

ื›ื™ืฆื“ ืœื”ื™ืžื ืข ืžื”ืžืชื ื” ืœืกื™ื•ื ื”ื—ืกื™ืžื” ื•ืœื ืœืื‘ื“ ืืช ื”ื™ื›ื•ืœืช ืœืขืงื•ื‘ ืื—ืจ ืžืฆื‘ ื”ืขืกืงื”

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

ืจืืฉื™ืช, ืขืœื™ื ื• ืœืคืชื•ืจ ืื™ื›ืฉื”ื• ื”ืชื ื’ืฉื•ื™ื•ืช MVCC ื”ื ื’ืจืžื•ืช ืขืœ ื™ื“ื™ ื’ื•ื“ืœ ื‘ืœื•ืง ื’ื“ื•ืœ, ืืฉืจ ืขืฉื•ื™ ืœื›ืœื•ืœ RWSets ืฉื•ื ื™ื ืขื ืื•ืชื” ื’ืจืกื”. ื‘ืจื•ืจ ืฉื‘ืฆื“ ื”ืœืงื•ื— (ื‘ื™ื—ืก ืœืจืฉืช ื”ื‘ืœื•ืงืฆ'ื™ื™ืŸ, ื–ื” ื‘ื”ื—ืœื˜ ื™ื›ื•ืœ ืœื”ื™ื•ืช ื”-backend, ื•ืื ื™ ืžืชื›ื•ื•ืŸ ืœื–ื”) ืืชื” ืฆืจื™ืš ืžื˜ืคืœ ื‘ืกื›ืกื•ื›ื™ื MVCC, ืฉื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื™ืจื•ืช ื ืคืจื“ ืื• ืžืขืฆื‘ ืจื’ื™ืœ ืžืขืœ ื”ืฉื™ื—ื” ืฉื™ื•ื–ื ืืช ื”ืขืกืงื” ืขื ื”ื’ื™ื•ืŸ ื ื™ืกื™ื•ืŸ ื—ื•ื–ืจ.

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

ื”ืฉืœื‘ ื”ื‘ื ื”ื•ื ืœื”ืคื•ืš ืืช ื”ืื™ื ื˜ืจืืงืฆื™ื” ืฉืœ ื”ืœืงื•ื— ืขื ื”ืžืขืจื›ืช ืœื-ืกื™ื ื›ืจื•ื ื™ืช ื›ืš ืฉื”ื™ื ืœื ืชื—ื›ื” 15, 30 ืื• 10000000 ืฉื ื™ื•ืช, ืื•ืชื ื ื’ื“ื™ืจ ื›-BatchTimeout. ืืš ื™ื—ื“ ืขื ื–ืืช, ื™ืฉ ืฆื•ืจืš ืœืฉืžื•ืจ ืขืœ ื”ื™ื›ื•ืœืช ืœื•ื•ื“ื ืฉื”ืฉื™ื ื•ื™ื™ื ืฉื™ื–ืžื” ื”ืขืกืงื” ื ืจืฉืžื™ื/ืื™ื ื ื ืจืฉืžื™ื ื‘ื‘ืœื•ืงืฆ'ื™ื™ืŸ.
ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืžืกื“ ื ืชื•ื ื™ื ืœืื—ืกื•ืŸ ืกื˜ื˜ื•ืก ืขืกืงื”. ื”ืืคืฉืจื•ืช ื”ืคืฉื•ื˜ื” ื‘ื™ื•ืชืจ ื”ื™ื CouchDB ื‘ืฉืœ ืงืœื•ืช ื”ืฉื™ืžื•ืฉ ื‘ื•: ืœืžืกื“ ื”ื ืชื•ื ื™ื ื™ืฉ ืžืžืฉืง ืžืฉืชืžืฉ ืžื—ื•ืฅ ืœืงื•ืคืกื”, ืžืžืฉืง API ืฉืœ REST, ื•ื ื™ืชืŸ ืœื”ื’ื“ื™ืจ ืขื‘ื•ืจื• ืจืคืœื™ืงืฆื™ื” ื•ืจื™ืกื•ืง ื‘ืงืœื•ืช. ืืชื” ื™ื›ื•ืœ ืคืฉื•ื˜ ืœื™ืฆื•ืจ ืื•ืกืฃ ื ืคืจื“ ื‘ืื•ืชื• ืžื•ืคืข CouchDB ืฉืžืฉืชืžืฉ ื‘-Fabric ื›ื“ื™ ืœืื—ืกืŸ ืืช ืžืฆื‘ ื”ืขื•ืœื ืฉืœื•. ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืื—ืกืŸ ืžืกืžื›ื™ื ืžืกื•ื’ ื–ื”.

{
 Status string // ะกั‚ะฐั‚ัƒั ั‚ั€ะฐะฝะทะฐะบั†ะธะธ: "pending", "done", "failed"
 TxID: string // ID ั‚ั€ะฐะฝะทะฐะบั†ะธะธ
 Error: string // optional, ัะพะพะฑั‰ะตะฝะธะต ะพะฑ ะพัˆะธะฑะบะต
}

ืžืกืžืš ื–ื” ื ื›ืชื‘ ืœืžืกื“ ื”ื ืชื•ื ื™ื ืœืคื ื™ ืฉืœื™ื—ืช ื”ืขืกืงื” ืœืขืžื™ืชื™ื, ืžื–ื”ื” ื”ื™ืฉื•ืช ืžื•ื—ื–ืจ ืœืžืฉืชืžืฉ (ืื•ืชื• ืžื–ื”ื” ืžืฉืžืฉ ื›ืžืคืชื—) ืื ืžื“ื•ื‘ืจ ื‘ืคืขื•ืœืช ื™ืฆื™ืจื”, ื•ืื– ื”ืฉื“ื•ืช Status, TxID ื•-Error ื”ื ืžืชืขื“ื›ืŸ ื›ื›ืœ ืฉืžืชืงื‘ืœ ืžื™ื“ืข ืจืœื•ื•ื ื˜ื™ ืžืขืžื™ืชื™ื.

ืจื™ืฉื•ื ืžื‘ื•ื–ืจ ืขื‘ื•ืจ ืขืจื›ื•ืช ื’ืœื’ืœื™ื: ื—ื•ื•ื™ื” ืขื Hyperledger Fabric

ื‘ืชื›ื ื™ืช ื–ื•, ื”ืžืฉืชืžืฉ ืื™ื ื• ืžื—ื›ื” ืขื“ ืฉื”ื’ื•ืฉ ื™ื•ื•ืฆืจ ืกื•ืฃ ืกื•ืฃ, ืฆื•ืคื” ื‘ื’ืœื’ืœ ื”ืžืกืชื•ื‘ื‘ ืขืœ ื”ืžืกืš ื‘ืžืฉืš 10 ืฉื ื™ื•ืช, ื”ื•ื ืžืงื‘ืœ ืชื’ื•ื‘ื” ืžื™ื™ื“ื™ืช ืžื”ืžืขืจื›ืช ื•ืžืžืฉื™ืš ืœืขื‘ื•ื“.

ื‘ื—ืจื ื• ื‘- BoltDB ืœืื—ืกืŸ ืกื˜ื˜ื•ืกื™ ืขืกืงืื•ืช ืžื›ื™ื•ื•ืŸ ืฉืื ื• ืฆืจื™ื›ื™ื ืœื—ืกื•ืš ื‘ื–ื™ื›ืจื•ืŸ ื•ืœื ืจื•ืฆื™ื ืœื‘ื–ื‘ื– ื–ืžืŸ ืขืœ ืื™ื ื˜ืจืืงืฆื™ื” ื‘ืจืฉืช ืขื ืฉืจืช ืžืกื“ ื ืชื•ื ื™ื ื ืคืจื“, ื‘ืžื™ื•ื—ื“ ื›ืืฉืจ ืื™ื ื˜ืจืืงืฆื™ื” ื–ื• ืžืชืจื—ืฉืช ื‘ืืžืฆืขื•ืช ืคืจื•ื˜ื•ืงื•ืœ ื˜ืงืกื˜ ืจื’ื™ืœ. ืื’ื‘, ื‘ื™ืŸ ืื ืืชื” ืžืฉืชืžืฉ ื‘-CouchDB ื›ื“ื™ ืœื™ื™ืฉื ืืช ื”ืกื›ื™ืžื” ืฉืชื•ืืจื” ืœืขื™ืœ ืื• ืคืฉื•ื˜ ื›ื“ื™ ืœืื—ืกืŸ ืžืฆื‘ ืขื•ืœืžื™, ื‘ื›ืœ ืžืงืจื” ื–ื” ื”ื’ื™ื•ื ื™ ืœื™ื™ืขืœ ืืช ื”ืื•ืคืŸ ืฉื‘ื• ื”ื ืชื•ื ื™ื ืžืื•ื—ืกื ื™ื ื‘-CouchDB. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื‘-CouchDB, ื”ื’ื•ื“ืœ ืฉืœ ืฆืžืชื™ b-tree ื”ื•ื 1279 ื‘ืชื™ื, ื•ื–ื” ื”ืจื‘ื” ื™ื•ืชืจ ืงื˜ืŸ ืžื’ื•ื“ืœ ื”ืกืงื˜ื•ืจ ื‘ื“ื™ืกืง, ืžื” ืฉืื•ืžืจ ืฉื’ื ืงืจื™ืื” ื•ืื™ื–ื•ืŸ ืžื—ื“ืฉ ืฉืœ ื”ืขืฅ ื™ื“ืจืฉื• ื™ื•ืชืจ ื’ื™ืฉื” ืคื™ื–ื™ืช ืœื“ื™ืกืง. ื”ื’ื•ื“ืœ ื”ืื•ืคื˜ื™ืžืœื™ ืžืชืื™ื ืœืชืงืŸ ืคื•ืจืžื˜ ืžืชืงื“ื ื•ื”ื•ื 4 ืงื™ืœื•ื‘ื™ื™ื˜. ื›ื“ื™ ืœื‘ืฆืข ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืขืœื™ื ื• ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจ btree_chunk_size ืฉื•ื•ื” ืœ-4096 ื‘ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืฉืœ CouchDB. ืขื‘ื•ืจ BoltDB ื”ืชืขืจื‘ื•ืช ื™ื“ื ื™ืช ื›ื–ื• ืœื ื ื“ืจืฉ.

ืœื—ืฅ ืื—ื•ืจื™: ืืกื˜ืจื˜ื’ื™ื™ืช ื—ื™ืฅ

ืื‘ืœ ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ื”ืจื‘ื” ื”ื•ื“ืขื•ืช. ื™ื•ืชืจ ืžืžื” ืฉื”ืžืขืจื›ืช ื™ื›ื•ืœื” ืœื”ืชืžื•ื“ื“ ืขื, ืฉื™ืชื•ืฃ ืžืฉืื‘ื™ื ืขื ืชืจื™ืกืจ ืฉื™ืจื•ืชื™ื ืื—ืจื™ื ืžืœื‘ื“ ืืœื• ื”ืžื•ืฆื’ื™ื ื‘ืชืจืฉื™ื - ื•ื›ืœ ื–ื” ืืžื•ืจ ืœืขื‘ื•ื“ ืœืœื ื“ื•ืคื™ ืืคื™ืœื• ื‘ืžื›ื•ื ื•ืช ืฉื‘ื”ืŸ ื”ืคืขืœืช Intellij Idea ืชื”ื™ื” ืžื™ื™ื’ืขืช ื‘ื™ื•ืชืจ.

ื”ื‘ืขื™ื” ืฉืœ ื™ื›ื•ืœื•ืช ืฉื•ื ื•ืช ืฉืœ ืžืขืจื›ื•ืช ืชืงืฉื•ืจืช, ื™ืฆืจืŸ ื•ืฆืจื›ืŸ, ื ืคืชืจืช ื‘ื“ืจื›ื™ื ืฉื•ื ื•ืช. ื‘ื•ื ื ืจืื” ืžื” ื ื•ื›ืœ ืœืขืฉื•ืช.

ื ืฉืžื˜: ืื ื• ื™ื›ื•ืœื™ื ืœื˜ืขื•ืŸ ืฉืื ื• ืžืกื•ื’ืœื™ื ืœืขื‘ื“ ืœื›ืœ ื”ื™ื•ืชืจ X ืขืกืงืื•ืช ืชื•ืš T ืฉื ื™ื•ืช. ื›ืœ ื”ื‘ืงืฉื•ืช ื”ื—ื•ืจื’ื•ืช ืžืžื’ื‘ืœื” ื–ื• ื ืžื—ืงื•ืช. ื–ื” ื“ื™ ืคืฉื•ื˜, ืื‘ืœ ืื– ืืชื” ื™ื›ื•ืœ ืœืฉื›ื•ื— ืž-UX.

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

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

ืจื™ืฉื•ื ืžื‘ื•ื–ืจ ืขื‘ื•ืจ ืขืจื›ื•ืช ื’ืœื’ืœื™ื: ื—ื•ื•ื™ื” ืขื Hyperledger Fabric

ืฉืชื™ ืคืขื•ืœื•ืช ื—ื“ืฉื•ืช ื ื•ืกืคื• ืœืชื›ื ื™ืช: (1) ืœืื—ืจ ืฉืžื’ื™ืขื” ื‘ืงืฉื” ืœ-API, ืžื•ืฆื‘ืช ื‘ืชื•ืจ ื”ื•ื“ืขื” ืขื ื”ืคืจืžื˜ืจื™ื ื”ื“ืจื•ืฉื™ื ืœื”ืชืงืฉืจื•ืช ืœืขืกืงื”, ื•ื”ืœืงื•ื— ืžืงื‘ืœ ื”ื•ื“ืขื” ืฉื”ืขืกืงื” ื”ืชืงื‘ืœื” ืขืœ ื™ื“ื™ ื”ืžืขืจื›ืช, (2) ื”ืงืฆื” ื”ืื—ื•ืจื™ ืงื•ืจื ืืช ื”ื ืชื•ื ื™ื ื‘ืžื”ื™ืจื•ืช ื”ืžืฆื•ื™ื ืช ื‘ืชืฆื•ืจื” ืžื”ืชื•ืจ; ื™ื•ื–ื ืขืกืงื” ื•ืžืขื“ื›ืŸ ื ืชื•ื ื™ื ื‘ื—ื ื•ืช ื”ืกื˜ื˜ื•ืก.
ื›ืขืช ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืœ ืืช ื–ืžืŸ ื”ื’ื™ื‘ื•ืฉ ื•ืœื—ืกื•ื ืงื™ื‘ื•ืœืช ื›ื›ืœ ืฉืชืจืฆื”, ื•ืœื”ืกืชื™ืจ ืขื™ื›ื•ื‘ื™ื ืžื”ืžืฉืชืžืฉ.

ื›ืœื™ื ืื—ืจื™ื

ืœื ื ืืžืจ ื›ืืŸ ืฉื•ื ื“ื‘ืจ ืขืœ chaincode, ื›ื™, ื›ื›ืœืœ, ืื™ืŸ ื‘ื• ืžื” ืœื™ื™ืขืœ. ืงื•ื“ ืฉืจืฉืจืช ืฆืจื™ืš ืœื”ื™ื•ืช ื›ืžื” ืฉื™ื•ืชืจ ืคืฉื•ื˜ ื•ืžืื•ื‘ื˜ื— - ื–ื” ื›ืœ ืžื” ืฉื ื“ืจืฉ ืžืžื ื•. ื”ืžืกื’ืจืช ืขื•ื–ืจืช ืœื ื• ืœื›ืชื•ื‘ ืงื•ื“ ืฉืจืฉืจืช ื‘ืฆื•ืจื” ืคืฉื•ื˜ื” ื•ื‘ื˜ื•ื—ื” CCKit ืž-S7 Techlab ื•ืžื ืชื— ืกื˜ื˜ื™ ืœื”ื—ื™ื•ืช^CC.

ื‘ื ื•ืกืฃ, ื”ืฆื•ื•ืช ืฉืœื ื• ืžืคืชื— ืกื˜ ื›ืœื™ ืขื–ืจ ื›ื“ื™ ืœื”ืคื•ืš ืืช ื”ืขื‘ื•ื“ื” ืขื Fabric ืœืคืฉื•ื˜ื” ื•ืžื”ื ื”: ืกื™ื™ืจ ื‘ืœื•ืงืฆ'ื™ื™ืŸ, ื›ืœื™ ืขื–ืจ ืขื‘ื•ืจ ืฉื™ื ื•ื™ื™ื ืื•ื˜ื•ืžื˜ื™ื™ื ื‘ืชืฆื•ืจืช ื”ืจืฉืช (ื”ื•ืกืคื”/ื”ืกืจื” ืฉืœ ืืจื’ื•ื ื™ื, ืฆืžืชื™ RAFT), ื›ืœื™ ืขื–ืจ ืขื‘ื•ืจ ืฉืœื™ืœืช ืชืขื•ื“ื•ืช ื•ื”ืกืจืช ื–ื”ื•ืช. ืื ืืชื” ืจื•ืฆื” ืœืชืจื•ื ืืชื” ืžื•ื–ืžืŸ.

ืžืกืงื ื”

ื’ื™ืฉื” ื–ื• ืžืืคืฉืจืช ืœื”ื—ืœื™ืฃ ื‘ืงืœื•ืช ืืช Hyperledger Fabric ื‘-Quorum, ืจืฉืชื•ืช Ethereum ืคืจื˜ื™ื•ืช ืื—ืจื•ืช (PoA ืื• ืืคื™ืœื• PoW), ืœื”ืคื—ื™ืช ืžืฉืžืขื•ืชื™ืช ืืช ื”ืชืคื•ืงื” ื‘ืคื•ืขืœ, ืืš ื‘ืžืงื‘ื™ืœ ืœืฉืžื•ืจ ืขืœ UX ืชืงื™ืŸ (ื”ืŸ ืœืžืฉืชืžืฉื™ื ื‘ื“ืคื“ืคืŸ ื•ื”ืŸ ืœืžืขืจื›ื•ืช ืžืฉื•ืœื‘ื•ืช). ื›ืืฉืจ ืžื—ืœื™ืคื™ื ืืช ื”ื‘ื“ ื‘-Ethereum ื‘ืกื›ื™ืžื”, ืชืฆื˜ืจืš ืจืง ืœืฉื ื•ืช ืืช ื”ื”ื™ื’ื™ื•ืŸ ืฉืœ ื”ืฉื™ืจื•ืช/ื”ืžืขืฆื‘ ืžื—ื“ืฉ ืžืขื™ื‘ื•ื“ ื”ืชื ื’ืฉื•ื™ื•ืช MVCC ืœื”ื’ื“ืœื” ืื˜ื•ืžื™ืช ื•ืฉืœื™ื—ื” ืžื—ื“ืฉ. ื—ืฆื™ืฆื” ื•ืื—ืกื•ืŸ ืกื˜ื˜ื•ืก ืืคืฉืจื• ืœื ืชืง ืืช ื–ืžืŸ ื”ืชื’ื•ื‘ื” ืžื–ืžืŸ ื”ื™ื•ื•ืฆืจื•ืช ื”ื‘ืœื•ืง. ื›ืขืช ืชื•ื›ืœื• ืœื”ื•ืกื™ืฃ ืืœืคื™ ืฆืžืชื™ ื”ื–ืžื ื” ื•ืœื ืœื—ืฉื•ืฉ ืฉื‘ืœื•ืงื™ื ื ื•ืฆืจื™ื ืœืขื™ืชื™ื ืงืจื•ื‘ื•ืช ืžื“ื™ ื•ืœื”ืขืžื™ืก ืืช ืฉื™ืจื•ืช ื”ื”ื–ืžื ื”.

ื‘ืขื™ืงืจื•ืŸ, ื–ื” ื›ืœ ืžื” ืฉืจืฆื™ืชื™ ืœืฉืชืฃ. ืืฉืžื— ืื ื–ื” ื™ืขื–ื•ืจ ืœืžื™ืฉื”ื• ื‘ืขื‘ื•ื“ืชื•.

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”