Jeżeli chcesz dowiedzieć się, w jaki sposób możesz zoptymalizować koszty ponoszone w tytułu opłat transakcyjnych w sieci Ethereum, ten poradnik jest w sam raz dla Ciebie.
Jednym z najczęściej zadawanych pytań w kontekście Ethereum jest to, które dotyczy gasu. Co to jest gas? Dlaczego jest tak drogi? Ile powinienem za niego płacić? Czy nie przepłacam?
Od gasu nie uciekniesz
Od tematu gasu nie ma ucieczki. Cokolwiek robisz w przestrzeni Ethereum, od wysyłania środków, kupowania NFT, bicia NFT, stakingu tokenów opartych o sieć i tak dalej, wszystkie czynności będą wymagały od Ciebie poniesienia wydatku za gas. Rzeczywistość jest taka, że wiele osób wydaje na gas znacznie więcej pieniędzy niż potrzeba. Stąd pomysł na ten poradnik. Dowiesz się z niego, jak ustawić własną cenę gasu w Metamask.
Jeśli nie posiadasz jeszcze portfela MetaMask albo nie wiesz, jak go założyć, skorzystaj z poniższego poradnika:
Czym dokładnie jest gas?
Nazwa „gas” powstała jako analogia do rzeczywistego paliwa, którym zasilasz silnik samochodu. Koncepcja jest bardzo podobna. Jeśli miałbyś jechać do innego miasta i symulować całkowity koszt benzyny, dwie rzeczy, o których musisz pomyśleć, to odległość i cena za litr benzyny (zakładając, że zawsze używasz tego samego samochodu, więc wysokość spalania nie ulegałaby zmianie). Całkowita cena paliwa będzie wyższa, jeśli: 1. podróżujesz na dłuższych trasach dystans lub 2. cena ropy/ benzyny jest wyższa.
W odniesieniu do Ethereum można zastosować tę samą koncepcję. Innymi słowy, odległość to to, ile pracy musi wykonać samochód. W Ethereum tyle pracy musi wykonać blockchain. Najprostszą transakcją (pracą) na blockchainie Ethereum jest przesyłanie pieniędzy od jednej osoby do drugiej, co zajmuje 21 000 jednostek gasu. Z drugiej strony, bardziej złożone transakcje, takie jak wybicie NFT, będą wymagały większej liczby jednostek „paliwa”, ponieważ kontrakt wymagany do wykonania dla transakcji jest znacznie bardziej złożony i wymaga więcej zasobów obliczeniowych.
Tak jak nie możesz zmienić odległości między dwoma miastami, nie możesz zmienić ilości jednostek gasu wymaganych do przeprocesowania transakcji w Ethereum. Jednak tak jak możesz poczekać, aż cena benzyny spadnie i dopiero wtedy tankować auto, tak samo możesz wstrzymać się z przeprowadzeniem transakcji (oczywiście rozumiem, że nie zawsze jest to możliwe).
Metamask umożliwia ustawienie ceny gasu na dowolną kwotę, którą jesteś w stanie zapłacić i będzie czekać z wykonaniem transakcji, aż cena ta osiągnie ustawioną przez Ciebie wysokość. Za chwilę dowiesz się, jak to zrobić.
Jak ręcznie ustawić cenę gasu?
Spróbujmy licytować jakąś sztukę na Foundation. Po naciśnięciu przycisku „Złóż ofertę” (place a bid), uaktywni się rozszerzenie Metamask, a Twoim oczom ukaże się następujący widok:
Zobaczysz sugerowaną cenę gasu, która zmienia się od czasu do czasu w zależności od aktualnego obciążenia sieci. Aby zmienić cenę należy kliknąć opcję „EDYTUJ” (EDIT). Zobaczysz teraz przyciski opcji Niska/Średnia/Wysoka. Zignorujmy to, ponieważ różnica między nimi wynosi zaledwie kilka centów. Przejdźmy więc od razu do „Opcji zaawansowanych”, gdzie znajdziemy następujące opcje:
Oto krótkie wyjaśnienie, co oznacza każda z opcji:
- Limit gasu / Gas Limit: Maksymalna liczba jednostek gasu, które chcesz wykorzystać w tej transakcji. Jednostki gasu są mnożone przez „maksymalną opłatę”, aby zrównać się z całkowitą całkowitą ceną paliwa, tak jak w przypadku samochodu, liczba litrów benzyny, których używasz, jest mnożona przez cenę za litr, aby dać całkowity koszt podróży. Nigdy nie zmieniaj tej wartości, ponieważ jest to nakład pracy wymagany do zakończenia transakcji i tak jak nie możesz zmienić odległości, jaką zajmuje przejechanie z Kalifornii do Nowego Jorku, nie możesz zmienić tego, ile pracy wymaga dana transakcja. Pamiętaj, że najprostsza transakcja, wysłanie środków z jednego adresu na drugi kosztuje 21 000 jednostek gasu, więc jak widać złożenie oferty na Foundation wymaga dużo więcej pracy (~72 600 jednostek [co zawiera pewien margines błędu w szacunkach – w rzeczywistości jest to zwykle nieco mniej]).
- Maksymalna opłata priorytetowa/ Max priority (GWEI): „napiwek”, który trafia bezpośrednio do górników Ethereum (jednostek i kolektywów zabezpieczających blockchain i przetwarzających transakcje) i zachęca ich do nadania priorytetu Twoim transakcjom. Górnicy, którzy wybierają transakcje, które zamierzają przetworzyć, będą traktować priorytetowo transakcję w oparciu własnie o tę wartość. Jest to ich zarobek. Dlatego podniesienie tej wartości zachęci górników do przeprocesowania Twojej transakcji jako jednej z pierwszych. Zazwyczaj nie trzeba ustawiać wartości wyższej niż 1,5 gwei, więc nie musisz tu niczego zmieniać.
- Opłata maksymalna / max fee (GWEI): Maksymalna kwota, jaką zapłacisz (opłata bazowa + opłata priorytetowa). Opłata bazowa to z góry określona kwota ustalona przez blockchain Ethereum jako minimalna wymagana opłata (ta opłata jest spalana i nie trafia do górników) za jakąkolwiek transakcję, która ma zostać przetworzona w danym bloku na blockchainie. Jeśli Twoja opłata bazowa, którą ustawisz dla transakcji jest niższa niż opłata bazowa wymagana dla danego bloku, to bez względu na to, jak wysoki jest Twój priorytet, nie zostanie ona przetworzona przez ten blok.
To, co możesz tutaj zmienić, to opłata maksymalna (GWEI), ilość środków, którą jesteś w stanie wydać na paliwo. Pole to domyślnie wyświetla aktualną aktualną cenę gasu. Możesz zmienić ją na dowolną, jaką chcesz zapłacić za gas, a transakcja zostanie przeprowadzona, gdy cena gasu w sieci spadnie do tego poziomu.
Dla transakcji, które nie muszą być realizowane natychmiast, a na ich zakończenie możesz poczekać do ~24 możesz ustalić nieco niższą cenę gasu (za chwilę dowiesz się, w oparciu o jakie kryteria można to wyliczyć). Jeśli ustawisz tak niską opłatę za gas, prawdopodobnie wyświetli się następujący komunikat:
Nie martw się o to. Ten komunikat mówi tylko, że transakcja nie przejdzie teraz z tą ceną gasu, ponieważ sieć jest obecnie dość przeciążona. Gdy przeciążenie sieci spadnie, spadnie wraz z nią cena gasu, a gdy osiągnie poziom ceny, który ustawiłeś, transakcja zostanie wykonana.
**Jeśli używasz portfela sprzętowego, takiego jak Ledger lub Trezor, interfejs użytkownika może wyglądać nieco inaczej (starszy tryb cen gasu). Może pokazywać tylko limit i cenę. W takim przypadku po prostu ustaw cenę gasu na dowolną kwotę, którą chcesz zapłacić, i traktuj ją jako zasadniczo to samo, co opłata maksymalna na ekranach pokazanych powyżej.
Gdy to zrobisz, zobaczysz oczekującą transakcję:
Jak widać, istnieje opcja „Przyspieszenia” transakcji (Speed Up). W przypadku, gdy sieć jest przeciążona znacznie dłużej niż oczekiwano i nie możesz dokonać transakcji w oczekiwanym czasie, zawsze możesz przyspieszyć proces, naciskając przycisk Przyspiesz i ustawić nową cenę gazu. Skoro tak, zawsze warto najpierw ustawić gas na mniejsze wartości, a w razie potrzeby przyspieszyć transakcję później.
UWAGA: kiedy próbujesz wybić bardzo popularny projekt NFT np. w chwili premiery, gdy tysiące ludzi chce zrobić to samo co Ty w tym samym czasie, możesz chcieć ustawić cenę gasu znacznie wyższą niż zwykle, a nie niższą. Dlaczego? Dlatego, że najpierw transakcja musi przejść, a dopiero potem otrzymasz swój token. Jeśli nie zadbasz o własny a zarazem niejako cudzy interes, wszystkie NFT w projekcie mogą zostać wybite, a Ty nie dostaniesz tego, czego chcesz. Zdarzyło mi się coś takiego. To, jak wysoko ustawisz cenę gasu, pozostaje Twoją indywidualną sprawą.
Jeśli nie chcesz widzieć ustawień „Niska/Średnia/Wysoka” i chcesz po prostu od razu ręcznie ustawić cenę gasu, możesz zmienić to w ustawieniach Metamask. Kliknij ikonę w prawym górnym rogu listy rozwijanej Metamask i znajdź menu „Ustawienia”, kliknij je, a następnie kliknij „Zaawansowane”. Na kolejnym ekranie znajdziesz opcję „Zaawansowana kontrola gazu”. Uaktywnij ją i zamknij panel ustawień. Aplikacja nie będzie wyświetlać już Low / Medium / High i będziesz mógł po prostu ustawić cenę gasu ręcznie.
Jak odpowiednio ustawić cenę gasu?
W tym momencie możesz się zastanawiać, w jaki sposób możesz samodzielnie określić odpowiednią cenę za gas?
Najpierw przejdź do narzędzia Etherscan Gas Tracker. Tutaj możesz zobaczyć stan Niski/Średni/Wysoki. Nie na to powinieneś jednak patrzeć, ponieważ wskazania te oparte są o aktualną cenę gasu, podobnie jak opłata sugerowana przez Metamask. To, na co powinieneś zwrócić uwagę, to najniższa cena gasu każdego dnia, ponieważ jest to minimalna kwota, jaką musimy zapłacić, aby transakcja przebiegła w ciągu najbliższych 24 godzin. Skąd pozyskać te dane? Przejdź do Historical Gas Oracle Prices. Znajdziesz tam historyczne wskazania ceny (Max/Avg/Min) dla każdego dnia.
Na dzień 16 października minimalna cena gasu wynosiła 46 gwei, co oznacza, że w pewnym momencie tego dnia cena spadła do 46 gwei. Jeśli zatem ustawiłbyś cenę powyżej tej kwoty można założyć, że w pewnym momencie transakcja doszłaby do skutku. Aby uniknąć ryzyka, że się to nie uda, dobrze jest ustawiać cenę gasu nieco powyżej minimum, ponieważ każdego dnia cena minimalna ulega zmianie i nie ma gwarancji, że znajdzie się dziś dokładnie na tych samych poziomach co wczoraj. Dlatego w tym przypadku dobra cena gasu, którą należałoby ustawić, zawierałaby się w przedziale 51 – 60 gwei.
Skąd blockchain wie, które transakcje należy przetworzyć?
Gdy przyspieszysz swoją transakcję, na Etherscan możesz zauważyć wiele oczekujących transakcji (pending). Skąd blockchain wie, której transakcji dotyczy anulowanie i dlaczego nie odrzuci wszystkich innych oczekujące transakcji, gdy jedna z nich przejdzie?
Tutaj pojawia się idea nonce.
Nonce: sekwencyjny numer bieżący dla wszystkich transakcji kiedykolwiek wykonanych dla danego adresu Ethereum, zaczynając od 0 dla pierwszej transakcji. Na przykład, jeśli wartość nonce transakcji wynosi 10, byłaby to 11-sta transakcja wysłana z adresu nadawcy.
Innymi słowy, nonce ustalana jest na podstawie liczby transakcji, które Twój adres kiedykolwiek zrealizował w przeszłości. Jeśli więc w przeszłości wykonałeś 10 transakcji, następnym razem nonce wyniesie 10 (nie 11, ponieważ zaczyna się od 0).
Nonce danejtransakcji znajdziesz na Etherscan (oto przykładowa transakcja; aby wyświetlić nonce, należy kliknąć przycisk „Kliknij, aby zobaczyć więcej” na dole strony). Kiedy wyświetlisz wszystkie transakcje, które wykonałeś na swoim adresie (przejdź do https://etherscan.io/address/{Wprowadź swój adres Ethereum}), zobaczysz, że najwcześniejsza transakcja, którą wykonałeś, ma wartość zero.
Wracając do pytania, skąd blockchain będzie wiedział, które transakcje powinny zostać zastąpione, a nie wykonywać je jedna po drugiej, te dwie rzeczy rozróżnia właśnie nonce. Jeśli spojrzysz na 2 oczekujące transakcje (tę, którą wykonałeś jako pierwszą i drugą, którą wykonałeś, aby przyspieszyć pierwszą transakcję), obydwie będą miały tę samą wartość nonce. Kiedy blockchain przetworzy jedną z tych transakcji, wszystkie inne oczekujące transakcje, które mają to samo nonce, zostaną anulowane/odrzucone.
Jeżeli chciałbyć dowiedzieć się, jak anulować oczekującą transakcję za pomocą Metamask, zajrzyj do poniższego poradnika:
Dla dociekliwych:
Cena gasu na Ethereum bardzo często ulega zmianie. Jednym z powodów, dla których rośnie jest to, że coraz więcej osób dokonuje transakcji w tym samym czasie. Jeśli chcesz wiedzieć, co się dzieje w Ethereum np. w kontekście NFT, możesz skorzystać z icy.tools. To narzędzie wyświetla trendy odnośnie trendów NFT w ciągu ostatniej godziny. Jeśli skusisz się na wersję premium (0,03 ETH/miesiąc możesz nawet zobaczyć, co było popularne w ciągu ostatnich 15 minut, dzięki czemu masz pewne pojęcie o tym, na których NFT jest aktualnie „największy ruch”.
***
źródło: link
źródło grafiki tytułowej: link