트랜젝션 풀에서의 처리 우선순위

1.안녕하세요. 트랜젝션 풀에대해 질문 드립니다.
트랜젝션 창을 띄우고 트랜젝션 승인을 누르면
트랜젝션 풀로 들어가는 거로 알고있습니다.
거기서 node들은 트랜젝션 풀에서 트랜젝션을 꺼내는 거로 알고 있는데요
이 트랜젝션 풀에서 트랜젝션이 선택되는 우선순위의 기준은 어떠한 것들이 대략 있나요?

2.트랜젝션들이 있는 트랜젝션 풀 뿐만이 아닌 '펜딩 풀’이란 것도 있나요?
정확한 명칭은 모르지만 트랜젝션 제출 전에 서명 버튼이 뜨는 창 있잖아요?
이러한 창들이 모여져있는 풀… 인건데 정확한 명칭은 모르겠습니다.
이런 창들의 전체 제한된 개수가 있을 수 있다고도 들어서 여쭤봅니다

안녕하세요. 클레이튼 포럼에 글을 남겨주셔서 감사합니다.
간단히 설명하자면 txpool에는 크게 2가지 저장상태가 있습니다.queue,pending 상태 이렇게 2가지가 있는데요,
queue- 날아온 tx를 바로 저장하는 공간
pending - 검증을 통해 블럭에 들어갈 tx를 저장하는 공간
임을 우선 인지하시기 바랍니다.

  1. 이더리움 같은 경우 gasprice에 따라 우선순위가 바뀌기도 합니다만 klaytn은 gas price가 고정입니다. 제가 아는한 pending 상태에서 트랜잭션이 블록으로 들어가는 순서는 빨리 들어온 순서대로 입니다.
  2. pending 상태는 위에 설명 드린대로 입니다. 검증할때는 nonce, gaslimit 등 뿐 아니라 sender의 서명이 올바른지도 검증하게 됩니다.
    질문의 범위가 구체적이지 않아 정확한 답변은 어렵습니다만, 질문자님이 궁금해하시는 부분이 ‘pending tx가 저장될 수 있는 개수의 한계’ 를 뜻한 것이라면, 노드 설정에 따라 달라질 수 있습니다. cypress 기준으로는 대략 2~3만개 정도라고 보시면 됩니다.
3 Likes

답변감사합니다
그럼 트랜젝션 ‘승인’ 버튼을 누르면
queue를 거쳐서 pending으로 가고 pending에서 검증절차를 통해 블록으로 간다고 이해하면 될까요?
queue는 pending보다 수용범위가 클까요?
2~3만개 정도라는것은 cypress의 한개의 노드가 아닌 네트워크의 기여하는 모든 노드 통틀어 말씀하시는 것이지요?

답변감사합니다
그럼 트랜젝션 ‘승인’ 버튼을 누르면
queue를 거쳐서 pending으로 가고 pending에서 검증절차를 통해 블록으로 간다고 이해하면 될까요?
queue는 pending보다 수용범위가 클까요?
2~3만개 정도라는것은 cypress의 한개의 노드가 아닌 네트워크의 기여하는 모든 노드 통틀어 말씀하시는 것이지요?

네 queue → pending → 블록 삽입 모두 검증절차를 통해 트랜잭션이 이동한다고 보시면 됩니다.
queue의 수용 가능 slot 역시 설정하기 나름이지만, 기본적으로는 pending과 동일하다고 보시면 됩니다.
그리고 2~3만개의 트랜잭션은 CN의 모든 노드 통틀어가 맞습니다. 내 로컬에서 생성한 tx만 처리하겠다는 뜻으로 nolocal option을 txpool에 설정하는 케이스를 제외하고는, 트랜잭션 풀의 tx들은 노드간 공유가 되기 때문에 질문주신 부분이 맞습니다.

1 Like