á¤á ááľáĽáá ᣠá DRD KP ááŽáááľ áĄáľá ááľáĽ áĽá°áŤáá (á¨á°á˝á¨ááŤáŞ áľáĽáľáŚá˝á á¨ááááľ áá°áľ ááá¨áłá°á á¨á°á¨ááá á¨áá¨á ááááĽ)ᢠáĽáá
á á´áááá áá°áŚá˝ ááľáĽ ááá
ááŽáááľ á¨áľáá
áľ áĽáááźáá á áááááľ á¨áĄáľáá˝áá áááľ ááŤáá áĽáááááᢠáĽá áŁáĽááá á¨áááŤá áľá ááááááá á¨áá
ááᣠááá áá áĽáá
á¨á°ááá¸á á áŤááľ áááááá á¨á°ááá° blockchain áááá ἠáá˝ááᢠá¨á á¨áááá á¨áá¨á¨áť áἠá¨á˘áá°áááŤáá á ááľ áááľááá˝á áááááľ áá áľááá
á¨áá¨á¨áťá áááľ ááá áá á áľá°áłá˝ áĽá áááá¨áľ á áŁá á áľá¸á᪠á áá°áá.
ááá áááśá˝ á áááŠá, áŤáá°á á á áááľááá˝, áĽá ááá áአáĽáľááśá˝ áĽáá
áá°ááá (ááááŤáąá ááá á¨ááá). á¨áĽáá áá áá á°ááᎠááŤáá áĽáť ááᣠâááťá áá áâ á¨áááá á áłá áĽá ááááŁáľá á á áľá°áŤá¨áśáš ááľáĽ áĽáŠ áĽá áĽáŠ áŤááá ááłááá˝á áááľá¨á áľáááá˝ á°áá˝ á°ááᎠáŤááĽáĄá˘
á˝ááᥠáĽáááźáá áĽáľáŤáá á áááŁáá˘
áᏠá¨áĽá ááá˘áá˝ áĽá¨áľ blockchainá á áĽáááľ ááš á´áááá áááľá¨á áŤáá áá áĽáá á ááŤáá áá á á፠ááľáĽ á¨áá áŚáἠá áá°ááᢠá¨áľá´áľ áťááá˝áŁ áĽáŠá á áááŤá¨áľ áŤáá¸á áĽá áá˝áŁ áááá áĽá áťáá˛áá ááááŁáľ á¨á°ááá° ááá ááááᢠá ááłááľ ááᢠááá ááááŁáľ áśá áĽáá°áá ááľáááá ááľáľáľáľ ááŤáľ áŤáŤááááᣠáĽá á¨áááĽáá á¨áááá áĄáľá ááá áŤáááᢠá áááĽáá ááá° áŤááł á ááá á áááľ á¨ááŤáአáá áá¨ááśá˝á ááá ἠáĽáá˝ááá ááááá áĽáá áĽá á áá áŁáá ááá ááľá¨á á ááĽáᢠááľ á°áŤá˘
á áá áŁáá ááŽáááľ ááľáĽ ááĄáľáá˝á á¨á°ááá á á°ááŁá á á á ááá áá áá áááľáá-á áĽáááľ áá áááááśá˝á ááááŁáľ á¨ááááá áĽá ááá° ááłáŽá˝, áá° áĽá áşá á¨áá°ááą; áŤá áአá¨á áááá ááľáááśá˝ á áá°á á áá˛áá˝ áá á¨áá°áŤ áĽá á¨á°á áá á°áááŽá á¨ááááá á¨á°áá¨á á¨ááłáĽ á áŤáŤá áľáááśá˝ á¨á áá á¨ááŤááἠá DLT áá áááľá ááááŁáľ á áľááá ááᢠá¨áááľáá á áľá°ááᣠáŤáá á´áááá á á°ááŽá á áá áá¨áá á¨áá áá áĽáľáá ááááľ á áá áľ - ááá á áá blockchain áĽáá áŤááá˘
á¨áááĽáá áááľ á á°á¨ááľ á áááŽá á¨ááá አááĽááśá˝á áááľá¨á áĽáá°ááŤáľá˝áá á¨áá áá¨ááśá˝ áĽá á¨áááá áĽááá á¨á°á°áĄ ááááŽá˝ áá ááĽá°ááááᢠá áĽááἠáááľá áá?
Mainnet Ethereum á á áá áá á ~ 30 tps áĽá¨á°áŤ ááᢠá áá
ááááŤáľ áĽáť ááľáá
áłá ááááśá˝ á°áľáá á áá ááááľ áĽáá° blockchain ááááἠá áľá¸á᪠áá. á¨á°áááą áááľááá˝ ááŤá¨á 2000 á˛áá¤áľ (XNUMX á˛áá¤áľ) á¨ááŤáłáŠ áááŞáŤáá˝ á áá˘
áŤáá áá
ááĽááą á¨á°ááá¨á áľ áá á ááľáś á áľáá áą áĽáľá¨ áá¨á¨áťá ááááł áľá¨áľ áŤáá áááá¨áľ áááĽááą á ááá á¨áá¨áá፠áĽá á¨ááᣠá°á¨ááá˝ ááľáĽ á ááŤááá áľ ááĽááľ áá áĽáť áłááá á áĽáá ááľá¨áł áááŞáŤáá˝ ááá ááá°ááᢠá¨á áĽáááźáá á 1000000 á˛áá¤áľ ááĽááľ áĽááľááá˝á á˘áá áľááá ááá áá 10 áᣠáĽáá ááááá¨áľ 488 á°áá á˘áá á ááá áááááá?
áá á¨áľ áĽáá°ááŤá á áĽá á¨áľáááľ áááááá˝ áá áĽáá´áľ áĽáá°áááá ááá¨áłáľ á ááááááá á¨áá áŤááá á¨ááĽááľ á¨ááááľ áá°áľ á áááá áĽáááá¨áľá˘
á¨áá
á¨á°áá°á°:
(1) á°áá áá ááĽááľ áá ᨠᣠáá° áľáá á°áŞ áĽáŠáŽá˝ áááŤá ᣠá¨áááá ááĽááąá á áľááľá (á áźáááŽáľ á¨á°á°á¨á áááŚá˝á á áá áŁáá áááł áá áá°ááĽáŠ ᣠáá áááłáĽ á°áĽá°á á ááá°áą) áĽá RWSet ááá á - ááá áľáὠᣠáľáŞáśá˝ áĽá áĽá´áśá˝ á CouchDB ááľáĽ áŤáá áľáĽáľáĽ á¨á°áá°á°áŁ (2) á°áááá˝ á¨á°áá¨á RWSet áá°áá áá ááá°á áááŤáᣠ(3) á°áá áá á¨ááá á áľááá áĽáŠáŽá˝ (á°áááá˝) ááá áááŠá áŤáŁáŤ á áá ááĽááąá áá° áľáĽáá á áááááľ áááŤáᢠ, ááá áŤá áá¨áá፠áááŤá (áźáŠ á ááá á áá áá¨áááá), á¨ááᣠá áááááą áĽááłá áááĽáŤá áĽá ( 4) á°áááá˝á áĽáť áłááá áááá áĽáŠáŽá˝ áááŤá; áĽáŠáŽá˝ á á°áá á á áľáĽáľáĽ ááľáĽ áŤááľ ááá áľáŞáśá˝ á áá¨á ááą ááľáĽ áŤááľ áľáŞáśá˝ áá áĽáá°ááááąáŁ ááá á°áááá˝ ááá áĽááłáá¸á áĽá á áá¨á¨áťá áĽááłáá áĽáá°ááá˝á áŤá¨áááŁáá˘
áá ፠áĽáť á áá°ááᢠ"á ááἠá ááľ" á¨áááľ áááľ á¨ááĽááśá˝á á á°á á°á¨á°á áĽáť áłááá á¨ááŞá áá°á¨áłáŽáš áĽá áá° áá á¨áááᥠ3 á°á¨áłáłá á¨á ááłá¨ áá¨áĽ áĽáŤááá˝á áá°áĽáá-ááŞá áá° ááľáłááťá áááĽááľ áá¨áá¨áá ᣠáá°á¨áłáŽáš áááŤá ᣠááá°áá áá¨ááŤá ᢠáá° áááἠááľáłááťá¸á ᣠáááŞá á¨á°áłáŤ ááŁááľ áá¨áá፠áááŤá ᣠááŞá áááĽááąá áááŤá ᣠáá°á¨áłáŽá˝ á¨áá áá¨áá፠áááŤá ᣠá°á¨áłáŽá˝ ááá áá ᢠá¨ááá ááľá¨áł áá á áĽá áá áŁáá° áá á áŁá¨áľáĽáá á áááááľ áĽá áá áááŁáŁáľá ááá á á áá áľá˘. Hyperledger á¨áá á¨ááá ááľá¨áł áááľ áááŞáŤáá˝ á ááľ: BatchTimeout - á¨ááá ááľá¨áł áá áĽá BatchSize - á¨ááá áá á (á¨ááĽááśá˝ áĽááľ áĽá áĽáá áŤáą áŁááľ ááľáĽ áá á). áá á ááą áááááá˝ áá°áĄ áá áĽáá°á°á¨áą á á˛áľ áĽááł ááááá. áĽá á¨áľááá á áááá˝áŁ áá á¨áá áŤá áá áááľáłáᢠáľááá , BatchTimeout áĽá BatchSizeá áá¨áá áŤáľáááááłá. áá RWSets áľáá°áá¨á¨áŁ á¨ááá°áŤá áľáá áĽááᣠᨠMVCC áááśá˝ áĽáľáá¸á á¨á áŤá ááááᢠá á°á¨ááŞá BatchTimeout á˛á¨áá UX á á á°áá áááł ááááłáᢠáĽááá á á˝ááŽá˝ ááááłáľ á¨áá¨á°áá áĽá áľ ááĽá ááááŤáłá áĽá ááá˝ áááľááá˘
á¨ááá áá ááá á áá á á á áĽáá´áľ ááľáááľ áĽáá°ááťá áĽá á¨ááĽááľ áááłá á¨áá¨áłá°á á˝ááł áĽááłáŤáĄ
á¨ááľá¨áł áá áĽá á¨áááá áá á á á¨áá ááĽá á¨áĽáááźáá áá á á¨á áááᢠá ááą á¨ááá á ááĽáł á áá¨á°áá ááá áá á RAFT ááľáĽ áááŁáŁáľá áááá á á¨ááŞá áá°á¨áłáŽáš áĽá áá° áá áśáľáľ á¨ááľááá áĽáŤááá˝á áĽáá°ááŤáľááá ááłááľ á áá áľ. áĽá á¨áľááá á áááá˝áŁ áá á¨áá áŤá áá áááľáłáᢠá¨ááá ááľá¨áł áľáá˝ áá á áĽá áá, á°á¨á᪠áĽáá˛á áŤá ááľá°ááĽáŽá˝ á á. ááá á°á áá á¨áľáááľ ááá˝ ááá áłáá¨áá á¨áľáááľ ááá áĽáá´áľ áá¨áá áĽá áá áá áááľ ááťáá?
á ááááŞáŤáŁ á áľáá á¨ááá áá á ááááŤáľ á¨áá¨á°áą ᨠMVCC áááśá˝á áĽáá°ááá áááłáľ á ááĽáᣠáá á á°ááłáłá áľáŞáľ áŤáá¸á á¨á°ááŤáŠ RWSetsá ááŤáŤáľáľ áá˝ááᢠá ááá˝ ááá¨áľ áĽáá°ááťáá, á á°áá áá á áŠá (ᨠblockchain á ááłá¨ áá¨áĽ áá á á°áŤáŤá, áá áĽáŠ á¨ááᣠááᣠááá áá˝áá, áĽá áĽá ááá´ áá) áŤáľáááááłá ᨠ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-tree nodes áá á 1279 áŁááľ áá, áá
á á á˛áľá áá áŤáá á¨á´áá°áŠ áá á á áŁá áŤáá° áá, áá
á áááľ áááąá ááá ἠáĽá áááŁá á ááá áá° á˛áľá á¨á áá á áŤáá ááłá¨áťá áá ááá. á áŁá áĽáŠá áá á á¨áá°á áá áá ááááłá
á¨áá áááľáĄ á¨áá፠áľááľ
áá áĽá áááááśá˝ ááአáá˝áá. áľáááą ááááá á¨áá˝áá á ááᣠá áľáá áá á¨ááłáŠáľ á á°á¨á᪠ááĽáśá˝á á¨ááá˝ á°ááá á áááááśá˝ áá áááŤáľ - áĽá áá áá á˘áá´ááá ááłáĽá ááľáŹáľ áĽá á á áŁá á á°ááş á áááŁá¸á áá˝áá˝ áá áĽááłá áŤáááá áĽáá¨á ááľáŤáľ á áá áľá˘
á¨áááááľ áľáááśá˝, á¨á ááŤá˝ áĽá á¨á¸áážá˝ á¨á°ááŤáŠ á á á á˝áá á á°ááŤá¨ ááááľ áááłá. áá ááľá¨á áĽáá°ááá˝á áĽááá˘
ááŁáጠá˘á á á¨X ááĽááśá˝á á Რá°á¨ááľ áááľáŹáľ áĽáá°áťáá ááá áá áĽáá˝áááᢠá¨áá áá°áĽ á áá á¨áá ááá áĽáŤááá˝ á°áĽáááᢠáá á áŁá ááá ááᣠáá á¨á፠áľá UX áááłáľ áá˝ááá˘
á áááŁá áá¸ááš áĽáá° á¸áá áá á áááľá¨áľ á¨á ááŤášá TPS áááŁá á á¨áá˝áá áľ á ááľ ááááľ á áááá˝ ááá¨á áááŁáᢠááĽá á áá°áá, ááá áá áá áá á áááá˝ ááá°áá á á¸ááá á áááĽáŠ á°áá áá ááá˘áá˝ áá áá´áłáá˝á ááĽáá. áá áá á°ááŁáááľ á¨ááá ááááŤáąá blockchain áá°ááľ á¨áĽá á¨á á ááŁá áľáááśá˝ áá ááŁááŤáá˘
áááľá¨áá¤áľ áłáł áĽá¨áąá ááááá á¨ááá¨á ááá áá áá áĽá¨áľ á áĽáá á ááááá ááĽááľ áááľáŹá°á áĽáá˝áááᢠáĽáŠ á¨á°á áá á°ááᎠáá á¨áĽ á¨áááá áá á áŁá áĽáŠá áááľá áĽáá°áá ááá˝ ááᢠá RabbitMQ ááľáĽ áá¨á á áá áá ááąá á°ááŁáŤá á áľááááá˘
á áĽá
áą áá áááľ á áłá˛áľ áľáááśá˝ á°á¨áá¨ááᥠ(1) áá¤áá á áĽáŤá á¨áᣠá áá ááĽááąá áááĽáŤáľ á áľááá á¨áááľá áááŞáŤáá˝ á¨áŤá áááĽááľ á áá¨áá áá áá°á¨áá áĽá á°áá áá ááĽááą á°ááŁáááľ áĽááłáá áááĽááľ áá°áá°ááᢠáľáááą, (2) á¨áááŁá áá¨á á¨áá¨áá áá á á°á áá°á ááĽááľ á á°ááá¸á ááĽááľ áŤááŁá; ááĽááľ ááááŤá áĽá á áááł áá°áĽá ááľáĽ áŤááá ááἠáŤááááá˘
á áá á¨á°á ááá áááá¨áśá˝á á áá°á á
á¨ááááľá áŤá
á á¨ááľá¨áł ááá ááłá°á áĽá á á
áá áááľ áá˝ááá˘
ááá˝ ááŁáŞáŤáá˝
áľá áźáááŽáľ áĽáá
ááá á áá°ááá¨á, ááááŤáąá áĽáá° á ááľ á°ááĽ, á ááľáĄ ááááťá¸áľ ááá ááá á¨áá. Chaincode á á°áťá áá á ááá áĽá á°á
áááą á¨á°á á á ááá á áá áľ - á¨áą á¨ááááá ፠áĽáť ááᢠááá á ááá áĽá á°á
áááą á á°á á á áááł áźáááŽáľ áĽááľáá˝á áá¨áłááá˘
á á°á¨ááŞá áĄáľáá˝á á¨á¨áá á¨áá
áá ááľáŤáľ ááá áĽá á áľá°áłá˝ áĽáá˛áá á¨á°ááŤáŠ áááááŤáá˝á á áááááľ áá ááá˘
áá°áá°ááŤ
áá á ááŤá¨áĽ á¨ááááááá á¨áá á á ááá á Quorum, ááá˝ á¨áá á¨á¤á˛áŹá ááľáááŽá˝ (PoA ááá PoW) ááá°áŤáľ áŤáľá˝áá, áľáááááá á¨áá¤áľ áá á á áĽá á ááááłá, áá á á°ááłáłá áá áá°á á UX (á á áłáš ááľáĽ áá á°á áááá˝ áĽá áá°ááá áľáááśá˝) áá°á á áĽáá˛áá áŤáľáá. á áĽá áą ááľáĽ á¨áá á á á¤á˛áŹá á ááľá°áŤá áľ áá á¨áľáá áá¨áŤ á áááááľ/á˛áŽáá ᨠMVCC áááśá˝á á¨ááľáŹáľ áá° á áśáá á¨ááá¨áá áĽá áĽáá°áá áá° ááá á áááᎠááá¨á áĽáť áŤáľáááááłáᢠáááľ áĽá á¨áááł áá¨ááť á¨ááá˝ á°ááąá á¨áĽááłá ááľá¨áł áá ááááá á áľá˝ááᢠá áá á áşáá˝ á¨ááá አá¨áľááá á áááá˝á áá¨á áĽá áĽááŽá˝ áĽá áá áĽáá°ááá አáĽá á¨ááᣠá áááááąá ááŤá áá˝áá áĽáá á áááŠá˘
á áá á¨áąáŁ áááŤáá á¨áááŠáľ ፠áĽáť ááᢠáá
á ááľ á°á á áľáŤá ááľáĽ á˘á¨áł á°áľá°á ááá˘
ááá: hab.com