Skip to content

BLACK WEEK: największe zniżki na start w IT (do 30.11) + Kurs AI GRATIS

Zobacz pakiety →
Devstock Academy
  • O nas
  • Moduły Akademii
    • Moduł 1 – Podstawy programowania
    • Moduł 2 – React.js
    • Moduł 3 – Next.js
    • Moduły 4-6
  • Kursy samodzielne
  • Blog
  • Kontakt
  • O nas
  • Moduły Akademii
    • Moduł 1 – Podstawy programowania
    • Moduł 2 – React.js
    • Moduł 3 – Next.js
    • Moduły 4-6
  • Kursy samodzielne
  • Blog
  • Kontakt
Devstock Academy Banner
Programowanie i Technologie Webowe

Web3.js – wprowadzenie do programowania blockchain w JavaScript

  • 14 paź, 2024
  • Komentarze 0
web3 js

Technologia blockchain zrewolucjonizowała sposób, w jaki myślimy o danych i transakcjach cyfrowych. Jednym z najpopularniejszych rozwiązań w tej dziedzinie jest Web3.js, biblioteka JavaScript umożliwiająca interakcję z blockchainem Ethereum. Dzięki niej programiści mogą tworzyć smart kontrakty, budować zdecentralizowane aplikacje (dApps) i w pełni wykorzystać potencjał blockchain Ethereum. W tym artykule wprowadzimy Cię w świat Web3.js, pokazując, jak rozpocząć przygodę z programowaniem blockchain w JavaScript.

JavaScript – co to jest i jak zacząć naukę?

Co to jest Web3.js?

Web3.js to biblioteka JavaScript stworzona, aby ułatwić interakcję z blockchainem Ethereum. Pozwala ona na komunikację z siecią Ethereum poprzez Ethereum JSON-RPC API, umożliwiając wykonywanie takich operacji jak:

  • Tworzenie i wdrażanie smart kontraktów

  • Wysyłanie transakcji

  • Odczytywanie danych z blockchaina

  • Zarządzanie kontami Ethereum

Dzięki niej programiści mogą budować dApps bez konieczności zagłębiania się w złożoność protokołów sieci blockchain.

Kurs programowania z gwarancją pracy - banner

Podstawowe pojęcia

Blockchain Ethereum

Blockchain Ethereum to zdecentralizowana platforma obliczeniowa, która umożliwia tworzenie i wykonywanie smart kontraktów. Jest to jedna z najpopularniejszych sieci blockchain, oferująca szerokie możliwości programistyczne.

Smart kontrakty

Smart kontrakty to programy działające na blockchainie Ethereum, które automatycznie wykonują się, gdy spełnione są określone warunki. Pozwalają na tworzenie złożonych aplikacji bez potrzeby zaufania trzeciej stronie.

ABI (Application Binary Interface)

ABI to interfejs opisujący, jak komunikować się z kontraktem inteligentnym. Zawiera informacje o funkcjach, ich argumentach i zwracanych wartościach, co umożliwia interakcję z kontraktem za pomocą Web3.js.

Instalacja i konfiguracja Web3.js

Instalacja za pomocą npm

Aby rozpocząć korzystanie z biblioteki  Web3, musisz zainstalować pakiet za pomocą npm:

npm install web3

Importowanie biblioteki

W swoim projekcie możesz zaimportować ją w następujący sposób:

const Web3 = require('web3');

Połączenie z węzłem Ethereum

Aby interakcja z blockchainem była możliwa, musisz połączyć się z węzłem Ethereum. Możesz to zrobić za pomocą lokalnego węzła lub skorzystać z dostawców takich jak Infura czy Alchemy.

Przykład połączenia z Infura:

const web3 = new Web3('https://mainnet.infura.io/v3/TWÓJ_INFURA_PROJECT_ID');

Architektura połączenia aplikacji z węzłem ethereum za pomocą web3 js

Zarządzanie kontami Ethereum

Tworzenie nowego konta

const account = web3.eth.accounts.create();
console.log('Adres konta:', account.address);
console.log('Klucz prywatny:', account.privateKey);

Importowanie konta za pomocą klucza prywatnego

const account = web3.eth.accounts.privateKeyToAccount('TWÓJ_KLUCZ_PRYWATNY');

Interakcja z kontraktami inteligentnymi

Kompilacja kontraktu

Przed interakcją z kontraktem musisz go skompilować. Możesz użyć narzędzi takich jak Hardhat lub Truffle.

ABI i adres kontraktu

Aby utworzyć instancję kontraktu w Web3.js, potrzebujesz jego ABI i adresu wdrożenia.

Tworzenie instancji kontraktu

const abi = [ /* ... ABI kontraktu ... */ ];
const address = 'ADRES_KONTRAKTU';
const contract = new web3.eth.Contract(abi, address);

Web3Contract umożliwia wywoływanie funkcji kontraktu i nasłuchiwanie zdarzeń.

Wysyłanie transakcji

Wywoływanie funkcji zapisujących stan

Aby wywołać funkcję, która zmienia stan blockchaina, musisz wysłać transakcję.

const tx = contract.methods.nazwaFunkcji(arg1, arg2);
const options = {
  to: tx._parent._address,
  data: tx.encodeABI(),
  gas: 2000000
};

const signed = await web3.eth.accounts.signTransaction(options, 'TWÓJ_KLUCZ_PRYWATNY');
const receipt = await web3.eth.sendSignedTransaction(signed.rawTransaction);
console.log('Transakcja została przetworzona:', receipt);

Wywoływanie funkcji odczytujących stan

Funkcje, które nie zmieniają stanu, można wywoływać bezpośrednio.

const wynik = await contract.methods.nazwaFunkcji(arg1).call();
console.log('Wynik:', wynik);

Budowanie zdecentralizowanych aplikacji (dApps)

dApps to aplikacje działające na blockchainie, które wykorzystują kontrakty inteligentne do zarządzania logiką biznesową.

Integracja z MetaMask

MetaMask to popularny portfel Ethereum, który umożliwia użytkownikom interakcję z dApps bezpośrednio z przeglądarki.

Połączenie Web3.js z MetaMask:

if (window.ethereum) {
  const web3 = new Web3(window.ethereum);
  try {
    await window.ethereum.request({ method: 'eth_requestAccounts' });
    // Użytkownik zaakceptował połączenie
  } catch (error) {
    // Użytkownik odrzucił połączenie
  }
} else {
  // Brak zainstalowanego MetaMask
}

Użycie WalletConnect

WalletConnect to protokół umożliwiający połączenie dApps z mobilnymi portfelami Ethereum.

Praktyczny przykład: Tworzenie prostego kontraktu

1. Definicja kontraktu w Solidity

pragma solidity ^0.8.0;

contract SimpleStorage {
    uint256 public data;

    function set(uint256 x) public {
        data = x;
    }
}

2. Kompilacja i wdrożenie kontraktu

Użyj narzędzia Hardhat do kompilacji i wdrożenia kontraktu na sieci testowej Ethereum.

3. Interakcja z kontraktem za pomocą Web3.js

const abi = [ /* ABI kontraktu */ ];
const address = 'ADRES_WDROŻONEGO_KONTRAKTU';
const contract = new web3.eth.Contract(abi, address);

// Ustawienie wartości
await contract.methods.set(42).send({ from: 'ADRES_TWOJEGO_KONTA' });

// Odczytanie wartości
const value = await contract.methods.data().call();
console.log('Przechowywana wartość:', value);

Zaawansowane funkcje Web3.js

Korzystanie z Web3Eth

Web3Eth to moduł biblioteki Web3 zawierający funkcje związane z protokołem Ethereum.

Przykład: Odczytanie aktualnego numeru bloku

const blockNumber = await web3.eth.getBlockNumber();
console.log('Aktualny numer bloku:', blockNumber);

Użycie Web3Utils

Web3Utils dostarcza narzędzia pomocne w konwersji jednostek, formatowaniu danych itp.

Przykład: Konwersja Ether na Wei

const amountInWei = web3.utils.toWei('1', 'ether');
console.log('1 Ether w Wei:', amountInWei);

Web3Accounts

Moduł Web3Accounts pozwala na zarządzanie kontami i podpisywanie transakcji.

Kurs programowania z gwarancją pracy - banner

Przyszłość Web3.js: Wersja v4

Web3.js v4 to nadchodząca wersja biblioteki, która wprowadzi:

  • Modularną budowę: Umożliwiającą efektywniejsze wykorzystanie i tree shaking.

  • Obsługę Native BigInt: Dla lepszej precyzji obliczeń.

  • Dynamiczne typy kontraktów: Ułatwiające interakcję z kontraktami.

Bezpieczeństwo i dobre praktyki

Weryfikacja kontraktów

Przed interakcją z kontraktem warto sprawdzić jego kod źródłowy i upewnić się, że jest bezpieczny.

Zarządzanie kluczami prywatnymi

Nigdy nie udostępniaj swojego klucza prywatnego. Używaj bezpiecznych portfeli i przechowuj klucze w bezpiecznym miejscu.

Użycie sieci testowych

Do testowania aplikacji korzystaj z sieci testowych Ethereum, takich jak Ropsten czy Rinkeby, aby uniknąć niepotrzebnych kosztów i ryzyka.

Zasoby i społeczność

Web3.js jest oprogramowaniem open-source, aktywnie rozwijanym i wspieranym przez społeczność.

  • Dokumentacja: Oficjalna dokumentacja Web3.js

  • Społeczność: Możesz uzyskać pomoc na forach, takich jak Ethereum Stack Exchange

  • Przykłady: Web3.js Examples

Podsumowanie

Web3.js otwiera drzwi do świata programowania na blockchain Ethereum, umożliwiając tworzenie innowacyjnych aplikacji zdecentralizowanych. Dzięki tej bibliotece możesz w pełni wykorzystać możliwości, jakie daje technologia blockchain, budując bezpieczne i transparentne rozwiązania. Zachęcamy do dalszego eksplorowania tematu i tworzenia własnych dApps przy użyciu Web3.js.

Diagram przedstawiający ekosystem ethereum - web3 js

Zapraszamy do dalszej nauki i praktycznego zastosowania wiedzy w projektach. Interakcja z blockchainem za pomocą Web3.js to przyszłość programowania, która już dziś jest na wyciągnięcie ręki.

Udostępnij na:
WebSockets w JavaScript i Node.js – komunikacja w czasie rzeczywistym
Komentarze w JavaScript – jak i kiedy ich używać

Zostaw komentarz :) Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Banner darmowy kurs ai
Dołącz do społeczności DEVSTOCK - banner reklamowy

Najnowsze wpisy

Thumb
n8n 2.0: największa zmiana w historii platformy.
27 lis, 2025
Thumb
Replatforming bez bólu: jak przejść z gotowego
24 lis, 2025
Thumb
Git i PrestaShop: Efektywne zarządzanie wersjami i
20 lis, 2025

Kursy Samodzielne

  • Kurs HTML - obrazek wyróżniający
    Kurs HTML – Zbuduj strukturę swojej pierwszej strony internetowej
    99,00 zł
  • Kurs CSS Podstawowy - obrazek wyróżniający
    Kurs CSS Podstawowy – Stwórz styl i układ swojej pierwszej strony internetowej
    99,00 zł
  • Kurs CSS Zaawansowany - obrazek wyróżniający
    Kurs CSS Zaawansowany – Opanuj nowoczesne techniki stylowania i układu
    99,00 zł
  • Kurs JavaScript zaawansowany - obrazek wyróżniający
    Kurs JavaScript zaawansowany
    149,00 zł
  • Kurs JS od podstaw - obrazek wyróżniający
    Kurs JavaScript od podstaw
    149,00 zł
klarna raty 0% - banner
Droga do kariery z Akademią Devstock
Banner reklamowy whitepress

Tagi

5G AI Architektura Cyberbezpieczeństwo Feedback Frontend Git IoT JavaScript Motywacja Nauka efektywna Optymalizacja i wydajność Programowanie React.JS Rozwój osobisty WebDevelopment
Logo FitBody Center Warszawa
Dołącz do społeczności DEVSTOCK - banner reklamowy

Produkty

  • Kurs HTML - obrazek wyróżniający
    Kurs HTML – Zbuduj strukturę swojej pierwszej strony internetowej
    99,00 zł
  • Kurs CSS Podstawowy - obrazek wyróżniający
    Kurs CSS Podstawowy – Stwórz styl i układ swojej pierwszej strony internetowej
    99,00 zł
  • Kurs CSS Zaawansowany - obrazek wyróżniający
    Kurs CSS Zaawansowany – Opanuj nowoczesne techniki stylowania i układu
    99,00 zł
  • Kurs JavaScript zaawansowany - obrazek wyróżniający
    Kurs JavaScript zaawansowany
    149,00 zł
  • Kurs JS od podstaw - obrazek wyróżniający
    Kurs JavaScript od podstaw
    149,00 zł

Odkryj zabiegi Endermologii LPG Infinity w FitBody Center Warszawa

Maszyna zabiegowa - endermologia lpg infinity
Group-5638-1

Devstock – Akademia programowania z gwarancją pracy

🏠 ul. Bronowska 5a,
03-995 Warszawa
📞 +48 517 313 589
✉️ contact@devstockacademy.pl

Linki

  • Poznaj firmę Devstock
  • Wejdź do społeczności Devstock
  • Polityka prywatności
  • Regulamin

FitBody Center

Strona

  • Strona główna
  • Kontakt

Newsletter

Bądź na bieżąco, otrzymuj darmową wiedzę i poznaj nas lepiej!


Icon-facebook Icon-linkedin2 Icon-instagram Icon-youtube Tiktok
Copyright 2025 Devstock. Wszelkie prawa zastrzeżone
Devstock AcademyDevstock Academy
Sign inSign up

Sign in

Don’t have an account? Sign up
Lost your password?

Sign up

Already have an account? Sign in