🇹🇿 Uhandisi kuingia kwenye muundo wa Cardano Dynamic P2P

Source: Engineering dive into Cardano's Dynamic P2P design | Essential Cardano

Gundua safari kupitia changamoto, suluhu, na ushindi nyuma ya uundaji wa mfumo thabiti na mbaya wa mitandao.
Chapisho hili la blogu lilichapishwa kwenye blogu ya uhandisi.

Kadiri mfumo ikolojia wa Cardano unavyoendelea kukua na kubadilika, wachangiaji katika mfumo ikolojia wa Cardano wamejitolea kuendelea kuboresha na kuboresha miundombinu ya mitandao ya Cardano. Kutolewa kwa mtandao wa Dynamic peer-to-peer (P2P), iliyotolewa na nodi v.1.35.6, ilikuwa juhudi ya ushirikiano wa timu ya mitandao kutoka IOG, Well-Typed, PNSol, na Cardano Foundation na inawakilisha utendakazi wa hali ya juu. na hatua muhimu katika safari ya Cardano kuelekea kuanzisha jukwaa la blockchain lililogatuliwa kikamilifu na salama.

Ikizingatiwa kuwa Cardano hufanya kazi kama mfumo wa wakati halisi, utendakazi wake na usalama umeunganishwa kwa asili. Timu ya mitandao inasalia kujitolea kutafuta uwiano bora kati ya mambo mbalimbali, ikiwa ni pamoja na masuala ya kitolojia na mandhari, ili kuongeza muda na muunganisho.

Chapisho hili la blogu linakupeleka katika safari ya uhandisi nyuma ya ukuzaji wa muundo wa Dynamic P2P wa Cardano. Inaangazia kanuni za msingi za usanifu, inaangazia changamoto zinazokabili njiani, na kufichua masuluhisho ambayo timu ilibuni ili kuanzisha mfumo thabiti na hatari wa mitandao.

Dynamic P2P ni nini?
Utekelezaji wa Dynamic P2P kwa kuendelea na kwa ubadilikaji huboresha topolojia inayotumika kupitia mchakato wa uteuzi wa programu zingine, kwa lengo la kupunguza muda wa jumla wa usambaaji kwenye mtandao mzima. Matokeo ya utafiti yanapendekeza kuwa kutumia sera kulingana na maelezo ya ndani pekee kunaweza kusababisha matokeo ya kimataifa karibu kabisa. Hii inafanikiwa kwa kufuatilia muda na mzunguko wa wenzao ambao hutoa kichwa cha kuzuia, ambacho hatimaye kinaingizwa kwenye mlolongo.

Lengo la msingi ni kuwaondoa wenzao ‘wasio bora’ huku tukidumisha muunganisho thabiti. Ili kufanikisha hili, programu zingine zinazochukuliwa kuwa zisizofaa kulingana na kipimo hiki ‘hutolewa’ mara kwa mara na badala yake huchukuliwa na mbadala zilizochaguliwa bila mpangilio. Matokeo ya uigaji yanaonyesha kuwa mbinu hii ya uboreshaji hubadilika hadi kufikia karibu matokeo bora ya kimataifa ndani ya idadi ndogo ya marudio.

Kiutendaji, Dynamic P2P inachukua nafasi ya usanidi wa mwongozo wa uteuzi wa programu rika (k.m. kutumia zana ya kusasisha topolojia).

Kwa usanidi wa kibinafsi, waendeshaji wa vikundi vya hisa (SPOs) walihitajika kuanzisha miunganisho na idadi kubwa ya wenzao (50 kwa mfano) ili kudumisha angalau miunganisho 20 inayoendelea mara kwa mara. Mbinu hii ilikuwa muhimu kwa sababu ya hali tuli ya programu zingine zilizosanidiwa na upatikanaji tofauti wa relay za SPO.

Hata hivyo, kwa kutumia Dynamic P2P, nodi zinaweza kusanidiwa ili kudumisha idadi mahususi ya miunganisho ya programu zingine (k.m. 20) na kuchagua kutoka kwa relay zote za SPO zilizosajiliwa kwenye mnyororo. Katika tukio la muunganisho uliopotea na rika, nodi itachagua kiotomatiki wenzao mbadala na ijaribu kuendelea kuunganisha hadi lengo linalohitajika lifikiwe.

Kwa hivyo, Dynamic P2P huondoa hitaji la utoaji zaidi wa miunganisho, ikitoa suluhisho la mtandao linalofaa zaidi na linaloweza kubadilika.

Mtazamo wa kubuni
Cardano inafanya kazi kama mfumo wa ushirika unaojumuisha nodi za uhuru. Haijaundwa kama kielelezo cha seva ya mteja, kumaanisha kwamba hakuna sehemu kuu ya udhibiti au darasa la upendeleo la seva zinazosimamiwa na serikali kuu. Ingawa topolojia ya mtandao inaweza kuwa ilianza kama shirikisho wakati wa awamu ya maendeleo ya Byron, lengo lilikuwa kuibadilisha kuwa mfumo wa mtandao uliosambazwa usioaminika kabisa wenye uwezo wa kukidhi mahitaji yanayobadilika ya mfumo ikolojia wa Cardano - yote huku ikihakikisha muunganisho bora na utendakazi.

Wakati timu ya mitandao ilipoanzisha tukio hili la uhandisi, walijua vyema kwamba wangekumbana na changamoto na matatizo mengi njiani. Walakini, walikabiliana na changamoto hizi ana kwa ana, wakiendelea kuboresha mawazo ya msingi ambayo hatimaye yangeunda muundo wa mfumo wa Dynamic P2P:

  1. Umuhimu na upanuzi: mfumo uliundwa kwa kuzingatia ubadilikaji, na kuifanya iwe rahisi kubadilisha au kuboresha vijenzi mahususi inavyohitajika. Upanuzi huu unaruhusu ujumuishaji usio na mshono wa vipengele vipya na viboreshaji, kuhakikisha kwamba muundo unasalia kulingana na mahitaji yanayoendelea ya mfumo ikolojia wa Cardano. Ukawaida husaidia hasa wakati mbinu rasmi zinatumika kuthibitisha usahihi wa miundo ya kiwango cha chini kuhusiana na vipimo vya kiwango cha juu. Kwa kugawanya mfumo katika vipengele vidogo, vinavyoweza kudhibitiwa zaidi, itawezekana kutumia upimaji wa mali kwa kila moduli kwa ufanisi zaidi, kuhakikisha kwamba tabia ya kila sehemu imefafanuliwa vyema na inazingatia sifa zinazotarajiwa. Bila shaka, chaguo la upangaji programu tendaji na Haskell kama lugha ya msingi ya upangaji ilichukua jukumu kubwa katika kufikia kiwango hiki cha urekebishaji na upanuzi.

  2. Ukuaji: mtandao unapokua, mahitaji ya mfumo wenye uwezo wa kushughulikia idadi kubwa ya nodi na miamala huku ikiheshimu vikwazo vya wakati vya Ouroboros pia huongezeka. Ili kushughulikia hitaji hili la upanuzi katika maono ya muundo wa P2P, timu ilizingatia sifa za kuongeza kiwango tangu mwanzo na kujumuisha mikakati kama vile uteuzi wa marafiki wenye akili.

  3. Usalama na uthabiti: katika mtandao uliogatuliwa, uthabiti na usalama ni muhimu sana. Lengo lilikuwa ni kujenga mfumo wenye uwezo wa kuhimili usumbufu wa ndani na nje. Ili kufanikisha hili, timu ya mtandao ilitekeleza mbinu thabiti za kushughulikia makosa iliyoundwa kwa uthabiti dhidi ya matumizi mabaya, ili kuhakikisha kuwa watumiaji hawawezi kushambulia mfumo kupitia kunyimwa huduma kwa ulinganifu ambayo humaliza rasilimali za mtandao kwa watumiaji wengine. Kwa mbinu ya P2P, kila nodi inaweza kutanguliza muunganisho wake kwa wenzao waliosanidiwa ndani. Hii inahakikisha kwamba nodi hudumisha muunganisho kwa wenzao wanaoaminika na inaweza kufanya maendeleo katika mtandao. Miunganisho ya ndani ina viwango vichache, na shabaha za programu zingine zinazoweza kusanidiwa huruhusu nodi kurekebisha matumizi yake ya rasilimali. Zaidi ya hayo, usimamizi makini wa hali za muunganisho huwezesha kutumia tena miunganisho ya duplex, kuruhusu nodi nyuma ya ngome kuboresha muunganisho wao kwa usalama huku ikipunguza sehemu ya jumla ya mashambulizi.

  4. Utendaji: mtandao unaofanya kazi kwa kiwango cha juu ni muhimu ili kuhakikisha matumizi ya mtumiaji bila mshono. Jitihada kubwa ziliwekezwa katika kuboresha muundo kwa kutumia mbinu kama vile uwasilishaji wa data kwa njia bora kupitia kuzidisha na kutumia itifaki zinazotumia bomba. Zaidi ya hayo, uteuzi wa rika wenye akili una jukumu muhimu katika kupunguza muda wa kusubiri na kuhakikisha mtandao msikivu na unaotegemewa.

Kuanzisha mawasiliano ya ufanisi ndani ya mtandao wa Cardano inahitaji kufikia latency ya chini na muunganisho mzuri. Ili kutimiza mahitaji haya muhimu, Dynamic P2P iliundwa ili kuhakikisha msingi thabiti, unaoweza kupanuka na unaostahimili maendeleo ya mfumo ikolojia. Hata hivyo, ni muhimu kutambua kwamba uaminifu wa marafiki ni jambo muhimu katika kudumisha mtandao salama na unaotegemewa. Ingawa kuzama katika maelezo ya uaminifu ni zaidi ya upeo wa chapisho hili la blogu, inafaa kukumbuka kuwa muundo wa P2P unajumuisha hatua nyingi za kupunguza hatari zinazowezekana na kulinda mtandao.

Inachanganua uteuzi wa programu rika kwa upeanaji wa vizuizi katika Ouroboros
Kuhakikisha utendakazi na usalama wa Ouroboros ni muhimu, na kipengele kimoja muhimu cha hii ni upeanaji wa vizuizi vipya kwenye mtandao kwa wakati unaofaa. Kwa hakika, viunganisho ndani ya mtandao wa P2P vinapaswa kupangwa kwa njia ambayo inapunguza muda unaohitajika ili kuzuia kupitishwa kutoka nodi yoyote hadi nodi nyingine zote kwenye mtandao.

Hata hivyo, kufikia lengo hili huleta changamoto changamano, huku kukiwa na kazi ndogo ya awali inayopatikana ambayo inatumika katika mazingira yasiyoaminika. Kushughulikia tatizo hili ipasavyo kulilazimu kubuniwa kwa suluhu bunifu ambazo zingeweza kuleta usawa kati ya mawasiliano ya haraka na kudumisha uadilifu na usalama wa mtandao uliogatuliwa.

Taarifa ya tatizo
Suluhisho faafu la kuboresha utendakazi linahusisha kupunguza idadi ya ‘hops’ ambazo block inahitaji kupita kwenye mtandao. Kwa maneno ya grafu, hii inamaanisha kupunguza wastani wa idadi ya kingo ambazo kizuizi hupitia. Aidha, urefu wa kila hop au makali ni muhimu. Viungo vya ndani vinaonyesha muda wa chini wa kusubiri ikilinganishwa na viungo vya mabara, ingawa baadhi ya viungo vya mabara ni muhimu kwa upeanaji wa kimataifa wa kuzuia. Kwa mfano, suluhu ndogo ya mojawapo itahusisha viungo vingi vya kimabara, kama vile njia kutoka Ulaya hadi Asia na kurudi.

Algorithms zilizopo za mtandao zinaweza kutoa ‘miti inayozunguka’ bora ambayo inaweza kutumika kama njia za upeanaji wa block. Walakini, algorithms hizi zinategemea nodi zinazoaminiana kubadilishana habari sahihi, ambayo haifai kwa mtandao wa blockchain P2P ambapo nodi haziwezi kuaminiana kwa asili.

Suluhisho bora linapaswa kutegemea maelezo ya ‘eneo lako’ badala ya ‘ya kimataifa’ - maelezo ambayo nodi zinaweza kutathmini kibinafsi bila kutegemea data inayoshirikiwa na inayoaminika. Walakini, kuwa na suluhisho bora ambalo linategemea habari kamili ya ulimwengu inaweza kutumika kama sehemu muhimu ya kumbukumbu.

Utafiti wa awali
Timu ya mitandao ilishirikiana na watafiti wa mtandao kutoka Chuo Kikuu cha Athens, ambao wamebobea katika mifumo iliyogatuliwa na itifaki zao, kufanya kazi muhimu - kuiga sera tofauti za mtandao na kusoma biashara katika wakati wa usambazaji.

Swali la msingi kuhusu uenezaji ni kubainisha ni nodi zipi zinafaa kusambaza vizuizi kwa kila kimoja, au, kwa usahihi zaidi, ni viungo vipi vya uenezaji vinavyopaswa kuanzishwa kati ya nodi ili kuboresha kasi ya usambazaji.

Katika kushughulikia swali hili, pamoja na watafiti tulifuata njia mbili kuu:

  1. Mbinu ya kwanza inadhani kwamba viungo ni huru kwa mchakato wa usambazaji. Inajumuisha kuiga wekeleo tuli ambapo viungo vinawekwa kulingana na sheria zilizoainishwa awali. Usambazaji mwingi kisha unatekelezwa ili kupima utendakazi.

  2. Njia ya pili inahusisha kurekebisha dynamically overlay. Kwa njia hii, nodi huanzisha viunganisho na nodi za nasibu kwenye mtandao na kuendelea kufuatilia takwimu za utendaji wa majirani zao. Mara kwa mara, kila nodi hurekebisha seti yake ya majirani kulingana na takwimu hizi, ikiamua ni majirani gani watabaki na ni yapi ya kuchukua nafasi.


    Kielelezo 1. Ulinganisho wa sera wa Karibu-Nasibu

Mpango huo unaonyesha usambazaji wa haraka wa kizuizi katika mtandao, kufikia nodi zote hatimaye. Katika jaribio hili, nodi zote hutumia sera sawa kabisa ya Funga-Nasibu - k.m. C6R4 inamaanisha nodi kuunganishwa na wenzao sita wa karibu na wenzao wanne bila mpangilio. Hapo awali, nodi zote hazina habari, ikimaanisha kuwa bado hawajapokea kizuizi maalum. Walakini, wanapata habari wakati fulani wakati wa jaribio. Mstari wa nukta nundu unawakilisha suluhu mojawapo la kinadharia, ikizingatiwa kwamba nodi zote zilizoarifiwa zina ujuzi kamili wa ambayo wenzao wana manufaa zaidi, kuwezesha miunganisho kama hiyo (sera ya mtazamo wa mungu).

Ni muhimu kufafanua kuwa sera ya Kufunga Nasibu haikutekelezwa moja kwa moja. Badala yake, ilitumika kama zana ya vitendo ya kinadharia. Huleta usawa kwa kujumuisha vipengele visivyo vya ndani huku ikisalia kuwa rahisi vya kutosha kukadiria kwa kutumia maelezo ya ndani pekee.

Uchanganuzi huu unaonyesha jinsi inavyowezekana kupata suluhisho bora kwa kutumia maelezo ya ndani. Kinachoshangaza ni kwamba mbinu hii inazidi matarajio. Kufikia matokeo ndani ya sababu mbili za ukamilifu kungekuwa jambo la kupongezwa, lakini timu iligundua kwamba inawezekana kuvuka hata hiyo.


Kielelezo cha 2. Sera ya Karibu-Nasibu dhidi ya urekebishaji wa vikundi viwili

Kielelezo cha 2 kinalinganisha matokeo kutoka kwa mbinu mbili zilizoelezwa hapo awali. Uigaji huo ulihusisha kila nodi kudumisha majirani sita wa karibu (kulingana na Muda wa Safari ya Kurudi (RTT)), na nodi nne za nasibu. Viungo hivi viliwekwa tuli katika jaribio zima (kwa hivyo mistari ya samawati isiyobadilika). Katika sera ya ‘vikundi viwili (<=ms 100 na >100ms)’, kila nodi hudumisha idadi isiyobadilika ya viungo vya karibu na viungo vya mbali: ‘funga’ inaashiria kuwa RTT kwa jirani huyo ni chini au sawa na 100 ms, wakati 'kijijini. ’ inamaanisha kuwa RTT ni zaidi ya 100 ms. Nodi huanza na viungo vyote nasibu na kurekebisha mara kwa mara. Wakati wa urekebishaji huu, huhifadhi hadi idadi maalum ya majirani ambao wana RTT ya chini ya ms 100, na hubadilisha baadhi ya majirani waliosalia na nodi mpya zilizochaguliwa bila mpangilio.

Sera hii ya vikundi viwili hutumika kama makadirio ya moja kwa moja na madhubuti ya kutathmini tabia ya sera ya alama. Ni vyema kutambua, hata hivyo, kwamba sera hii si ile inayotumika kwa sasa.


Kielelezo cha 3. Sera ya Kufunga Nasibu dhidi ya Alama ya Wenza

Katika Kielelezo 3, uchanganuzi linganishi unawasilishwa kati ya matokeo yanayotokana na sera iliyojadiliwa hapo awali ya Kufunga Nasibu na sera tofauti ya alama rika. Sera hii mbadala hutathmini programu zingine kulingana na mara kwa mara ambayo wao hutoa kichwa kipya cha kuzuia kwenye nodi kabla ya zingine. Katika usanidi huu wa majaribio, nodi huanza na viungo nasibu na mara kwa mara hupitia urekebishaji. Wakati wa vipindi hivi vya urekebishaji, 20% au 40% ya wenzao wanaofanya chini chini hubadilishwa na nodi mpya, zilizochaguliwa kwa nasibu.

Mstari wa samawati kwenye grafu unawakilisha sera inayotumika kwa sasa (maelezo zaidi kuhusu hili yanaweza kupatikana katika sehemu inayofuata). Mstari wa kijani unaonyesha ubora wa kinadharia.

Baada ya uchunguzi wa kina wa grafu hii, na kuchora ulinganisho na uliopita, tunaweza kutambua tofauti kuu katika ufanisi wa sera tofauti za alama. Walakini, ni muhimu kukumbuka kuwa tofauti hizi hazilinganishwi moja kwa moja kwa sababu ya vigezo tofauti vilivyotumika katika kila jaribio. Baadhi ya majaribio hupima muda kamili wa usambazaji, huku mengine yakizingatia asilimia 99, ambayo inawakilisha thamani ya chini kidogo. Zaidi ya hayo, ufuatiliaji wa latency kati ya nodi hutofautiana katika majaribio, na kusababisha matokeo tofauti.

Katika muktadha huu, asilimia 99 ya sera ya 20% inaonyesha usawa wa chini ikilinganishwa na vikundi viwili. Walakini, hii sio ulinganisho wa moja kwa moja wa ‘apples to apples’ kutokana na sababu zilizotajwa hapo juu.

Sera ambayo tunatumia kwa sasa inapita zaidi ya matumizi ya RTT tunapochagua programu zingine. Katika jitihada zetu za kutafuta mbinu thabiti zaidi na inayotegemeka, tulitafuta njia mbadala ambayo ingeonyesha kwa usahihi manufaa ya programu rika. Hii ilituleta kwenye dhana ya kuwatuza wenzao kwa kuwa wa kwanza kuwasilisha nodi yenye kichwa kipya au kizuizi. Mbinu hii inawasilisha kipimo halisi cha mchango wa wenzao kwenye mtandao, na tofauti na RTT, haiwezi kubadilishwa kwa urahisi au kughushi.

P2P mitandao kulingana na taarifa za ndani
Katika muundo wa Dynamic P2P, kila nodi hudumisha mwonekano wa ndani wa mtandao na kutathmini miunganisho inayoweza kutokea kwa kuzingatia utendakazi wa kihistoria. Nodi huendelea kufuatilia na kurekebisha miunganisho yao, zikitafuta wenzao wanaofanya vizuri zaidi ili kuboresha nafasi ya mtandao wao na kupunguza idadi ya humle zinazohitajika kwa relay ya kuzuia.

Kila nodi hudumisha seti tatu za nodi rika zinazojulikana:

  • Rika baridi: wenzao wanaojulikana bila muunganisho wa mtandao uliowekwa.

  • Rike vuguvugu: wenzao walio na muunganisho ulioidhinishwa wa mtoaji, unaotumika kwa vipimo vya mtandao lakini si kwa itifaki zozote za makubaliano ya kiwango cha maombi, jukumu lao kuu ni kutumika kama seti inayopatikana kwa urahisi ya nodi.

  • Rika la moto: wenzao walio na muunganisho amilifu wa mtoaji, unaotumika kwa itifaki za makubaliano ya kiwango cha maombi.

Kama ilivyotajwa hapo awali, nodi huhifadhi maelezo machache kuhusu wenzao hawa, kulingana na mwingiliano wa awali wa moja kwa moja. Kwa nodi za baridi, habari hii mara nyingi inaweza kuwa haipo kwa sababu ya ukosefu wa mwingiliano wa moja kwa moja wa hapo awali. Taarifa hii inafanana na ‘sifa’ katika mifumo mingine, lakini ni muhimu kusisitiza kwamba ni ya kawaida na haishirikiwi na nodi nyingine yoyote.


Kielelezo 4. Ugunduzi wa rika kwenye Cardano

Kielelezo cha 4 kinaonyesha mzunguko wa kukuza/kushusha daraja, unaosimamiwa na gavana wa uteuzi wa rika (PSG). Kipengele hiki kina jukumu la kufikia malengo mahususi, kama vile kudumisha idadi maalum ya wenzao wanaojulikana na wanaofanya kazi.

Zaidi ya hayo, usanidi wa tuli wa ndani unaweza kutumika kuteua nodi fulani kama rika moto au joto. Mbinu hii inaruhusu uhusiano usiobadilika kati ya nodi zinazodhibitiwa na shirika moja, kama vile hifadhi yenye relay nyingi. Pia hurahisisha mipangilio ya uelewa wa kibinafsi kati ya SPO na hali zingine zinazowezekana za utumiaji.

Katika hali ya tabia mbaya, rika linaweza kushushwa cheo mara moja kutoka kwa seti za joto, joto na baridi. Uamuzi si kuhifadhi taarifa hasi za wenzao kwa muda mrefu ili kupunguza matumizi ya rasilimali katika mfumo usio na ruhusa, kwani kufanya hivyo kunaweza kurahisisha mashambulizi ya Sybil.

Sera za kupindukia na za mitaa
The peer churn governor (PCG) ni sehemu ambayo ina jukumu muhimu katika kudhibiti afya na ufanisi wa mtandao kwa kuabiri masuala yanayohusiana na ugawaji wa mtandao na mashambulizi ya kupatwa kwa jua, kwa kurekebisha maadili ya malengo ya wenzao moto, joto na baridi. ili kukuza uchakachuaji wao.

Katika mchakato huu, PCG hurekebisha mara kwa mara ambapo wenzao wanapandishwa daraja (kuimarishwa kutoka baridi hadi joto, au joto hadi joto) au kupunguzwa (kupunguzwa kutoka kwa joto hadi joto, au joto hadi baridi). Uamuzi huu unaongozwa na utendakazi wa bao ambao hutathmini programu zingine kulingana na manufaa na utendakazi wao.

Kazi hizi za alama ni pamoja na:

  • Sera ya ushushaji mada moto: ina jukumu la kubainisha ni programu rika gani ‘zinazovutia’ (zinazotumika sana na zenye thamani) zinafaa kushushwa hadhi. Alama huhesabiwa kulingana na mchango wa wenza kwenye mtandao, kwa kuzingatia vipengele kama vile idadi ya vizuizi ambavyo imekuwa ya kwanza kutoa na/au idadi ya baiti ambayo imetoa. Wakati wa operesheni ya kawaida, mchanganyiko wa mambo haya hutumiwa kuhesabu alama. Hata hivyo, wakati wa kusawazisha data kwa wingi, idadi ya baiti zinazotolewa hutanguliwa.

  • Sera ya ushushaji mada joto na sera ya kusahau baridi: shughulikia wenzao ‘joto’ na ‘baridi’, kubainisha ni programu zingine zipi zinazopaswa kushushwa daraja au kuondolewa kwenye mtandao. Maamuzi haya huathiriwa na kiwango fulani cha nasibu na sifa mbalimbali. Mambo yaliyozingatiwa ni pamoja na kushindwa hapo awali au alama ya unyogovu, ambayo inaonyesha uaminifu mdogo au viwango vya chini vya shughuli katika programu zingine.

Wakati wa mchakato wa kusawazisha nodi, PCG inahakikisha kuwa si zaidi ya miunganisho miwili amilifu inatumika kuzuia utumiaji kupita kiasi wa rasilimali. Mara tu nodi ikisawazishwa kikamilifu, PCG kuwezesha msukosuko wa mara kwa mara, na kuburudisha 20% ya programu rika kila saa. Hii inakuza mtandao thabiti na unaoweza kubadilika.

Ingawa sera za Karibu Nasibu au za Alama zilizochunguzwa katika utafiti hazijaigwa moja kwa moja katika mazingira ya uzalishaji, zimeathiri pakubwa muundo wa sera zinazotekelezwa. Kwa hivyo, matokeo ya utafiti yamekuwa na jukumu muhimu katika kuunda sera za mitandao ndani ya mazingira ya uzalishaji wa Cardano.

Mbinu ya maendeleo
Utekelezaji wa P2P wa Cardano umejengwa juu ya Haskell, lugha tendaji ya programu inayotambulika sana kwa usahihi, usalama na udumishaji wake. Mfumo thabiti wa aina ya Haskell husaidia katika ugunduzi wa masuala yanayoweza kutokea wakati wa uundaji, na hivyo kusababisha msimbo thabiti na wa kutegemewa. Zaidi ya hayo, timu ya mitandao imeunda na sasa inaajiri io-sim, maktaba ya uigaji wa matukio ya wakati maalum ambayo hutoa udhibiti sahihi wa entropy na muda katika uigaji. Zana hii inaiga kwa uaminifu mfumo wa wakati wa utekelezaji wa Haskell, ikijumuisha vipengele kama vile Kumbukumbu ya Miamala ya Programu (STM), _MVar_s, na zaidi. Kiwango hiki cha udhibiti huruhusu kuzaliana, kupima urekebishaji, na uchunguzi wa hali mbaya zaidi. Mchanganyiko wa Haskell na io-sim huruhusu majaribio makali ya msimbo sawa unaotumiwa katika mfumo wa uzalishaji wa P2P chini ya hali mbalimbali, kuhakikisha utayari wake wa kukabiliana na changamoto za ulimwengu halisi.

Katika dhamira ya kujenga mfumo unaotegemewa, timu ya mitandao iliajiri majaribio ya kina ya kutegemea mali. Majaribio haya yaliundwa mahsusi kufichua hitilafu changamano na matukio ya pembeni ambayo yanaweza yasitambuliwe katika mbinu za jadi za majaribio kama vile kupima vipimo. Kipengele kimoja bainifu cha mchakato wa majaribio ni ujumuishaji wa masimulizi ambayo yanaiga miaka ya uendeshaji wa mfumo. Mbinu hii ya kina inaruhusu kuiga shughuli ya thamani ya miaka, na kugundua mende adimu ambao wanaweza kujitokeza tu chini ya hali maalum au ya muda mrefu. Hata hivyo, ni muhimu kutambua kwamba ubora wa vipimo hivi hatimaye hutegemea ubora wa jenereta zilizoajiriwa. Jenereta zina jukumu muhimu katika kutoa pembejeo tofauti na wakilishi kwa tathmini ya kina.