Ọ bụrụ na anyị eleba anya na ọnọdụ nke afọ ole na ole gara aga, anyị anụwo banyere blockchain mgbe niile, ma ọ bụghị ọtụtụ ihe gbasara nkọwa.
Anyị niile maara na cryptocurrencies dị ka Bitcoin, Ethereum, Dogecoin, Matic, na ndị ọzọ na-adabere na teknụzụ blockchain. Blockchain butere ihe omume dị ịrịba ama nke gbanwere ọtụtụ ụlọ ọrụ na 2021 wee meghee ụzọ maka mmezu ọhụrụ.
Blockchain bụ ụzọ e si echekwa data n'ụzọ siri ike ma ọ bụ enweghị ike dezie, mbanye anataghị ikike ma ọ bụ aghụghọ. Ọ bụ akwụkwọ ndekọ ego dijitalụ nke a na-emegharị ma gbasaa gafee netwọkụ sistemụ kọmputa nke blockchain.
Ọ bụ teknụzụ nchekwa data na-emebi ala nke na-eme ka ego crypto niile dị ike. Blockchain na-eme ka ọ sie ike nke ukwuu mbanye anataghị ikike ma ọ bụ ghọgbuo sistemụ site n'ịgbasa ụdị nchekwa data n'ofe netwọkụ niile.
Ọ bụ ezie na Bitcoin bụ ugbu a nke a ma ama maka blockchain, teknụzụ nwere ike ije ozi dị iche iche nke ngwa.
Cryptocurrencies na blockchain anọwo na-ewu ewu n'afọ ndị na-adịbeghị anya, a na-atụkwa anya na omume a ga-aga n'ihu.
Anyị ga-eji Javascript mee blockchain dị mfe na nkuzi a. Ọ ga-enye gị nghọta bụ isi nke otu blockchain si arụ ọrụ.
Ka anyị kpọọ ya MelodyCoin wee banye ozugbo na mmemme ahụ!
Ịmepụta ngọngọ
Iji malite, anyị ga-emepụta faịlụ Javascript ọhụrụ nke anyị ga-etinye koodu anyị niile na ya.
Ka anyị kpọọ ya main.js wee malite nkọwa nke otu blockchain na blocks kwesịrị ịdị.
Mepụta klas ngọngọ wee nye ya ọrụ Object() {[native code]} iji malite.
Ị ga-enyerịrị ụbọchị, na hash nke ngọngọ gara aga mgbe ị na-eke ngọngọ ọhụrụ:
Nke a bụ nkọwa maka akụrụngwa ọ bụla:
- Ihe akara oge na-egosi mgbe emere ngọngọ. Ị nwere ike iji usoro ọ bụla ị họọrọ (na nke a, UNIX timestamp).
- Ụdị data ọ bụla ịchọrọ ijikọ na ngọngọ a nwere ike itinye na oke data. Ọ bụrụ na-ịchọrọ ịmepụta cryptocurrency, ị nwere ike idobe data azụmahịa dị ka onye na-ezipụ / nnata na ego ole a kwagara ebe a.
- Hash gara aga bụ eriri na-ejide hash nke bu ụzọ. Nke a bụ ihe ga-emepụta agbụ nke blocks, nke ga-adị mkpa n'inye iguzosi ike n'ezi ihe nke blockchain anyị ma emechaa.
Ịmepụta Hashes
Ihe mgbochi ọ bụla na-ejikọta na ngọngọ bu ụzọ (nke a bụ ihe onwunwe Hash gara aga). Ya bụ, ngọngọ ọ bụla chọrọ hash. Hash yiri akara mkpisiaka. Ọ dị iche maka ngọngọ ọ bụla.
Enwere ike ịgbakọ hash ngọngọ site na ibufe ọdịnaya ya niile site na ọrụ hash.
Yabụ, ka anyị bido site n'itinye ọrụ na-agbakọ hash nke ngọngọ dị ugbu a.
Yabụ, n'okpuru klaasị Block, anyị na-akọwapụta ọrụ mgbakoHash:
Agbanyeghị, Javascript anaghị akwado hash SHA256 na a ga-enwetarịrị ya n'ọbá akwụkwọ mpụga.
Crypto-js bụ ngwugwu dị egwu na-agụnye mmejuputa echekwabara nke ọtụtụ algọridim hash.
Mgbe ahụ anyị nwere ike ibubata ya na koodu main.js anyị.
Ugbu a anyị nwere ọrụ mgbakoHash (), ka anyị tinye ya ka ọ rụọ ọrụ Block anyị:
Mgbe anyị kọwachara ihe Block dị, anyị nwere ike ịkọwapụta ihe Blockchain kwesịrị ịdị ka. Yabụ ka anyị mepụta klas ọhụrụ.
N'ọnọdụ a, blockchain bụ ihe dị mfe nke nwere agbụ ihe onwunwe. Nke a bụ n'usoro na-ejide blocks niile na yinye.
Tupu anyị enwee ike itinye ihe mgbochi, anyị ga-ebu ụzọ mepụta ihe a maara dị ka “ngbochi mkpụrụ ndụ ihe nketa”. Nke a bụ ngọngọ nke mbụ na agbụ ahụ, ọ bụkwa ihe pụrụ iche n'ihi na ọ pụghị ịrụtụ aka na ngọngọ mbụ (ọ bụ nke mbụ!).
Yabụ, iji wuo ngọngọ genesis, m ga-agbakwunye otu ọrụ na klaasị anyị nke aha ya bụ createGenesisBlock (). Laghachi na ọrụ Object() {[ koodu ala]} nke klas Blockchain anyị.
Anyị nwere ike tinye ugbu a ngọngọ genesis oge ọ bụla anyị wulitere ihe atụ Blockchain ọhụrụ:
Ụzọ Blockchain
Ugbu a, ka anyị tinye ụzọ na klaasị Blockchain anyị nke ga-enye anyị ohere ịme ihe dịka ịgbakwunye ngọngọ ọhụrụ wee weta ngọngọ kacha ọhụrụ.
Ọrụ getLatestBlock bụ nke kachasị mkpa. Ọ na-eweghachite onye ikpeazụ n'usoro yinye:
Usoro addBlock na-etinye ntakịrị ihe.
Tupu anyị enwee ike ịgbakwunye ngọngọ ọhụrụ na agbụ anyị, anyị ga-ebu ụzọ tọọ ogige Hash gara aga nke ọma.
A ghaghị ịtọ ya na hash nke ngọngọ agbakwunyere nso nso a n'agbụ anyị. Anyị kwesịkwara ịgbakọ hash nke ngọngọ ọhụrụ:
Testing
Ka anyị hụ ka MelodyCoin anyị siri pụta.
Mepụta ihe atụ blockchain iji mezuo nke a. Ka anyị tinye ihe mgbochi abụọ ọzọ:
Anyị emeela ngọngọ abụọ n'ebe ahụ. Ka anyị leba anya n'ihe blockchain anyị dị ugbu a.
A ga-eji oghere anọ hazie MelodyCoin wee hazie ya:
Nyochaa iguzosi ike n'ezi ihe nke Blockchain
Blockchains dị egwu n'ihi na ozugbo agbakwunyere ngọngọ, enweghị ike ịmegharị ya na-emebighị ihe ndị fọdụrụ n'agbụ ahụ.
Agbanyeghị, ọ nweghị ụzọ m ga-esi lelee iguzosi ike n'ezi ihe nke blockchain anyị na mmejuputa a.
Ka anyị webata ọrụ isChainValid na blockchain anyị. Ọ bụrụ na agbụ ahụ ziri ezi, ọ ga-alaghachi n'eziokwu; ma ọ bụghị ya, ọ ga-alaghachi ụgha:
Nnwale iguzosi ike n'ezi ihe
Anyị nwere ike ugbu a tinye iguzosi ike n'ezi ihe nke blockchain n'ule. Ọ bụrụ na anyị emee ya ugbu a, ọ ga-egosi na agbụ anyị bụ ezigbo.
Ka anyị gbalịa ugbu a imebi blockchain anyị. Ka anyị gbanwee ngọngọ 2 wee degharịa ọdịnaya ya (ka anyị bufee mkpụrụ ego 100 kama anọ).
Mgbe anyị na-eme nke a, anyị nwere ike ịhụ na ngwanro ahụ ghọtara mbọ anyị na-agba iji mebie agbụ ahụ.
Agbanyeghị, ị nwere ike ikwenye na enwere ụzọ ọzọ m ga-esi tinye aka na nke a. Agbanwere m ọdịnaya dị na ngọngọ mana agụgharịghị m hash ahụ. Yabụ ị nwere ike ịgbalị inwe amamihe wee gbakọọ hash nke otu ngọngọ ahụ.
Nke ahụ bụ naanị ihe dị na ntọlite obere blockchain anyị! Ọ na-enyere anyị aka ịgbakwunye ihe mgbochi ọhụrụ wee chọpụta imebi data dị n'ime agbụ.
Enwere okwu abụọ na obere blockchain anyị nke anyị ga-edozirịrị:
- Kọmputa ọgbara ọhụrụ dị oke ngwa ngwa ma nwee ike itinye puku kwuru puku blocks na agbụ anyị n'ime sekọnd. O doro anya na anyị achọghị ka onye ọ bụla na-eme spam anyị blockchain.
- Anyị blockchain ka na-adịghị ike imebi. Ị nwere ike imelite ọdịnaya nke ngọngọ wee tụgharịa naanị hashes (na tupu hashes) maka ngọngọ niile na-esote. Ọbụlagodi na ị mejọrọ ya, ị ga-emecha nwee agbụ ziri ezi.
Iji dozie nchegbu ndị a, blockchains na-eji usoro a maara dị ka "ihe akaebe nke ọrụ." Ị ga-egosipụta na ị na-eji nnukwu ego mgbakọ na mwepụ mepụta ngọngọ site na iji usoro a. Nke a na-akpọkwa Ngwuputa.
Ngosipụta nke ọrụ chọrọ ka hash ngọngọ malite na ọnụọgụ efu efu. Mana kedu ka ị ga-esi mata ma hash gị dabara n'iwu a?
Ọdịnaya nke ngọngọ na-ekpebi hash ya. Yabụ na anyị na-enweta otu hash mgbe niile, ma ọ bụrụ na anyị agbanweghị ọdịnaya ahụ.
Ngwongwo ọ bụla kwesịrị inwe uru ọ bụla agbakwunyere na ya dị ka ihe ngwọta. Nke a bụ ụfọdụ data enweghị usoro anyị nwere ike imelite ruo mgbe hash nke ngọngọ anyị ga-amalite na efu efu. N'ihi na ịnweghị ike ịgbanwe mmepụta ọrụ hash, ị ga-anwale ọtụtụ nchịkọta dị iche iche ma nwee olileanya maka ihe kacha mma.
Webata Mining na Blockchain
Ka anyị bido site n'itinye otu nonce na klas Block anyị. The nonce bụ otu uru dị n'ime ngọngọ anyị nke anyị nwere ike gbanwee iji metụta hash ngọngọ.
Anyị enweghị ike ịgbanwe stampụ oge ma ọ bụ data.
Na-esote, ka anyị dee ọrụ mineBlock() nke ga-eme n'ezie ngwuputa ngọngọ. A ga-eziga ọrụ a ihe isi ike dị mkpa dị ka paramita ma ga-aga n'ihu na-arụ ọrụ ruo mgbe hash nke ngọngọ anyị ga-amalite na efu efu.
Emere m obere oge nke ga-agba ọsọ ruo mgbe hash anyị ga-amalite na efu efu. Anyị na-eji ihe isi ike chọpụta ole efu achọrọ. Site n'ike nke 5, hash anyị ga-amalite na zeros 5.
Mgbe hash anyị enweghị oke efu, anyị na-ebuli nke nonce otu ma tụgharịa hash ahụ. Ma ọ bụrụ na anyị ahụta hash nke dabara na ihe isi ike ahụ, anyị na-abanye na njikwa.
O nwekwara otu ihe ọzọ anyị kwesịrị ime. Anyị anaghị eburu n'uche mgbanwe na-adịghị agbanwe agbanwe na usoro anyị na-agbakọHash, yabụ ebe a bụ:
Klas blockchain
Ka anyị tinye ụzọ ọhụrụ a n'ule na klas blockchain anyị wee hụ ka ọ na-aga.
Iji malite, m ga-akọwapụta ihe isi ike nke blockchain anyị na ọrụ Object(). Anyị na-akọwa ya ebe a ebe ọ bụ na anyị nwere ike iji ya mee ihe mgbe e mesịrị.
A ga-agbanwezi ọrụ addBlock nke mere na ọ na-egwupụta ngọngọ tupu ịtinye ya n'agbụ anyị.
Jiri Blockchain
Ugbu a, ka anyị tinye blockchain ọhụrụ anyị iji jiri algọridim akaebe nke ọrụ. Ebe a, tinye okwu console.log di na nwunye.
Mgbe anyị na-eme koodu a, anyị nwere ike ịhụ na usoro Ngwuputa anaghịzi adị ngwa ngwa.
Ọ na-ewe oge maka algọridim iji mepụta ngọngọ nwere hashes na-amalite na efu atọ (dị ka ihe siri ike ahazi ya).
Yabụ na nke ahụ bụ njedebe nke ntọala blockchain anyị.
Anyị nwere ike ịhazi otu ngwa ngwa agbakwunyere blọk ọhụrụ na blockchain anyị maka usoro akaebe nke ọrụ.
Ọ bụ ihe nchekwa kachasị mkpa na blockchain. Ma ugbu a ị ghọtara ka o si arụ ọrụ, malite ịmepụta nke gị!
Nkume a-aza