A-APT/DuckBox-Android

How a user account will receive the eth for transaction fee

Closed this issue · 2 comments

사용자가 생성한 이더리움 계정은 transaction 을 위해 eth 를 가지고 있어야 합니다. (직접 투표 등의 활동을 하기 위해)
그런데, 사용자에게 이런 수수료를 요구할 수 없으니 서비스 측에서 transaction fee 에 해당하는 만큼의 eth 는 제공해주어야 합니다.

이때, 누가, 어떻게, 얼만큼의 eth 를 사용자 계정에 줄지에 대한 해결이 필요합니다.

  • 누가: 사용자 계정에게 어떤 계정이 eth 를 줄 것인가 (일단은 우리 서비스를 운영하는 계정이 될 것으로 보임.)
  • 어떻게: 웹서버에 요청, 테스트 토큰 사용 등 어떤 방법으로 사용자가 eth 를 갖게 할 것인가
  • 얼만큼: 딱 transaction fee 만큼을 주기에는 그 값을 정확히 알 수 없는데 얼마 정도의 eth 를 줄 것인가

우선, 저희가 test network 를 사용할 것이므로, 다음의 2가지 방법이 있을 것입니다.

  1. Ganache 에서 제공해주는 디폴트 계정들을 활용하기 -> 계정 생성 단계가 무의미해질수도.
    • 디폴트 계정을 사용하는 이유는, Ganache 의 test network 는 이미 생성된 계정만 사용 가능하기 때문.
      (임의로 만든 계정을 사용하면 sender account not recognized 오류 발생)
  2. ropsten 같은 test network 에서 계정 만들고 사용하기 -> 위의 문제가 모두 해결되어야 합니다.

따라서 저희가 transaction fee 를 신경쓰지 않고 구현하는 것으로 결정하였는데, 어느 범위까지 이를 허용할지 결정해야 합니다.

transaction fee 를 신경쓰지 않고 구현하기로 하였으므로,
두 방법 중 어떤 test network 를 사용하든 서버에서 별도로 eth 를 전송해주는 과정은 고려하지 않겠습니다.

다만 ropsten network 가 가끔 불안정하기도 하고, gasPrice 를 책정하기 어려운 문제로 인해 일단 Ganache 에서의 사용을 전제로 합니다. 이때 Ganache 에서 새 계정은 별도의 작업으로 등록해주어야 하므로 디폴트 계정들을 사용해서 작업을 하도록 합니다.

어떤 test network 를 사용할지는 계속 변동될 수 있습니다.