트랜잭션 가스비(gas fee)

  1. 네트워크가 운영(트랜잭션이 발생하고 블럭이 쌓이는)되는 상황을 살펴보면, 로컬 테스트넷(저 때는 트러플(가나슈)에서 넘어와 하드햇으로 많이 키고 그랬습니다. 지금은 또 다른 패키지를 많이 쓰고 있는지 잘 모르겠네요.)과 실제 테스트넷의 동작 방식에는 차이가 있습니다.
  2. 가장 큰 차이로는, 트랜잭션 실패시에도 실제 네트워크는 블럭에 기록되고 연산량 만큼 가스비(gas fee)가 소모되지만, 로컬 네트워크는 그렇지 않습니다.
  3. 코드 개발에 있어 이러한 차이를 실제로 겪었을 때 꽤나 난감했던 기억이 있습니다.
    1. 전 직장에서는 텐더민트와 이더리움(EVM)이 결합된 네트워크를 운영 중이었습니다.

      1. Evmos 와 유사합니다.

      https://github.com/evmos/evmos

    2. 합의(블럭이 만들어지는 방식)를 텐더민트 기반의 BFT 를 사용하고 그 외에는 여러분들에게 익숙한 이더리움의 방식을 사용하는 설계입니다.

  4. 저는 해당 네트워크 아래에서 스마트 컨트랙트 개발을 진행하고, 이를 호출하면서 정상적으로 트랜잭션이 발생하고 있는지 테스트 하고 있었습니다.
    1. 앞서 언급한 상황처럼, 트랜잭션이 실패되었을 때 가스비가 빠지지 않았습니다.
    2. 제가 속한 팀에서 퍼블릭 네트워크 (코어) 개발을 직접 진행하고 있지 않았기 때문에, (회사)네트워크의 독자적인 설계(의도한 바)인지, 오류인지 답을 찾는 과정이 있었습니다.
  5. 그 때 당시에는 위와 같은 상황적 공유를 기록해 놓지 않고 실제 코드에 바로 적용하고는 했습니다.
  6. 만약, 다음 이직 후에 그리고 필요한 경우라고 판단이 되면 테스트 코드로 남겨 놓을 것 같습니다.