코드체인 노드를 스마트하게 관리하는 방법

 

코드박스

현재 코드체인은 첫 번째 테스트넷인 Husky를 운영하고 있습니다. 첫 번째 테스트넷인 만큼 안정성 향상을 위한 많은 패치가 있었습니다. 버그 중에는 코드체인 노드가 예상치 못하게 종료되거나 각 노드가 서로 동기화하는 과정에서 네트워크 쪽 문제로 교착상태가 발생하는 예도 있었는데요, 이처럼 예상하지 못한 문제가 발생하였을 때 어떤 노드에서 문제가 발생하였고 어떤 문제가 있는지 디버깅하기 어려웠습니다. 또 수많은 노드에 패치를 적용하거나 각 노드의 버전이 일치하는지 점검하는 것도 문제였죠.

우리는 위의 문제를 해결하기 위해 코드체인 에이전트 프로젝트를 시작했습니다.

코드체인 에이전트

코드체인 에이전트는 아래 요구사항을 중점적으로 개발하였습니다.

- 코드체인 노드들 사이의 연결 상태를 한눈에 볼 수 있다. - 노드 끄고 켜기, 노드 업데이트 등 노드 관리를 편리하게 할 수 있다. - 코드체인의 로그를 편리하게 볼 수 있다. - 각 노드로 간편하게 JSON RPC 요청을 할 수 있다.

네트워크 토폴로지 대시보드 페이지에서는 코드체인 노드들 사이의 연결을 한눈에 보여주는 네트워크 토폴로지를 제공하고 있고, 한눈에 노드들의 연결상태를 볼 수 있을 뿐만 아니라 노드들의 상태도 실시간으로 확인 가능합니다.


노드 관리 노드 리스트 페이지에서는 각 노드들의 상태와 현재 베스트 블록의 넘버/해시, 노드 버전 등을 비교할 수 있습니다.


각 노드의 디테일 페이지에서는 노드들의 상태를 관리할 수 있는데 노드를 켜거나 종료할 수 있고 원하는 깃 커밋 해시나 브랜치로 업데이트할 수 있습니다. 또 노드들의 CPU, 디스크, 메모리 사용량을 실시간으로 확인 가능합니다.


RPC 전송 (개발 중) 현재 개발 중인 RPC 페이지는 편리하게 원하는 노드에 JSON-RPC를 전송하는 기능을 제공합니다. 노드를 선택하여 여러 노드로 동시에 JSON-RPC 요청을 보낼 수 있고, 왼쪽에 있는 History를 이용하면 이전에 보냈던 RPC를 다시 전송할 수 있습니다.


프로젝트 구조

코드체인 에이전트는 세개의 프로젝트로 되어있습니다.

- 코드체인 노드에 붙어서 각 노드들의 정보를 받아오는 코드체인 에이전트 - 각 코드체인 에이전트들의 데이터를 수집하여 대시보드와 통신하는 코드체인 에이전트 허브 - 유저와 인터렉션 하는 코드체인 대시보드


마무리

블록체인 네트워크를 문제 없이 관리하려면 에이전트와 같은 툴은 필수라고 해도 과언이 아닙니다. 네트워크 토폴로지, 노드 관리에 필요한 기능들을 활발하게 개발하고 있고, 앞으로 RPC 전송과 로그 분석 페이지가 추가될 예정이고 계속 발전시켜갈 예정입니다. 코드체인 에이전트도 다른 프로젝트와 마찬가지로 모든 소스가 깃 허브에 공개되어 있어서 직접 설치해서 사용하거나 개발에 참여 가능합니다.

기업문화 엿볼 때, 더팀스

로그인

/