SVC 보팅의 예외 케이스

안녕하세요 @realmankwon입니다.

요즘 SVC 보팅봇을 수정할 일이 많습니다.
일반적인 경우는 문제가 없지만 반환해야할 케이스에서 계속 문제가 생기고 있습니다.

  • 전송시 1 초과로 보낸 경우 : 나머지 수량 반환
    예)
    아래와 같이 17 SVC 가 전송이 됨.

    프로그램을 수정하여 아래와 같이 보팅 후 1 SVC 를 소각하고 나머지 수량을 반환처리하도록 함

  • 동일 메모로 전송이 된 경우 : 반환 로직이 있으나 동일 block no, 동일 timestamp 로 인해 다른 건으로 인식되지 않음
    예)

    위와 같이 3건의 동일한 메모로 전송이 왔고 2건이 반환되어야 하지만 1건만 반환됨.

    살펴 본 결과 동일 block no 에 transaction 이 다르게 처리되면서 반환시에 동일 건으로 판단이 되어서 반환이 되지 않음.

  • steem-engine.rocks/@svc.refund 에 나타나지 않는 경우
    예)
    SVC 보팅이 잘 되고 있는지 알아보기 위해 위의 사이트로 전송내역을 확인




    스팀엔진 api 를 통해서 확인한 결과 전송 내역이 있음
    @kingbit 님 건을 처리하고 난 이후 @tradingideas 님 건을 처리해야 하지만 실제로는 아래와 같이 다른 건을 처리하는 경우가 발생 전송 내역에 보이지 않는 @walktoheaven/2ah6gx 를 보팅 처리함.

위와 같이 자주 발생할 수 있는 에러 건에 대해서 예외처리를 하고 있지만 동일 block no 로 처리된 건에 대해서는 스팀엔진 사이드 체인의 블럭 정보까지 확인을 해야하기 때문에 수정을 해야할지 망설여지는 부분이 있습니다.

정 안 되면 이것도 DB 방식으로 변경하여 처리할 수 밖에 없을 듯 합니다.
몇 번 더 위와 같은 경우와 그 외에도 처리하기 어려운 케이스가 생기면 결단을 해야겠습니다.

일상없이 서비스가 되도록 하겠습니다.

Sort:  

죄송하고 감사합니다.

별 말씀을요~ㅎㅎ
바로바로 처리가 안 될 수 있어서 관련해서 보완을 해 나가는 중입니다. ^^

늘 감사드립니다. 키체인이 이상해지면서 여러번 가는 경우가 있는듯...

넵!!
키체인에 이상이 있는 듯 합니다!!
장기적으로 이부분까지도 고려되게 수정을 해야할 듯 합니다!!^^

 5 years ago  Reveal Comment