Haddii aan eegno isbeddellada dhowrkii sano ee la soo dhaafay, waxaan maqalnay blockchain mar walba, laakiin wax badan oo ku saabsan waxyaabaha gaarka ah.
Waxaan dhamaanteen ka warqabnaa in lacagaha loo yaqaan 'cryptocurrencies' sida Bitcoin, Ethereum, Dogecoin, Matic, iyo kuwa kale ay ku tiirsan yihiin tignoolajiyada blockchain. Blockchain waxa uu hogaamiyay dhacdooyinkii muhiimka ahaa ee kacday warshado badan 2021 una gogol xaarayey guulo cusub.
Blockchain waa hab lagu kaydiyo xogta hab adag ama aan macquul ahayn in wax laga beddelo, la jabsado, ama la khiyaaneeyo. Waa buug dijitaal ah oo wax kala iibsiga ah oo la nuqulo oo ku faafay dhammaan shabakadaha kombuyuutarrada ee blockchain.
Waa tignoolajiyada xog-ururinta ee dhulka-jabinaysa taas oo awood u siinaysa dhammaan lacagaha loo yaqaan 'cryptocurrencies'. Blockchain waxa ay si aad ah u adagtahay in la jabsado ama la khiyaameeyo nidaamka iyada oo la faafinayo nuqullo isku mid ah oo ah kaydka xogta guud ahaan shabakada.
Iyadoo Bitcoin ay hadda tahay isticmaalka ugu caansan ee loo isticmaalo blockchain, tignoolajiyada ayaa u adeegi karta codsiyo kala duwan oo aad u ballaaran.
Lacagta loo yaqaan 'Cryptocurrencies' iyo 'blockchains' ayaa sii kordhayay sannadihii ugu dambeeyay, isbeddelkan ayaa la filayaa inuu sii socdo.
Waxaan ku samayn doonaa blockchain fudud oo leh JavaScript casharkan. Waxay ku siin doontaa faham aasaasi ah oo ku saabsan sida blockchain u shaqeeyo.
Aan ugu yeerno MelodyCoin oo si sax ah u galno ficilka!
Abuuritaanka Block
Si aan u bilowno, waxaan abuuri doonaa fayl cusub oo JavaScript kaas oo aan ku dhejin doono dhammaan koodkayaga.
Aan ugu yeerno main.js oo aan ku bilowno sharaxaad ku saabsan sida blockchain iyo blocks ay u ekaan lahaayeen.
Abuur fasalka xannibaadda oo sii shaqa Object() {[native code]} si aad ugu bilawdo.
Waa inaad bixisa taariikh, iyo xashiishkii balooggii hore marka aad abuurayso baloog cusub:
Waa kuwan qeexitaannada hanti kasta:
- Jadwalka wakhtiga ayaa tilmaamaya marka baloogga la sameeyay. Waxaad isticmaali kartaa qaab kasta oo aad doorato (xaaladdan, UNIX timestamp).
- Nooc kasta oo xog ah oo aad rabto inaad ku xidho baloogan waxa lagu dari karaa xadka xogta. Haddii aad rabto inaad abuurto cryptocurrency, waxaad haysan kartaa xogta wax kala iibsiga sida soo-diraha/qaataha iyo cadadka lacagta halkan loo raray.
- Xashiishkii hore waa xadhig haya xashiishkii block hore. Tani waa waxa dhalin doona silsiladaha blocks, taas oo muhiim u noqon doonta bixinta daacadnimada blockchain-ka dambe.
Abuurista Xashiishyada
Baloog kastaa waxa uu ku xidhaa balooggii hore (sidaa hantidii hore ee Hash). Taasi waa, block kasta wuxuu u baahan yahay xashiish. Xashiishku wuxuu la mid yahay sawirka faraha. Waxay u kala duwan tahay block kasta.
Xashiishka baloogga waxa lagu xisaabin karaa iyada oo dhammaan waxa ku jira la dhex mariyo shaqada xashiishka.
Haddaba, aan ku bilowno hirgelinta hawl xisaabinaysa xashiishka block-ka hadda jira.
Marka, hoosta fasalka Block, waxaan ku qeexnay shaqada xisaabintaHash:
Si kastaba ha ahaatee, xashiishka SHA256 ma taageerto JavaScript waana in laga helaa maktabad dibadda ah.
Crypto-js waa xirmo fantastik ah oo ay kujirto hirgalinta aaminka ah ee dhowr algorithms.
Markaa waxaan u soo gelin karnaa koodhkayaga wayn.js.
Hadda oo aan haysano shaqadayada xisaabiyahaHash(), aan u dhigno si aan u isticmaalno shaqadayada Block:
Ka dib markaan sharaxno sida uu u eg yahay Block, waxaan qeexi karnaa sida uu u ekaado Blockchain. Markaa aan abuurno fasal cusub.
Xaaladdan, blockchain waa shay aad u fudud oo leh silsilad hanti ah. Tani waa diyaarsan oo haya dhammaan baloogyada silsiladda.
Ka hor inta aynaan ku darin blocks, waa in aan marka hore abuurnaa waxa loo yaqaan "block genesis." Tani waa balooggii ugu horreeyay ee silsiladda, waana mid gaar ah oo aan lagu tilmaami karin baloog hore (waa kan ugu horreeya!).
Marka, si loo dhiso block abtirsiinta, waxaan ku dari doonaa shaqo fasalkayaga oo magaciisu yahay createGenesisBlock (). Ku laabo shaqada Object() {[native code]} ee fasalkayaga Blockchain.
Waxaan hadda ku dari karnaa xannibaadda hiddaha mar kasta oo aan dhisno tusaale Blockchain cusub:
Hababka Blockchain
Hadda, aan ku darno habab fasalkayaga Blockchain kaas oo noo ogolaanaya inaan samayno waxyaabo ay ka mid yihiin ku dar baloogyo cusub oo aan soo saarno balooggii ugu dambeeyay.
Shaqada getLatestBlock waa tan ugu aasaasiga ah. Waxay si fudud u soo celinaysaa xubinta ugu dambaysa ee silsiladda:
Farsamada addBlock waa wax yar oo ku lug leh.
Kahor inta aynaan ku darin baloog cusub silsiladeena, waa in aan marka hore si habboon u dejinaa blockkaas goobtii hore ee Hash.
Waa in lagu dhejiyaa xashiishkii ugu dambeeyay ee lagu daray silsiladeena. Waxaan sidoo kale u baahanahay inaan xisaabino xashiishka block cusub:
Imtixaanka
Aan aragno sida MelodyCoin uu u soo baxay.
Samee tusaale blockchain si taas loo gaaro. Aan ku darno dhowr baloog oo kale:
Waxaanu halkaa ka samaynay laba baloog oo cusub. Aynu eegno sida uu hadda u eg yahay blockchain-kayagu.
MelodyCoin waa la isku dhejin doonaa waxaana lagu qaabayn doonaa afar goobood:
Xaqiiji daacadnimada Blockchain
Blockchains waa cajiib sababtoo ah marka block lagu daro, lama bedeli karo iyada oo aan la burinin inta ka hartay silsiladda.
Si kastaba ha ahaatee, ma jirto qaab aan ku hubinayo daacadnimada blockchainkeena hirgelintan.
Aynu soo bandhigno shaqada isChainValid blockchain-kayaga. Haddii silsiladdu tahay mid sharci ah, waxay soo noqon doontaa run; Haddii kale, waxay ku noqon doontaa been:
Tijaabinta Daacadnimada
Waxaan hadda tijaabin karnaa daacadnimadayada blockchain. Haddii aan hadda fulino, waxay xaqiijin doontaa in silsiladeenu ay run tahay.
Aynu hadda isku dayno inaan faragalino blockchainkeena. Aan bedelno block 2 oo aan dib u qorno waxa ku jira ( aan ka soo qaadno in aan wareejinay 100 qadaadiic halkii aan afar lahayn).
Markaan tan fulino, waxaan arki karnaa in software-ku aqoonsan yahay dadaalkayaga ku aaddan faragelinta silsiladda.
Si kastaba ha ahaatee, waxaad rumaysan kartaa inuu jiro hab kale oo aan ku dhex galo tan. Waxa aan beddelay waxa ku jira block laakiin dib uma xisaabin xashiishkii. Markaa waxaad isku dayi kartaa inaad xariif noqoto oo aad dib u xisaabiso xashiishkii isla blockkaas.
Taasi waa waxa kaliya ee ku jiray habayntayada blockchain ee yar! Waxay awood noo siinaysaa inaan ku darno blocks cusub oo aan ogaano faragelinta xogta silsiladda dhexdeeda.
Waxaa jira laba arrimood oo ku saabsan xannibaadda yar ee blockchain ee ay tahay inaan wax ka qabanno:
- Kumbuyuutarrada casriga ahi aad bay u dheereeyaan waxayna ku dari karaan kumanaan blocks silsiladeena ilbidhiqsiyo gudahood. Sida iska cad ma rabno in qofna nagu soo diro blockchain.
- Blockchain-kayaga ayaa weli u nugul in la farageliyo. Waxaad cusboonaysiin kartaa waxa ku jira baloog ka dibna si fudud ayaad dib ugu xisaabin kartaa xashiishyada (iyo xashiishyadii hore) ee dhammaan baloogyada soo socda. Xitaa haddii aad ku qasto, waxaad ku dambayn doontaa silsilad sharci ah.
Si wax looga qabto walaacyadan, blockchains waxay isticmaalaan farsamo loo yaqaan "caddaynta shaqada." Waa inaad muujisaa inaad isticmaashay tiro badan oo agab xisaabeed ah si aad u abuurto xannibaad adigoo isticmaalaya habkan. Tan waxa kale oo loo yaqaan macdanta.
Caddaynta shaqada waxay u baahan tahay in xashiishka block uu ku bilaabo xaddi cayiman oo eber ah. Laakiin sidee ku ogaan kartaa in xashiishkaagu uu ku habboon yahay sharcigan?
Waxa ku jira block ayaa go'aamiya xashiishkiisa. Markaa waxaanu mar walba helnaa xashiishad isku mid ah, waase haddii aynaan wax ka beddelin waxa ku jira.
Baloog kastaa waa in lagu daraa qiime aan waxba ka jirin oo xal ahaan ah. Tani asal ahaan waa xog random ah oo aan dib u cusboonaysiin karno ilaa xashiishka xannibaaddayadu ay ka bilaabato eber ku filan. Sababtoo ah ma beddeli kartid wax soo saarka xashiishka, waa inaad tijaabisaa wax badan oo isku dhafan oo kala duwan oo aad rajaynayso waxa ugu fiican.
Baro Macdanta ee Blockchain
Aan ku bilowno in aan ku darno nonce fasalkayaga Block. Midda aan jirin ayaa ah qiimaha keliya ee ku dhex jira balooggeenna oo aan wax ka beddeli karno si aan u saameyno xashiishka block.
Ma awoodno inaan beddelno shaambada wakhtiga ama xogta.
Marka xigta, aan qorno mineBlock() function kaas oo samayn doona macdanta dhabta ah ee block. Shaqadan waxa loo diri doona dhibka loo baahan yahay halbeeg ahaan waxana ay sii wadi doontaa fulinta ilaa xashiishka baloogkeena uu ka bilaabmo eber ku filan.
Kaliya waxaan sameeyay inta loop aasaasiga ah oo socon doonta ilaa xashiishkayadu ka bilaabmaan eber ku filan. Waxaan isticmaalnaa dhibka si aan u go'aamino inta eber ee loo baahan yahay. Iyada oo ay adag tahay 5, xashiishkeenu waa inuu ka bilaabmaa 5 eber.
Marka xashiishku aanu ku jirin eber ku filan, waxaan kor u qaadnaa hal mar oo aan dib u xisaabinay xashiishkii. Oo haddii aan helno xashiish u dhiganta dhibka, waxaan galnaa console-ka.
Waxaa jira hal shay oo kale oo aan u baahanahay inaan sameyno. Runtii kuma xisaabtano doorsoomaha aan caadiga ahayn ee habka xisaabintaHash, markaa waa kan:
Heerka Blockchain
Aan tijaabinno habkan cusub ee fasalkayaga blockchain oo aan aragno sida uu u socdo.
Si aan u bilaabo, waxaan qeexi doonaa dhibka blockchain-kayaga ee shaqada Object(). Waxaan ku qeexeynaa halkan mar haddii aan u isticmaali karno meel dambe.
Shaqada addBlock waa in wax laga beddelo si ay u miinada block ka hor inta aan lagu darin silsiladeena.
Isticmaal Blockchain
Hadda, aan dhigno blockchain-keena cusub si aan ugu isticmaalno algorithm-ka-caddaynta shaqada. Halkan, ku dar dhawr qoraal oo console.log ah.
Marka aan fulino xeerkan, waxaan ogaan karnaa in habka macdan qodista uusan ahayn mid degdeg ah.
Waxay qaadataa wakhti in algorithmisku soo saaro baloogyo leh xashiish ka bilaabma saddex eber (sida dhib loo habeeyey).
Markaa taasi waxay ahayd dhamaadka dejinta blockchain ee aasaasiga ah.
Waxaan nidaamin karnaa sida ugu dhaqsaha badan ee blocks cusub loogu daro blockchainkeena iyada oo ay ugu wacan tahay habka caddaynta shaqada.
Waa habka ugu muhiimsan ee amniga ee blockchains. Oo hadda markaad fahamto sida ay u shaqeyso, samee abuuristaada!
Leave a Reply