Kalkulacja kosztów transakcji w Ethereum

Bardzo Zły Moderator
Awatar użytkownika
Posty: 13162
Rejestracja: 16 kwietnia 2012
Reputacja: 1928
Reputacja postu: 
20
Napiwki za post: 0 BTC
Lokalizacja: Polska / Gorzów Wlkp.

Kalkulacja kosztów transakcji w Ethereum

Postautor: rav3n_pl » środa, 15 maja 2019, 22:40

Ponieważ okresowo pojawiają się wątki dotyczące problemów z transakcjami z ETH postanowiłem napisać po ludzku jak wygląda opłata transakcyjna w Ethereum.
Mam nadzieję, że się przyda.

Tym razem Rafał prostuje Ethereum :P

Najpierw mała definicja, czym jest mityczny "gas".
Gas jest ilością mocy obliczeniowej (cykli procesora) jakie muszą być wykonane przez EVM (Etehreum Virtual Machine) aby wykonać daną transakcję. Każda operacja (wysłanie ETH, dodawanie, mnożenie, zapis danych w pamieci, odczyt tych danych itd) ma określoną "wagę" - czyli właśnie ilość cykli EVM. Ponieważ wykonanie kontraktu musi być niezależnie powtórzone na każdym pełnym węźle ETH, istnieje limit cykli EVM na blok jaki mogą generować wszystkie transakcje dołączane do bloku (block gas limit). Może się więc zdarzyć tak, że naszego "uber-kontraktu" nie będzie można użyć, bo jest zbyt skomplikowany ;]

Cała kalkulacja kosztów transakcji w ETH jest generalnie przekombinowane, zwłaszcza w sytuacji gdy używamy kontraktów.
Po pierwsze, musimy znać ilość "gas" jaka jest potrzebna do wykonania kontraktu. Jeżeli jest to jakiś token i nie jesteśmy jedynymi/pierwszymi użytkownikami to można zajrzeć etherscanem na inne transakcje i odczytać tą wartość. To będzie "gas limit" naszej transakcji - ile maksymalnie jesteśmy skłonni kupić mocy obliczeniowej od EVM. W innym przypadku (nie znając estymacji) musimy dać limit z kosmosu i modlić się żeby starczyło, o czym na końcu.

Drugi element to cena gazu - "gas price". Ta dla odmiany zależy od aktualnej sytuacji na rynku i możemy ją sprawdzić np. na ethergasstation.

Trzeci element to koszt samej transakcji (fee) zależne od wielkości transakcji, i również wyrażony w gas. Ten występuje zawsze, i zależy od transakcji - jeżeli np wywołujemy kontrakt z wieloma parametrami to parametry te też "ważą" jakieś bajty danych i przez to kosztują. Najlżejsze są oczywiście "zwykłe" transakcje wysyłające ETH, bo muszą zawierać tylko ilość, adres odbiorcy i podpis nadawcy.

Mamy więc "transaction cost" i "execution cost" wyrażony w "gas" i mnożymy go przez "gas price". Otrzymujemy max wartość w ETH jaką jesteśmy skłonni zapłacić za wykonanie transakcji. Musimy więc zawsze mieć jakiś zapas.

I teraz najlepsze.
To, czy transakcja w ogóle będzie dołączona do bloku zależy od tego, czy nasza cena gas jest odpowiednio wysoka. Jeżeli nie - możemy czekać tygodniami, jak było przy krypto kotkach.

A najlepsze z najlepszych jest to, że jeżeli przeszacujemy i damy za mały gas limit przy odpowiednio wysokim gas price, to transakcja zostanie dołączona do bloku, zapłacimy całe ETH jakie przeznaczyliśmy na wykonanie transakcji ale kontrakt się nie wykona xD

Dziękujemy za skorzystanie z linii ETH dla opornych ;]
wysłać token.jpg
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Piffko: PLC/BTC 1Rav3nkMayCijuhzcYemMiPYsvcaiwHni
Mój Skydrive; Trochę o P2pool; C#: RPC CoinControl, BIP39 Mnemonic z talii kart
Bitcoin Core 0.18.1

Weteran
Awatar użytkownika
Posty: 7571
Rejestracja: 1 marca 2015
Reputacja: 964
Reputacja postu: 
0
Napiwki za post: 0 BTC
Lokalizacja: WLKP/Dolny Śl./Lubus

Kalkulacja kosztów transakcji w Ethereum

Postautor: adam1226 » czwartek, 16 maja 2019, 00:11

To cos takiego jak tutaj :arrow: ??

Dodano po 8 godzinach 5 minutach 56 sekundach:
Ale jesli chodzi o oszacowanie potrzeb gazowych jest to nieco latwiejsze z pomoca tej stronki:
https://ethgasstation.info/
:arrow: [Binance]- Giełda altcoinów
[Algory.io] - Agregator newsów i Skaner tradingowy

Oficjalny przedstawiciel projektu
Awatar użytkownika
Posty: 1015
Rejestracja: 6 lutego 2017
Reputacja: 210
Reputacja postu: 
0
Napiwki za post: 0 BTC

Kalkulacja kosztów transakcji w Ethereum

Postautor: BitHub.pl » środa, 2 października 2019, 15:04

Spieszymy z informacją, że opłaty transakcyjne w Ethereum odnotowały ok. 50% spadek w stosunku do maksymalnych wartości notowanych w zeszłym tygodniu ;)

Opłaty transakcyjne w Ethereum spadły o 50% w stosunku do zeszłotygodniowych maksimów

Bardzo Zły Moderator
Awatar użytkownika
Posty: 13162
Rejestracja: 16 kwietnia 2012
Reputacja: 1928
Reputacja postu: 
0
Napiwki za post: 0 BTC
Lokalizacja: Polska / Gorzów Wlkp.

Kalkulacja kosztów transakcji w Ethereum

Postautor: rav3n_pl » środa, 2 października 2019, 22:48

Widzę że nie zapisałem jednego ważnego detalu.
ETH nie posiada adresów reszty ani możliwości wysyłania do wielu odbiorców na raz.
Jeżeli robimy operację typu wysłanie ETH (nie tokenów, nie wołanie kontraktu) to operacja taka ma stały koszt w gas: 21000.
Nie ma więc sensu zwiększać "gas limit" dla takich transakcji, bo nie wypłynie to na szybkość jej zatwierdzenia.
Jeżeli damy za niską cenę gas i nie możemy się doczekać, w większości portfeli mamy możliwość ponowienia transakcji (wysłanie z tym samym nonce) z większą ceną.
Piffko: PLC/BTC 1Rav3nkMayCijuhzcYemMiPYsvcaiwHni
Mój Skydrive; Trochę o P2pool; C#: RPC CoinControl, BIP39 Mnemonic z talii kart
Bitcoin Core 0.18.1

Wróć do „Pomoc techniczna”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość