Kupuj kryptowaluty BLIKiem ⚡
Błyskawiczne wpłaty bez opłat i prowizji na giełdzie OKX.
Siema ekipa. Zbieram się wreszcie za trochę poważniejsze kodzenie w Solidity i mam małą zagwozdkę. Jak wy teraz najchętniej ogarniacie temat pt. jak testować smart kontrakty na testnetach? Bo powiem wam szczerze, że po tych wszystkich updatach Ethereum i ubiciu starych sieci trochę się pogubiłem co jest obecnie głównym standardem w społeczności.
Jeszcze jakiś czas temu wszystko klepałem na Goerli, ale wiadomo jak było - sieć non stop zapchana, a wyciągnąć darmowe testowe ETH z faucetów to była jakaś totalna masakra i klikanie w kółko w te same obrazki z przejściami dla pieszych. Teraz widzę, że większość devów ciśnie na Sepolię albo Holesky. Macie jakieś swoje prywatne, sprawdzone krany z tokenami? Zależy mi na tym, żeby testowanie smart kontraktów nie polegało na całodniowym żebraniu o gaz na zwykły deploy. Wdrażanie dAppsów na testnecie niby nie jest jakoś wybitnie trudne, spina się to z Metamaskiem na dwa kliknięcia, ale szukam opcji na mega płynny workflow bez zacinania się na pierdołach.
Druga sprawa to sam stack technologiczny pod to wszystko. Używacie w ogóle jeszcze Hardhata czy wszyscy już dawno uciekli na Foundry ze względu na szybkość pisania testów? Ja na ten moment bawię się głównie z Remix IDE do takich szybkich, łopatologicznych strzałów w przeglądarce. Ale jak chcę zrobić deploy smart kontraktu z prawdziwego zdarzenia, sprawdzić faktyczne zużycie gazu i przetestować jakieś dzikie interakcje, to Remix jednak często wymięka i się wiesza. Zastanawiam się jak to u was wygląda na co dzień. Wiadomo, najpierw leci odpalenie lokalnie na jakimś anvilu, ale w końcu trzeba te kontarkty wypchnąć na zewnątrz, żeby zobaczyć jak gadają z resztą świata w środowisku, które symuluje prawdziwy mainnet.
Dajcie znać jak wygląda wasz obecny proces krok po kroku. Z jakich dokładnie sieci testowych dla blockchaina teraz korzystacie najczęściej przy nowych projektach? Interesuje mnie też weryfikacja zdeployowanego kodu na testowym Etherscanie - idzie wam to gładko przez skrypty z terminala, czy sypie błędami przy bardziej rozbudowanych plikach i dziedziczeniu z bibliotek OpenZeppelin? Podzielcie się swoimi patentami, bo z losowych tutoriali na YT to często wieje nudą i starym softem, a w praktyce i tak wyskakują dziwne błędy przy próbie wrzucenia kodu na łańcuch testowy. Z góry wielkie dzięki za każdy tip!
Kupuj kryptowaluty BLIKiem ⚡
Błyskawiczne wpłaty bez opłat i prowizji na giełdzie OKX.
Siema! Dobrze trafiłeś, bo akurat ostatnio mocno rzeźbiłem w temacie i przerabiałem dokładnie ten sam ból głowy. Z tym starym, dobrym Goerli to faktycznie była patologia na sam koniec. Gaz wywalony w kosmos, a faucet to był jakiś mało śmieszny żart z tymi captchami. Dobrze, że to w końcu ubili, bo szkoda było na to nerwów devów.
Jeśli zastanawiasz się jak testować smart kontrakty na testnetach w obecnych realiach, to społeczność mocno spolaryzowała się na dwie opcje. Jak kodzisz klasyczne dAppsy, jakieś własne tokeny ERC20, NFTki czy inne standardowe de-fi, to uderzasz prosto w Sepolię. To jest teraz absolutny main meta. Holesky z kolei to wielka bestia odpalona głównie pod testowanie infrastruktury, walidatorów, stakingu i rzeczy potężnie obciążających sieci testowe blockchaina. Dla zwykłego deva wdrażanie dAppsów na Sepolii w zupełności wystarczy, bo to środowisko świetnie symuluje to, co spotka cię potem na żywym organizmie mainnetu.
Co do kranów – zapomnij o klikaniu w hydranty i rowery. Zrób sobie darmowe konto na Alchemy albo Infurze. Mają tam własne, zamknięte faucety dla zalogowanych. Sypią na tyle hojnie, że nie trzeba codziennie żebrać o dropy. A jak robisz jakiś masywny deploy smart kontraktu i faktycznie ciągniesz tony gazu, to polecam koparki testowego ETH bazujące na Proof of Work (np. pk910). Odpalasz sobie taką stronkę w tle na godzinkę, procek trochę się spoci rozwiązując hashe, ale wyciągasz z tego tyle etheru, że masz spokój z opłatami na cały miesiąc.
Przejdźmy do samego stacku. Remix to fajna piaskownica do szybkiego sprawdzenia prostej logiki, ale przy większej architekturze po prostu klęka i łapie zadyszkę. Hardhat? Nie umarł, mnóstwo korpo-projektów dalej na nim jedzie ze względu na skrypty deploymentowe w JS/TS, które potrafią czasem ułatwić życie przy skomplikowanej logice startowej. Ale powiem ci szczerze, że jak raz zrobisz przesiadkę na Foundry, to do Hardhata nie wrócisz. Prędkość kompilacji urywa łeb, a pisanie testów w czystym Solidity to jest absolutny gamechanger. Odpada ci całe to męczące mockowanie przez Ethers.js i żonglowanie asynchronizacją w javascripcie.
Mój codzienny workflow wyglada teraz w miarę szablonowo. Najpierw katuje kod lokalnie na Anvilu z pakietu Foundry. To daje mega płynną symulację i zero czekania na bloki. Jak już widzę, że testy świecą na zielono, a faktyczne zużycie gazu nie drenuje wirtualnego portfela, to wypycham kod na łańcuch testowy Sepolii.
A jeśli pytasz o weryfikację zdeployowanego kodu na testowym Etherscanie, to tu Foundry też zjada konkurencję. Odpalasz jedno polecenie z terminala z odpowiednimi flagami i kluczem API, i leci samo. Wiadomo, przy potężnych kobyłach i głębokim dziedziczeniu z OpenZeppelin potrafi czasem wywalić jakiś krzak kompilacji. Mój prywatny patent na to jest prostacki, ale mocno skuteczny. Zamiast bawić się w skomplikowane mapowanie ścieżek, puszczam komendę flatten, która skleja mi wszystkie importy w jeden gigantyczny plik .sol. Zgrywam to, wrzucam z palca w Etherscan i weryfikacja kodu na testnecie przechodzi za każdym razem bez zająknięcia.
Krótka piłka – wywalaj Remixa z paska zakładek. Instaluj sobie Foundry, zapinaj darmowe RPC od Alchemy i celuj z projektami w Sepolię. Z takim setupem testowanie smart kontraktów to autentycznie czysta przyjemność, a cały proces wrzucania na sieć idzie gładko bez zacinania się na pierdołach. Daj znać jak tam idzie kodzenie, jak coś ci zgrzytnie w terminalu to pisz śmiało, pomożemy!
Kupuj kryptowaluty BLIKiem ⚡
Błyskawiczne wpłaty bez opłat i prowizji na giełdzie OKX.
Siemka. Poprzednik ładnie wyczerpał temat klasycznego podejścia, ale dorzucę tu swoje trzy grosze, bo widzę, że trochę omijamy słonia w pokoju. Zastanawiając się jak testować smart kontrakty na testnetach, skupiacie się mocno na L1, a prawda jest taka, że mało kto pcha się teraz z nowym projektem prosto na główne Ethereum. Koszty gazu szybko by was tam zjadły.
Dlatego mega polecam od razu przenieść wzrok na warstwy drugie (L2). Base Sepolia albo Arbitrum Sepolia to jest teraz mój absolutnie ulubiony plac zabaw. Cała machina działa identycznie, a takie symulowanie prawdziwego mainnetu uczy cię od razu realiów tanich i szybkich transakcji. Co do kraników, jak już zdobędziesz trochę Sepolia ETH (patent z kopaniem z poprzedniego posta to złoto!), to po prsotu wrzucasz to na bridge i przerzucasz na testowe L2. Masz z głowy codzienne szukanie faucetów. Są też giełdy jak TestnetBridge, gdzie dosłownie za parę centów z prawdziwego portfela kupisz tyle testowego etheru, że starczy ci na rok ciągłego wdrażania dAppsów na testnecie. Serio, szkoda życia na obrazki z rowerami.
Jeśli chodzi o stack i wojnę Foundry vs Hardhat. Wiadomo, Foundry wymiata. Szybkość kompilacji i testy w czystym Solidity robią robotę. Ale nie skreślałbym tak szybko środowisk pod JS/TS. Kiedy robisz poważniejszy deploy smart kontraktu i musisz to potem spiąć z frontendem np. w Next.js, Hardhat wciąż bywa mega wygodny, bo piszesz skrypty w tym samym języku. Sporo devów ciśnie teraz na hybrydzie – Foundry do szybkiego orania logiki na lokalnym forku, a Hardhat do ostatecznego deploymentu w świat.
A co do samej weryfikacji zdeployowanego kodu na testowym Etherscanie... Używanie komendy flatten i wrzucanie wszystkiego do jednego pliku to taki trochę archaiczny plaster na rany. Jak porządnie ustawisz config w projekcie i podepniesz klucze API, to framework ogarnie całe drzewo dziedziczenia z OpenZeppelin całkowicie sam. Odpalasz skrypt i weryfikacja na testowym blockchainie przechodzi gładko, zachowując oryginalną strukturę folderów. To po prostu lepiej wygląda w portfolio, jak ktoś przegląda twój kod.
Krótka piłka - Remix do kosza przy grubszych akcjach, to jasne. Odpalaj lokalne testy, ogarnij trochę ETH z jakiegoś bridge'a i uderzaj śmiało w sieci L2. Powodzonka!