KNI

**KNI (Klaytn Network Identifier)**는 Klaytn 노드를 식별하기 위한 URL 스킴입니다. 신택스는 다음과 같습니다.

kni://<nodeID>@<hostname>:<port>?subport=<subport>&discport=<discport>

nodeID는 노드의 개인키에 상응하는 512비트 공개키입니다. P2P 네트워크에서 피어들과의 소통을 검증하는 데 사용됩니다.

hostname@: 사이에 위치한 노드의 주소를 나타냅니다. 주소 형식은 다음 중 하나를 취합니다.

  • IPv4 dotted decimal (192.0.2.1)

  • IPv6 ([2001:db8::68])

  • IPv4-mapped IPv6 ([2001:db8:3c4d:15::abcd:ef12])

  • 도메인명 (your.node.com)

port는 TCP를 통해 피어 노드들과 연결하기 위해 사용됩니다. Klaytn의 경우 port의 기본값은 32323이며, subport의 기본값은 32324입니다. subport의 기본값은 kend.confport + 1라고 설정되어 있습니다. TCP 수신 대기(listening) 포트의 수에 따라 Klaytn은 두 종류의 연결을 제공합니다.

discport는 알려진 이웃들이 인접한 Klaytn 노드인지 확인하고, 새로운 연결을 위해 이웃 주소를 가져올 때 쓰입니다. 이것은 UDP port라는 점을 유의하십시오. 기본값으로 UDP port, 또는 discport는 TCP port와 같은 port를 사용합니다. 노드가 discport에 다른 port를 사용한다면, discport 쿼리 파라미터를 통해 지정될 수 있습니다.

이하의 두 URL은 IP 주소가 10.0.0.1, TCP listening port가 3232332324인 KNI 예시입니다. discport가 생략될 시 UDP port 32323로 지정되며, 이는 port 값과 동일합니다.

kni://a979...163c@10.0.0.1:32323                 # either single-channel or multi-channel peer with omitted subport
kni://a979...163c@10.0.0.1:32323?subport=32324   # multi-channel peer

이하의 두 URL은 discport30301인 노드의 KNI의 예시입니다.

kni://a979...163c@10.0.0.1:32323?discport=30301                 # either single-channel or multi-channel peer with omitted subport
kni://a979...163c@10.0.0.1:32323?subport=32324&discport=30301   # multi-channel peer

If you want to know how to generate a KNI of a node, please refer to Node Key & Node URI Creation. The KNI scheme is used in node discovery protocol, setting static-nodes.json file, addPeer API, bootnodes option and etc.

Last updated