Jadual Kandungan
JavaScript dan Blockchain: gabungan hebat
Berinteraksi dengan kontrak pintar menggunakan JavaScript
Langkah 1: Pasang web3.js
Langkah 2: Sambung ke Rangkaian Ethereum
Langkah 3: Berinteraksi dengan kontrak pintar
Langkah 4: Buat contoh kontrak
Langkah 5: Berinteraksi dengan fungsi kontrak
Contoh" >Contoh
Arahan
Output
Kesimpulan
Rumah hujung hadapan web tutorial js Terokai persimpangan JavaScript dan teknologi blockchain

Terokai persimpangan JavaScript dan teknologi blockchain

Sep 10, 2023 am 09:57 AM

探索 JavaScript 和区块链技术的交叉点

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.

JavaScript dan Blockchain: gabungan hebat

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.

Berinteraksi dengan kontrak pintar menggunakan JavaScript

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

Langkah 1: Pasang web3.js

Buka terminal dan navigasi ke direktori projek. Jalankan arahan berikut untuk memasang web3.js

npm install web3
Salin selepas log masuk

Langkah 2: Sambung ke Rangkaian Ethereum

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);
Salin selepas log masuk

NOTA- Gantikan YOUR_INFURA_API_KEY dengan kunci API Infura sebenar anda. Jika anda belum memilikinya, daftar secara percuma di laman web Infura.

Langkah 3: Berinteraksi dengan kontrak pintar

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"
   }
];
Salin selepas log masuk

Ganti 0xContractAddress dengan alamat sebenar kontrak pintar anda yang digunakan. Anda boleh mendapatkan ABI kontrak melalui kod sumber kontrak pintar atau alatan seperti Etherscan.

Langkah 4: Buat contoh kontrak

Sekarang, buat contoh kontrak menggunakan alamat kontrak dan ABI

const contract = new web3.eth.Contract(contractABI, contractAddress);
Salin selepas log masuk

Langkah 5: Berinteraksi dengan fungsi kontrak

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);
   }
});
Salin selepas log masuk

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

Contoh

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);
   });
Salin selepas log masuk

Arahan

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. < /p>

Output

Apabila anda menjalankan kod JavaScript, anda akan melihat output dalam konsol. Sebagai contoh, jika kita memanggil fungsi getValue(), outputnya ialah -

Contract value: 10
Salin selepas log masuk

Jika kita mengemas kini nilai menggunakan fungsi setValue(), outputnya ialah

Transaction receipt: {
   blockHash: '0x123456...',
   blockNumber: 1234,
   ...
}
Salin selepas log masuk

Kesimpulan

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apa yang perlu saya lakukan jika saya menghadapi percetakan kod yang dihiasi untuk resit kertas terma depan? Apa yang perlu saya lakukan jika saya menghadapi percetakan kod yang dihiasi untuk resit kertas terma depan? Apr 04, 2025 pm 02:42 PM

Soalan dan penyelesaian yang sering ditanya untuk percetakan tiket kertas terma depan dalam pembangunan front-end, percetakan tiket adalah keperluan umum. Walau bagaimanapun, banyak pemaju sedang melaksanakan ...

Demystifying JavaScript: Apa yang berlaku dan mengapa penting Demystifying JavaScript: Apa yang berlaku dan mengapa penting Apr 09, 2025 am 12:07 AM

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Siapa yang dibayar lebih banyak Python atau JavaScript? Siapa yang dibayar lebih banyak Python atau JavaScript? Apr 04, 2025 am 12:09 AM

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Bagaimana untuk menggabungkan elemen array dengan ID yang sama ke dalam satu objek menggunakan JavaScript? Bagaimana untuk menggabungkan elemen array dengan ID yang sama ke dalam satu objek menggunakan JavaScript? Apr 04, 2025 pm 05:09 PM

Bagaimana cara menggabungkan elemen array dengan ID yang sama ke dalam satu objek dalam JavaScript? Semasa memproses data, kita sering menghadapi keperluan untuk mempunyai id yang sama ...

Adakah JavaScript sukar belajar? Adakah JavaScript sukar belajar? Apr 03, 2025 am 12:20 AM

Pembelajaran JavaScript tidak sukar, tetapi ia mencabar. 1) Memahami konsep asas seperti pembolehubah, jenis data, fungsi, dan sebagainya. 2) Pengaturcaraan asynchronous tuan dan melaksanakannya melalui gelung acara. 3) Gunakan operasi DOM dan berjanji untuk mengendalikan permintaan tak segerak. 4) Elakkan kesilapan biasa dan gunakan teknik debugging. 5) Mengoptimumkan prestasi dan mengikuti amalan terbaik.

Bagaimana untuk mencapai kesan menatal paralaks dan kesan animasi elemen, seperti laman web rasmi Shiseido?
atau:
Bagaimanakah kita dapat mencapai kesan animasi yang disertai dengan menatal halaman seperti laman web rasmi Shiseido? Bagaimana untuk mencapai kesan menatal paralaks dan kesan animasi elemen, seperti laman web rasmi Shiseido? atau: Bagaimanakah kita dapat mencapai kesan animasi yang disertai dengan menatal halaman seperti laman web rasmi Shiseido? Apr 04, 2025 pm 05:36 PM

Perbincangan mengenai realisasi kesan animasi tatal dan elemen Parallax dalam artikel ini akan meneroka bagaimana untuk mencapai yang serupa dengan laman web rasmi Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ... ...

Perbezaan dalam Konsol.Log Output Result: Mengapa kedua -dua panggilan berbeza? Perbezaan dalam Konsol.Log Output Result: Mengapa kedua -dua panggilan berbeza? Apr 04, 2025 pm 05:12 PM

Perbincangan mendalam mengenai punca-punca utama perbezaan dalam output konsol.log. Artikel ini akan menganalisis perbezaan hasil output fungsi Console.log dalam sekeping kod dan menerangkan sebab -sebab di belakangnya. � ...

Bagaimana untuk melaksanakan fungsi seretan panel dan drop pelarasan yang serupa dengan vscode dalam pembangunan front-end? Bagaimana untuk melaksanakan fungsi seretan panel dan drop pelarasan yang serupa dengan vscode dalam pembangunan front-end? Apr 04, 2025 pm 02:06 PM

Terokai pelaksanaan fungsi seretan panel dan drop panel seperti VSCode di bahagian depan. Dalam pembangunan front-end, bagaimana untuk melaksanakan vscode seperti ...

See all articles