Ana içeriğe geç

JavaScript'te Ethereum blok zincirini kullanmak için web3.js'yi kurun

web3.js
javascript
Acemi
jdourlens
11 Nisan 2020
2 dakikalık okuma

Bu öğreticide, Ethereum blokzinciri ile etkileşime geçmek için web3.js (opens in a new tab) ile nasıl başlayacağımızı göreceğiz. Web3.js, blokzincirden veri okumak veya işlem yapmak ve hatta akıllı sözleşmeleri dağıtmak için hem ön uçlarda hem de arka uçlarda kullanılabilir.

İlk adım, projenize web3.js'yi dahil etmektir. Bir web sayfasında kullanmak için, JSDeliver gibi bir CDN kullanarak kütüphaneyi doğrudan içe aktarabilirsiniz.

1<script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>

Arka ucunuzda kullanmak üzere kütüphaneyi veya derleme kullanan bir ön uç projesini kurmayı tercih ederseniz, onu npm kullanarak kurabilirsiniz:

npm install web3 --save

Ardından Web3.js'yi bir Node.js komut dosyasına veya Browserify ön uç projesine içe aktarmak için aşağıdaki JavaScript satırını kullanabilirsiniz:

1const Web3 = require("web3")

Artık kütüphaneyi projeye dahil ettiğimize göre onu başlatmamız gerekiyor. Projenizin blokzinciri ile iletişim kurabilmesi gerekiyor. Çoğu Ethereum kütüphanesi, RPC çağrıları aracılığıyla bir düğüm ile iletişim kurar. Web3 sağlayıcımızı başlatmak için, kurucuya sağlayıcının URL'sini vererek bir Web3 örneği oluşturacağız. Bilgisayarınızda çalışan bir düğümünüz veya ganache örneğiniz (opens in a new tab) varsa, şuna benzer görünecektir:

1const web3 = new Web3("http://localhost:8545")

Barındırılan bir düğüme doğrudan erişmek isterseniz, hizmet olarak düğümler sayfasında seçenekleri bulabilirsiniz.

1const web3 = new Web3("https://cloudflare-eth.com")

Web3 örneğimizi doğru şekilde yapılandırdığımızı test etmek için getBlockNumber fonksiyonunu kullanarak en son blok numarasını almaya çalışacağız. Bu fonksiyon parametre olarak bir geri aramayı kabul eder ve blok numarasını bir tamsayı olarak döndürür.

1var Web3 = require("web3")
2const web3 = new Web3("https://cloudflare-eth.com")
3
4web3.eth.getBlockNumber(function (error, result) {
5 console.log(result)
6})

Bu programı çalıştırırsanız, en son blok numarasını yazdıracaktır: blokzincirinin en üstünü. Kodunuzda iç içe geri aramaları önlemek için await/async fonksiyon çağrılarını da kullanabilirsiniz:

1async function getBlockNumber() {
2 const latestBlockNumber = await web3.eth.getBlockNumber()
3 console.log(latestBlockNumber)
4 return latestBlockNumber
5}
6
7getBlockNumber()

Web3 örneğinde kullanılabilen tüm fonksiyonları resmi web3.js belgelerinde (opens in a new tab) görebilirsiniz.

Çoğu Web3 kütüphanesi eşzamansızdır çünkü arka planda kütüphane, sonucu geri gönderen düğüme JSON-RPC çağrıları yapar.

Tarayıcıda çalışıyorsanız, bazı cüzdanlar doğrudan bir Web3 örneği enjekte eder ve özellikle işlem yapmak için kullanıcının Ethereum adresiyle etkileşim kurmayı planlıyorsanız, mümkün olduğunca kullanmaya çalışmalısınız.

Bir MetaMask cüzdanının mevcut olup olmadığını tespit etmek ve varsa etkinleştirmeye çalışmak için gereken kod parçacığı aşağıdadır. Bu, daha sonra kullanıcının bakiyesini okumanıza ve Ethereum blokzincirinde yapmalarını istediğiniz işlemleri doğrulamalarına olanak tanır:

1if (window.ethereum != null) {
2 state.web3 = new Web3(window.ethereum)
3 try {
4 // Gerekirse hesap erişimi isteyin
5 await window.ethereum.enable()
6 // Hesaplar artık kullanıma açık
7 } catch (error) {
8 // Kullanıcı hesap erişimini reddetti...
9 }
10}
Tümünü göster

Ethers.js (opens in a new tab) gibi web3.js alternatifleri de mevcuttur ve yaygın olarak kullanılmaktadır. Bir sonraki öğreticide, blokzincirine gelen yeni blokları kolayca nasıl dinleyeceğimizi ve ne içerdiklerini nasıl göreceğimizi (opens in a new tab) göreceğiz.

Sayfanın son güncellenmesi: 21 Ağustos 2025

Bu rehber yararlı oldu mu?