Ukuba sijonga iindlela zeminyaka embalwa edlulileyo, sivile malunga ne-blockchain ngamaxesha onke, kodwa akukho nto ingako malunga neenkcukacha.
Sonke siyayazi ukuba imali efihlakeleyo efana neBitcoin, iEthereum, iDogecoin, iMatic, kunye nezinye zixhomekeke kwitekhnoloji yebhloko. I-Blockchain ikhokele iminyhadala ebalulekileyo eye yaguqula amashishini amaninzi ngo-2021 kwaye yavula indlela yempumelelo entsha.
I-Blockchain yindlela yokugcina idatha ngendlela enzima okanye engenakwenzeka ukuyihlela, i-hack, okanye i-swindle. Yileja yedijithali yentengiselwano ephindaphindwayo kwaye isasazwe kuyo yonke inethiwekhi ye-blockchain yeenkqubo zekhompyuter.
Yitekhnoloji yedatha eqhekezayo enika amandla phantse zonke ii-cryptocurrencies. I-Blockchain yenza ukuba kube nzima kakhulu ukugqekeza okanye ukukopela inkqubo ngokusasaza iikopi ezifanayo zedathabheyisi kuyo yonke inethiwekhi.
Ngelixa i-Bitcoin ngoku isetyenziswa kakhulu kwi-blockchain, itekhnoloji inokusebenzisa usetyenziso olubanzi kakhulu.
I-Cryptocurrencies kunye ne-blockchains ziye zanda kakhulu kwiminyaka yamuva nje, kwaye lo mkhwa kulindeleke ukuba uqhubeke.
Siza kwenza i-blockchain elula ngeJavaScript kwesi sifundo. Iya kukunika isiseko sokuqonda malunga nendlela ibhloko esebenza ngayo.
Masiyibize i-MelodyCoin kwaye singene ngqo kwisenzo!
Ukwenza iBloko
Ukuqala, siya kudala ifayile entsha yeJavaScript apho siya kubeka yonke ikhowudi yethu.
Masiyibize i-main.js kwaye siqale ngenkcazo yendlela ibhloko kunye neebhloko kufuneka zibukeke ngayo.
Yenza iBhlokhi iklasi kwaye uyinike umsebenzi Object() { [ikhowudi yemveli] } ukuqala ngayo.
Kuya kufuneka unike umhla, kunye ne-hash yebhloko yangaphambili xa usenza ibhloko entsha:
Nazi iinkcazelo zepropati nganye:
- Isitampu sexesha sibonisa ukuba yenziwe nini ibhloko. Ungasebenzisa nayiphi na ifomathi oyikhethayo (kulo mzekelo, isitampu sexesha seUNIX).
- Naluphi na uhlobo lwedatha onqwenela ukudibanisa kule block ingabandakanywa kwiparameter yedatha. Ukuba unqwenela ukwenza i-cryptocurrency, ungagcina idatha yentengiselwano efana nomthumeli/umamkeli kunye nesixa semali esihanjiswe apha.
- I-hash yangaphambili ngumtya obambe i-hash yebhloko yangaphambili. Oku kuya kuvelisa ikhonkco leebhloko, eziya kuba zibalulekileyo ekuboneleleni ingqibelelo ye-blockchain yethu kamva.
Ukudala iiHashes
Ibhloko nganye iqhagamshela kwibhloko eyandulelayo (ngaloo ndlela ipropathi yeHash yangaphambili). Oko kukuthi, ibhloko nganye ifuna i-hash. Ihashi iyafana nomnwe. Yahlukile kwibhloko nganye.
I-hash yebhloko inokubalwa ngokudlula yonke imixholo yayo ngomsebenzi we-hash.
Ke, masiqale ngokuphumeza umsebenzi obala i-hash yebhloko yangoku.
Ke, phantsi kweklasi yeBlock, sichaza umsebenzi wokubalaHash:
Nangona kunjalo, i-SHA256 hash ayixhaswanga yiJavaScript kwaye kufuneka ifunyenwe kwilayibrari yangaphandle.
I-Crypto-js yiphakheji emangalisayo ebandakanya ukuphunyezwa okukhuselekileyo kwee-algorithms ezininzi ze-hash.
Emva koko sinokuyingenisa kwikhowudi yethu ye-main.js.
Ngoku ekubeni sinomsebenzi wethu wokubalaHash (), masiwubeke ukuba siwusebenzise kumsebenzi weBloko yethu:
Emva kokuchaza ukuba iBlock ijongeka njani, sinokuchaza ukuba iBlockchain kufuneka ijongeke njani. Ngoko ke makhe iklasi entsha.
Kule meko, i-blockchain yinto elula kakhulu enekhonkco lepropati. Olu luluhlu olubambe zonke iibhloko kwikhonkco.
Ngaphambi kokuba songeze iibhloko, kufuneka siqale senze into eyaziwa ngokuba yi "genesis block". Le yibhloko yokuqala kwitsheyini, kwaye iyodwa kuba ayinakukhomba kwibhloko yangaphambili (yeyokuqala!).
Ngoko ke, ukwakha ibhloko yegenesis, ndiya kongeza umsebenzi kwiklasi yethu ebizwa createGenesisBlock (). Emuva kumsebenzi Object () {[ikhowudi yemveli]} yeklasi yethu yeBlockchain.
Ngoku sinokubandakanya ibhloko ye-genesis nangaliphi na ixesha sakha umzekelo omtsha weBlockchain:
Iindlela zeBlockchain
Ngoku, masenze iindlela kwiklasi yethu yeBlockchain eya kusivumela ukuba senze izinto ezinjengokongeza iibhloko ezintsha kwaye silande ibhloko yamva nje.
Umsebenzi we getLatestBlock ngowona usisiseko. Ibuyisela nje ilungu lokugqibela loluhlu lwekhonkco:
Ubuchwephesha be-addBlock bubandakanyeka ngakumbi.
Ngaphambi kokuba songeze ibhloko entsha kwikhonkco lethu, kufuneka siqale ngokufanelekileyo ukuseta indawo yangaphambili yeHash yebhloko.
Kufuneka imiselwe kwi-hash yebhloko esanda kongezwa kwikhonkco lethu. Kufuneka sibale i-hash yebhloko entsha:
Testing
Makhe sibone ukuba i-MelodyCoin yethu iphume njani.
Yenza umzekelo we-blockchain ukuphumeza oku. Makhe songeze ezinye iibhloko ezimbalwa:
Senze iibhloko ezimbini ezintsha apho. Makhe sijonge ukuba i-blockchain yethu ijongeka njani ngoku.
I-MelodyCoin iya kucutshungulwa kwaye ifomathwe ngezithuba ezine:
Qinisekisa iMfezeko yeBlockchain
I-Blockchains iyamangalisa kuba emva kokuba ibhloko yongeziwe, ayikwazi ukuguqulwa ngaphandle kokuphazamisa intsalela yekhonkco.
Nangona kunjalo, akukho ndlela yam yokujonga ingqibelelo ye-blockchain yethu ngolu phunyezo.
Makhe sazise isChainValid umsebenzi kwi-blockchain yethu. Ukuba umxokelelwane usemthethweni, wobuya ube yinyaniso; kungenjalo, iya kubuya bubuxoki:
Ukuvavanya Ingqibelelo
Ngoku sinokubeka ukuthembeka kwe-blockchain yethu kuvavanyo. Ukuba siyayenza ngoku, iya kuqinisekisa ukuba ikhonkco lethu liyinyani.
Makhe sizame ukuphazamisa i-blockchain yethu. Masitshintshe ibhloko yesi-2 kwaye sibhale ngaphezulu imixholo yayo (masithi sitshintshe i-100 leenkozo endaweni yezine).
Xa sisenza oku, siyabona ukuba isoftware iyawuqonda umzamo wethu wokuphazamisana netyathanga.
Nangona kunjalo, unokukholelwa ukuba kukho enye indlela yokuba ndingenelele kule nto. Ndiyiguqule imixholo kwibhloko kodwa andizange ndiphinde ndibale i-hash. Ke unokuzama ukuba krelekrele kwaye ubale kwakhona i-hash yaloo bloko inye.
Yiloo nto kuphela eyayikho kuseto lwethu oluncinci lwe-blockchain! Isenza ukuba songeze iibhloko ezintsha kwaye sibone ukuphazamisa idatha ngaphakathi kwekhonkco.
Kukho imiba emibini kwi-blockchain yethu encinci ekufuneka siyilungise:
- Iikhompyuter zanamhlanje zikhawuleza kakhulu kwaye zinokongeza amawaka eebhloko kwikhonkco lethu ngemizuzwana. Ngokuqinisekileyo asifuni nabani na othumela i-spam kwi-blockchain yethu.
- I-blockchain yethu isesichengeni sokuphazamiseka. Ungahlaziya imixholo yebhloko kwaye emva koko ubale kwakhona iihashes (kunye neehashi zangaphambili) kuzo zonke iibhloko ezilandelayo. Nokuba uxakene nayo, uya kuphelela ngetyathanga elisemthethweni.
Ukujongana nezi nkxalabo, ii-blockchains zisebenzisa indlela eyaziwa ngokuba "bubungqina bomsebenzi." Kuya kufuneka ubonise ukuba usebenzise isixa esibalulekileyo sezixhobo zokubala ukwenza ibhloko usebenzisa le ndlela. Oku kukwabizwa ngokuba zemigodi.
Ubungqina bomsebenzi bufuna ukuba i-hash yebhloko iqale ngesixa esithile samaqanda. Kodwa unokwazi njani ukuba ihashi yakho iyawufanela lo mgaqo?
Imixholo yebhloko imisela i-hash yayo. Ke sihlala sifumana i-hash efanayo, ngaphandle kokuba asiguquli imixholo.
Ibhloko nganye kufuneka ibe nexabiso elingafunekiyo elongezwe kuyo njengesisombululo. Le yeyona datha ingaqhelekanga esinokuyihlaziya de i-hash yebhloko yethu iqale ngooziro abaneleyo. Ngenxa yokuba awukwazi ukuguqula imveliso ye-hash, kufuneka uvavanye indibaniselwano eninzi eyahlukeneyo kunye nethemba leyona nto ingcono.
Yazisa iMigodi kwiBlockchain
Masiqale ngokubandakanya i-nonce kwiklasi yethu yeBlock. I-nonce lixabiso elinye ngaphakathi kwebhloko yethu esinokuthi siyiguqule ukuze ichaphazele i-hash yebhloko.
Asikwazi ukutshintsha isitampu sexesha okanye idatha.
Okulandelayo, masibhale i-mineBlock () umsebenzi oya kwenza owona mgodi webhloko. Lo msebenzi uya kuthunyelwa ubunzima obufunekayo njenge parameter kwaye iya kuqhubeka isenza de i-hash yebhloko yethu iqale ngooziro abaneleyo.
Ndenze nje i-loop esisiseko enokuthi iqhube de i-hash yethu iqale ngo-zero owaneleyo. Sisebenzisa ubunzima ukumisela ukuba bangaphi ooziro abafunekayo. Ngobunzima be-5, i-hash yethu kufuneka iqale ngo-5 zero.
Xa iheshi yethu ingenaziro ngokwaneleyo, siphakamisa i-nonce nganye kwaye siphinde sibale i-hash. Kwaye ukuba sifumana i-hash ehambelana nobunzima, siyifaka kwi-console.
Kukho enye into ekufuneka siyenzile. Asiyithathi ngokwenyani ukuguquguquka kwe-nonce kwindlela yethu yokubalaHash, ke nantsi:
Iklasi yeBlockchain
Masibeke le ndlela intsha kuvavanyo kwiklasi yethu ye-blockchain kwaye sibone ukuba ihamba njani.
Ukuqala, ndiza kuchaza ubunzima be-blockchain yethu kumsebenzi Object(). Siyichaza apha kuba sinokuyisebenzisa kwenye indawo kamva.
Umsebenzi we-addBlock kufuneka emva koko uguqulwe ukuze ubambe ibhloko ngaphambi kokuba uyongeze kwikhonkco lethu.
Sebenzisa iBlockchain
Ngoku, masibeke i-blockchain yethu entsha ukuze siyisebenzise kunye ne-algorithm yobungqina bomsebenzi. Apha, yongeza iinkcazo ezimbalwa ze-console.log.
Xa siphumeza le khowudi, sinokubona ukuba inkqubo yemigodi ayisakhawulezi kakhulu.
Kuthatha ixesha elithile ukuba i-algorithm ivelise iibhloko ngee-hashes eziqala ngo-zero ezintathu (njengoko ziqwalaselwe ngobunzima).
Ke eso yaba sisiphelo sokuseta kwethu i-blockchain esisiseko.
Sinokulawula ngokukhawuleza ukuba iibhloko ezintsha zongezwa njani kwi-blockchain yethu ngenxa yobungqina bokusebenza.
Yeyona nto ibalulekileyo yokhuseleko kwi-blockchains. Kwaye ngoku ukuba uyayiqonda indlela esebenza ngayo, qalisa ukwenza eyakho!
Shiya iMpendulo