Afai tatou te vaʻavaʻai i faiga o nai tausaga talu ai, ua tatou faʻalogo e uiga i poloka poloka i taimi uma, ae le tele e uiga i mea faʻapitoa.
O loʻo matou iloa uma o tupe faʻapitoa e pei o Bitcoin, Ethereum, Dogecoin, Matic, ma isi e faʻalagolago i tekinolosi poloka poloka. Blockchain na taʻitaʻia mea taua na tutupu na faʻafouina ai le tele o pisinisi i le 2021 ma saunia ai le ala mo taunuʻuga fou.
Blockchain o se auala e teu ai faʻamatalaga i se auala e faigata pe le mafai ona faʻasaʻo, taʻavale, pe faʻafefe. O se tusi numera numera o fefaʻatauaiga o loʻo faʻaluaina ma faʻasalalau i luga ole fesoʻotaʻiga atoa a le poloka poloka o faiga komepiuta.
O le fa'atekonolosi fa'amaumauga tu'ufa'atasia lea e fa'amalosia ai toetoe lava o tupe fa'apitoa uma. O le Blockchain e matua faigata ai ona ta'avale pe fa'a'ole'ole le faiga e ala i le fa'asalalauina o kopi tutusa o se fa'amaumauga i luga ole feso'otaiga atoa.
E ui o Bitcoin ua avea nei ma faʻaoga sili ona lauiloa mo poloka poloka, o le tekonolosi e mafai ona faʻaaogaina se tele o ituaiga o talosaga.
Cryptocurrencies ma poloka poloka ua faateleina le lauiloa i tausaga talu ai nei, ma o lenei tulaga e faamoemoe e faaauau pea.
Matou te faia se poloka poloka faigofie ma JavaScript i lenei aʻoaʻoga. O le a tuʻuina atu ia te oe se malamalamaga masani i le auala e galue ai se poloka poloka.
Se'i o tatou ta'ua o le MelodyCoin ma sa'o loa i le gaioiga!
Fausiaina o se poloka
Ina ia amata, o le a matou fatuina se faila JavaScript fou e tuʻu uma ai a matou code.
Se'i ta'ua main.js ma amata i se fa'amatalaga pe fa'afefea ona va'ai se poloka poloka ma poloka.
Fausia se vasega Block ma tu'u i ai se galuega Object() { [native code] } e amata ai.
E tatau ona e tuʻuina atu se aso, ma le hash o le poloka muamua pe a fatuina se poloka fou:
O fa'amatalaga nei mo meatotino ta'itasi:
- E fa'ailoa mai e le timestamp le taimi na fai ai le poloka. E mafai ona e faʻaogaina soʻo se faatulagaga e te filifilia (i lenei tulaga, se UNIX timestamp).
- Soo se ituaiga o faʻamatalaga e te manaʻo e faʻafesoʻotaʻi i lenei poloka e mafai ona aofia i totonu o le faʻamaumauga o faʻamaumauga. Afai e te manaʻo e fai se cryptocurrency, e mafai ona e teuina faʻamatalaga o fefaʻatauaiga e pei o le tagata e auina atu / talia ma le aofaʻi o tupe na siitia iinei.
- O le previousHash o se manoa o lo'o taofia ai le hash o le poloka muamua. O le mea lea o le a faʻatupuina ai le filifili o poloka, lea o le a taua tele i le tuʻuina atu o le faʻamaoni o la tatou poloka poloka mulimuli ane.
Fausia Hashes
O poloka taʻitasi e fesoʻotaʻi atu i le poloka muamua (faʻapea o le meatotino muamuaHash). O lona uiga, e manaʻomia e poloka taʻitasi se hash. O le hash e tutusa ma se tamatamailima. E tulaga ese mo poloka taitasi.
E mafai ona fa'atatau le hash o se poloka e ala i le pasi uma o mea o lo'o i totonu e ala i se galuega hash.
O lea la, tatou amata i le faʻatinoina o se galuega e faʻatusatusa ai le hash o le poloka o loʻo iai nei.
O lea la, i lalo o le vasega Block, matou te faʻamatalaina le calculHash function:
Ae ui i lea, ole SHA256 hash e le lagolagoina e le JavaScript ma e tatau ona maua mai se faletusi fafo.
Crypto-js o se afifi matagofie e aofia ai faʻatinoga saogalemu o le tele o algorithms hash.
Ona mafai lea ona tatou faaulufale mai i totonu o la tatou main.js code.
I le taimi nei ua i ai la matou calculHash() galuega, seʻi o tatou faʻaaogaina i la tatou galuega a le Block:
A maeʻa ona faʻamatalaina foliga o se Block, e mafai ona tatou faʻamalamalamaina le mea e tatau ona foliga i ai se Blockchain. Sei o tatou faia se vasega fou.
I lenei faʻaaliga, o le poloka poloka o se mea faigofie tele o loʻo i ai se filifili meatotino. O se fa'asologa lea o lo'o taofia uma poloka o le filifili.
Ae tatou te leʻi faʻaopoopoina poloka, e tatau ona tatou faia muamua le mea ua taʻua o se "poka genesis." O le poloka muamua lea i le filifili, ma e tulaga ese ona e le mafai ona faasino i se poloka muamua (o le muamua!).
O lea la, ina ia fausia le poloka genesis, ou te faʻaopoopoina se galuega i la matou vasega e igoa ia createGenesisBlock (). Toe fo'i i le galuega Object() { [native code] } o la matou vasega Blockchain.
E mafai nei ona matou aofia ai le poloka genesis i soʻo se taimi matou te fausia ai se faʻataʻitaʻiga Blockchain fou:
Metotia Blockchain
Ia, seʻi o tatou faʻaopoopoina metotia i la tatou vasega Blockchain e mafai ai ona tatou faia mea e pei o le faʻaopoopoina o poloka fou ma aumai le poloka sili ona lata mai.
Ole galuega ole getLatestBlock ole pito sili lea ona taua. Na'o le toe fa'afo'i mai o le sui mulimuli o le laina filifili:
O le addBlock technique e sili atu ona aʻafia.
Ae tatou te le'i fa'aopoopoina se poloka fou i la tatou filifili, e tatau ona tatou setiina ma le talafeagai le fanua o Hash muamua.
E tatau ona seti i le hash o le poloka lata mai nei faaopoopo i la tatou filifili. Matou te manaʻomia foʻi le faʻatusatusaina o le hash o le poloka fou:
tofotofoga
Se'i va'ai pe fa'afefea ona sau le tatou MelodyCoin.
Fausia se faʻataʻitaʻiga blockchain e ausia ai lenei mea. Sei o tatou faaopoopo nisi poloka se lua:
Ua matou faia ni poloka fou se lua iina. Se'i o tatou va'ava'ai i foliga o le tatou poloka poloka i le taimi nei.
MelodyCoin o le a faʻamauina ma faʻapipiʻiina i avanoa e fa:
Fa'amaonia le Amiotonu ole Blockchain
O poloka poloka e manaia tele aua o le taimi lava e faaopoopo ai se poloka, e le mafai ona suia e aunoa ma le faʻaleagaina o le vaega o totoe o le filifili.
Ae ui i lea, e leai se auala mo aʻu e siaki ai le faʻamaoni o la matou poloka poloka i lenei faʻatinoga.
Sei o tatou fa'alauiloa se galuega isChainValid i la tatou poloka poloka. Afai e tatau le filifili, o le a toe foi moni; a leai, o le a toe foʻi pepelo:
Tofotofoina le Amiotonu
Ua mafai nei ona matou fa'ata'ita'i le fa'amaoni o le poloka poloka. Afai tatou te faia nei, o le a faʻamaonia ai o la tatou filifili e moni.
Se'i o tatou taumafai nei e fa'afefe i la tatou poloka poloka. Se'i o tatou sui le poloka 2 ma toe tusi ai mea o lo'o i totonu (faapea na tatou fa'aliliuina le 100 tupe nai lo le fa).
A tatou faʻatinoina lenei mea, e mafai ona tatou vaʻaia o loʻo iloa e le masini komepiuta a tatou taumafaiga e faʻafefe le filifili.
Ae ui i lea, e mafai ona e talitonu o loʻo i ai se isi auala mo aʻu e faʻalavelave ai i lenei mea. Na ou suia mea o loʻo i totonu o le poloka ae ou te leʻi toe faʻatatauina le hash. O lea e mafai ona e taumafai e atamai ma toe fa'atatau le hash o lena lava poloka.
Na'o le pau lena o le matou seti poloka poloka! E mafai ai ona matou fa'aopoopo ni poloka fou ma iloa ai le fa'aogaina o fa'amaumauga i totonu o le filifili.
E lua fa'afitauli i la tatou tamai poloka poloka e tatau ona tatou fa'atalanoaina:
- O komepiuta fa'aonaponei e matua televave ma mafai ona fa'aopoopo le afe ma afe o poloka i la tatou filifili i sekone. E manino lava matou te le manaʻo i se tasi e faʻasalalau la matou poloka poloka.
- O la matou poloka poloka o loʻo aʻafia pea i le faʻafefe. E mafai ona e fa'afouina mea o lo'o i totonu o se poloka ona toe fa'atatau lea o fa'ailoga (ma fa'amata'u muamua) mo poloka uma e mulimuli mai. E tusa lava pe e te faʻalavelave i ai, e te iʻu i se filifili talafeagai.
Ina ia foia nei atugaluga, e faʻaogaina e poloka poloka se metotia ua taʻua o le "faʻamaoniga o galuega." E tatau ona e fa'aalia na e fa'aogaina se aofa'iga tele o punaoa fa'akomepiuta e fai ai se poloka e fa'aaoga ai lenei faiga. E ta'ua foi lea galuega i lua.
O le fa'amaoniga-o-galuega e mana'omia ai le fa'ailoga o le poloka poloka e amata i se aofa'i fa'apitoa o zeros. Ae fa'afefea ona e iloa pe fetaui lau hash i lenei tulafono?
O mea o lo'o i totonu o se poloka e iloa ai lona hash. O lea matou te maua i taimi uma le hash tutusa, pe a matou le suia mea o loʻo i totonu.
O poloka ta'itasi e tatau ona i ai se tau fa'aopoopo e fai ma fofo. Ole mea moni lava o nisi fa'amatalaga fa'afuase'i e mafai ona tatou fa'afouina se'ia o'o ina amata le hash o la tatou poloka i le lava zeros. Talu ai e le mafai ona e suia le gaioiga a le hash, e tatau ona e suʻeina le tele o tuʻufaʻatasiga eseese ma faʻamoemoe mo le mea sili.
Fa'ailoa le Mining ile Blockchain
Tatou amata i le fa'aofiina o se nonce i la tatou vasega Block. O le nonce o le tau e tasi i totonu o la tatou poloka e mafai ona tatou suia e aʻafia ai le hash o le poloka.
E le mafai ona matou suia le timestamp poʻo faʻamaumauga.
Sosoo ai, se'i o tatou tusia se galuega mineBlock() e faia ai le mining moni o se poloka. O lenei galuega o le a tuʻuina atu le faigata manaʻomia e fai ma faʻamaufaʻailoga ma o le a faʻaauau pea ona faʻatinoina seia oʻo ina amata le hash o la tatou poloka i le lava zeros.
Na'o la'u faia se fa'amata'u a'o fa'agasolo e fa'agasolo se'ia o'o ina amata le tatou hash i ni zero. Matou te faʻaaogaina le faigata e fuafua ai pe fia numera e manaʻomia. Faatasi ai ma se faigata o le 5, o le tatou hash e tatau ona amata i le 5 zeros.
A le lava ni zeros a le matou hash, matou te si'i le nonce i le tasi ma toe fa'atatau le hash. Ma afai matou te mauaina se hash e fetaui ma le faigata, matou te saini i le faʻamafanafanaga.
E tasi le mea e tatau ona tatou faia. Matou te le faʻaaogaina le fesuiaiga e le masani ai i la matou metotia CalcalHash, o lea o le:
Vasega Blockchain
Se'i o tatou fa'ata'ita'i lenei faiga fou ile matou vasega poloka poloka ma va'ai pe fa'afefea.
Ina ia amata, o le a ou faʻamatalaina le faigata o la tatou poloka poloka i le galuega Object(). Matou te faauigaina iinei talu ai e mafai ona matou faʻaaogaina i se mea mulimuli ane.
E tatau loa ona toe fa'aleleia le galuega fa'aopoopo fa'aopoopo ina ia eliina ai le poloka ae le'i fa'aopoopoina i totonu o la tatou filifili.
Fa'aaoga le Blockchain
Ia, se'i tu'u la tatou poloka poloka fou e fa'aoga i le fa'amaoniga-o-galuega algorithm. Lenei, fa'aopoopo se fa'amatalaga console.log.
Pe a tatou faʻatinoina lenei tulafono, e mafai ona tatou matauina e le o toe televave le faʻagasologa o le mining.
E manaʻomia sina taimi mo le algorithm e faʻatupu ai poloka ma faʻamau e amata i le tolu zeros (e pei ona faʻatulagaina e faigata).
O le iuga la lea o le matou seti poloka poloka.
E mafai ona matou faʻatonutonuina le vave faʻaopoopoina o poloka fou i la matou poloka faʻafetai i le faʻamaoniga-o-galuega masini.
Ole vaega pito sili ona taua ole puipuiga ile poloka poloka. Ma o lea ua e malamalama pe faʻapefea ona galue, faʻaauau le fatuina o oe lava!
Tuua se tali