Haeba re sheba mekhoa ea lilemo tse 'maloa tse fetileng, re utloile ka blockchain ka linako tsohle, empa eseng haholo ka tse tobileng.
Kaofela rea tseba hore li-cryptocurrensets tse kang Bitcoin, Ethereum, Dogecoin, Matic, le tse ling li itšetlehile ka theknoloji ea blockchain. Blockchain e etelletse pele liketsahalo tsa bohlokoa tse ileng tsa fetola liindasteri tse ngata ka 2021 mme ea bula tsela bakeng sa likatleho tse ncha.
Blockchain ke mokhoa oa ho boloka data ka tsela eo ho leng thata kapa ho ke keng ha khoneha ho e hlophisa, ho qhekella kapa ho qhekella. Ke ledja ea dijithale ea litšebelisano tse kopitsoang le ho phatlalla le marang-rang ohle a likhomphutha tsa blockchain.
Ke thekenoloji ea morao-rao ea database e matlafatsang hoo e batlang e le li-cryptocurrensets tsohle. Blockchain e etsa hore ho be thata haholo ho qhekella kapa ho qhekella sistimi ka ho hasanya likopi tse ts'oanang tsa database ho marang-rang kaofela.
Le hoja Bitcoin e se e le tšebeliso e hlahelletseng ka ho fetisisa bakeng sa blockchain, theknoloji e ka fana ka mefuta e mengata e fapaneng ea likopo.
Li-cryptocurrensets le li-blockchains li ntse li tsebahala haholo lilemong tsa morao tjena, 'me mokhoa ona o lebelletsoe ho tsoela pele.
Re tla etsa blockchain e bonolo ka JavaScript thutong ena. E tla u fa kutloisiso ea mantlha ea hore na blockchain e sebetsa joang.
Ha re e bitse MelodyCoin 'me re kenelle ts'ebetsong!
Ho theha A Block
Ho qala, re tla theha faele e ncha ea JavaScript moo re tla kenya khoutu ea rona kaofela.
Ha re e bitse main.js mme re qale ka tlhaloso ea hore na blockchain le li-block li lokela ho shebahala joang.
Theha sehlopha sa Block 'me u se fe mosebetsi Object() {[native code] } ho qala ka.
U tlameha ho fana ka letsatsi, le hashe ea boloko e fetileng ha u theha block e ncha:
Litlhaloso tsa thepa ka 'ngoe ke tsena:
- Setempe sa nako se supa hore boloko bo entsoe neng. U ka sebelisa mofuta ofe kapa ofe oo u o khethang (tabeng ena, setempe sa nako sa UNIX).
- Mofuta ofe kapa ofe oa data oo u lakatsang ho o hokahanya thibela sena o ka kenyelletsoa ho parameter ea data. Haeba u lakatsa ho theha cryptocurrency, u ka boloka data ea transaction joalo ka moromeli/moamoheli le chelete e fallisitsoeng mona.
- Hash e fetileng ke khoele e ts'oereng hash ea pele ea block. Sena ke sona se tla hlahisa ketane ea li-blocks, tse tla ba bohlokoa ho fana ka botšepehi ba blockchain ea rona hamorao.
Ho theha li-Hashes
Sebaka se seng le se seng se hokahanya le block e fetileng (ka hona thepa e fetileng eaHash). Ke hore, block ka 'ngoe e hloka hash. Hashe e tšoana le monoana. E ikhethile bakeng sa boloko ka 'ngoe.
Hash ea block e ka baloa ka ho fetisa litaba tsohle tsa eona ka ts'ebetso ea hash.
Kahoo, ha re qaleng ka ho kenya tšebetsong ts'ebetso e balang hash ea block ea hajoale.
Kahoo, tlas'a sehlopha sa Block, re hlalosa mosebetsi oa countHash:
Leha ho le joalo, SHA256 hash ha e tšehetsoe ke JavaScript 'me e tlameha ho fumanoa laebraring ea kantle.
Crypto-js ke sephutheloana se tsotehang se kenyelletsang ts'ebetsong e sireletsehileng ea li-algorithms tse 'maloa tsa hash.
Joale re ka e kenya ka har'a khoutu ea rona ea main.js.
Kaha joale re na le ts'ebetso ea countHash() ea rona, ha re e sebeliseng mosebetsing oa rona oa Block:
Kamora ho hlalosa hore na Block e shebahala joang, re ka hlalosa hore na Blockchain e lokela ho shebahala joang. Kahoo ha re theheng sehlopha se secha.
Boemong bona, blockchain ke ntho e bonolo haholo e nang le ketane ea thepa. Ena ke lethathamo le tšoereng li-blocks tsohle ka ketane.
Pele re ka eketsa li-blocks, re tlameha ho qala ka ho theha se tsejoang e le "genesis block". Ena ke boloko ba pele ba ketane, 'me e ikhethile ka hore e ke ke ea supa boloko ba pele (ke ea pele!).
Kahoo, ho haha genesis thibela, Ke tla eketsa mosebetsi ho sehlopha sa rōna e bitsoang createGenesisBlock (). Khutlela mosebetsing Object() {[native code] } ea sehlopha sa rona sa Blockchain.
Hona joale re ka kenyelletsa thibelo ea genesis neng kapa neng ha re theha mohlala o mocha oa Blockchain:
Mekhoa ea Blockchain
Joale, ha re kenyelle mekhoa ho sehlopha sa rona sa Blockchain e tla re lumella ho etsa lintho tse kang ho kenya li-blocks tse ncha le ho lata boloko ba morao-rao.
Mosebetsi oa getLatestBlock ke oa motheo ka ho fetisisa. E khutlisetsa feela setho sa ho qetela sa lethathamo la ketane:
Mokhoa oa addBlock o ameha hanyane.
Pele re ka eketsa block e ncha ho ketane ea rona, re tlameha ho qala ka nepo sebaka sa block se fetileng sa Hash.
E tlameha ho hlophisoa ho hash ea block e sa tsoa eketsoa ho ketane ea rona. Re boetse re hloka ho bala hash ea block e ncha:
Testing
Ha re boneng hore na MelodyCoin ea rona e tsoile joang.
Theha mohlala oa blockchain ho fihlela sena. Ha re kenye li-blocks tse ling tse 'maloa:
Re entse li-block tse peli tse ncha moo. Ha re shebeng hore na blockchain ea rona e shebahala joang hajoale.
MelodyCoin e tla hlophisoa le ho hlophisoa ka libaka tse 'ne:
Netefatsa Botšepehi ba Blockchain
Li-blockchains li monate hobane hang ha block e kentsoe, e ke ke ea fetoloa ntle le ho etsa hore karolo e setseng ea ketane e se ke ea sebetsa.
Leha ho le joalo, ha ho na mokhoa oa hore ke hlahlobe botšepehi ba blockchain ea rona ka ts'ebetsong ena.
Ha re hlahise ts'ebetso ea isChainValid ho blockchain ea rona. Haeba ketane e le ea molao, e tla khutlela 'nete; ho seng joalo, e tla khutla e le leshano:
Ho Leka Botšepehi
Hona joale re ka beha botšepehi ba blockchain ea rona tekong. Haeba re e phethahatsa hona joale, e tla tiisa hore ketane ea rona ke ea 'nete.
Ha re lekeng hona joale ho senya blockchain ea rona. Ha re fetoleng block 2 ebe re ngola litaba tsa eona holimo (a re nke hore re fetisitse lichelete tsa tšepe tse 100 ho fapana le tse 'ne).
Ha re etsa sena, re ka bona hore software e lemoha boiteko ba rona ba ho senya ketane.
Leha ho le joalo, u ka lumela hore ho na le mokhoa o mong oa ho kena-kenana le sena. Ke fetotse litaba tse ka har'a boloko empa ha kea ka ka bala hash hape. Kahoo o ka leka ho ba bohlale le ho bala hape hash ea block e tšoanang.
Ke sona feela se neng se le teng ho setupong sa rona se senyane sa blockchain! E re thusa ho eketsa li-blocks tse ncha le ho lemoha ho senya data ka har'a ketane.
Ho na le litaba tse peli ka blockchain ea rona e nyane eo re tlamehang ho e rarolla:
- Lik'homphieutha tsa morao-rao li potlakile haholo 'me li ka eketsa likete tsa li-blocks ka metsotsoana. Ho hlakile hore ha re batle hore mang kapa mang a etse spamming blockchain ea rona.
- Blockchain ea rona e ntse e le kotsing ea ho hlekefetsoa. U ka ntlafatsa litaba tsa block ebe u bala li-hashes (le li-hashes tsa pele) bakeng sa li-blocks tse latelang. Le ha o ka e senya, o tla qetella o e-na le ketane ea molao.
Ho rarolla mathata ana, li-blockchains li sebelisa mokhoa o tsejoang e le "bopaki ba mosebetsi." U tlameha ho bonts'a hore u sebelisitse palo e kholo ea lisebelisoa tsa computational ho theha block u sebelisa mokhoa ona. Sena se boetse se bitsoa meepo.
Bopaki ba mosebetsi bo hloka hore hash ea block e qale ka palo e itseng ea zero. Empa u ka tseba joang hore na hashe ea hau e lumellana le molao ona?
Likahare tsa block li khetholla hash ea eona. Kahoo re lula re fumana hash e tšoanang, ha feela re sa fetole litaba.
Sebaka se seng le se seng se lokela ho ba le boleng bo sa tloaelehang bo ekelitsoeng ho sona e le tharollo. Ha e le hantle ena ke data e sa reroang eo re ka e ntlafatsang ho fihlela hashe ea block ea rona e qala ka li-zero tse lekaneng. Hobane ha o khone ho fetola tlhahiso ea hash, o tlameha ho leka mefuta e mengata e fapaneng mme o tšepe tse ntle ka ho fetisisa.
Hlahisa Mining ho The Blockchain
Ha re qaleng ka ho kenyelletsa nonce sehlopheng sa rona sa Block. Nonce ke boleng bo le bong ka har'a boloko ba rona boo re ka bo fetolang ho ama hash ea block.
Ha re khone ho fetola setempe sa nako kapa data.
E latelang, ha re ngoleng mosebetsi oa mineBlock() o tla etsa merafo ea 'nete ea boloko. Ts'ebetso ena e tla romelloa bothata bo hlokahalang joalo ka paramente mme e tla tsoelapele ho sebetsa ho fihlela hashe ea block ea rona e qala ka li-zero tse lekaneng.
Ke sa tsoa etsa loop ea mantlha e neng e tla sebetsa ho fihlela hashe ea rona e qala ka li-zero tse lekaneng. Re sebelisa bothata ho fumana hore na ho hlokahala li-zero tse kae. Ka bothata ba 5, hashi ea rona e tlameha ho qala ka li-zero tse 5.
Ha hashe ea rona e sena li-zero tse lekaneng, re phahamisa nonce ka bonngoe ebe re bala hashe hape. 'Me haeba re fumana hash e lumellanang le bothata, re e kenya ho console.
Ho na le ntho e 'ngoe hape eo re lokelang ho e etsa. Ha re hlile ha re nahane ka ho feto-fetoha ha nonce ka mokhoa oa rona oa countHash, ka hona ke ena:
Sehlopha sa Blockchain
Ha re ke re hlahlobe mokhoa ona o mocha sehlopheng sa rona sa blockchain mme re bone hore na e ea joang.
Ho qala, ke tla hlalosa bothata ba blockchain ea rona ho mosebetsi Object(). Re e hlalosa mona kaha re ka e sebelisa kae-kae hamorao.
Ts'ebetso ea addBlock e tlameha ho fetoloa hore e epe block pele e e kenya ka har'a ketane ea rona.
Sebelisa Blockchain
Joale, ha re ke re sebeliseng blockchain ea rona e ncha le algorithm ea bopaki ba mosebetsi. Mona, eketsa lipolelo tse 'maloa tsa console.log.
Ha re phethahatsa khoutu ena, re ka hlokomela hore ts'ebetso ea merafo ha e sa le kapele haholo.
Ho nka nako hore algorithm e hlahise li-block tse nang le li-hashes tse qalang ka li-zero tse tharo (joalo ka ha li hlophisitsoe ka bothata).
Kahoo e bile pheletso ea setupo sa rona sa mantlha sa blockchain.
Re ka laola hore na li-blocks tse ncha li kenngoa kapele hakae ho blockchain ea rona ka lebaka la mochini oa bopaki ba mosebetsi.
Ke karolo ea bohlokoa ea ts'ireletso ho li-blockchains. 'Me kaha joale u utloisisa hore na e sebetsa joang, qala ho iketsetsa ea hau!
Leave a Reply