Idan muka kalli abubuwan da suka faru a cikin 'yan shekarun da suka gabata, mun ji labarin blockchain koyaushe, amma ba da yawa game da ƙayyadaddun bayanai ba.
Dukkanmu muna sane da cewa cryptocurrencies kamar Bitcoin, Ethereum, Dogecoin, Matic, da sauransu sun dogara da fasahar blockchain. Blockchain ya jagoranci manyan al'amuran da suka kawo sauyi ga masana'antu da yawa a cikin 2021 kuma sun share hanya don sabbin nasarori.
Blockchain hanya ce ta adana bayanai ta hanyar da ke da wuya ko ba za a iya gyarawa, hack, ko zamba. Littattafan dijital ne na ma'amaloli waɗanda aka kwafi kuma aka bazu a cikin duk hanyar sadarwa na tsarin kwamfuta na blockchain.
Fasahar bayanai ce wacce ke ba da iko a zahiri duk cryptocurrencies. Blockchain yana sa ya zama mai wahala sosai don yin kutse ko yaudarar tsarin ta hanyar yada kwafin bayanai iri ɗaya a duk hanyar sadarwa.
Duk da yake Bitcoin yanzu shine mafi shaharar amfani da blockchain, fasaha na iya yin amfani da aikace-aikace iri-iri.
Cryptocurrencies da blockchains sun ƙara shahara a cikin 'yan shekarun nan, kuma ana sa ran wannan yanayin zai ci gaba.
Za mu yi sauƙi blockchain tare da JavaScript a cikin wannan koyawa. Zai ba ku fahimtar ainihin yadda blockchain ke aiki.
Bari mu kira shi MelodyCoin kuma mu shiga cikin aikin!
Ƙirƙirar Block
Don farawa, za mu ƙirƙiri sabon fayil ɗin JavaScript wanda a ciki za mu sanya duk lambar mu.
Bari mu kira shi main.js kuma mu fara da bayanin yadda blockchain da tubalan yakamata su kasance.
Ƙirƙiri ajin Toshe kuma ku ba shi aiki Object() {[native code]} don farawa da shi.
Dole ne ku ba da kwanan wata, da zanta na tubalan da suka gabata lokacin ƙirƙirar sabon toshe:
Anan ga ma'anar kowace kadara:
- Tambarin lokutan yana nuna lokacin da aka yi toshe. Kuna iya amfani da kowane tsari da kuka zaɓa (a wannan yanayin, tambarin lokaci na UNIX).
- Duk wani nau'i na bayanai da kuke son haɗawa da wannan toshe ana iya haɗawa da ma'aunin bayanan. Idan kuna son ƙirƙirar cryptocurrency, zaku iya kiyaye bayanan ciniki kamar mai aikawa / mai karɓa da adadin kuɗin da aka koma nan.
- Hash ɗin da ya gabata shine kirtani da ke riƙe da hash na farko. Wannan shine abin da zai haifar da sarkar tubalan, wanda zai zama mahimmanci wajen samar da amincin blockchain ɗin mu daga baya.
Ƙirƙirar Hashes
Kowane toshe yana haɗi zuwa katangar da ta gabata (haka dukiyar Hash ta baya). Wato kowane toshe yana buƙatar zanta. Zanta yana kama da hoton yatsa. Ya bambanta ga kowane toshe.
Za a iya ƙididdige zantan toshe ta hanyar wuce duk abubuwan da ke cikin sa ta hanyar aikin hash.
Don haka, bari mu fara da aiwatar da aikin da ke ƙididdige zanta na toshe na yanzu.
Don haka, a ƙarƙashin ajin Block, muna ayyana aikin lissafinHash:
Koyaya, hash ɗin SHA256 ba ta da goyan bayan JavaScript kuma dole ne a samo shi daga ɗakin karatu na waje.
Crypto-js fakiti ne mai ban sha'awa wanda ya haɗa da amintattun aiwatarwa na algorithms hash da yawa.
Sannan za mu iya shigo da shi cikin babban lambar mu.js.
Yanzu da muke da aikinmu na lissafinHash(), bari mu sanya shi don amfani da aikin Block ɗin mu:
Bayan bayyana yadda Blockchain ya yi kama, za mu iya ayyana yadda Blockchain ya kamata ya kasance. Don haka bari mu ƙirƙiri sabon aji.
A cikin wannan yanayin, blockchain abu ne mai sauƙi wanda ke da sarkar dukiya. Wannan tsararru ce mai riƙe da dukkan tubalan akan sarkar.
Kafin mu iya ƙara tubalan, dole ne mu fara ƙirƙira abin da aka sani da “bangaren al’ada.” Wannan shi ne toshe na farko a cikin sarkar, kuma ya kebantu da cewa ba zai iya yin nuni zuwa ga wani tubali na farko ba (shine na farko!).
Don haka, don gina katangar asali, zan ƙara aiki zuwa ajinmu mai suna createGenesisBlock (). Komawa cikin aikin Object() {[native code]} na ajin mu na Blockchain.
Yanzu za mu iya haɗawa da toshe genesis duk lokacin da muka gina sabon misalin Blockchain:
Hanyoyin Blockchain
Yanzu, bari mu ƙara hanyoyin zuwa ajin mu na Blockchain waɗanda za su ba mu damar yin abubuwa kamar ƙara sabbin tubalan da kuma ɗauko tubalan kwanan nan.
Aikin getLatestBlock shine mafi mahimmanci. Kawai yana mayar da memba na ƙarshe na jerin sarkar:
Dabarar addBlock ta ɗan ƙara haɗawa.
Kafin mu iya ƙara sabon toshe a cikin sarkarmu, dole ne mu fara saita filin Hash na baya da kyau yadda ya kamata.
Dole ne a saita shi zuwa zanta na toshewar da aka ƙara kwanan nan a cikin sarkar mu. Hakanan muna buƙatar lissafta zanta na sabon toshe:
Testing
Bari mu ga yadda MelodyCoin mu ya fito.
Ƙirƙiri misalin blockchain don cika wannan. Bari mu ƙara wasu tubalan guda biyu:
Mun yi sabbin tubalan guda biyu a wurin. Bari mu kalli yadda blockchain ɗinmu yake a halin yanzu.
MelodyCoin za a ƙirƙira kuma a tsara shi tare da sarari huɗu:
Tabbatar da Mutuncin Blockchain
Blockchains suna da ban mamaki saboda da zarar an ƙara toshe, ba za a iya gyara shi ba tare da lalata ragowar sarkar ba.
Koyaya, babu wata hanya a gare ni don bincika amincin blockchain ɗinmu tare da wannan aiwatarwa.
Bari mu gabatar da aikin isChainValid zuwa blockchain ɗin mu. Idan sarkar ta halalta ce, za ta koma gaskiya; in ba haka ba, zai dawo karya:
Gwajin Mutunci
Yanzu za mu iya gwada amincin blockchain ɗin mu ga gwaji. Idan muka aiwatar da shi a yanzu, zai tabbatar da cewa sarkar mu ta gaskiya ce.
Yanzu bari mu yi ƙoƙari mu lalata blockchain ɗin mu. Mu canza toshe 2 kuma mu sake rubuta abin da ke cikinsa (bari mu ɗauka mun canja wurin tsabar kudi 100 maimakon hudu).
Lokacin da muka aiwatar da wannan, za mu iya ganin cewa software ta fahimci ƙoƙarinmu na lalata sarkar.
Koyaya, zaku iya yarda cewa akwai wata hanyar da zan shiga cikin wannan. Na canza abubuwan da ke cikin toshe amma ban sake lissafin zanta ba. Don haka kuna iya ƙoƙarin yin wayo da sake ƙididdige zanta na wannan block ɗin.
Wannan shine kawai abin da ya kasance ga ƙaramin tsarin blockchain ɗin mu! Yana ba mu damar ƙara sababbin tubalan da gano tampering tare da bayanai a cikin sarkar.
Akwai batutuwa guda biyu tare da ƙaramin blockchain ɗinmu waɗanda dole ne mu magance:
- Kwamfutoci na zamani suna da sauri sosai kuma suna iya ƙara dubban tubalan zuwa sarkar mu cikin daƙiƙa guda. Babu shakka ba ma son kowa ya yi wa blockchain spam ɗinmu ba.
- Blockchain namu har yanzu yana da rauni ga tampering. Kuna iya sabunta abubuwan da ke cikin toshe sannan kawai sake ƙididdige hashes (da hashes na farko) don duk tubalan masu zuwa. Ko da kun yi rikici da shi, za ku ƙare da sarkar halaltacciya.
Don magance waɗannan matsalolin, blockchains suna amfani da dabarar da aka sani da "tabbacin aiki." Dole ne ku nuna cewa kun yi amfani da adadi mai yawa na albarkatun lissafi don ƙirƙirar toshe ta amfani da wannan hanyar. Wannan kuma ake kira karafa.
Tabbacin-aiki yana buƙatar hash ɗin toshe ya fara da takamaiman adadin sifilai. Amma ta yaya za ku iya sanin ko zaren ku ya dace da wannan ka'ida?
Abubuwan da ke cikin toshe suna tabbatar da zanta. Don haka koyaushe muna samun zanta iri ɗaya, muddin ba mu gyara abin da ke ciki ba.
Kowane toshe ya kamata a ƙara masa ƙima mara ƙima a matsayin mafita. Wannan ainihin wasu bayanan bazuwar da za mu iya ɗaukakawa har sai hash na toshe ɗinmu ya fara da isassun sifili. Saboda ba za ku iya canza fitowar aikin hash ba, dole ne ku gwada haɗuwa daban-daban da yawa kuma kuyi fatan mafi kyau.
Gabatar da Mining zuwa Blockchain
Bari mu fara da saka nonce a cikin ajin mu na Block. Batun ita ce ƙima ɗaya a cikin toshewar mu wanda za mu iya gyara don yin tasiri ga hash ɗin toshe.
Ba za mu iya canza tambarin lokaci ko bayanai ba.
Na gaba, bari mu rubuta aikin mineBlock() wanda zai yi ainihin ma'adinai na toshe. Wannan aikin za a aika da wahalar da ake buƙata azaman ma'auni kuma zai ci gaba da aiwatarwa har sai an fara zantawar toshewar mu da isassun sifili.
Na yi madauki na asali wanda zai gudana har sai hash ɗinmu ya fara da isassun sifili. Muna amfani da wahala don tantance adadin sifili da ake buƙata. Tare da wahala na 5, hash ɗinmu dole ne ya fara da sifili 5.
Lokacin da hash ɗinmu bai ƙunshi isassun sifili ba, muna ɗaga nonce ɗaya kuma mu sake ƙirga zaton. Kuma idan muka sami zanta wanda ya dace da wahala, muna shiga cikin na'ura mai kwakwalwa.
Akwai ƙarin abu ɗaya da ya kamata mu yi. Ba mu da gaske yin la'akari da madaidaicin madaidaicin a cikin hanyar lissafinHash ɗin mu, don haka anan shine:
Babban darajar Blockchain
Bari mu sanya wannan sabuwar dabarar zuwa gwajin a cikin ajin blockchain mu ga yadda yake tafiya.
Don farawa, zan bayyana wahalar blockchain ɗin mu a cikin aikin Object(). Mun ayyana shi a nan tunda za mu iya amfani da shi a wani wuri daga baya.
Aikin addBlock dole ne a gyara shi ta yadda zai hako shingen kafin a saka shi cikin sarkar mu.
Yi amfani da Blockchain
Yanzu, bari mu sanya sabon blockchain ɗin mu don amfani da algorithm na tabbatar da aiki. Anan, ƙara maganganun console.log guda biyu.
Lokacin da muka aiwatar da wannan lambar, za mu iya lura cewa aikin hakar ma'adinai ba shi da sauri musamman.
Yana ɗaukar ɗan lokaci don algorithm don samar da tubalan tare da hashes waɗanda suka fara da sifili uku (kamar yadda aka tsara ta da wahala).
Don haka wannan shine ƙarshen saitin blockchain ɗin mu.
Zamu iya tsara yadda ake ƙara sabbin tubalan cikin sauri zuwa blockchain ɗinmu godiya ga hanyar tabbatar da aiki.
Shi ne mafi mahimmancin fasalin tsaro akan blockchain. Kuma yanzu da kun fahimci yadda yake aiki, ci gaba da ƙirƙirar naku!
Leave a Reply