Architecture
Last updated
Last updated
WEMIX 클라이언트는 각 블록의 모든 트랜잭션을 검증하여 네트워크 데이터를 안전하고 정확하게 유지하는 WEMIX3.0의 구현체입니다. Phase1의 WEMIX3.0은 Go 언어를 기반으로 Go-ethereum Version 1.10.16을 포킹하여 만들어졌으며 London HF까지 적용되었습니다. Phase2의 WEMIX3.0의 경우 Version 1.10.18까지 반영되어 있으며 계속 코드 최신화가 진행될 예정입니다.
WEMIX3.0 Client는 위의 그림과 같은 Layering 시스템으로 되어있으며 Go-ethereum에서 Governance, Consensus, Network Protocol 부분을 수정하여 고성능 실시간성을 달성하였습니다.
WEMIX 블록체인 네트워크는 세 종류의 논리적 네트워크로 구성되어 있으며, BP, BN, EN은 각각 블록 생성자 네트워크(BPN), 브릿지 노드 네트워크(BNN), 엔드 노드 네트워크(ENN)을 구성합니다. 아래 그림은 WEMIX 메인넷의 전반적인 토폴로지를 보여줍니다. 엔드 노드 네트워크(ENN)은 직접 브릿지 노드 네트워크(BNN)에 연결된 주변 네트워크로 볼 수 있습니다.
BPN은 네트워크에서 RAFT를 적용하므로 각 BP는 충분한 성능 수준으로 RAFT 합의 과정을 수행하기 위해 하드웨어 및 네트워크 리소스 요구사항을 엄격하게 충족해야 합니다. 고성능 실시간 서비스를 지원하기 위해서 BP의 기술적 운영은 40개의 신뢰할수있는 NCP들이 담당하는 구조입니다.
BNN 네트워크는 1차적으로 BPN 네트워크를 외부의 직접적인 공격으로부터 물리적으로 보호하는 기능을 가집니다. 주요 기능은 ENN으로부터 전파된 유효한 Transaction을 검증하여 합의 노드로 전송하고 반대로 BPN으로부터 전파된 유효한 Block을 검증하여 ENN으로 전파하는 역할을 수행합니다. 또한 BNN에 존재하는 Bridge Node중 일부는 Boot Node의 기능을 제공합니다. BP노드를 제외한 모든 신규 노드는 블록체인 네트워크에 참여하기 위해서 P2P네트워크에 연결된 이웃노드로부터 지금까지 생성된 모든 블록데이터를 다운로드 받아야 합니다. Boot Node는 네트워크에 참여한 신규 노드가 무조건 P2P Hand Shaking을 진행하여 P2P 네트워크에 연결시키는 Bootstrapping 서비스를 제공하는 항시 Online 상태에 존재하는 서비스 노드입니다. 해당 네트워크의 운영은 WEMIX에서 진행합니다.
가장 바깥쪽 서브 네트워크인 ENN은 WEMIX 네트워크의 엔드포인트로서 사용자의 서비스를 처리하는 역할을 직접적으로 수행하는 블록체인 End Node들로 구성되어 있으며 누구나 블록체인 노드를 설치하여 운영하는 것이 가능합니다.