[Solidity] Truffle 공부 - 4(Dapp 서비스 설계 고려사항 및 Lottery 게임규칙)

Solidity 정리 3!

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

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


오늘은 Dapp 서비스 설계시 고려사항입니다. 그리고 개발해볼 Lottery 게임 규칙 설명입니다.

내용을 제가 타이핑을 해버리면 저작권 문제가 있을 것 같아서, 캡쳐해서 가져 왔습니다. 실무에서 충분히 사용 될 수 있는 부분을 다 담아 주셨더군요!! 감사합니다.

캡쳐자료 출처 유튜브

지갑관리

  • 콜드월렛
  • 핫 월렛(필요시 콜드월렛으로 부터 전송)
  • Multisig 적용 여부 등 고려

아키텍쳐

  • smart contract에 올릴 부분과 그렇지 않은 부분(중앙화 할 데이터와 아닌 것 정리)
  • server와 front-end 고려 등

Code

  • 컨트랙트 실행시 수수료가 나가므로 수수료가 적게 나가도록 코딩을 해야함
  • 컨트랙트에 대한 권한 관리 고려
  • 비지니스 로직 부분 업데이트 관련(아직 깔끔한 방법은 없다고 합니다.(영상 당시에는..), delegate를 쓰거나 contract 주소를 바꿔끼우는 방식)
  • 데이터 마이그레이션은 기존 스마트 컨트랙트에서 새로운 스마트컨트랙트로 데이터를 옮겨야 할 경우 어떻게 할 것인가? 트랙잭션을 일으켜서(수수료를 써가면서) 옮길 것인가?
    (주로 freeze 시키고 메인넷으로 옮기던지 자신들이 실제로 사용 할 토큰 컨트랙트로 옮기는 방법 등)

운영

  • public 체인인지 private 체인인지 등 상황에 따라 고려

Lottery 규칙

  • 참여하는 블럭의 뒤로 3번째 블럭의 해시값 2자리 맞추기
  • 만약에 3번째 블럭에 참여를 한다면 6번째 블럭해시 값을 확인
  • 여러명이 맞춘 경우 가장 먼저 맞춘 사람이 승리
  • 두글자 중의 하나만 맞았을 때에는 보낸 돈을 보내준다.(0.005ETH : 10 ** 15 wei)
  • 결과값을 알 수 없는 경우 돈을 돌려준다.
  • 결과가 틀린 경우 팟머니로 쌓임(나중에 2자리 다 맞춘 사람이 쌓인 팟머니를 모두 가져간다)

고려사항

  • 스마트컨트랙트에서는 현재 트랜잭션이 몇번째 블럭에 들어가는 상황인지 값을 얻어 올 수 있음
  • 단 현재 블럭해시값을 가져올 수 없음
  • 컨트랙트 내에서는 최근 256블럭의 해시값만 가져 올 수 있음


0
0
0.000
0 comments