Distribuit Subcriptio pro Wheelsets: An Usus cum Hyperledger Fabric

Salve, laboro in turma DRD KP project (distributa subcriptio pro vigilantia vitae cycli rotae solis). Hic libet experientiam nostrae turmae communicare in incepti impedimenti explicandi huius rei sub technologiarum angustiis. Pleraque ex parte loquar de Hyperledger Fabric, sed accessus hic descriptus ad impedimentum permissorum extrapolari potest. Finis ultimus investigationis nostrae est solutiones impedimentum inceptum praeparare ita ut ultimus fructus iucundus sit ad usum et non difficile ad conservandum.

Nullae inventae, solutiones inopinatae, nullae explicationes unicae hic operientur (quia illas non habeo). Ego humilem experientiam meam participare cupimus, "potuit" et fortasse legere experientiam alterius in bonis faciendis et non ita bonis decretis in comment.

Quaestio: blockchains nondum scalable

Hodie, conatus multorum tincidunt intendit ad impedimentum faciendum technologiam re vera opportuna, et non temporis bomba in pulchro involucro utila. Rationes publicae, globus optimisticus, plasma et sharding communes fieri possunt. Quidam dies. Vel fortasse TON iterum launchem in sex menses differet, et tunc Plasma Group exsistere desinet. Possumus credere in alio cursui et chartas candidas in nocte legere, sed hic et nunc opus est facere aliquid quod habemus. Ut stercore factum.

Negotium curriculi nostri in hodierno incepto hoc generaliter spectat: sunt multi subditi, plures mille attingentes, qui relationes fiducialiter aedificare nolunt; necesse est in DLT solutionem aedificare, quae in PCs ordinariis sine speciali observantia requisita operabit et usui usoris experientiam non deteriorem praebebit quam aliqua rationum rationum centralised. technologia post solutionem possibilitatem malitiosorum notitiarum machinationibus obscurare debet – quae causa est cur impedimentum hic sit.

Slogans ex albis instrumentis et instrumentis nobis promittunt proximum progressionem decies centena millia transactionum secundo passurum. Quid est ita?

Mainnet Ethereum currently currit ad ~30 tps. Propter hoc solum, difficile est percipere stipem, quae quoquo modo apta est ad necessitates corporatas. Inter solutiones permissas, benchmarks notae sunt ostendens 2000 tps.Quorum) Vel MMM tps (fabricae Hyperledgerest paulo minus in evulgatione, sed meminerimus Probatio veteris consensus machinamentum efferri). Was conatum funditus rework Fabricaquae non pessimos eventus, 20000 tpsorum dederunt, sed tantum haec studia academica tantum eorum stabilem exsecutionem exspectant. Verisimile est corporationem quae praestare potest ut departments impedimentorum manutenendi cum his indicibus sustineat. Sed res non solum in throughput, est etiam latens.

Virus

Cunctatio, ex quo negotium gestum ad finalem eius approbationem ratiocinationem initiatur, non solum a velocitate nuntii per omnes gradus convalidationis et ordinationis transeuntis, sed etiam in ambitum formationis clausus est. Etiamsi impedimentum nostrum permittit nos ad 1000000 tps committere, sed 10 minuta ad 488MB scandalum formare capit, numquid facilior nobis erit?

Propius inspiciamus ad vitam cycli transactionis in Hyperledger Fabrice ad intelligendum quid tempus et quomodo ad parametri formationem angustos se refert.

Distribuit Subcriptio pro Wheelsets: An Usus cum Hyperledger Fabric
hinc sumpta: hyperledger-fabric.readthedocs.io/en/release-1.4/arcus-dive.html#swimlane

(1) Cliens transactionem format, eam mittit ad pares subscriptiones, hae rem gestam simulant (applicare mutationes a chaincode factas ad statum praesentem, sed non committendum) et RWSet - clavis nomina, versiones ac recipiunt. valores ex collectione in CouchDB sumptas, (2) endorsers remittito signatum RWSet ad clientem, (3) clientem vel sistit pro subscriptionibus omnium parium requisitorum (endorsers), ac deinde negotium mittit ad ministerium ordinandum. aut sine verificatione (probatio tamen postea fiet), ordinatio servitii scandalum facit atque (4) remittit omnibus pares, non solum confirmatores; pares reprehendo quod versiones clavium in lectione certae cum versionibus datorum, subscriptionibus omnium confirmatorum, et demum scandalum committant.

Sed id nulla est. Post verba "ordinator truncum facit" absconditur non solum rerum ordinatio, sed etiam 3 retiacula consecutiva postulationes a duce ad sequaces et retro: dux nuntium addit ad stipitem, ad discipulos mittit, posterius addunt. their log, send confirmation of successful replication to the leader, the leader committit the message, sends confirmation to follow to, imitatoribus committis. Quo minor impedimentum magnitudinis et temporis, eo frequentius officium ordinandi consensum constituere debebit. Hyperledger Fabric duos parametros clausos formandi habet: BatchTimeout - formatio scandali et BatchSize - scandalum magnitudo (numerus negotiorum et magnitudo ipsius clausuli in bytes). Simulac una ex parametris ad terminum pervenit, novus stipes editur. Nodis ordinatior, hoc diutius capiet. Ergo debes augere BatchTimeout et BatchSize. Sed quia RWSets in versione sunt, maiorem scandalum facimus, eo meliores certaminum probabilitas MVCC. Praeterea, aucto BatchTimeout, UX catastrophice cedit. Rationabile et manifestum mihi videtur propositum sequens problemata solvenda.

Quomodo vitare expectans scandalum finalization et non amittendum semita transactionis status?

Quo diutius formationis tempus et scandalum magnitudo, eo superior throughput of blockchain. Una non directe sequitur ex altera, sed sciendum est quod consensus in RATIS constituens postulationem retis tribus requirit a duce ad sequaces et retrahendum. Quo magis ordinant nodos, eo diutius capiet. Quo minor magnitudo et tempus formationis obstructionum, eo magis tales interationes. Quomodo formatio temporis et scandali augere potest quin systema responsionis crescat tempus finis usoris?

Primum, necesse est ut conflictationes MVCC componendae ex magna mole scandali factas, quae varias RWSets cum eadem versione includere possunt. Patet, in parte clientis (in relatione ad reticulum retis, hoc potest bene esse tergum, et hoc dico) MVCC conflictus tracto, quae potest esse vel servitium separatum vel decorator ordinarius super vocationem transactionis inchoativae cum retry logica.

Retry cum consilio exponentiali perfici potest, sed tunc latency etiam exponentialiter subtrahet. Ita uti debes vel retry in certos limites temere, vel constanti. Oculis in primo variantibus collisiones fieri possunt.

Proximus gradus est huius commercium cum systemate asynchrono facere ut non expectet XV, XXX, vel I15 secundis, quae sicut BatchTimeout ponemus. Sed simul, necesse est servare facultatem efficere ut mutationes quae a negotio inceptae perscriptae sunt / not in blockchain consignentur.
A database adhiberi potest ad statum negotiorum condere. Optio facillima est CouchDB propter facilitatem usus: datorum UI ex pyxide, requiem API habet, et replicationem et shardingem pro ea facile erigere potes. Modo collectionem separatam creare potes in eodem CouchDB exemplo quo Fabric usus est ad condendum mundum suum statum. Opus est huiusmodi documenta condere.

{
 Status string // Бтатус Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ: "pending", "done", "failed"
 TxID: string // ID Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ
 Error: string // optional, сообщСниС ΠΎΠ± ошибкС
}

Hoc documentum datorum antequam gestum pares mittitur, res ID usori reddita est (idem ID ut clavis utitur) si haec operatio creationis est, et tunc Status, TxID et Error agri sunt updated quod pertinet notitia ex paribus.

Distribuit Subcriptio pro Wheelsets: An Usus cum Hyperledger Fabric

In hoc schemate, usor non expectat impedimentum ut tandem formare possit, rotam spheara in screen pro X secundis spectans, momentaneum responsionis a systemate accipit et operari pergit.

Elegimus BoltDB ut status transactiones conderemus quod memoriam servare debemus nec tempus terere in commercio network cum servo stanti-solo datorum, praesertim cum hoc commercium utendo textum planum protocollo locum obtinet. Viam, sive CouchDB uteris ad efficiendum schema supra descriptum vel solum ad condendum mundum statum, in casu aliquo, facit sensum ad optimize modum datae in CouchDB repositae. Defalta, in CouchDB, magnitudo nodis b-arboris 1279 bytes est, quae multo minor est quam magnitudo orbis in regione, id quod significat tam lectionem quam rebalancetionem arboris plus corporis discri accessus requirere. Optimal mole vexillum occurrit Forma Advanced et est 4 chilioctetis. Nam ipsum, eget posuere mod btree_chunk_size = 4096 in CouchDB file configurationis. Nam BoltDB talis interventus manualis Quod non requiratur.

Retro pressura: quiddam belli

Nulla aliquam mattis lectus sed aliquam. Plus quam systema tractare potest, communicantes facultates cum duodecim aliis officiis praeter ea quae in schemate monstrantur - et haec omnia etiam in machinis, in quibus ideae Intellij cursus currit, perquam longum esset.

Problema diversorum per rationes communicandi, producentis et consumendi, diversimode solvitur. Videamus quid facere possemus.

Tecta perstillantia: affirmare possumus ad summa X transactionum in T secundis procedere posse. Omnes petitiones quae hunc modum excedunt omissae sunt. Suus 'pulchellus simplex est, sed tunc de UX oblivisci potes.

dominanturedax debet habere aliquam machinam per quam, pro onere, potest moderari tps producentis. Non malus, sed obligationem imponit clientibus oneris tincidunt ad efficiendum hoc interface. Hoc enim nobis inconveniens est, cum impedimentum in futuro in magnum systematum longitudinalem numerum integrabitur.

buffering: loco initus notitiae fluminis resistere moliri, hunc rivum opponere et celeritate debita procedere possumus. Patet, haec optima solutio est, si bonum user experientia praebere volumus. Nos quiddam per queue in RabbitMQ utentes implevimus.

Distribuit Subcriptio pro Wheelsets: An Usus cum Hyperledger Fabric

In schemate duae actiones novae additae sunt: ​​(1) postquam API petitio accepta est, nuntius in parametris necessariis ad transactionem vocandus est, et cliens nuntium accipit rem a systema acceptam (. 2) posterior data legit celeritatem in config a queue determinatam; initiat transactionem ac updates the data in statum reponunt.
Nunc tempus augere et facultatem dare potes quantum vis, moras ab utentis occultans.

Alia instrumenta

Nihil hic de chaincode dictum est, quia nihil in eo optimize solet. The chaincode debet esse tam simplex et secura quam maxime - id omne quod ab eo requiritur. Artificium multum nos adiuvat ut simpliciter et secure scribam chaincode. CSKit ex S7 Techlab et static analyser vivifica ^ CC *.

Praeterea, turma nostra certa utilitatum evolvit ad operandum cum Fabrica simplici et iucunda; blockchain rimor, Utilitas in automatic network reconfiguration (Adaugeo/removeo organizations, ratis nodi), utilitate for libellum revocationem et identitatem remotionem. Si conferre velis, salve.

conclusio,

Hic accessus facilem reddit Hyperledgerum Fabricae cum Quorum, aliis reticulis privatis Ethereum (PoA vel etiam PoW), significanter reales perput reducere, sed simul normales UX conservare (tam pro usoribus in navigatro et ex parte systematum integratum. ). Cum Fabric cum Ethereo in schemate reponat, sola logica retry servitii / decorator mutari opus erit a conflictu MVCC tractando ad incrementi atomici et none residendi. Repositionis quiddam et status repositionis effecit ut tempus responsionis ex temporis formatione decoquatur. Iam milia nodis ordinis addere potes nec timeas ne nimis saepe caudices formentur et officia disponentia onerent.

In universum haec omnia communicare volui. Exultabo si quis in opere suo adiuvet.

Source: www.habr.com