Stos Web3: odniesienie dla programistów

Czy chcesz wziąć udział w tworzeniu projektów opartych o technologię Web3? Ten poradnik przedstawi Ci najczęściej wykorzystywane warstwy oraz środowiska deweloperskie.

Obecnie temat Web3 wzbudza ogromne zainteresowanie. Wielu specjalistów z czołowych firm technologicznych i obiecujących startupów postanowiło spróbować swoich sił w rozwijającym się metaverse Web3.

Jeśli czujesz podobną chęć eksploracji, być może zastanawiasz się, od czego zacząć? Ten artykuł jest skierowany do osób, które pragną od razu rozpocząć tworzenie w obszarze Web3. Skoncentrujemy się na różnych kategoriach, prezentując sprawdzone zasoby, które pomogą Ci postawić pierwsze kroki.

Aby ułatwić nawigację, podzieliłem zasoby na oddzielne sekcje.

Oto kategorie, które omówimy:

  • Warstwy: Najpopularniejsze łańcuchy bloków wykorzystywane w procesie tworzenia.
  • Środowiska deweloperskie: Narzędzia, które usprawniają proces wdrażania na wspomnianych warstwach.
  • Tożsamość: Sposoby budowania rozwiązań związanych z tożsamością portfela i wykorzystywania kryptograficznego logowania.
  • Przechowywanie danych: Metody trwałego przechowywania danych w oparciu o technologie P2P.
  • API: Bezpośredni dostęp do głównych sieci w celu pobierania danych.
  • Front-end: Popularne frameworki do tworzenia interfejsu użytkownika.

Termin „stos” odnosi się do konkretnej kombinacji technologii używanych do osiągnięcia określonego celu. Może to być na przykład stworzenie pełnego stosu aplikacji lub, jak w tym przypadku, stosu Web3. Należy zauważyć, że technologie związane z tworzeniem aplikacji i produktów Web3 dynamicznie się rozwijają.

Wiele aspektów ulega ciągłym zmianom, w miarę jak coraz więcej osób zaczyna komfortowo tworzyć oprogramowanie na blockchainie. Dlatego celem tego poradnika jest zaprezentowanie zasobów, które zostały już sprawdzone w rzeczywistych projektach.

Jeśli jesteś gotowy, możemy zaczynać.

Warstwy

Podstawą każdego projektu Web3 jest warstwa – sieć blockchain, na której będzie działać Twoja aplikacja lub produkt.

#1. Ethereum

Ethereum zyskało popularność dzięki wprowadzeniu natywnej obsługi inteligentnych kontraktów.

Od tego czasu programiści zaczęli postrzegać je jako preferowaną warstwę blockchain do tworzenia nowej generacji aplikacji Web3. Jest to także domyślna warstwa dla wielu projektów NFT, więc jeśli chcesz pracować nad aplikacjami związanymi z NFT, Ethereum oferuje wiele możliwości już na starcie.

#2. Polygon

Polygon to łańcuch boczny Ethereum, który zapewnia bardziej zaawansowane mechanizmy bezpieczeństwa, jednocześnie utrzymując niższe opłaty transakcyjne (gas). Jest to popularny wybór w przypadku projektów, w których liczba transakcji jest bardzo duża, a cena transakcji niska.

Ponieważ Polygon jest łańcuchem bocznym, często określa się go również jako łańcuch bloków warstwy 2. Szybki rozwój Polygon sprawia, że jest to popularna opcja nie tylko dla aplikacji NFT, ale także dApps i systemów płatności.

Inne warte uwagi warstwy Web3:

  • Solana. Blockchain stworzony do budowy aplikacji DeFi na dużą skalę.
  • NEAR Protocol. Łańcuch bloków inteligentnych kontraktów z bogatymi zasobami dla programistów.
  • Polkadot. Protokół cross-blockchain do budowy projektów zarządzania.
  • Tezos. Platforma skoncentrowana na zrównoważonym rozwoju do tworzenia zdecentralizowanych platform kreatywnych.
  • Fantom. Platforma inteligentnych kontraktów open-source do tworzenia dApps.

Środowisko deweloperskie

Środowisko programistyczne pozwala uniknąć konieczności zaczynania od podstaw. Większość z tych środowisk jest obecnie oparta na Ethereum.

#1. Hardhat

Hardhat to środowisko programistyczne dla twórców Ethereum. Pomaga programistom zautomatyzować proces budowy i wdrażania zdecentralizowanych aplikacji, a także inteligentnych kontraktów. Jego popularność wynika z wbudowanej sieci Hardhat Network, która jest dokładną kopią sieci Ethereum, używanej do testowania aplikacji lokalnie.

#2. Truffle

Truffle to framework oparty na języku JavaScript do tworzenia inteligentnych kontraktów. Zakłada, że korzystasz z EVM (Ethereum Virtual Machine), oferując narzędzia przyspieszające proces rozwoju. Do tych narzędzi zaliczają się automatyczne testowanie, kompilator kontraktów i osobne narzędzia umożliwiające dostęp do kontaktów bezpośrednio z konsoli.

Inne godne uwagi środowiska deweloperskie Web3:

  • Foundry. Zestaw narzędzi oparty na Rust do tworzenia aplikacji na Ethereum.
  • Brownie. Platforma oparta na Pythonie do budowania i testowania inteligentnych kontraktów.
  • Anchor. Framework do pracy z Solaną napisany w języku Rust.
  • Embark. Kompleksowa platforma do budowania aplikacji na Ethereum.
  • Waffle. Niestandardowy framework do testowania inteligentnych kontraktów.

Tożsamość

W przeciwieństwie do tradycyjnego systemu uwierzytelniania opartego na loginie i haśle, w Web3 programiści korzystają z portfeli i kluczy publicznych.

#1. WalletConnect

WalletConnect to protokół open source, który służy do łączenia z dApps za pomocą portfela mobilnego. Podstawowa zasada działania WalletConnect opiera się na skanowaniu kodu QR. Użytkownicy mogą go użyć do zweryfikowania swojej tożsamości i zatwierdzenia nowego połączenia z aplikacją Web3.

Portfele takie jak Pillar czy MetaMask integrują się bezpośrednio z WalletConnect, co oznacza, że masz dostęp do licznych zasobów dla programistów. Ponadto protokół działa ze wszystkimi głównymi łańcuchami bloków, a lista obsługiwanych sieci jest regularnie aktualizowana.

#2. Spruce

Spruce to startup wspierany przez Y Combinator, którego celem jest przeniesienie idei zdecentralizowanej tożsamości poza sam blockchain. Ten zestaw narzędzi ma pomóc użytkownikom w weryfikacji tożsamości cyfrowej w różnych miejscach: w mediach społecznościowych, na osobistych stronach internetowych i w sieciach blockchain.

Przechowywanie danych

W jaki sposób przechowuje się media – filmy, zdjęcia itp. – w Web3? Odbywa się to głównie za pomocą protokołów przechowywania plików P2P.

#1. IPFS

IPFS to wiodący protokół przechowywania P2P (peer-to-peer). Po przesłaniu pliku do IPFS jego rozmiar jest modyfikowany, a plik jest zabezpieczany przy użyciu niestandardowego haszu i otrzymuje unikatowy identyfikator w postaci odcisku palca.

Następnie inne węzły (systemy lub osoby) w tej sieci mogą uzyskać dostęp do pliku, zweryfikować go i zapisać w swojej pamięci podręcznej. Po zapisaniu w pamięci podręcznej plik jest dostępny dla każdego, kto ma odpowiednią metodę dostępu.

Celem IPFS jest nie tylko zapewnienie zdecentralizowanego systemu przechowywania, ale także zapewnienie trwałości treści przez wiele dekad, a nie tylko lat. Przykładowo, strony internetowe po pewnym czasie znikają, a cała ich zawartość, w tym multimedia, zostaje utracona. IPFS oferuje realne rozwiązanie tego problemu.

#2. Skynet

Skynet umożliwia łatwe udostępnianie plików za pomocą (zdecentralizowanej) sieci chmurowej Sia. Możesz od razu zacząć go używać na stronie głównej. Po prostu prześlij plik, a otrzymasz link. Działa przez 90 dni, chyba że zarejestrujesz się, aby uzyskać klucz API. Z punktu widzenia rozwoju – Skynet ułatwia replikację tego samego przypadku użycia, ale we własnej zdecentralizowanej aplikacji.

#3. Filebase

Filebase to startup SaaS, który umożliwia bezpośrednie połączenie z API Amazon S3. Możesz użyć tego API do pobierania danych z zasobników S3, a następnie zlecić ich redystrybucję przy użyciu różnych opcji zdecentralizowanej pamięci masowej.

Filebase obsługuje obecnie opcje przechowywania oparte na Web3, takie jak Skynet, IPFS, Sia i Storj. Dla programisty oznacza to uproszczenie procesu dostarczania zdecentralizowanych usług przechowywania plików swoim klientom.

Jako nowy użytkownik otrzymujesz 5 GB darmowej przestrzeni, a ceny są rozsądne nawet w przypadku płatnych planów.

Inne warte uwagi rozwiązania przechowywania danych Web3:

  • Arweave. Arweave to protokół, który umożliwia trwałe i zrównoważone przechowywanie danych za jednorazową opłatą.
  • Filecoin. Przechowuj dowolny rodzaj multimediów w zdecentralizowanym środowisku chmurowym.
  • Swarm. Samowystarczalny węzeł pamięci masowej P2P, który jest wspierany przez inteligentne kontrakty Ethereum.
  • Aleph. Twórz aplikacje dApps i pozwól Aleph zarządzać chmurowym przechowywaniem danych za Ciebie.

API

W przeciwieństwie do tradycyjnych rozwiązań opartych na bazie danych, programiści używają API do interakcji z blockchainem i pobierania lub przechowywania w nim danych. API jest czasem również nazywane klientami.

#1. The Graph

The Graph to kompleksowe rozwiązanie API do łączenia się z różnymi łańcuchami bloków. Celem tego API jest pomoc programistom w dostępie do danych, które w innym przypadku wymagałyby zbudowania indywidualnych algorytmów. Dane w blockchainie obejmują zarówno proste adresy, jak i skomplikowane transakcje oparte na inteligentnych kontraktach.

Przykładem może być śledzenie historii NFT.

Śledzenie historii pojedynczych zakupów może być dość proste, ale staje się coraz trudniejsze, gdy próbujemy zrozumieć relacje między różnymi transakcjami. W takim przypadku Graph API udostępnia gotowe wywołania i katalogi indeksów, które pomagają szybko wizualizować konkretny przypadek użycia.

#2. Web3.js

Web3.js to najpopularniejsze API JavaScript do bezpośredniej interakcji z Ethereum. Służy przede wszystkim do tworzenia aplikacji klienckich, które współdziałają z łańcuchem Ethereum. Zbiór bibliotek zawartych w Web3.js zapewnia funkcje takie jak transfery, zarządzanie inteligentnymi kontraktami i inne.

#3. Alchemy

Alchemy szybko stało się jedną z najbardziej cenionych platform Web3. Ich podejście polega na edukowaniu programistów, jak szybko tworzyć i skalować aplikacje Web3. Robią to, oferując zaawansowane API Blockchain i zestaw narzędzi deweloperskich.

#4. useDApp

useDApp to platforma oparta na React do interakcji z blockchainem Ethereum. Składa się z React.js, biblioteki Ethers.js, Waffle i komponentów Web-3 React. Jest zwykle używana do tworzenia łatwo dostępnych front-endów stron internetowych, które mogą wyświetlać różne dane w zależności od potrzeb projektu.

Front-end

Jakich frameworków programiści używają do tworzenia front-endów dla projektów Web3?

#1. React

Popularność React jest niezaprzeczalna. Nic dziwnego, że jest to również najpopularniejsza biblioteka front-end dla stron Web3. Architektura oparta na komponentach oznacza, że programiści mogą pracować nad różnymi częściami front-endu bez zakłócania całości projektu.

Możesz zapoznać się z biblioteką Web3-React na GitHub, aby uzyskać dobry punkt startowy.

#2. Next.js

Next.js jest następcą Reacta, chociaż nie jest z nim bezpośrednio powiązany. Projekty Web3 na dużą skalę wymagają zaawansowanego zarządzania zasobami, a Next.js oferuje natywne narzędzia zarówno dla projektów statycznych, jak i dynamicznych. Korzystają z niego firmy takie jak Binance, Bitscreener, Hashnode i inne.

Aby szybko rozpocząć, warto sprawdzić Next Web3 Boilerplate.

Rozpoczęcie pracy z programowaniem Web3

To całkiem sporo informacji do przyswojenia, zwłaszcza jeśli dopiero zaczynasz. Należy pamiętać, że w tej dziedzinie zmiany zachodzą dość szybko. Wcześniej projekty skupiały się na NFT, obecnie większy nacisk kładzie się na zdecentralizowane sieci i poszczególne platformy blockchain.

Jeśli chodzi o rozpoczęcie pracy z projektami Web3, ten poradnik powinien być wystarczający. Polecam również śledzenie najnowszych trendów na Twitterze i Discordzie, ponieważ są to aktywne społeczności, które pomagają być na bieżąco z najnowszymi wydarzeniami w świecie Web3.