Ti a ba wo awọn aṣa ti awọn ọdun diẹ ti tẹlẹ, a ti gbọ nipa blockchain ni gbogbo igba, ṣugbọn kii ṣe pupọ nipa awọn pato.
Gbogbo wa ni a mọ pe awọn owo nẹtiwoki bii Bitcoin, Ethereum, Dogecoin, Matic, ati awọn miiran gbarale imọ-ẹrọ blockchain. Blockchain ṣe itọsọna awọn iṣẹlẹ pataki ti o ṣe iyipada awọn ile-iṣẹ lọpọlọpọ ni ọdun 2021 ati ṣe ọna fun awọn aṣeyọri tuntun.
Blockchain jẹ ọna ti fifipamọ data ni ọna ti o le tabi ko ṣee ṣe lati ṣatunkọ, gige, tabi jibiti. O jẹ akọọlẹ oni-nọmba ti awọn iṣowo ti o ṣe ẹda ati tan kaakiri gbogbo nẹtiwọọki ti awọn eto kọnputa ti blockchain.
O jẹ imọ-ẹrọ data fifọ ilẹ ti o ni agbara ni gbogbo awọn owo-iworo crypto. Blockchain jẹ ki o nira iyalẹnu lati gige tabi iyanjẹ eto naa nipa titan awọn ẹda kanna ti data data kọja gbogbo nẹtiwọọki kan.
Lakoko ti Bitcoin jẹ lilo olokiki julọ fun blockchain, imọ-ẹrọ le ṣe iranṣẹ fun ọpọlọpọ awọn ohun elo lọpọlọpọ.
Awọn owo nẹtiwoki ati awọn blockchains ti n pọ si ni awọn ọdun aipẹ, ati pe aṣa yii nireti lati tẹsiwaju.
A yoo ṣe blockchain ti o rọrun pẹlu JavaScript ninu ikẹkọ yii. Yoo fun ọ ni oye ipilẹ ti bii blockchain ṣe n ṣiṣẹ.
Jẹ ki a pe MelodyCoin ki o wọle si iṣẹ naa!
Ṣiṣẹda A Block
Lati bẹrẹ, a yoo ṣẹda faili JavaScript tuntun ninu eyiti a yoo gbe gbogbo koodu wa.
Jẹ ki a pe ni main.js ki o bẹrẹ pẹlu apejuwe bi blockchain ati awọn bulọọki yẹ ki o wo.
Ṣẹda kilasi Àkọsílẹ ki o fun ni iṣẹ Nkan () {[koodu abinibi]} lati bẹrẹ pẹlu.
O gbọdọ fun ọjọ kan, ati hash ti bulọọki iṣaaju nigbati o ṣẹda bulọọki tuntun kan:
Eyi ni awọn asọye fun ohun-ini kọọkan:
- Awọn timestamp tọkasi nigbati awọn Àkọsílẹ ti a ṣe. O le lo eyikeyi ọna kika ti o yan (ninu apere yi, a UNIX timestamp).
- Eyikeyi iru data ti o fẹ sopọ si bulọki yii le wa ninu paramita data naa. Ti o ba fẹ ṣẹda cryptocurrency, o le tọju data iṣowo gẹgẹbi olufiranṣẹ / olugba ati iye owo ti a gbe si ibi.
- Hash ti tẹlẹ jẹ okun ti o di hash bulọki ṣaaju mu. Eyi ni ohun ti yoo ṣe agbejade pq ti awọn bulọọki, eyiti yoo jẹ pataki ni pipese iduroṣinṣin ti blockchain wa nigbamii.
Ṣiṣẹda Hashes
Awọn ọna asopọ bulọọki kọọkan si bulọọki iṣaaju (bayi ohun-ini Hash ti tẹlẹ). Iyẹn ni, bulọọki kọọkan nilo hash. Hash jẹ iru si itẹka kan. O ti wa ni pato fun kọọkan Àkọsílẹ.
Hash Àkọsílẹ le ṣe iṣiro nipa gbigbe gbogbo awọn akoonu inu rẹ kọja nipasẹ iṣẹ hash kan.
Nitorinaa, jẹ ki a bẹrẹ nipasẹ imuse iṣẹ kan ti o ṣe iṣiro hash ti bulọọki lọwọlọwọ.
Nitorinaa, labẹ kilasi Àkọsílẹ, a ṣalaye iṣẹ iṣiroHash:
Sibẹsibẹ, hash SHA256 ko ni atilẹyin nipasẹ JavaScript ati pe o gbọdọ gba lati ile-ikawe ita.
Crypto-js jẹ package ikọja ti o pẹlu awọn imuse to ni aabo ti ọpọlọpọ awọn algoridimu hash.
Lẹhinna a le gbe wọle sinu koodu akọkọ.js wa.
Ni bayi pe a ni iṣẹ iṣiroHash () wa, jẹ ki a fi sii lati lo ninu iṣẹ Block wa:
Lẹhin ti n ṣalaye kini Block kan dabi, a le ṣalaye kini Blockchain yẹ ki o dabi. Nitorinaa jẹ ki a ṣẹda kilasi tuntun.
Ni oju iṣẹlẹ yii, blockchain jẹ ohun ti o rọrun pupọ ti o ni pq ohun-ini kan. Eleyi jẹ ẹya orun dani gbogbo awọn ti awọn ohun amorindun lori pq.
Ṣaaju ki a to le ṣafikun awọn bulọọki, a gbọdọ kọkọ ṣẹda ohun ti a mọ si “bulọọki ipilẹṣẹ.” Eyi ni bulọọki akọkọ ninu pq, ati pe o jẹ alailẹgbẹ ni pe ko le tọka si bulọki iṣaaju (o jẹ akọkọ!).
Nitorinaa, lati kọ bulọọki genesis, Emi yoo ṣafikun iṣẹ kan si kilasi wa ti a npè ni createGenesisBlock (). Pada ninu iṣẹ Nkan () {[koodu abinibi]} ti kilasi Blockchain wa.
A le ni bayi pẹlu Àkọsílẹ genesis nigbakugba ti a ba kọ apẹẹrẹ Blockchain tuntun kan:
Awọn ọna Blockchain
Bayi, jẹ ki a ṣafikun awọn ọna si kilasi Blockchain wa ti yoo gba wa laaye lati ṣe awọn nkan bii ṣafikun awọn bulọọki tuntun ati mu bulọọki aipẹ julọ.
Iṣẹ getLatestBlock jẹ ipilẹ julọ. O kan dapada ọmọ ẹgbẹ ikẹhin ti titobi pq:
Ilana addBlock jẹ diẹ diẹ sii ni ipa.
Ṣaaju ki a to le ṣafikun bulọọki tuntun si pq wa, a gbọdọ kọkọ ṣeto ni deede aaye Hash ti Àkọsílẹ tẹlẹ.
O gbọdọ ṣeto si hash ti bulọọki ti a ṣafikun laipẹ si ẹwọn wa. A tun nilo lati ṣe iṣiro hash ti bulọọki tuntun:
HIV
Jẹ ki a wo bii MelodyCoin wa ti jade.
Ṣẹda apẹẹrẹ blockchain lati ṣaṣeyọri eyi. Jẹ ki a ṣafikun awọn bulọọki tọkọtaya diẹ sii:
A ti ṣe awọn bulọọki tuntun meji nibẹ. Jẹ ki a wo bi blockchain wa ṣe dabi lọwọlọwọ.
MelodyCoin yoo jẹ okun ati tito pẹlu awọn aaye mẹrin:
Jẹrisi Iduroṣinṣin Blockchain naa
Blockchains jẹ ikọja nitori ni kete ti a ti fi bulọki kan kun, ko le ṣe atunṣe laisi pilẹṣẹ iyokù pq naa.
Sibẹsibẹ, ko si ọna fun mi lati ṣayẹwo iduroṣinṣin ti blockchain wa pẹlu imuse yii.
Jẹ ki a ṣafihan iṣẹ isChainValid kan si blockchain wa. Ti pq ba jẹ ẹtọ, yoo pada ni otitọ; bi bẹẹkọ, yoo da eke pada:
Igbeyewo Iduroṣinṣin
A le ni bayi fi iduroṣinṣin blockchain wa si idanwo. Ti a ba ṣiṣẹ ni bayi, yoo jẹrisi pe ẹwọn wa jẹ tootọ.
Jẹ ki a ni bayi gbiyanju lati tamper pẹlu blockchain wa. Jẹ ki a paarọ Àkọsílẹ 2 ki o tun kọ awọn akoonu rẹ (jẹ ki a ro pe a gbe awọn owó 100 dipo mẹrin).
Nigba ti a ba ṣiṣẹ eyi, a le rii pe sọfitiwia naa ṣe idanimọ ipa wa lati tamper pẹlu pq naa.
Sibẹsibẹ, o le gbagbọ pe ọna miiran wa fun mi lati dapọ pẹlu eyi. Mo paarọ awọn akoonu inu bulọki ṣugbọn ko ṣe atunto hash naa. Nitorinaa o le gbiyanju lati jẹ ọlọgbọn ati tun ṣe iṣiro hash ti bulọọki kanna.
Iyẹn ni gbogbo ohun ti o wa si iṣeto blockchain kekere wa! O jẹ ki a ṣafikun awọn bulọọki tuntun ati rii ifọwọyi pẹlu data laarin pq.
Awọn ọran meji wa pẹlu blockchain kekere wa ti a gbọdọ koju:
- Awọn kọnputa ode oni yiyara pupọ ati pe o le ṣafikun ẹgbẹẹgbẹrun awọn bulọọki si pq wa ni iṣẹju-aaya. O han ni a ko fẹ ki ẹnikẹni ṣe spamming blockchain wa.
- blockchain wa tun jẹ ipalara si fifin. O le ṣe imudojuiwọn awọn akoonu ti bulọọki kan lẹhinna tun ṣe iṣiro awọn hashes (ati awọn hashes ṣaaju) fun gbogbo awọn bulọọki atẹle. Paapa ti o ba jẹ idotin pẹlu rẹ, iwọ yoo pari pẹlu pq ti o tọ.
Lati koju awọn ifiyesi wọnyi, blockchains lo ilana ti a mọ si “ẹri iṣẹ.” O gbọdọ ṣe afihan pe o lo iye pataki ti awọn orisun iṣiro lati ṣẹda bulọki nipa lilo ọna yii. Eyi tun npe ni iwakusa.
Ẹri-iṣẹ nbeere pe hash Àkọsílẹ kan bẹrẹ pẹlu iye kan pato ti awọn odo. Ṣugbọn bawo ni o ṣe le mọ boya hash rẹ baamu ofin yii?
Awọn akoonu ti bulọọki kan pinnu hash rẹ. Nitorinaa a gba hash kanna nigbagbogbo, ti a ko ba yipada awọn akoonu naa.
Bulọọki kọọkan yẹ ki o ni iye ti ko ni irẹwẹsi ti a ṣafikun si bi ojutu kan. Eyi jẹ pataki diẹ ninu data ID ti a le ṣe imudojuiwọn titi hash ti bulọọki wa yoo bẹrẹ pẹlu awọn odo to. Nitoripe o ko le paarọ iṣelọpọ iṣẹ hash, o ni lati ṣe idanwo ọpọlọpọ awọn akojọpọ oriṣiriṣi ati nireti fun ohun ti o dara julọ.
Ṣe afihan Mining si Blockchain naa
Jẹ ki a bẹrẹ pẹlu pẹlu kan nonce ninu wa Block kilasi. Nonce jẹ iye ẹyọkan laarin bulọọki wa ti a le yipada lati ni ipa hash Àkọsílẹ naa.
A ko le paarọ aami-akoko tabi data naa.
Nigbamii, jẹ ki a kọ iṣẹ mineBlock () kan ti yoo ṣe iwakusa gangan ti bulọọki kan. Iṣẹ yii yoo firanṣẹ iṣoro ti o nilo bi paramita ati pe yoo tẹsiwaju lati ṣiṣẹ titi hash ti bulọọki wa yoo bẹrẹ pẹlu awọn odo to.
Mo kan ṣe ipilẹ lakoko lupu ti yoo ṣiṣẹ titi hash wa yoo bẹrẹ pẹlu awọn odo to. A lo iṣoro naa lati pinnu iye awọn odo ti o nilo. Pẹlu iṣoro ti 5, hash wa gbọdọ bẹrẹ pẹlu awọn odo 5.
Nigbati hash wa ko ni awọn odo ti o to, a gbe nonce soke nipasẹ ẹyọkan a tun ṣe iṣiro hash naa. Ati pe ti a ba rii hash ti o ni ibamu si iṣoro naa, a wọle si console.
Ohun kan tun wa ti a nilo lati ṣe. A ko gba oniyipada aibikita sinu akọọlẹ ni ọna iṣiroHash wa, nitorinaa o jẹ:
Blockchain Kilasi
Jẹ ki a fi ọna tuntun yii si idanwo ninu kilasi blockchain wa ki a wo bii o ṣe lọ.
Lati bẹrẹ, Emi yoo ṣalaye iṣoro ti blockchain wa ninu iṣẹ Nkan (). A setumo o nibi niwon a le lo o ibikan nigbamii.
Iṣẹ addBlock gbọdọ lẹhinna jẹ atunṣe iru eyiti o ṣe maiku bulọki ṣaaju fifi kun sinu pq wa.
Lo Blockchain naa
Bayi, jẹ ki a fi blockchain tuntun wa lati lo pẹlu algoridimu ẹri-ti-iṣẹ. Nibi, ṣafikun awọn alaye console.log tọkọtaya kan.
Nigbati a ba ṣiṣẹ koodu yii, a le ṣe akiyesi pe ilana iwakusa ko si ni iyara paapaa.
Yoo gba akoko diẹ fun algoridimu lati ṣe ina awọn bulọọki pẹlu hashes ti o bẹrẹ pẹlu awọn odo mẹta (gẹgẹbi a ti tunto nipasẹ iṣoro).
Nitorinaa iyẹn ni opin iṣeto ipilẹ blockchain wa.
A le ṣe ilana bawo ni iyara awọn bulọọki tuntun ṣe ṣafikun si blockchain wa ọpẹ si ẹrọ-ẹri iṣẹ-ṣiṣe.
O jẹ ẹya aabo pataki julọ lori blockchains. Ati ni bayi pe o loye bii o ṣe n ṣiṣẹ, tẹsiwaju ṣiṣẹda tirẹ!
Fi a Reply