Vytvorenie Blockchain aplikácie pomocou Node.js: Kompletný sprievodca
Prečo Node.js? Node.js je open-source runtime prostredie, ktoré je postavené na JavaScript engine V8 od Google. Node.js je obľúbený pre jeho rýchlosť a efektívnosť, pretože umožňuje vývojárom písať serverový kód v JavaScripte. V kombinácii s bohatou knižnicou modulov a balíkov, je Node.js ideálnym nástrojom pre vývoj blockchain aplikácií.
Inštalácia potrebných nástrojov Predtým, než začneme, uistite sa, že máte nainštalovaný Node.js a npm (Node Package Manager). Môžete si ich stiahnuť a nainštalovať z oficiálnej webstránky Node.js.
bashnode -v npm -v
Tieto príkazy vám ukážu aktuálnu verziu Node.js a npm, ktoré máte nainštalované.
Vytvorenie projektu Najprv si vytvoríme nový priečinok pre našu blockchain aplikáciu a inicializujeme nový Node.js projekt.
bashmkdir blockchain-app cd blockchain-app npm init -y
Tento príkaz vytvorí nový package.json
súbor, ktorý bude obsahovať informácie o našom projekte a zoznam závislostí.
Inštalácia závislostí Pre vytvorenie jednoduchej blockchain aplikácie budeme potrebovať niekoľko knižníc. Nainštalujeme ich pomocou npm.
bashnpm install crypto-js
crypto-js
je knižnica, ktorá poskytuje množstvo kryptografických funkcií, ktoré budeme potrebovať na hashovanie údajov v našom blockchaine.
Vytvorenie blockchain triedy
Teraz môžeme začať s vytváraním samotného blockchaitu. Vytvoríme si triedu Block
, ktorá bude reprezentovať jeden blok v našom blockchaine.
javascriptconst SHA256 = require("crypto-js/sha256"); class Block { constructor(index, timestamp, data, previousHash = '') { this.index = index; this.timestamp = timestamp; this.data = data; this.previousHash = previousHash; this.hash = this.calculateHash(); } calculateHash() { return SHA256(this.index + this.previousHash + this.timestamp + JSON.stringify(this.data)).toString(); } }
Vytvorili sme triedu Block
, ktorá má konštruktor a metódu calculateHash
. Táto metóda vytvorí hash z bloku, čo je dôležité pre zabezpečenie integrity údajov.
Vytvorenie blockchain triedy
Následne vytvoríme triedu Blockchain
, ktorá bude obsahovať všetky bloky a metódy na pridávanie nových blokov.
javascriptclass Blockchain { constructor() { this.chain = [this.createGenesisBlock()]; } createGenesisBlock() { return new Block(0, "01/01/2021", "Genesis Block", "0"); } getLatestBlock() { return this.chain[this.chain.length - 1]; } addBlock(newBlock) { newBlock.previousHash = this.getLatestBlock().hash; newBlock.hash = newBlock.calculateHash(); this.chain.push(newBlock); } isChainValid() { for (let i = 1; i < this.chain.length; i++) { const currentBlock = this.chain[i]; const previousBlock = this.chain[i - 1]; if (currentBlock.hash !== currentBlock.calculateHash()) { return false; } if (currentBlock.previousHash !== previousBlock.hash) { return false; } } return true; } }
V tejto triede Blockchain
máme metódy na vytvorenie genesis bloku, pridanie nového bloku a overenie, či je náš blockchain platný. Genesis blok je prvý blok v blockchaine, ktorý je vopred definovaný.
Pridanie nových blokov Teraz môžeme vytvoriť novú inštanciu našej blockchain triedy a pridať do nej niekoľko blokov.
javascriptlet saviBlockchain = new Blockchain(); saviBlockchain.addBlock(new Block(1, "02/01/2021", { amount: 4 })); saviBlockchain.addBlock(new Block(2, "03/01/2021", { amount: 10 })); console.log(JSON.stringify(saviBlockchain, null, 4)); console.log("Je blockchain platný? " + saviBlockchain.isChainValid());
Tento kód vytvorí nový blockchain a pridá doň dva nové bloky. Následne vypíšeme celý blockchain a skontrolujeme, či je platný.
Záver Tento jednoduchý príklad ukazuje, ako môžeme vytvoriť základný blockchain pomocou Node.js. V reálnom svete by blockchain mal oveľa viac funkcionalít, ako napríklad konsenzusné algoritmy, proof of work, šifrovanie, a mnoho ďalších. Tento tutoriál však poskytuje pevný základ, na ktorom môžete stavať a rozvíjať svoje vlastné blockchain aplikácie.
Populárne komentáre
Zatiaľ žiadne komentáre