체인의정석

배포시 회사에 이더리움 요청을 위한 gasPrice 계산하기 본문

블록체인/Ethers & web3

배포시 회사에 이더리움 요청을 위한 gasPrice 계산하기

체인의정석 2022. 4. 8. 17:36
728x90
반응형

실제 프로덕트를 배포할 단계가 오면서 가스비에 대한 산정을 해야 하는 단계에 이르렀다.

 

일단 먼저 usedGas를 사용하기로 하였다.

 

개발자 단톡방에 물어봐서 조언을 얻은 결과

 

1. estimateGas 로 고정 가스비 계산

( 이 경우는 이더스캔에서 확실하게 확인하였다.)

2. eth_gasPrice API 결과로 얻은 gasPrice

두 값을 곱해서 결제를 올리면 된다는 추천을 받았다.

 

다만, gasPrice의 값은 네트워크 상황에 따라 달라질 수 있으며, 변동값인건 어쩔 수 없으므로 보수적으로 넉넉히 받을것 

또한 고정된 가스비보다 3만 정도를 더 포함시킬 것이 유의사항이다.

 

3만을 포함시키는 이유는 측정값보다 더 적게 나올 가능성이 있기 때문이며, 사용안된 가스는 반환되므로 큰 상관이 없다.

 

그리고 2번은 의외로 쉽게 구할 수 있었는데

 

https://ethgasstation.info/api/ethgasAPI.json? 

예전부터 있었던 API를 사용해서 gasPrice를 구해오면 된다.

{"fast":370,"fastest":400,"safeLow":270,"average":300,"block_time":15.380281690140846,"blockNum":14460250,"speed":0.5719409845737478,"safeLowWait":17.5,"avgWait":3.1,"fastWait":0.5,"fastestWait":0.5,"gasPriceRange":{"4":256.3,"6":256.3,"8":256.3,"10":256.3,"20":256.3,"30":256.3,"40":256.3,"50":256.3,"60":256.3,"70":256.3,"80":256.3,"90":256.3,"100":256.3,"110":256.3,"120":256.3,"130":256.3,"140":256.3,"150":256.3,"160":256.3,"170":256.3,"180":256.3,"190":256.3,"200":256.3,"220":256.3,"240":256.3,"260":30,"270":17.5,"280":9.6,"300":3.1,"320":1.8,"340":0.9,"360":0.6,"370":0.5,"380":0.5,"400":0.5}}

보수적으로 fast 기준

400으로 잡고 계산을 하면 문서를 봤을때 *10 gwei 이므로,

https://docs.ethgasstation.info/gas-price

 

Gas Price - ETH Gas Station API

Fast, standard and safe low gas prices on the Ethereum network

docs.ethgasstation.info

 

 

그리고 여기서 400은 400*10 gwei를 의미한다.

https://gwei.io/

 

Gwei | Ethereum Base Units

1,000,000,000,000,000,000 WEI 50 PWEI or FINNEY 20 GWEI or SHANNON

gwei.io

  • 1 (Nano)ETHER = 0.000000001 ETHER
    1,000,000,000 WEI = 1 (GIGA)WEI

그러므로 1,000,000,000 * 4000 이만큼을 최종값에서 곱해주고 10**18 만큼을 나눠서 나온 소수점이 총 소모 비용이다.

 

 

이게 맞는지 검산을 해보도록 하겠다.

 

https://etherscan.io/tx/0xf7b9b0419fa577efdb6d2f3b2647a3a7d8d0d665f682666cd713a57778f09aa5

 

Ethereum Transaction Hash (Txhash) Details | Etherscan

Ethereum (ETH) detailed transaction info for txhash 0xf7b9b0419fa577efdb6d2f3b2647a3a7d8d0d665f682666cd713a57778f09aa5. The transaction status, block confirmation, gas fee, Ether (ETH), and token transfer are shown.

etherscan.io

해당 트랜잭션을 보았을때 

대략 66 wei 가 가스비이므로

Usage by Txn = 232999

Gwei = 66

wei 단위 환산 = 1000000000

232999*66*1000000000 = 1.53779E+16

0.015377 만큼이 예상 가스비이다.

 

 

가스비 산정의경우  일주일중 가장 높은 하루 평균치를 기준으로 산정하였다.

https://etherscan.io/gastracker#historicaldata

 

Ethereum Gas Tracker | Etherscan

Gas Snapshot Price at 4/8/2022 8:12:01 AM UTC - Low: 37 gwei | Avg: 38 gwei | High: 40 gwei

etherscan.io

그리고 아래 양식을 바탕으로 깔끔하게 만들어서 보고 완료!

위에 서술한 로직대로 외부 API (이더스캔 또는 가스스테이션)에서 가격을 가져와서 wei단위로 환산 후에 실제로 사용된 gas 또는 estimateGas 를 곱하면 된다.

728x90
반응형
Comments