Fa'asalalauina Resitala mo Uili Uili: Ose Aafiaga ile Hyperledger Fabric

Talofa, ou te galue i le 'au a le DRD KP poloketi (tusitala faʻamaumauga tuʻufaʻatasia mo le mataʻituina o le taamilosaga o le olaga o seti uili). O iinei ou te fia faʻasoa atu ai le poto masani o la matou 'au i le atinaʻeina o se atinaʻe poloka poloka mo lenei poloketi i lalo o faʻalavelave faʻatumauina e tekinolosi. Mo le tele o vaega, o le a ou talanoa e uiga i le Hyperledger Fabric, ae o le auala o loʻo faʻamatalaina iinei e mafai ona faʻapipiʻiina i soʻo se poloka faʻatagaina. O le sini autu o la matou suʻesuʻega o le saunia lea o fofo poloka poloka i se auala e manaia ai le faʻaaogaina o oloa mulimuli ma e le faigata tele ona tausia.

O le a leai ni suʻesuʻega, faʻalavelave faʻafuaseʻi, ma e leai ni atinaʻe tulaga ese o le a aofia ai iinei (ona e le o ia te aʻu). Naʻo loʻu manaʻo e faʻasoa atu loʻu poto masani, faʻaalia "na mafai" ma, masalo, faitau e uiga i se isi tagata i le faia o filifiliga lelei ae le lelei i faʻamatalaga.

Faʻafitauli: poloka poloka e leʻi faʻaogaina

I aso nei, o taumafaiga a le tele o atinaʻe o loʻo faʻamoemoe i le faia o le poloka poloka o se tekinolosi faigofie tele, ae le o se pomu taimi i totonu o se afifi matagofie. O alalaupapa a le setete, fa'alelei lelei, plasma ma sharding e ono avea ma mea masani. I se aso. Pe atonu o le a toe tolopoina e le TON le faʻalauiloaina mo le ono masina, ma o le a le toe i ai le isi Plasma Group. E mafai ona tatou talitonu i se isi faʻafanua auala ma faitau pepa papaʻe susulu i le po, ae o iinei ma le taimi nei e tatau ona tatou faia se mea i mea ua tatou maua. Fai mea leaga.

O le galuega ua tu'uina atu i la matou 'au i le poloketi o lo'o i ai nei e foliga fa'apea i tulaga lautele: e tele mataupu, e o'o atu i le fia afe, e le mana'o e fausia ni mafutaga i luga o le fa'atuatuaga; e tatau ona fausia i luga o le DLT se fofo o le a galue i luga o PC masani e aunoa ma manaoga faʻapitoa faʻatinoga ma tuʻuina atu se poto masani faʻaoga e le sili atu le leaga nai lo soʻo se faiga faʻamaumauga tutotonu. O tekinolosi i tua atu o le fofo e tatau ona faʻaitiitia ai le ono mafai ona faʻaogaina faʻamatalaga leaga - o le mea lea e iai poloka poloka.

O fa'aupuga mai pepa pa'epa'e ma fa'asalalauga e folafola mai ia i tatou o le isi atina'e o le a fa'atagaina ai le faitau miliona o fefa'atauaiga i le sekone. O le a le mea moni?

Mainnet Ethereum o loʻo tamoʻe nei i le ~ 30 tps. Ona o lenei lava mea, e faigata ona vaʻaia o se poloka poloka i soʻo se auala talafeagai mo manaʻoga faʻapisinisi. Faatasi ai ma vaifofo faʻatagaina, o faʻailoga e faʻaalia ai le 2000 tps e iloa (korama) po'o le 3000 tps (Vaeluaga o Tino, o loʻo i ai sina mea itiiti i totonu o le faʻasalalauga, ae ia manatua o le faʻailoga sa faia i luga o le masini maliega tuai). Sa o se taumafaiga e toe fa'aleleia le Ie, lea na le maua ai ni taunuuga sili ona leaga, 20000 tps, ae o lea ua na o ni suʻesuʻega faʻaleaʻoaʻoga o loʻo faʻatali mo latou faʻatinoga mautu. E foliga mai o se faʻalapotopotoga e mafai ona gafatia le tausia o se matagaluega a le au atinaʻe poloka poloka o le a tuʻuina atu ia faʻailoga. Ae o le faʻafitauli e le gata i le gaosiga, e iai foʻi le latency.

Latalia

O le tuai mai le taimi e amata ai se fefaʻatauaʻiga i lona faʻatagaina mulimuli e le faiga e faʻalagolago e le gata i le saoasaoa o le feʻau e ui atu i laʻasaga uma o le faʻamaonia ma le faʻatonuga, ae faʻapea foʻi i luga o le faʻatulagaina o poloka poloka. E tusa lava pe faʻatagaina e le matou poloka poloka matou te tuʻuina atu i le 1000000 tps, ae e manaʻomia le 10 minute e fai ai se poloka 488MB, o le a sili atu ona faigofie mo i matou?

Sei o tatou vaʻavaʻai totoʻa i le taamilosaga o le olaga o se fefaʻatauaiga i le Hyperledger Fabric e malamalama ai i le mea e manaʻomia ai le taimi ma pe faʻafefea ona fesoʻotaʻi ma poloka poloka faʻavae.

Fa'asalalauina Resitala mo Uili Uili: Ose Aafiaga ile Hyperledger Fabric
ave mai iinei: hyperledger-fabric.readthedocs.io/en/release-1.4/arch-deep-dive.html#swimlane

(1) E faia e le tagata o tausia se fefaʻatauaiga, auina atu i le faʻamaonia o tupulaga, o le mulimuli e faʻataʻitaʻiina le fefaʻatauaiga (faʻaaoga suiga na faia e le chaincode i le setete o loʻo i ai nei, ae aua le tuʻuina atu i le tusi tusi) ma maua RWSet - igoa autu, lomiga ma tulaga taua na maua mai le aoina i CouchDB, (2) toe auina atu e le au lagolago le RWSet ua sainia i le tagata o tausia, (3) siaki e le kalani mo saini uma a tupulaga manaʻomia (endorsers), ona auina atu lea o le fefaʻatauaiga i le tautua oka. , pe auina atu e aunoa ma se faʻamaoniga (o le faʻamaoniga o le a faia pea i se taimi mulimuli ane), o le tautua okaina e fausia ai se poloka ma (4) toe faʻafoʻi atu i tupulaga uma, ae le na o tagata faʻamaonia; e siaki e le tupulaga ia fa'asologa o ki i le seti faitau e fetaui ma fa'aliliuga i totonu o fa'amaumauga, saini a tagata uma e lagolagoina, ma mulimuli ane faia le poloka.

Ae e le na o le pau lena. I tua atu o upu "faʻatonuina se poloka" o loʻo natia e le gata i le faʻatonuina o fefaʻatauaiga, ae faʻapea foʻi ma le 3 fesoʻotaʻiga fesoʻotaʻiga talosaga mai le taʻitaʻi i le au mulimuli ma tua: e faaopoopo e le taʻitaʻi se savali i le ogalaau, auina atu i le au mulimuli, faaopoopo le mulimuli i le la latou ogalaau, auina atu le faamaoniga o le toe faia o le manuia i le taitai, e tuuina atu e le taitai le savali, auina atu le faamaoniga tautino i soo, soo se tautinoga. O le laʻititi o le poloka poloka ma le taimi, o le tele o taimi e manaʻomia ai e le auʻaunaga okaina le faʻavaeina o maliega. O le Hyperledger Fabric e lua poloka faʻavae faʻavae: BatchTimeout - taimi faʻatulagaina poloka ma BatchSize - poloka tetele (le numera o fefaʻatauaiga ma le tele o le poloka lava ia i bytes). O le taimi lava e oʻo atu ai se tasi o tapulaʻa i le tapulaʻa, e tuʻuina atu se poloka fou. O le tele o nodes oka, o le umi fo'i lea. O le mea lea, e tatau ona e faʻateleina le BatchTimeout ma le BatchSize. Ae talu ai o le RWSets o loʻo faʻaliliuina, o le tele tatou te faia le poloka, o le maualuga foi lea o le avanoa o feteʻenaʻiga MVCC. E le gata i lea, faatasi ai ma le faateleina o le BatchTimeout, UX faʻaleagaina faʻaleagaina. E foliga mai ia te aʻu e talafeagai ma manino le polokalame lea e foia ai nei faafitauli.

Faʻafefea ona aloese mai le faʻatali mo le faʻamaeʻaina o poloka ma aua neʻi leiloa le tulaga o fefaʻatauaiga

O le umi o le taimi faʻatulagaina ma le poloka poloka, o le maualuga o le gaosiga o le poloka poloka. O le tasi e le mulimuli saʻo mai le isi, ae e tatau ona manatua o le faʻatuina o maliega i le RAFT e manaʻomia ai ni talosaga fesoʻotaʻiga se tolu mai le taʻitaʻi i le au mulimuli ma tua. O le tele o nodes oka, o le umi foi lea. O le laʻititi o le tele ma le taimi o le faʻavaeina o poloka, o le tele o fegalegaleaiga faapena. E faʻafefea ona faʻateleina le taimi faʻatulagaina ma le poloka poloka e aunoa ma le faʻateleina o le taimi e tali atu ai le polokalama mo le tagata faʻaaogaina?

Muamua, e tatau ona e foia feteʻenaʻiga MVCC e mafua mai i le tele o poloka poloka, lea e mafai ona aofia ai RWSets eseese ma le faʻasologa tutusa. E manino lava, i le itu o le kalani (e faʻatatau i le fesoʻotaʻiga poloka poloka, atonu o se pito i tua, ma o le uiga o laʻu tala) MVCC fete'ena'iga, lea e mafai ona avea ma se 'au'aunaga tu'ufa'atasi po'o se teuteu masani i luga o se vala'au amata fa'apisinisi ma toe fa'ata'ita'i manatu.

Toe taumafai e mafai ona faʻatinoina i se taʻiala faʻapitoa, ae o le latency o le a faʻaitiitia faʻafuaseʻi foi. O lea e tatau ai ona e faʻaaogaina se faʻataʻitaʻiga faʻapitoa i totonu o ni tapulaʻa laiti, poʻo se mea faifaipea. Fa'atasi ai ma le va'aiga i fa'alavelave fa'afuase'i i le suiga muamua.

O le isi laasaga o le faia lea o fegalegaleaiga a le tagata o tausia ma le polokalama e le faʻatali mo le 15, 30, poʻo le 10000000 sekone, lea o le a matou setiina o le BatchTimeout. Ae i le taimi lava e tasi, e tatau ona tausia le gafatia e faʻamautinoa ai o suiga na amataina e le fefaʻatauaiga o loʻo faʻamaumauina / le faʻamauina i le poloka poloka.
E mafai ona faʻaogaina se faʻamaumauga e teu ai le tulaga o fefaʻatauaiga. O le filifiliga pito sili ona faigofie o le CouchDB ona o le faigofie o le faʻaogaina: o le database o loʻo i ai se UI i fafo o le atigipusa, o se REST API, ma e faigofie ona e setiina le kopi ma le faʻasoa mo ia. E mafai lava ona e faia se tu'ufa'atasiga tu'ufa'atasi i le CouchDB fa'ata'ita'iga e fa'aoga e Fabric e teu ai lona tulaga o le lalolagi. Matou te manaʻomia le teuina o pepa faʻapea.

{
 Status string // Статус транзакции: "pending", "done", "failed"
 TxID: string // ID транзакции
 Error: string // optional, сообщение об ошибке
}

O lenei pepa o loʻo tusia i luga o faʻamaumauga aʻo leʻi tuʻuina atu le fefaʻatauaiga i tupulaga, o le ID ID e toe faʻafoʻi atu i le tagata faʻaoga (o le ID lava e tasi e faʻaaogaina e fai ma ki) pe a fai o se gaioiga faʻavae, ona faʻapea lea o le Tulaga, TxID ma Error fanua. fa'afou pe a maua fa'amatalaga talafeagai mai tupulaga.

Fa'asalalauina Resitala mo Uili Uili: Ose Aafiaga ile Hyperledger Fabric

I lenei polokalame, e le faʻatali le tagata faʻaoga mo le poloka e iu lava ina fausia, matamata i le uili taamilo i luga o le lau mo le 10 sekone, na te mauaina se tali vave mai le faiga ma faʻaauau pea ona galue.

Na matou filifilia BoltDB e teu ai tulaga o fefaʻatauaiga ona e manaʻomia le teuina o manatua ma e le manaʻo e faʻaumatia le taimi i luga o fesoʻotaʻiga fesoʻotaʻiga ma se server database tutoʻatasi, aemaise lava pe a faia lenei fegalegaleaiga e faʻaaoga ai le faʻamatalaga manino. I le auala, pe e te faʻaogaina le CouchDB e faʻatino ai le polokalame o loʻo faʻamatalaina i luga pe naʻo le teuina o le setete o le lalolagi, i soʻo se tulaga, e talafeagai le faʻaogaina o le auala e teuina ai faʻamaumauga i CouchDB. I le faaletonu, i CouchDB, o le tele o nodes b-tree e 1279 bytes, lea e itiiti ifo nai lo le tele o vaega i luga o le disk, o lona uiga o le faitau ma le toe faʻaleleia o le laau o le a manaʻomia ai le tele o avanoa faʻapitoa. Ole tele sili ona lelei e fetaui ma le tulaga masani Faʻatulagaina maualuga ma e 4 kilobytes. Mo optimization, tatou te manaʻomia le setiina o le parakalafa btree_chunk_size tutusa ma le 4096 i le faila seti CouchDB. Mo BoltDB sea fa'atonuga tusi lesona e le o manaʻomia.

O'omi i tua: ta'iala fa'apolopolo

Ae e mafai ona tele ni fe'au. E sili atu nai lo le mea e mafai e le faiga, faʻasoa punaoa ma le tele o isi auʻaunaga e ese mai i mea o loʻo faʻaalia i le ata - ma o nei mea uma e tatau ona galue lelei e oʻo lava i masini e faʻaogaina ai le Intellij Idea o le a matua faʻafefe.

O le faʻafitauli o le faʻaogaina o auala eseese o fesoʻotaʻiga, tagata gaosi oloa ma tagata faʻatau, e foia i auala eseese. Sei o tatou vaai po o le a se mea e mafai ona tatou faia.

Paʻu: e mafai ona matou fai atu e mafai ona faʻatautaia le tele o fefaʻatauaiga X i T sekone. O talosaga uma e sili atu i lenei tapula'a ua lafoa'i. E faigofie tele, ae mafai ona e faʻagaloina UX.

Puleaina: e tatau i le tagata faʻatau ona i ai se fesoʻotaʻiga e faʻatatau i le uta, e mafai ona ia pulea le tps a le gaosiga. E le leaga, ae o loʻo tuʻuina atu se tiute i luga o le au atiaʻe o le uta o tagata faʻatau e faʻatino lenei atinaʻe. Mo i matou, e le taliaina lenei mea, talu ai o le poloka poloka i le lumanaʻi o le a tuʻufaʻatasia i totonu o se numera tele o faiga umi.

Puʻupuʻu: nai lo le taumafai e tetee atu i le faʻaogaina o faʻamaumauga, e mafai ona tatou faʻasalaina lenei vaitafe ma faʻagasolo i le saoasaoa manaʻomia. E manino lava, o le fofo sili lea pe a tatou mananaʻo e tuʻuina atu se poto masani faʻaoga lelei. Na matou faʻatinoina le paʻu e faʻaaoga ai se laina i RabbitMQ.

Fa'asalalauina Resitala mo Uili Uili: Ose Aafiaga ile Hyperledger Fabric

E lua ni gaioiga fou ua faʻaopoopoina i le polokalame: (1) a maeʻa ona maua se talosaga API, e tuʻu se feʻau faʻatasi ma tapulaʻa e manaʻomia e valaʻau ai le fefaʻatauaiga, ma maua e le tagata o tausia se feʻau o le fefaʻatauaiga ua talia e le faiga, ( 2) o le pito i tua e faitau faʻamatalaga i se saoasaoa faʻamaonia i le config mai le laina; amataina se fefaʻatauaiga ma faʻafouina faʻamaumauga i totonu o le faleoloa tulaga.
Ole taimi nei e mafai ona e faʻateleina le taimi fau ma poloka le gafatia i le tele e te manaʻo ai, natia faʻatuai mai le tagata faʻaoga.

Isi meafaigaluega

E leai se mea na taʻua iinei e uiga i le chaincode, aua e masani lava e leai se mea e sili ona lelei i totonu. O le chaincode e tatau ona faigofie ma malupuipuia pe a mafai - pau lava le mea e manaʻomia mai ai. O le fa'ava'a e fesoasoani tele ia i tatou e tusia ai le code code faigofie ma le saogalemu. CSKit mai le S7 Techlab ma le static analyzer toe faaola^CC.

E le gata i lea, o loʻo atiaʻe e le matou 'au se seti o mea aoga e faʻafaigofie ma fiafia ai le galue ma le Fabric: su'esu'e poloka poloka, aoga mo toe fa'afou feso'otaiga otometi (fa'aopoopo/ave'ese fa'alapotopotoga, RAFT nodes), aoga mo fa'aleaogaina tusi pasi ma aveese fa'asinomaga. Afai e te fia sao, fa'afeiloa'i.

iʻuga

O lenei faiga e faigofie ai ona sui le Hyperledger Fabric ma le Korama, isi fesoʻotaʻiga Ethereum tumaoti (PoA poʻo le PoW), faʻaitiitia le faʻaogaina moni, ae i le taimi lava e tasi e tausia le UX masani (mo tagata faʻaoga i le browser ma mai le itu o faiga faʻapipiʻi. ). Pe a sui le Fabric i le Ethereum i le polokalame, naʻo le manatu o le toe faʻataʻitaʻiina o le auaunaga / teuteu e manaʻomia ona suia mai le taulimaina o feteʻenaʻiga MVCC i se faʻaopoopoga atomic nonce ma toe lafoina. O le fa'amauina ma le teuina o tulaga na mafai ai ona fa'amavae le taimi tali mai le taimi fa'avae poloka. I le taimi nei e mafai ona e faʻaopoopoina le faitau afe o faʻatonuga nodes ma aua le fefe e faʻapipiʻi poloka poloka ma utaina le tautua oka.

I se tulaga lautele, na o le pau lea o le mea sa ou manao e faasoa atu. O le a ou fiafia pe a fesoasoani i se tasi i la latou galuega.

puna: www.habr.com

Faaopoopo i ai se faamatalaga