Rumah >hujung hadapan web >tutorial js >Terokai persimpangan JavaScript dan teknologi blockchain
Dalam beberapa tahun kebelakangan ini, teknologi blockchain telah mendapat perhatian yang meluas dan telah merevolusikan pelbagai industri. Pada asasnya, blockchain ialah lejar terpencar, tidak berubah dan telus yang merekodkan urus niaga merentas berbilang komputer. JavaScript adalah salah satu bahasa pengaturcaraan yang popular apabila membangunkan aplikasi blockchain. Dalam artikel ini, kami akan menyelam lebih dalam ke persimpangan JavaScript dan teknologi blockchain, meneroka cara menggunakan JavaScript untuk berinteraksi dan membangunkan aplikasi pada blockchain.
Terkenal dengan kepelbagaian dan penggunaan yang meluas, JavaScript telah menjadi bahasa pilihan untuk membina aplikasi web. Keupayaannya untuk dijalankan pada kedua-dua bahagian pelayan dan klien menjadikannya ideal untuk mencipta antara muka pengguna yang dinamik dan interaktif. Selain itu, sokongan JavaScript untuk pengaturcaraan tak segerak dan ekosistem perpustakaannya yang luas menjadikannya sesuai untuk pembangunan blockchain.
Teknologi Blockchain seperti Ethereum menyediakan platform untuk mencipta aplikasi terdesentralisasi (dApps). DApps ini selalunya memerlukan kontrak pintar, yang merupakan kontrak laksana sendiri dengan peraturan dan syarat yang telah ditetapkan. JavaScript boleh digunakan untuk berinteraksi dengan kontrak pintar, membolehkan pembangun membina aplikasi yang kompleks dan terdesentralisasi dengan mudah.
Mari kita lihat dengan lebih dekat cara JavaScript berinteraksi dengan kontrak pintar pada blockchain Ethereum. Dalam demonstrasi ini, kami akan menggunakan perpustakaan web3.js, perpustakaan JavaScript yang popular untuk berinteraksi dengan Ethereum.
Mula-mula, anda perlu memasang Node.js dan npm (pengurus pakej nod) pada komputer anda. Setelah persediaan selesai, sila ikuti langkah di bawah−
Buka terminal dan navigasi ke direktori projek. Jalankan arahan berikut untuk memasang web3.js −
npm install web3
Dalam fail JavaScript, import perpustakaan web3 dan buat contoh kelas Web3. Anda juga perlu menentukan URL pembekal, yang menentukan rangkaian Ethereum yang anda ingin sambungkan. Dalam contoh ini kami akan menggunakan perkhidmatan Infura untuk menyambung ke mainnet Ethereum -
const Web3 = require('web3'); const providerURL = 'https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY'; const web3 = new Web3(providerURL);
NOTA- Gantikan YOUR_INFURA_API_KEY dengan kunci API Infura sebenar anda. Jika anda belum memilikinya, daftar secara percuma di laman web Infura.
Untuk berinteraksi dengan kontrak pintar, anda memerlukan alamat kontrak dan ABI (Antara Muka Binari Aplikasi). ABI mentakrifkan struktur dan kefungsian kontrak pintar. Dalam contoh ini kita akan menggunakan kontrak pintar mudah untuk menyimpan dan mendapatkan semula nilai −
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" } ];
Ganti 0xContractAddress dengan alamat sebenar kontrak pintar anda yang digunakan. Anda boleh mendapatkan ABI kontrak melalui kod sumber kontrak pintar atau alatan seperti Etherscan.
Sekarang, buat contoh kontrak menggunakan alamat kontrak dan ABI −
const contract = new web3.eth.Contract(contractABI, contractAddress);
Anda boleh menggunakan contoh kontrak untuk memanggil fungsi pada kontrak pintar. Mari dapatkan semula nilai semasa yang disimpan dalam kontrak −
contract.methods.getValue().call((error, result) => { if (error) { console.error(error); } else { console.log('Contract value:', result); } });
Fungsi getValue() ialah fungsi pandangan, yang bermaksud ia tidak mengubah suai keadaan rantaian blok dan boleh dipanggil tanpa dikenakan sebarang bayaran gas. Ia mendapatkan semula nilai semasa yang disimpan dalam kontrak dan mengembalikannya dalam pembolehubah hasil.
Untuk mengubah suai nilai kontrak, anda boleh memanggil fungsi tulis. Jom kemas kini nilai dalam kontrak−
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); });
Ganti 0xYourAddress dengan alamat Ethereum anda. Fungsi setValue() ialah fungsi tidak berbayar, yang bermaksud ia tidak memerlukan sebarang eter untuk dihantar bersama transaksi. Kami menghantar transaksi menggunakan fungsi send() dan pengendali acara pilihan (on('receipt') dan on('error')) membenarkan kami menerima resit transaksi atau mengendalikan sebarang ralat yang berlaku semasa transaksi.
Apabila anda menjalankan kod JavaScript, anda akan melihat output dalam konsol. Sebagai contoh, jika kita memanggil fungsi getValue(), outputnya ialah -
Contract value: 10
Jika kita mengemas kini nilai menggunakan fungsi setValue(), outputnya ialah − p>
Transaction receipt: { blockHash: '0x123456...', blockNumber: 1234, ... }
Kepelbagaian JavaScript dan kuasa teknologi blockchain telah bersatu untuk membolehkan pembangun membina aplikasi terdesentralisasi menggunakan alat biasa. Dalam artikel ini, kami meneroka cara menggunakan JavaScript untuk berinteraksi dengan kontrak pintar pada blockchain Ethereum. Dengan memanfaatkan perpustakaan seperti web3.js, pembangun boleh menyambung ke rantaian blok, berinteraksi dengan kontrak pintar dan membina aplikasi berasaskan rantaian blok.
Atas ialah kandungan terperinci Terokai persimpangan JavaScript dan teknologi blockchain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!