In den letzten Jahren hat die Blockchain-Technologie große Aufmerksamkeit erhalten und verschiedene Branchen revolutioniert. Im Wesentlichen ist eine Blockchain ein dezentrales, unveränderliches und transparentes Hauptbuch, das Transaktionen über mehrere Computer hinweg aufzeichnet. JavaScript ist eine der beliebtesten Programmiersprachen bei der Entwicklung von Blockchain-Anwendungen. In diesem Artikel tauchen wir tief in die Schnittstelle zwischen JavaScript und Blockchain-Technologie ein und untersuchen, wie man JavaScript für die Interaktion mit und die Entwicklung von Anwendungen auf der Blockchain verwendet.
JavaScript ist für seine Vielseitigkeit und weit verbreitete Akzeptanz bekannt und hat sich zur Sprache der Wahl für die Erstellung von Webanwendungen entwickelt. Aufgrund seiner Fähigkeit, sowohl auf der Server- als auch auf der Clientseite ausgeführt zu werden, ist es ideal für die Erstellung dynamischer und interaktiver Benutzeroberflächen. Darüber hinaus ist JavaScript aufgrund seiner Unterstützung für asynchrone Programmierung und seines umfangreichen Ökosystems an Bibliotheken ideal für die Blockchain-Entwicklung.
Blockchain-Technologien wie Ethereum bieten eine Plattform für die Erstellung dezentraler Anwendungen (dApps). Diese dApps erfordern häufig Smart Contracts, bei denen es sich um selbstausführende Verträge mit vordefinierten Regeln und Bedingungen handelt. JavaScript kann zur Interaktion mit Smart Contracts verwendet werden, sodass Entwickler problemlos komplexe und dezentrale Anwendungen erstellen können.
Sehen wir uns genauer an, wie JavaScript mit Smart Contracts auf der Ethereum-Blockchain interagiert. In dieser Demonstration verwenden wir die web3.js-Bibliothek, eine beliebte JavaScript-Bibliothek für die Interaktion mit Ethereum.
Zunächst müssen Sie Node.js und npm (Node-Paketmanager) auf Ihrem Computer installieren. Sobald die Einrichtung abgeschlossen ist, befolgen Sie bitte die folgenden Schritte−
Öffnen Sie ein Terminal und navigieren Sie zum Projektverzeichnis. Führen Sie den folgenden Befehl aus, um web3.js zu installieren −
npm install web3
Importieren Sie in der JavaScript-Datei die web3-Bibliothek und erstellen Sie eine Instanz der Web3-Klasse. Sie müssen außerdem die Anbieter-URL angeben, die das Ethereum-Netzwerk bestimmt, mit dem Sie eine Verbindung herstellen möchten. In diesem Beispiel verwenden wir den Infura-Dienst, um eine Verbindung zum Ethereum-Mainnet herzustellen -
const Web3 = require('web3'); const providerURL = 'https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY'; const web3 = new Web3(providerURL);
HINWEIS- Ersetzen Sie YOUR_INFURA_API_KEY durch Ihren tatsächlichen Infura-API-Schlüssel. Wenn Sie noch keins haben, registrieren Sie sich kostenlos auf der Infura-Website.
Um mit einem Smart Contract zu interagieren, benötigen Sie die Vertragsadresse und dessen ABI (Application Binary Interface). ABI definiert die Struktur und Funktionalität von Smart Contracts. In diesem Beispiel verwenden wir einen einfachen Smart Contract zum Speichern und Abrufen von Werten −
const contractAddress = '0xContractAddress'; const contractABI = [ { "constant": true, "inputs": [], "name": "getValue", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_newValue", "type": "uint256" } ], "name": "setValue", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ];
Ersetzen Sie 0xContractAddress durch die tatsächliche Adresse Ihres bereitgestellten Smart Contracts. Sie können die Vertrags-ABI über Smart-Contract-Quellcode oder Tools wie Etherscan erhalten.
Erstellen Sie nun eine Vertragsinstanz mit der Vertragsadresse und dem ABI −
const contract = new web3.eth.Contract(contractABI, contractAddress);
Sie können Vertragsinstanzen verwenden, um Funktionen für Smart Contracts aufzurufen. Rufen wir den im Vertrag gespeicherten aktuellen Wert ab −
contract.methods.getValue().call((error, result) => { if (error) { console.error(error); } else { console.log('Contract value:', result); } });
Die getValue()-Funktion ist eine Ansichtsfunktion, was bedeutet, dass sie den Blockchain-Status nicht ändert und aufgerufen werden kann, ohne dass Gasgebühren anfallen. Es ruft den aktuellen im Vertrag gespeicherten Wert ab und gibt ihn in der Ergebnisvariablen zurück.
Um den Vertragswert zu ändern, können Sie die Schreibfunktion aufrufen. Lassen Sie uns den Wert im Vertrag aktualisieren−
const newValue = 42; contract.methods.setValue(newValue).send({ from: '0xYourAddress' }) .on('receipt', (receipt) => { console.log('Transaction receipt:', receipt); }) .on('error', (error) => { console.error('Transaction error:', error); });
Ersetzen Sie 0xYourAddress durch Ihre Ethereum-Adresse. Die Funktion setValue() ist eine nicht kostenpflichtige Funktion, was bedeutet, dass bei der Transaktion kein Ether gesendet werden muss. Wir senden die Transaktion mit der Funktion send(), und optionale Ereignishandler (on('receipt') und on('error')) ermöglichen es uns, den Transaktionsbeleg zu empfangen oder etwaige Fehler zu behandeln, die während der Transaktion aufgetreten sind. < /p>
Wenn Sie den JavaScript-Code ausführen, sehen Sie die Ausgabe in der Konsole. Wenn wir beispielsweise die Funktion getValue() aufrufen, lautet die Ausgabe -
Contract value: 10
Wenn wir den Wert mit der Funktion setValue() aktualisieren, lautet die Ausgabe − p>
Transaction receipt: { blockHash: '0x123456...', blockNumber: 1234, ... }
Die Vielseitigkeit von JavaScript und die Leistungsfähigkeit der Blockchain-Technologie haben sich vereint, um Entwicklern die Erstellung dezentraler Anwendungen mit vertrauten Tools zu ermöglichen. In diesem Artikel untersuchen wir, wie Sie JavaScript verwenden, um mit Smart Contracts auf der Ethereum-Blockchain zu interagieren. Durch die Nutzung von Bibliotheken wie web3.js können Entwickler eine Verbindung zur Blockchain herstellen, mit Smart Contracts interagieren und Blockchain-basierte Anwendungen erstellen.
Das obige ist der detaillierte Inhalt vonEntdecken Sie die Schnittstelle zwischen JavaScript und Blockchain-Technologie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!