트랜잭션 영수증 오류 문의드립니다

안녕하세요~

지난주 금요일까지 바오밥 환경에서 잘 진행되던 트랜잭션이 아래와 같은 오류를 뱉으면서 오늘부터 동작하지 않습니다. 의심가는 부분이 있을까요?

org.web3j.protocol.exceptions.TransactionException: Transaction receipt was not generated after 15 seconds for transaction: 0x2a3e7b5765ba2cfa6cb04b7659e957ae22129fb3e47d69526d63bfd2eda9d4e9
at com.klaytn.caver.transaction.response.PollingTransactionReceiptProcessor.getTransactionReceipt(PollingTransactionReceiptProcessor.java:62) ~[core-1.6.3.jar:na]
at com.klaytn.caver.transaction.response.PollingTransactionReceiptProcessor.waitForTransactionReceipt(PollingTransactionReceiptProcessor.java:41) ~[core-1.6.3.jar:na]
at com.klaytn.caver.contract.ContractMethod.sendTransaction(ContractMethod.java:1070) ~[core-1.6.3.jar:na]
at com.klaytn.caver.contract.ContractMethod.send(ContractMethod.java:290) ~[core-1.6.3.jar:na]
at com.klaytn.caver.contract.ContractMethod.send(ContractMethod.java:242) ~[core-1.6.3.jar:na]

해당 트랜잭션은 아래와 같습니다.

안녕하세요. 클레이튼 포럼에 질문을 남겨주셔서 감사합니다.
몇시간 전 바오밥 네트워크 이슈로 발생 되었을 가능성이 있습니다.
현재 정상적으로 블록생성이 되고 있으니 다시 시도해보시기 바랍니다.

네 현재는 잘됩니다~ 답변 감사합니다.

해당 이슈가 재발하여 문의드립니다.

현재는 메인넷 상태이구요.

간헐적으로 트랜잭션 요청시 위와 같은 오류가 발생합니다.

org.web3j.protocol.exceptions.TransactionException: Transaction receipt was not generated after 15 seconds for transaction: 0x42cb74347ec5a9522aeab12775907ac6cd1dde87da64a37ee4cd60a14ac853ca
at com.klaytn.caver.transaction.response.PollingTransactionReceiptProcessor.getTransactionReceipt(PollingTransactionReceiptProcessor.java:62) ~[com.klaytn.caver.core-1.6.3.jar:na]
at com.klaytn.caver.transaction.response.PollingTransactionReceiptProcessor.waitForTransactionReceipt(PollingTransactionReceiptProcessor.java:41) ~[com.klaytn.caver.core-1.6.3.jar:na]
at com.klaytn.caver.contract.ContractMethod.sendTransaction(ContractMethod.java:1070) ~[com.klaytn.caver.core-1.6.3.jar:na]
at com.klaytn.caver.contract.ContractMethod.send(ContractMethod.java:290) ~[com.klaytn.caver.core-1.6.3.jar:na]
at com.klaytn.caver.contract.ContractMethod.send(ContractMethod.java:242) ~[com.klaytn.caver.core-1.6.3.jar:na]

하지만 이 역시 트랜잭션은 성공한 상태입니다…

추가로 보니 서버에서 요청한 시간과 저 성공 시간이 1분 이상 차이가 나네요. 이런 경우도 있을 수 있을까요?

PollingTransactionReceiptProcessor는 설정하신 duration과 attempt파라미터를 이용해서 klay_getTransactionReceipt을 반복적으로 호출하도록 수행합니다. 만약 시간이 짧다고 느끼신다면 이 값을 조절해서 사용해보시기 바랍니다.

그리고 전송하신 Trasnaction이 블록에 기록이 되는 것이 오래걸리는 것은 아래처럼 여러가지 원인이 있을 수 있습니다. 참고 부탁드립니다.

  • 사용하시는 노드의 네트워크 상태,
  • 사용 중이신 노드의 txPool이 가득 찰경우,
  • block proposing 과정에서 해당 트랜잭션이 들어간 CN이 proposer로 선정되는 과정에서의 시간 소요

네 답변감사합니다! 아래와 같은 익셉션 로그도 찍혀있는데

java.io.IOException: txpool is full: 8192
at com.klaytn.caver.contract.ContractMethod.sendTransaction(ContractMethod.java:1067)
at com.klaytn.caver.contract.ContractMethod.send(ContractMethod.java:290)

말씀하신것처럼 txPool 확인해보겠습니다.

혹시 txPool이 가득 찰 경우 어떻게 처리를 하는게 좋을까요?
en을 하나 더 늘린다던가 하면 괜찮을까요?