Uma sibheka izitayela zeminyaka embalwa edlule, sizwile nge-blockchain ngaso sonke isikhathi, kodwa hhayi okuningi mayelana nokucaciswa.
Siyazi sonke ukuthi ama-cryptocurrencies afana ne-Bitcoin, i-Ethereum, i-Dogecoin, i-Matic, nezinye zithembele kubuchwepheshe be-blockchain. IBlockchain ihole izehlakalo ezibalulekile ezaguqula izimboni eziningi ngo-2021 futhi yavula indlela yezimpumelelo ezintsha.
I-Blockchain iyindlela yokugcina idatha ngendlela enzima noma engenakwenzeka ukuyihlela, ukugebenga, noma ukukhwabanisela. Kuyincwadi yedijithali yemisebenzi eyimpinda futhi esabalale kuyo yonke inethiwekhi ye-blockchain yezinhlelo zamakhompiyutha.
Kuwubuchwepheshe bedathabheyisi obuqandula phansi obunika amandla cishe wonke ama-cryptocurrencies. I-Blockchain yenza kube nzima ngendlela emangalisayo ukugebenga noma ukukopela uhlelo ngokusabalalisa amakhophi afanayo esizindalwazi kuyo yonke inethiwekhi.
Nakuba i-Bitcoin manje isiwukusetshenziswa okuvelele kakhulu kwe-blockchain, ubuchwepheshe bunganikeza izinhlelo zokusebenza ezihlukahlukene kakhulu.
I-Cryptocurrencies kanye ne-blockchains iye yanda kakhulu eminyakeni yamuva, futhi lo mkhuba kulindeleke ukuthi uqhubeke.
Sizokwenza i-blockchain elula nge-JavaScript kulesi sifundo. Izokunikeza ukuqonda okuyisisekelo kokuthi i-blockchain isebenza kanjani.
Masiyibize nge-MelodyCoin futhi singene esenzweni!
Ukudala I-Block
Ukuze siqale, sizodala ifayela elisha le-JavaScript lapho sizobeka khona yonke ikhodi yethu.
Masiyibize ngokuthi i-main.js futhi siqale ngencazelo yokuthi i-blockchain namabhulokhi kufanele abukeke kanjani.
Dala isigaba se-Block futhi usinikeze umsebenzi othi Object() {[ikhodi yomdabu] } ukuze uqale ngawo.
Kufanele unikeze idethi, kanye ne-hashi yebhulokhi yangaphambilini lapho udala ibhulokhi entsha:
Nazi izincazelo zesakhiwo ngasinye:
- Isitembu sesikhathi sibonisa ukuthi ibhulokhi lenziwe nini. Ungasebenzisa noma iyiphi ifomethi oyikhethayo (kulokhu, isitembu sesikhathi se-UNIX).
- Noma yiluphi uhlobo lwedatha ofisa ukuxhuma kulo vimba lungafakwa kupharamitha yedatha. Uma ufisa ukudala i-cryptocurrency, ungagcina idatha yokwenziwe efana nomthumeli/umamukeli kanye nenani lemali elihanjiswe lapha.
- I-Hash yangaphambilini iyiyunithi yezinhlamvu ebamba i-hashi ye-block yangaphambili. Yilokhu okuzokhiqiza uchungechunge lwamabhulokhi, okuzobaluleka ekuhlinzekeni ubuqotho be-blockchain yethu kamuva.
Ukudala ama-Hashes
Ibhulokhi ngayinye ixhuma kubhlokhi eyandulele (ngaleyo ndlela impahla yeHash yangaphambilini). Okusho ukuthi, ibhulokhi ngalinye lidinga i-hashi. Ihashi lifana nezigxivizo zeminwe. Ihlukile ngebhulokhi ngayinye.
I-hash ye-block ingabalwa ngokudlulisa konke okuqukethwe kwayo ngomsebenzi we-hashi.
Ngakho-ke, ake siqale ngokusebenzisa umsebenzi ohlanganisa i-hash yebhulokhi yamanje.
Ngakho-ke, ngaphansi kwekilasi leBlock, sichaza umsebenzi wokubalaHash:
Nokho, i-SHA256 hash ayisekelwe yi-JavaScript futhi kufanele itholwe kumtapo wolwazi wangaphandle.
I-Crypto-js iyiphakheji enhle ehlanganisa ukuqaliswa okuphephile kwama-algorithms ambalwa we-hashi.
Bese singayingenisa kukhodi yethu ye-main.js.
Manje njengoba sesinomsebenzi wethu wokubalaHash(), ake siwusebenzise emsebenzini wethu weBlock:
Ngemva kokuchaza ukuthi i-Block ibukeka kanjani, singachaza ukuthi i-Blockchain kufanele ibukeke kanjani. Ngakho-ke masidale ikilasi elisha.
Kulesi simo, i-blockchain iyinto elula kakhulu enochungechunge lwezakhiwo. Leli ilunga eliphethe wonke amabhlogo kuketango.
Ngaphambi kokuthi sengeze amabhlogo, kufanele siqale sakhe lokho okwaziwa ngokuthi “ibhulokhi ye-genesis.” Leli bhulokhi lokuqala kuketango, futhi lihlukile ngoba alikwazi ukukhomba ibhulokhi yangaphambili (ngeyokuqala!).
Ngakho-ke, ukwakha ibhulokhi ye-genesis, ngizofaka umsebenzi ekilasini lethu eliqanjwe ngokuthi createGenesisBlock (). Emuva kumsebenzi othi Object() {[ikhodi yomdabu] } yekilasi lethu le-Blockchain.
Manje singafaka ibhulokhi ye-genesis noma nini lapho sakha isenzakalo esisha se-Blockchain:
Izindlela zeBlockchain
Manje, ake sengeze izindlela ekilasini lethu le-Blockchain ezizosivumela ukuthi senze izinto ezifana nokwengeza amabhulokhi amasha futhi silande ibhulokhi yakamuva.
Umsebenzi we-getLatestBlock uyisisekelo kakhulu. Imane ibuyisele ilungu lokugcina lechungechunge:
Indlela ye-addBlock ibandakanyeka kancane.
Ngaphambi kokuthi sengeze ibhulokhi entsha kuchungechunge lwethu, kufanele siqale simise ngokufanelekile inkambu yangaphambilini ye-Hash yaleyo bhulokhi.
Kufanele isethwe ku-hash yebhulokhi esanda ngezwa kuketango lethu. Sidinga futhi ukubala i-hash yebhulokhi entsha:
Testing
Ake sibone ukuthi i-MelodyCoin yethu iphume kanjani.
Dala isibonelo se-blockchain ukufeza lokhu. Ake sengeze amanye amabhulokhi ambalwa:
Senze amabhulokhi amasha amabili lapho. Ake sibheke ukuthi i-blockchain yethu ibukeka kanjani njengamanje.
I-MelodyCoin izohlungwa futhi ifomethwe ibe nezikhala ezine:
Qinisekisa Ubuqotho BeBlockchain
Ama-Blockchains ayamangalisa ngoba uma ibhulokhi seyengeziwe, ayikwazi ukuguqulwa ngaphandle kokwenza ingxenye esele yeketango ingasebenzi.
Kodwa-ke, ayikho indlela yokuthi ngihlole ubuqotho be-blockchain yethu ngalokhu kuqaliswa.
Ake sethule umsebenzi we-isChainValid ku-blockchain yethu. Uma iketango lisemthethweni, lizobuya liyiqiniso; uma kungenjalo, izobuya ingamanga:
Ukuhlola Ubuqotho
Manje singahlola ubuqotho be-blockchain yethu. Uma sikwenza manje, kuzoqinisekisa ukuthi iketango lethu liyiqiniso.
Manje ake sizame ukuphazamisa i-blockchain yethu. Masiguqule ibhulokhi yesi-2 futhi sibhale phezu kwayo (ake sithi sidlulisele izinhlamvu zemali eziyi-100 esikhundleni sezine).
Uma senza lokhu, siyabona ukuthi isofthiwe iyawubona umzamo wethu wokuphazamisa iketango.
Kodwa-ke, ungakholelwa ukuthi kunenye indlela yokuthi ngigxambukele nalokhu. Ngiguqule okuqukethwe kubhulokhi kodwa angizange ngibale kabusha i-hashi. Ngakho-ke ungazama ukuhlakanipha futhi ubale kabusha i-hashi yalelo bhulokhi efanayo.
Yilokho kuphela obekukhona ekusetheni kwethu i-blockchain encane! Kusenza sikwazi ukwengeza amabhulokhi amasha futhi sibone ukuphazamiseka kwedatha ngaphakathi kweketango.
Kunezinkinga ezimbili nge-blockchain yethu encane okufanele sizilungise:
- Amakhompyutha esimanje ashesha kakhulu futhi angangeza izinkulungwane zamabhulokhi ochungechungeni lwethu ngemizuzwana. Ngokusobala asifuni noma ubani enze ugaxekile ku-blockchain yethu.
- I-blockchain yethu isesengozini yokuphazamiseka. Ungabuyekeza okuqukethwe kwebhulokhi bese umane ubale kabusha ama-hashe (nama-hashi angaphambili) awo wonke amabhlogo alandelayo. Noma ngabe uyixabanisa, uzogcina usuneketango elisemthethweni.
Ukubhekana nalokhu kukhathazeka, ama-blockchains asebenzisa inqubo eyaziwa ngokuthi "ubufakazi bomsebenzi." Kufanele ubonise ukuthi usebenzise inani elibalulekile lezinsiza zokubala ukuze udale ibhulokhi usebenzisa le ndlela. Lokhu kubizwa nangokuthi yezimayini.
Ubufakazi bomsebenzi budinga ukuthi i-hash yebhulokhi iqale ngenani elithile loziro. Kodwa ungazi kanjani ukuthi i-hashi yakho iyahambisana nalo mthetho?
Okuqukethwe kwebhulokhi kunquma i-hashi yayo. Ngakho sihlala sithola i-hashi efanayo, inqobo nje uma singakushintshi okuqukethwe.
Ibhulokhi ngayinye kufanele ibe nenani elingasho lutho elingezwe kuyo njengesixazululo. Lena idatha engahleliwe esingayibuyekeza kuze kube yilapho i-hashi yebhulokhi yethu iqala ngoziro abanele. Ngenxa yokuthi awukwazi ukushintsha okukhiphayo komsebenzi we-hashi, kufanele uhlole izinhlanganisela eziningi ezahlukene futhi uthembe okungcono kakhulu.
Yethula iMining ku-The Blockchain
Ake siqale ngokufaka i-nonce ekilasini lethu le-Block. I-nonce yinani elilodwa ngaphakathi kwebhulokhi yethu esingalilungisa ukuze libe nomthelela ku-hash yebhulokhi.
Asikwazi ukushintsha isitembu sesikhathi noma idatha.
Okulandelayo, asibhale umsebenzi we-mineBlock() ozokwenza ukumbiwa kwangempela kwebhulokhi. Lo msebenzi uzothunyelwa ubunzima obudingekayo njengepharamitha futhi uzoqhubeka nokusebenza kuze kube yilapho i-hashi yebhulokhi yethu iqala ngoziro abanele.
Ngisanda kwenza i-loop eyisisekelo ezosebenza kuze kube yilapho i-hashi yethu iqala ngoziro abanele. Sisebenzisa ubunzima ukunquma ukuthi bangaki oziro abadingekayo. Ngobunzima obungu-5, i-hashi yethu kufanele iqale ngoziro abangu-5.
Uma i-hashi yethu ingenawo amaziro anele, siphakamisa i-nonce ngayinye bese sibala kabusha i-hashi. Futhi uma sithola i-hash ehambisana nobunzima, siyingena kukhonsoli.
Kukhona enye into okudingeka siyenze. Asikuthathi ngempela okuguquguqukayo okuyi-nonce ku-akhawunti yethu indlela yokubalaHash, ngakho-ke nansi:
Blockchain Ikilasi
Ake sihlole le ndlela entsha ekilasini lethu le-blockchain futhi sibone ukuthi kuhamba kanjani.
Ukuqala, ngizochaza ubunzima be-blockchain yethu ku-function Object(). Siyichaza lapha njengoba singayisebenzisa kwenye indawo kamuva.
Umsebenzi we-addBlock kufanele-ke ulungiswe ngendlela yokuthi imayini ibhulokhi ngaphambi kokuyengeza ochungechungeni lwethu.
Sebenzisa i-Blockchain
Manje, ake sibeke i-blockchain yethu entsha esizoyisebenzisa ne-algorithm yobufakazi bomsebenzi. Lapha, engeza izitatimende ezimbalwa ze-console.log.
Uma senza le khodi, singabona ukuthi inqubo yezimayini ayisasheshi kakhulu.
Kuthatha isikhathi esithile ukuthi i-algorithm ikhiqize amabhlokhi anama-hashes aqala ngoziro abathathu (njengoba amiswe kanzima).
Ngakho kwaba isiphetho sethu esiyisisekelo se-blockchain.
Singalawula ukuthi amabhlogo amasha engezwa ngokushesha kangakanani ku-blockchain yethu ngenxa yendlela yobufakazi bomsebenzi.
Isici sokuvikela esibaluleke kakhulu kuma-blockchains. Futhi manje njengoba usuqonda ukuthi kusebenza kanjani, qhubeka nokudala okwakho!
shiya impendulo