멀티 채널
카이아 노드는 멀티 채널로 실행할 수 있습니다.
노드가 멀티채널 구성으로 실행되는 경우 통신을 위해 2개의 포트가 설정됩니다. 반면, 단일 채널 구성으로 노드가 실행되면 1개의 포트가 설정됩니다. 2개의 멀티 채널 노드가 연결을 시도하는 경우 2개의 포트를 사용하여 연결이 설정됩니다. 그렇지 않으면 1개의 포트를 사용하여 통신합니다.
멀티채널 노드는 --multichannel
플래그를 통해 활성화할 수 있습니다. kend
를 사용하는 경우, kend.conf
의 MULTICHANNEL=1
문으로 인해 멀티채널이 기본적으로 활성화되어 있습니다. 멀티채널을 비활성화하려면 해당 문을 MULTICHANNEL=0
으로 바꾸세요.
특정 포트로 노드를 실행하려면 플래그 port
와 subport
를 사용할 수 있습니다. 접속하는 피어의 포트 값을 지정하려면 KNI를 확인하세요.
아키텍처
위 그림은 두 개의 멀티채널 노드 간의 연결을 보여줍니다. 두 개의 포트, 메인포트(A)와 서브포트(B)는 서로 다른 메시지를 전송합니다.
- 메인포트(A)는 블록 및 합의 프로토콜과 관련된 메시지를 전송하는 데 사용됩니다.
- 블록 메시지에는 블록의 해시, 헤더, 본문, 수신 요청과 응답이 포함됩니다.
- 합의 메시지에는 요청, 준비, 준비, 커밋, 라운드체인지가 포함됩니다. 메시지의 의미는 PBFT에서 확인할 수 있습니다.
- 서브포트(B)는 트랜잭션 메시지를 전송하기 위한 것입니다.
그림은 두 개의 단일 채널 노드 간 또는 단일 채널 노드와 다중 채널 노드 간의 연결을 보여줍니다. 이 경우 블록, 트랜잭션, 합의 프로토콜과 관련된 모든 메시지는 동일한 포트를 통해 전송됩니다.
포트
KNI에서 포트 번호를 설정하려면 KNI 체계를 참조하세요.
- 단일 채널: 단일 채널 노드는 하나의 포트를 사용합니다(기본값은 32323).
- 멀티 채널: 다중 채널 노드는 두 개의 포트를 사용합니다. 포트는
port
와subport
로 지정할 수 있습니다. 카이아에서port
와subport
의 기본값은 각각 32323과 32324입니다.- 멀티채널 노드에 연결할 때
subport
를 설정하지 않을 수 있습니다. 이 경우 처음에는 카이아 노드가 단일 채널로 연결을 시도합니다. 핸드셰이크 과정에서 실제 상대방의 포트 번호가 공개됩니다. 상대방이 멀티채널 노드인 경우 진행 중인 연결이 취소되고 업데이트된 포트로 재연결됩니다.
- 멀티채널 노드에 연결할 때