[Solidity] Truffle 공부 - 8(Gas 계산)

in hive-101145 •  last month 

Solidity 메모8!

유튜브 영상 자료(Dapp Campus)를 따라해보면서 배우고 있는 중입니다. 한번 따라해보면 처음에 익숙해지는데 꽤나 좋을 것 같습니다.

여기서는 로또비스무리한 컨트랙트를 만들고 있군요. 그래서 Lottery Contract로 만들어 보고 있습니다.


이번에는 스마트컨트랙트에 선언된 기능이 실행되는데 예상되는 Gas 계산 방법입니다.

gas 관련 정보

  • gas(gasLimit와 동일한 의미) : 단위가 없는 숫자
  • gasPrice(wei단위를 쓰지만 너무 적은 단위이기 때문에 gwei(10 ** 9) 단위로 많이 쓴다.)
  • ETH : 1 ETH = 10 ** 18 wei
  • 수수료 = gas(21000) * gasPrice(gwei 단위(1gwei == 10 ** 9wei))

gas 계산 방법

  • 32bytes 새로 저장 == 20000gas가 사용된다.
  • 블럭체인에서 가장 비용이 많이 드는 것은 체인의 용량을 늘리는 것이다.
  • 수수료 절감을 위해서는 데이터를 블럭에 최소한으로 저장해야 한다.
  • 블럭에도 Gas Limit가 존재한다.(블럭에 담기는 트랜잭션들이 총 사용 할 수 있는 GasLimit 양, 최근에는 1200만 조금 넘는 수준)
  • 블럭의 gas limit가 넘는 트랜잭션은 담을 수 없다.(넘지 않는 수준에서 최대한 수수료를 많이 포함하여 처리)
  • 32 bytes 기존 변수에 있는 값을 바꿀 때 = 5000gas 소모
  • 기존 변수를 초기화해서 쓰지 않을 때(delete) : 10000gas 를 돌려 받음

스마트 컨트랙트 저장

  • 이더리움에서 기본적으로 사용되는 저장 단위가 32byte
  • 이벤트를 발생시킬 때에도 가스가 사용된다.(대략 변수당 375, 변수 연산 저장 등.. 대체로 4~5000 가스가 사용됨)
  • 최초 스마트 컨트랙트에 저장 할 때에는 20000 gas가 사용되지만, 값을 변화 시킬때에는 5000gas가 사용된다.
  • 그러므로 동일한 트랜잭션을 일으키더라도 처음과 그다음 트랜잭션에 사용되는 가스량이 달라진다.
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

[US$140.00](▼54%)샤오미 드리미 V10 무선 청소기 / 유럽버전! / 6개월무료A/S / 무료배송/

WWW.QOO10.COM

@happyberrysboy transfered 15 KRWP to @krwp.burn. voting percent : 70.23%, voting power : 59.12%, steem power : 2017404.02, STU KRW : 1200.
@happyberrysboy staking status : 7650 KRWP
@happyberrysboy limit for KRWP voting service : 7.65 KRWP (rate : 0.001)
What you sent : 15 KRWP
Refund balance : 7.35 KRWP [50412014 - 1f9158e951d85ad90abc878cb1f8e6672ac5d40a]

Thanks for explaining Truffle and the Gas cost...