CN간 trasaction 데이터 교환

안녕하세요, CN간 tx data교환과 관련해서 질문이 있어 글 남깁니다.

저는 docker 환경에서 CN 8개, PN 8개, EN 2개를 돌려보았습니다.
별다른 setting은 하지 않았고,

homi setup --cn-8 --pn-8 --en-2

로 생성된 것들을 이용하여, 각 노드간의 message를 확인해봤습니다.
그리고 transaction은

ken attach http://localhost:{en port number}

로 하여, 각 EN들로부터 생성된 accout끼리 통신을 주고받았습니다.
CN1과 CN2에 32323 port를 이용한 통신 (block generation & consensus message)은 1초에 한 번씩 메시지를 잘 주고 받았습니다.

그런데 CN1과 CN2의 32324 port를 이용한 통신(transaction messages)도 transaction이 늘어난 만큼 서로 message를 교환하는 것 같았습니다.
제가 이해하기로는 transaction message이 EN → PN → CN으로 전파된다고 생각했는데, 직접 확인해본 바로는 CN들 간에도 transaction message가 교환되고 있었습니다.

CN들간에 32324 port로 주고받는 것이 transaction message인 것은 맞는 것처럼 보입니다.
속도를 위해 CN 간에도 정보를 주고받는 것일까요?

제가 놓친 부분이 있다면 추가 설명 부탁드립니다.

감사합니다.

안녕하세요, 클레이튼 포럼에 질문을 올려주셔서 감사드립니다.

말씀하신 것처럼 CN간에도 CNN (Consensus Node Network)이 mesh구조로 형성되며, 서로 트랜잭션과 블록을 주고 받습니다. 네트워크 토폴로지에 대한 설명은 Klaytn Docs를 참고 부탁드립니다.

감사합니다.

1개의 좋아요

안녕하세요, 추가적인 질문이 있어 댓글 남깁니다.

PN을 통해 CN으로 transaction이 전파되는데, CN간에도 서로 transaction을 교환하는 이유가 있을까요?

안녕하세요, 이 부분은 트랜잭션의 고른 전파를 위한 방안이라고 생각하시면 될 것 같습니다.

PN의 입장에서는 모든 CN과 연결된 것은 아니기 때문에 자기와 연결된 CN, PN하고만 통신을 하게 됩니다.

CN 간에는 mesh로 연결되어 있기 때문에 좀 더 빠른 전파가 가능하고요.

만약 CN 간 트랜잭션 전파를 하지 않는다고 하면 특정 CN에는 트랜잭션이 잔뜩 있고 다른 CN에는 트랜잭션이 충분하지 않은 상황이 발생할 수 있습니다. 이 상황에서 트랜잭션이 별로 없는 CN이 block proposer가 될 경우에는 네트워크 효율이 떨어질 수 있습니다.

답변이 되셨을지 궁금합니다. 추가 질문이 있으시다면 편하게 부탁드리겠습니다.

감사합니다.

1개의 좋아요