Muhtasari wa Kiufundi: Usanifu wa Plutus

Kwa kuwa uko hapa, labda umesikia kuhusu Cardano. Ikiwa umekuwa hapa kwa muda, unaweza kujua “mkataba bora” ni nini. Hapa kuna kitu ambacho bado hakifahamiki na wengi: Plutus. Kutokana na video iliyochapishwa kwa youtube ya IOG mnamo Aprili, makala haya yanaelezea Plutus ni nini na umuhimu wake katika usanifu wa Cardano.

Msingi wa jukwaa la blockchain la Cardano umejengwa kwenye tabaka mbili tofauti: Cardano Settlement Layer (CSL) na Cardano Computation Layer (CCL). Plutus ni mkusanyiko wa teknolojia mbalimbali inayoendesha CCL :

*Plutus ndiyo msingi wa mkataba bora wa Cardano ambao unawezesha uundaji wa DApps (programu zilizogatuliwa).

*Plutus huwezesha non-fungible token (NFTs) ambazo zimekuwa maarufu sana mwaka huu.

*Plutus ni jinsi unavyozindua mali asili kwenye Cardano: uwezo wako wa kuunda sarafu yako mwenyewe.

*Hatimaye, Plutus inaruhusu mantiki ya masharti ya kiholela ya on-chain: fikiria utayarishaji wa kauli ya “ikiwa” ya mtindo bora, lakini kwenye blockchain ya Cardano.

Cha muhimu zaidi ya jinsi vipengele vya jukwaa la Plutus hufanya kazi ni kitu kinachoitwa EUTxO.

Kwanza, “UTxO” inasimamia “ Unspent Transaction Output“; ni jina la mfano wa “droo ya pesa” ya uhasibu iliyoanzishwa na Bitcoin. Katika nadharia hii, thamani za viwango tofauti huhifadhiwa katika UTxOs, kama vile unavyoweza kuweka bili za thamani tofauti kwenye droo ya pesa. Unaweza pia kufikiria UTxO kama vifungashio vya ADA moja au zaidi kwenye blockchain ya Cardano.

“E” mwanzoni mwa EUTxO inasimamia “Extended”: EUTxO ni jinsi Cardano inavyofanya upangaji programu kwenye on-chain na mikataba bora. Kuna vipengele vinne vya EUTxO: Mkataba, idhini, Datum, na Muktadha.

Mkataba: Mikataba bora ni programu, zilizohifadhiwa kwenye blockchain, ambazo huendesha wakati hali zilizowekwa tayari zinakabiliwa. Zinaweza kuzingatiwa kama kufuli zinazoshikilia UTxOs. Unaweza pia kufikiria mikataba bora kama vithibitishaji au hati ya programu tu.

Idhini: Hii ni data inayohamishwa kutoka kwa mtumiaji hadi kwa mkataba bora. Katika UTxO rahisi, Idhini inaweza kuwa saini ambayo hutoa uthibitisho wa umiliki wa UTxO na ufikiaji wa maudhui. Unaweza kufikiria idhini kama ufunguo wa kufungua mkataba.

Taarifa: Kipande cha habari ambacho kinaweza kuhusishwa na UTxO. Inatumika kuhifadhi maelezo ya hali ya hati kama vile mmiliki wake au maelezo ya wakati (ambayo yanafafanua wakati UTxO inaweza kutumika). Unaweza kufikiria Taarifa kama kiendeshi kikuu cha mkataba bora, wa kuhifadhi kila aina ya data.

Muktadha: Muktadha kimsingi ni mukhtasari au metadata ya shughuli. Inaweza kujumuisha maelezo kama vile ni nani aliyetia saini kwa shughuli hiyo au pesa zinakoenda.

Kwa vipengele hivi vinne vya EUTxO, jukwaa la Plutus huruhusu biashara na watengenezaji kuendeleza programu mbalimbali zilizogatuliwa, bidhaa za kifedha na michezo kwenye Cardano.

Jukwaa la Plutus

Mfumo wa Plutus huanza na msimbo wa msanidi programu, kisha hupitia mfululizo wa hatua za uboreshaji, na hatimaye huwekwa kwenye chain (leja api) na hatimaye kutekelezwa na kuendeshwa na mtathmini mkuu wa plutus kwa njia iliyogatuliwa.

Msimbo wa chanzo

Plutus huanza na msimbo wa programu kwenye kompyuta ya msanidi, kabla ya msimbo huo kufikia blockchain na kabla ya watumiaji kuhusishwa. Kufikia uandishi huu, mikataba yote ya Plutus imeandikwa katika lugha ya programu ya Haskell, au supersets ya Haskell. Kwa kutatanisha, Plutus yenyewe pia ni lugha ya programu, kifaa kikuu cha Haskell ambacho hufanya uandishi wa Haskell kuwa wa kazi rahisi na hupunguza boilerplate. Jukwaa la Plutus limeundwa kuruhusu lugha nyingine au lugha mahususi za kikoa katika siku zijazo ili kurahisisha matumizi fulani, lakini kwa sasa, Plutus na Haskell ndio chaguo lako pekee.

Bomba la mkusanyaji

Baada ya msanidi programu kuvuka Is na dots zao za Ts , hati ya Haskell inabadilishwa kuwa Plutus IR. Plutus IR ni “uwakilishi wa kati” wa msimbo ya Haskell. Hali hii ya IR sio msimbo ya mashine 1 na 0 bado, lakini ni fursa kwa Plutus kuboresha msimbo ya msanidi programu kwa matokeo bora zaidi ya 1S na 0S. Plutus IR ni kwa maendeleo ya Cardano ni kama vile LLVM ni kwa maendeleo ya programu za Apple iOS au lugha ya programu ya Rust

Kutoka kwa Plutus IR, misimbo imegeuzwa kuwa msingi wa typed-plutus. Hii ni kabla ya RAW 1s na 0s. Inatoa safu ya kiwango cha chini kusaidia watengenezaji kuona maswala kwa urahisi kabla ya ufikiaji wa1 na 0s.

Ifuatayo ni msingi wa hesabu isiyo na msingi-plutus-la lambda, njia ya kuelezea programu kwa mantiki safi (tazama kiunga chini kwa nakala ya Wikipedia). Uwakilishi huu wa msingi wa plutus wa programu ndio utatekelezwa kwenye blockchain.

Kupata on-chain

Baada ya uboreshaji wote, programu iliyokusanywa hatimaye iko tayari kutumika au kuekwa kwenye blockchain. Katika Cardano, kuna programu zingine za plutus kusaidia na hii na vile vile zana za msanidi programu.

Msimbo wa off-chain

Mara tu msimbo wako unapokuwa kwenye blockchain, utahitaji kuandika seti nyingine ya msimbo wa Plutus/Haskell ili kusaidia utengenezaji wa shughuli. Kipengele hiki cha off-chain ndiyo sehemu ambayo itakusanya vitu kwa usahihi kama vile idhini na taarifa na kuunda shughuli ambao inaweza kuingiliana na msimbo uliokusanywa ulioko kwenye blockchain.

Hitimisho

Ukiwa na msimbo wako wa onchain uliokusanywa na msimbo wako wa off-chcain DApp yako iko tayari kuwezesha mwingiliano wa watumiaji. Sehemu inayofuata katika mfululizo huu itaenda kwa kina kuhusu Mwingiliano wa Plutus.

Related Links

  • Lambda calculus writeup wikipedia
  • Cardano Technical Briefing: Plutus by John Woods video

Get more articles like this in your inbox

What is your experience with the Plutus platform? What still puzzles you?

Or leave comment
Share

No comments yet…

avatar
You can use Markdown
close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    d. 3 se. 24
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    d. 4 se. 3
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    d. 3 se. 48
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    d. 2 se. 16
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    d. 3 se. 14
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    d. 3 se. 19
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    d. 4 se. 59
    Darlington Kofa
0:00
/
~0:00