Klaytn Design (1) : Klaytn Network Structure, Klaytn Main Chain Network

witheunjin
Top Klass
Published in
6 min readSep 8, 2019

안녕하세요, Klaytn 스터디그룹 Top Klass입니다.

이번 글은 Klaytn Design 1번째 시리즈로, Klaytn Network Structure, Klaytn Main Chain Network 에 대해 설명합니다.

* Klaytn Design 다음 시리즈 보기 :

https://medium.com/top-klass/klaytn-design-2-block-generation-propagation-e3880ee4cf6e

Subnetworks: CCN, ENN, SCN

출처: Klaytn Position Paper

Klaytn Network는

Core Cell Network(이하 CCN),

Endpoint Node Network(이하 ENN),

Service Chain Network(이하 SCN) 으로 구성됩니다.

CCN

이 서브네트워크는 EN(endpoint node)들을 통해 제출된 트랜잭션을 검증하고 실행하는 Core Cell로 구성됩니다. 또한, 네트워크 전역에 블록들을 생성하고 전파하는 역할을 담당합니다.

ENN

Endpoint Node(EN)들로 구성되는 네트워크이며, 이 EN은 트랜잭션을 생성하고(주임무), RPC API 요청을 처리하며, service chain들로부터 온 데이터 요청들을 진행합니다.

SCN

SCN은 BApp에 의해 독립적으로 운영되는 보조 블록체인으로 구성된 서브네트워크이며, Service Chain은 ENN을 통해 연결되어 klaytn 네트워크와 함께 데이터 요청을 처리합니다.

Klaytn Main Chain Network

출처: Klaytn Position Paper

이 그림은 CNN과 PNN 두 계층으로 구성된 네트워크인 CNN이 위치해있는 Main Chain Network의 topology를 자세히 보여줍니다. ENN은 ENN과 PNN 사이의 direct connection과 함께, 바깥의 PNN으로 둘러싸인 것처럼 보입니다.

Core Cell(CC)

출처: Klaytn Docs

Core Cell Overview 그림에서 볼 수 있듯, 하나의 Core Cell은 하나의 합의노드(CN:Consensus Node)와 두 개의 프록시 노드(PN:Proxy Node)로 구성됩니다.

CNN

Consensus Node Network의 약자이며 CN끼리 full-mesh 네트워크를 형성하여 만들어지는 네트워크입니다. CNN은 WAN(wide area network)를 넘어 BFT 합의를 실행하고, 각각의 CN이 충분한 성능에서 그 합의를 수행하도록 하드웨어와 네트워크 resource 요구사항을 만족하도록 요구합니다.

CN

해당 CN이 속해있는 Core Cell Network(CCN)의 다른 CN들과 합의하여 새로운 블록을 생성하는 노드입니다. 합의노드라고도 하며, 합의에 빨리 도달하기 위해서 CNN 내부의 모든 CN들은 full-mesh 네트워크로 모두 연결이 되어 있고, private한 속성을 가집니다. 이 CN들로 구성된 CNN의 경우, 허가된 CN들로만 구성이 됩니다.

PNN

Proxy Node Network의 약자이며 PN들이 서로 연결되어 형성됩니다. PN들은 명시적으로 같은 CC내에서 그들의 동료PN과 연결되지 못합니다. 형식적으로, PN은 동료 PN과 함께 오직 하나의 연결만을 유지하지만, 이 수는 네트워크 구성에 따라 달라질 수 있습니다.

PN

Klaytn Endpoint Node(EN)에서 받은 트랜잭션을 CN에 제출하는 노드입니다. 그렇기 때문에 하나의 PN은 ENN내의 모든 EN들과 연결됩니다. PN은 CN에서 생성된 블록들을 ENN으로 전파하며, ENN의 EN의 수에 따라 처리능력이 향상되도록 요구되기도 합니다. 또한, PN은 Core Cell에서 내부적으로 CN들과 연결되며, 인터넷에서 다른 Klaytn 노드들과 연결되기 위해서 public이 되도록 요구됩니다. 아직 실행되지는 않지만 PN bootnode를 통해 다른 core cell들안에서 몇몇 PN들과 교류할 수 있으며, EN bootnode를 통해 EN과의 연결을 지원합니다.

ENN

Endpoint Node Network

ENN은 오직 서로 연결된 EN들과 PN들의 수와 연결됩니다. EN들은 클레이튼 네트워크에서 endpoint역할을 수행하며, RPC API 요청을 처리하고 Service Chain으로부터 혹은 Service Chain으로 데이터를 processing합니다.

EN

Endpoint Node는 RPC API 요청을 처리하기 위해서 블록체인 네트워크의 endpoint의 역할을 하며, service chain으로부터 전송된 데이터를 처리합니다.

Bootnode

Bootnode는 새롭게 참여한 노드들이 네트워크에 등록할 수 있게 도와주기 위해 klaytn에서 자체적으로 운영하는 노드입니다.

CN bootnode는 CNN옆에 위치하며 PN과 EN bootnode가 공개적으로 보여지는 것과는 달리, 직접적으로 노출되지 않습니다.

PN bootnode는 오직 허락된 PN들만 등록할 수 있게 하며, 적격의(eligible한) PN들만 EN들과 연결시킵니다.

마지막으로, EN bootnode는 EN에게 어떤 PN과 연결하면 되는지에 대한 정보를 제공합니다.

《References》

[1] klaytn docs

[2] klaytn position paper

발제자: 이은진

작성자: 이은진

검토자: 이건, 김지은

Klaytn Design

#1. Klaytn Network Structure, Klaytn Main Chain Network

#2. Block Generation and Propagation

#3. Klaytn Accounts

#4. Klaytn Transactions

#5. Computation

--

--

witheunjin
Top Klass

Welcome to my Medium page:) I am a senior student majoring in Software Engineering at Soongsil University, Seoul, South Korea. I hope you to enjoy my posts.