Kana tikatarisa maitiro emakore mashoma apfuura, takanzwa nezve blockchain nguva dzese, asi kwete zvakawanda nezve izvo chaizvo.
Isu tese tinoziva kuti macryptocurrencies akadai seBitcoin, Ethereum, Dogecoin, Matic, uye vamwe vanovimba ne blockchain tekinoroji. Blockchain yakatungamira zviitiko zvakakosha zvakashandura maindasitiri mazhinji muna 2021 uye yakagadzira nzira yekubudirira kutsva.
Blockchain inzira yekuchengetedza data nenzira yakaoma kana isingaite kugadzirisa, kubira, kana kubira. Idhijitari redhijitari yekutengeserana inodzokororwa uye kupararira kune yese blockchain network yemakomputa masisitimu.
Ndiyo ivhu-inoputsa dhatabhesi tekinoroji iyo inopa masimba angangoita ese cryptocurrencies. Blockchain inoita kuti zviome zvakanyanya kubaya kana kubiridzira sisitimu nekuparadzira makopi akafanana edhatabhesi pane network yese.
Nepo Bitcoin ikozvino ndiyo inonyanya kushandiswa kushandiswa kwe blockchain, tekinoroji inogona kushandira zvakasiyana-siyana zvekushandisa.
Cryptocurrencies uye blockchains zvave kuwedzera mukurumbira mumakore achangopfuura, uye maitiro aya anotarisirwa kuenderera mberi.
Tichagadzira blockchain yakapfava neJavaScript muchidzidzo ichi. Ichakupa iwe kunzwisisa kwekutanga kwekuti blockchain inoshanda sei.
Ngatiidaidzei kuti MelodyCoin uye tipinde muchiitiko!
Kugadzira A Block
Kutanga, tichagadzira faira idzva reJavaScript umo tichaisa kodhi yedu yese.
Ngatidaidze iyo main.js uye tanga netsanangudzo yekuti blockchain nemabhuroko zvinofanirwa kutaridzika sei.
Gadzira kirasi yeBlock uye upe iyo basa Object() {[native code]} kutanga nayo.
Iwe unofanirwa kupa zuva, uye hashi yeyakapfuura block paunenge uchigadzira bhuroka nyowani:
Heano matsanangudzo echinhu chimwe nechimwe:
- Iyo timestamp inoratidza pakaitwa block. Unogona kushandisa chero fomati yaunosarudza (mune iyi kesi, UNIX timestamp).
- Chero fomu re data raunoda kubatanidza kune ino block rinogona kuverengerwa mu data parameter. Kana iwe uchida kugadzira cryptocurrency, unogona kuchengeta data rekutengesa senge mutumiri / mugamuchiri uye huwandu hwemari hwakatamiswa pano.
- Iyo yapfuuraHash tambo inobata iyo yekutanga block hashi. Izvi ndizvo zvinogadzira cheni yezvivharo, izvo zvichave zvakakosha mukupa kutendeseka kwe blockchain yedu gare gare.
Kugadzira Hashes
Imwe neimwe block inobatanidza kune yakapfuura block (saka iyo yapfuuraHash pfuma). Ndiko kuti, yega yega block inoda hashi. Hashi yakafanana nefingerprint. Iyo yakasiyana kune yega yega block.
A block's hash inogona kuverengerwa nekupfuudza zvese zvirimo kuburikidza nebasa rehashi.
Saka, ngatitange nekuita basa rinoverengera hashi yebhuroka iripo.
Saka, pasi peBlock kirasi, isu tinotsanangura iyo CalculatorHash basa:
Nekudaro, iyo SHA256 hashi haitsigirwe neJavaScript uye inofanirwa kuwanikwa kubva kunze raibhurari.
Crypto-js ipakeji yakanakisa inosanganisira yakachengeteka kuita kweakawanda hash algorithms.
Ipapo tinokwanisa kuipinza mune yedu main.js kodhi.
Zvino zvatine yedu CalculatorHash() basa, ngatiiise kuti ishandise muBlock yedu basa:
Mushure mekutsanangura kuti Block inotaridzika sei, tinogona kutsanangura kuti Blockchain inofanira kutaridzika sei. Saka ngatigadzire kirasi itsva.
Mune ino mamiriro, iyo blockchain chinhu chiri nyore kwazvo chine cheni yezvivakwa. Urwu rudzi runobata mabhuroko ese ari pacheni.
Tisati tawedzera mabhururu, tinofanira kutanga tagadzira inozivikanwa se "genesis block." Iri ndiro bhuroko rekutanga mucheni, uye rakasiyana nekuti harigone kunongedza kune rakatangira block (ndiro rekutanga!).
Saka, kuvaka genesis block, ini ndichawedzera basa kukirasi yedu inonzi createGenesisBlock (). Kudzoka mubasa Chinhu () {[native code] } yeBlockchain kirasi yedu.
Isu tinogona ikozvino kusanganisira iyo genesis block chero nguva isu tichivaka chiitiko chitsva cheBlockchain:
Blockchain Nzira
Zvino, ngatiwedzerei nzira kukirasi yedu yeBlockchain izvo zvinotitendera kuita zvinhu sekuwedzera mabhuroko matsva uye kutora bhuroko razvino.
Iyo getLatestBlock basa ndiyo inonyanya kukosha. Inongodzosa nhengo yekupedzisira yeketani array:
Iyo yekuwedzeraBlock tekinoroji inobatanidzwa zvishoma.
Tisati tawedzera bhuroko idzva kucheni yedu, isu tinofanira kutanga taseta zvakafanira iyo block's yapfuuraHash ndima.
Inofanirwa kusetwa kune hashi yeichangowedzerwa block block kune yedu cheni. Isu tinodawo kuverengera hashi yebhuroka nyowani:
Testing
Ngationei kuti MelodyCoin yedu yakabuda sei.
Gadzira muenzaniso we blockchain kuti uite izvi. Ngatiwedzere mamwe mabhuroko akati wandei:
Takagadzira mabhuroko maviri matsva ipapo. Ngatitarisei kuti blockchain yedu inotaridzika sei parizvino.
MelodyCoin ichave yakarongedzerwa uye yakarongeka ine nzvimbo ina:
Simbisa Kutendeseka kweBlockchain
MaBlockchains anonakidza nekuti kana bhuroka rawedzerwa, harigone kugadziridzwa pasina kukanganisa chasara chetani.
Nekudaro, hapana nzira yekuti ini nditarise kuvimbika kwe blockchain yedu nekuita uku.
Ngatiunzei isChainValid basa kune yedu blockchain. Kana cheni iri yepamutemo, inodzoka yechokwadi; kana zvisina kudaro, ichadzoka nhema:
Kuedza Kuvimbika
Isu tinogona ikozvino kuisa kutendeka kwe blockchain yedu pabvunzo. Kana tikazviita izvozvi, zvinosimbisa kuti cheni yedu ndeyechokwadi.
Ngatiedzei zvino kukanganisa blockchain yedu. Ngatichinjei block 2 uye tinyore zvirimo (ngatitii takatamisa zana remacoin pachinzvimbo chechina).
Patinoita izvi, tinogona kuona kuti software inoziva kuedza kwedu kukanganisa ketani.
Nekudaro, iwe unogona kutenda kuti pane imwe nzira yekuti ini ndipindire neizvi. Ndakachinja zvirimo mublock asi handina kuverengera hashi yacho. Saka iwe unogona kuedza kuve wakangwara uye kuverengazve hashi yeiyo block block.
Ndizvo zvese zvaive kune yedu diki blockchain setup! Inotigonesa kuwedzera mabhuraki matsva uye kuona kukanganisa nedata mukati meketani.
Pane nyaya mbiri nediki yedu blockchain yatinofanira kugadzirisa:
- Makomputa emazuva ano anomhanya zvakanyanya uye anogona kuwedzera zviuru zvezvivharo kumaketani edu mumasekonzi. Isu pachena hatidi chero munhu spamming blockchain yedu.
- Yedu blockchain ichiri panjodzi yekutambwa. Iwe unogona kugadzirisa zviri mukati me block uye wobva wangoverengera zvakare hashes (uye epamberi hashes) kune ese anotevera mabhuraki. Nyangwe ukakanganisika nazvo, unopedzisira wava nechain yepamutemo.
Kugadzirisa izvi zvinonetsa, blockchains anoshandisa nzira inozivikanwa se "humbowo hwebasa." Iwe unofanirwa kuratidza kuti iwe wakashandisa yakakosha huwandu hwe computational zviwanikwa kugadzira block uchishandisa nzira iyi. Izvi zvinonziwo kuchera.
Humbowo-hwe-basa hunoda kuti hashi yebhuroko itange nehuwandu hwemaziro. Asi ungaziva sei kana hashi yako inokodzera mutemo uyu?
Zviri mukati me block zvinotarisa hashi yayo. Saka tinogara tichiwana hashi imwe chete, chero tikasagadzirisa zviri mukati.
Yega yega block inofanirwa kuve isina kukosha yakawedzerwa kwairi semhinduro. Iyi inongova imwe data isina kurongeka yatinogona kuvandudza kusvika hashi yeblock yedu yatanga nemazero akakwana. Nekuti haugone kushandura hash basa rinobuda, unofanirwa kuyedza akawanda akasiyana masanganiswa uye tariro yezvakanakisa.
Tanga Mining kune Iyo Blockchain
Ngatitangei nekubatanidza nonce muBlock class yedu. Iyo nonce ndiyo imwechete kukosha mukati me block yedu yatinogona kushandura kuti ibate iyo block's hash.
Hatikwanise kushandura chitambi chenguva kana data.
Tevere, ngatinyorei mineBlock() basa rinozoita kuchera chaiko kwebhuroko. Iri basa rinozotumirwa kuoma kunodiwa separameter uye richaenderera mberi nekuita kusvika hashi yebhuroko redu yatanga nemazero akakwana.
Ndakangogadzira basic while loop yaimhanya kusvika hashi yedu yatanga nemazero akakwana. Isu tinoshandisa kuoma kuona kuti mazero mangani anodiwa. Nekuomerwa kwe5, hashi yedu inofanira kutanga ne5 zero.
Kana hashi yedu isina mazero akakwana, tinosimudza nonce imwe toverenga zvakare hashi. Uye kana tikawana hashi inoenderana nekuoma, tinoiisa kune iyo console.
Pane chimwe chinhu chatinofanira kuita. Isu hatinyatso tora iyo nonce shanduko muaccount mune yedu CalculatorHash nzira, saka hezvino izvi:
Blockchain Kirasi
Ngatiisei iyi nzira nyowani pabvunzo mukirasi yedu ye blockchain uye tione kuti zvinofamba sei.
Kutanga, ini ndichatsanangura kuoma kwe blockchain yedu mune basa Chinhu (). Isu tinozvitsanangura pano sezvo isu tichigona kuishandisa kumwe kunhu gare gare.
Basa readdBlock rinofanirwa kugadziridzwa zvekuti rinochera block risati rawedzera muketani yedu.
Shandisa The Blockchain
Zvino, ngatiise yedu blockchain nyowani yekushandisa neiyo proof-ye-work algorithm. Pano, wedzera vaviri console.log statements.
Patinoita kodhi iyi, tinogona kuona kuti nzira yekuchera migodhi haisisiri kunyanya kukurumidza.
Zvinotora nguva kuti algorithm igadzire mabhuroko ane hashes anotanga ne zero matatu (sekugadziriswa nekuomerwa).
Saka ndiko kwaive kupera kwedu kwekutanga blockchain setup.
Isu tinogona kudzora kuti mabhururu matsva anowedzerwa sei nekukurumidza kune yedu blockchain nekuda kwehumbowo-hwe-basa mashini.
Ndiyo inonyanya kukosha yekuchengetedza chimiro pane blockchains. Uye zvino zvawanzwisisa kuti zvinoshanda sei, tanga kugadzira yako!
Leave a Reply