Przejdź do głównej treści
Change page

Biblioteki API JavaScript

Aby aplikacja internetowa mogła wchodzić w interakcję z blockchainem Ethereum (tj. odczytywać dane z blockchaina i/lub wysyłać transakcje do sieci), musi połączyć się z węzłem Ethereum.

W tym celu każdy klient Ethereum implementuje specyfikację JSON-RPC, dzięki czemu istnieje jednolity zestaw metod, na których mogą polegać aplikacje.

Jeśli chcesz użyć określonego języka programowania do połączenia z węzłem Ethereum, rozpisz własne rozwiązanie, ale w ekosystemie istnieje kilka wygodnych bibliotek, które znacznie to ułatwiają. Dzięki tym bibliotekom deweloperzy mogą pisać intuicyjne, jednowierszowe metody inicjowania żądań JSON-RPC (pod maską), które wchodzą w interakcję z Ethereum.

Należy pamiętać, że od czasu The Merge do uruchomienia węzła wymagane są dwa połączone elementy oprogramowania Ethereum – klient wykonawczy i klient konsensusu. Upewnij się, że Twój węzeł zawiera zarówno klienta wykonawczego, jak i klienta konsensusu. Jeśli Twój węzeł nie znajduje się na Twoim komputerze lokalnym (np. węzeł działa w instancji AWS), zaktualizuj odpowiednio adresy IP w samouczku. Więcej informacji można znaleźć na naszej stronie o uruchamianiu węzła.

Wymagania wstępne

Oprócz znajomości JavaScript pomocne może być zrozumienie stosu Ethereum i klientów Ethereum.

Dlaczego warto użyć biblioteki?

Biblioteki te eliminują znaczną złożoność interakcji bezpośrednio z węzłem Ethereum. Zapewniają one również funkcje pomocnicze (np. przeliczanie ETH na Gwei), dzięki czemu jako programista możesz poświęcić mniej czasu na zmaganie się ze złożonością klientów Ethereum, a więcej na skupieniu się na unikalnej funkcjonalności swojej aplikacji.

Funkcje biblioteki

Łączenie z węzłami Ethereum

Korzystając z dostawców, biblioteki te pozwalają Ci połączyć się z Ethereum i przeczytać jego dane, niezależnie od tego, czy chodzi o JSON-RPC, INFURA, Etherscan, Alchemy czy MetaMask.

Ostrzeżenie: Web3.js został zarchiwizowany 4 marca 2025 roku. Przeczytaj ogłoszenie (opens in a new tab). Rozważ użycie alternatywnych bibliotek, takich jak ethers.js (opens in a new tab) lub viem (opens in a new tab), w nowych projektach.

Przykład Ethers

// BrowserProvider opakowuje standardowego dostawcę Web3, którym jest
// to, co MetaMask wstrzykuje jako window.ethereum na każdej stronie
const provider = new ethers.BrowserProvider(window.ethereum)

// Wtyczka MetaMask pozwala również na podpisywanie transakcji w celu
// wysyłania etheru i płacenia za zmianę stanu w blockchainie.
// Do tego potrzebujemy signera konta...
const signer = provider.getSigner()

Przykład Web3js

Po skonfigurowaniu będziesz mógł wysyłać zapytania do blockchaina o:

  • numery bloku
  • oszacowanie gazu
  • wydarzenia inteligentnych kontraktów
  • id sieci
  • i nie tylko...

Funkcjonalność portfela

Te biblioteki zapewniają Ci funkcjonalność tworzenia portfeli, zarządzania kluczami i podpisywania transakcji.

Oto przykłady od Ethers

Przeczytaj pełną dokumentację (opens in a new tab)

Po skonfigurowaniu będziesz w stanie:

  • utworzyć konto
  • wysłać transakcje
  • podpisać transakcje
  • i nie tylko...

Interakcja z funkcjami inteligentnych kontraktów

Biblioteki klienta JavaScript pozwalają aplikacji na wywołanie funkcji inteligentnych kontraktów poprzez odczyt interfejsu binarnego aplikacji (ABI) skompilowanego kontraktu.

ABI zasadniczo wyjaśnia funkcje kontraktu w formacie JSON i pozwala na używanie go jak zwykłego obiektu JavaScript.

A zatem następujący kontrakt Solidity:

Skutkowałby następującym plikiem JSON:

Oznacza to, że możesz:

  • Wysłać transakcję do inteligentnego kontraktu i wykonać jego metodę
  • Wezwać do oszacowania gazu, którego wykonanie zostanie przeprowadzone w EVM
  • Wdrożyć kontrakt
  • I więcej...

Funkcje pomocnicze

Funkcje użytkowe dają Ci praktyczne skróty, które sprawiają, że budowanie z Ethereum jest nieco łatwiejsze.

Wartości ETH są domyślnie w Wei. 1 ETH = 1.000.000.000.000.000 WEI — oznacza to, że masz do czynienia z wieloma liczbami! web3.utils.toWei konwertuje dla Ciebie ether na Wei.

A w Ethers wygląda to tak:

// Get the balance of an account (by address or ENS name)
balance = await provider.getBalance("ethers.eth")
// { BigNumber: "2337132817842795605" }

// Often you will need to format the output for the user
// which prefer to see values in ether (instead of wei)
ethers.utils.formatEther(balance)
// '2.337132817842795605'

Dostępne biblioteki

Web3.js – interfejs API JavaScript dla Ethereum.

Ethers.js – Kompletna implementacja portfela Ethereum i narzędzia w językach JavaScript i TypeScript.

The Graph – Protokół do indeksowania danych Ethereum i IPFS oraz wysyłania do nich zapytań za pomocą GraphQL.

Alchemy SDK – Nakładka na Ethers.js z rozszerzonymi interfejsami API.

viem – Interfejs TypeScript dla Ethereum.

Drift – Metateka TypeScript z wbudowanym buforowaniem, hakami i makietami testowymi.

Dalsza lektura

Znasz jakieś zasoby społeczności, które Ci pomogły? Edytuj tę stronę i dodaj je!

Ostatnia aktualizacja strony: 25 lutego 2026

Czy ten artykuł był pomocny?