트랜젝션이 밀리는 이유가 무엇인가요?

클레이튼의 tps가 3000으로 알고있습니다

평소에는 1~2정도 늦게 블록이 생성되는데
사람들이 몰릴때 트랜젝션을 제출하면 5~10정도는 블록이 밀려있습니다.
예를들어 1110 블록일때 제출하면 1115로 밀려있는거죠
그래서 klayscope을 보니
밀릴때의 블록에있는 tx수는 300~500정도밖에 되지 않습니다.
Tps가 3000이라면 밀리지않고 담겨야할텐데…
사람몰릴때 블록이 밀리는 또다른 이유가 있을까요?
네트워크 환경때문이라하면 구체적으로 어떤 원인인지 궁금합니다

여러가지 원인이 있을 수 있기 때문에 정확하게 말할 수는 없겠지만, James 님이 말씀하신 상황을 가정해보겠습니다.

일단 tps 3000이라는 것에 대해서 먼저 생각을 해보자면, 클레이튼의 한 블록당 실행 시간 제한이 250ms라고 하였을때, 테스트에서 표준으로 정한 트랜잭션으로 부하를 준 상태에서, 트랜잭션이 1초에 3000개를 처리한다고 보시면 됩니다.

즉, tps 3000은 한 트랜잭션 당 실행시간이 일정하였을 때 측정된 것이고, 실제 현실 세상에서 운영시엔 실행시간이 굉장히 긴 트랜잭션들이 많이 포함되는 상황이 충분히 일어날 수 있고, 그게 지금 James 님이 말씀주신 상황에 포함되는 것 같습니다 :slight_smile:

1개의 좋아요

답변 감사드립니다.
그럼 트랜젝션이 다 같은게아니고 트젝종류에따라 실행시간이 달라질수있다는 말씀이시군요 좀 무거우면 실행시간이 더 걸린다 볼 수 있겠네요

블록당 실행시간이 250ms라는 것은
어떤걸 의미하는지 더 자세히알려주실수 있나요?
한 트젝을 실행하는데 250ms라는건가요?

네 맞습니다. 단순히 클레이 전송하는 트랜잭션과는 달리 컨트랙트를 실행하는 트랜잭션들은 더 무거울 수 있죠.

블록당 실행시간 제한이 250ms라는 것은, 마이너와 같은 블록 생성자가 블록 생성 시 트랜잭션을 하나씩 실행하며 이를 블록에 차곡차곡 담는데, 이 때, 250ms라는 시간이 지나가면 타이머가 expire되며 블록 생성이 중지되어, 더이상 해당 블록에 트랜잭션을 담을 수 없는 것을 말하는데요,

트랜잭션당 실행시간 제한과는 상관없는 개념입니다.

2개의 좋아요

상세한 설명 감사합니다
마지막으로 트랜젝션 풀에 있는 트젝들에서 골라져
블록이 만들어지는거로 알고 있는데 트젝풀에서 블록에쌓이는 트랜젝션이 선정되는 기준은 얼마나 빨리 노드에 도달했는가 인가요? 어떤 기준이 있는지 궁금합니디