어제 세 번째 코드체인 데브 미팅이 있었다. 코드체인 데브 미팅은 일주일에 한 번 오픈소스 코드체인 프로젝트에 기여하는 개발자들이 모여 개발 논의, 코드 리뷰, 기술 발표 등을 진행하는 정례 행사이다. 이번 미팅에는 코드체인팀 8명, 외부 기여자 4명 총 12명이 참석하였다.
오늘 처음 참석한 SKT 송지영님이 간단히 소개를 하고, 곧 바로 기술 발표를 시작했다. 이번 발표는 내가 했고 주제는 Schnorr 서명이었다. Schnorr 서명은 ECDSA에 비해 알고리즘이 간단하고 서명 및 검증이 효율적이라 차세대 서명 알고리즘으로 주목받고 있다. Decred 프로젝트가 이미 Schnorr 서명을 사용하고 있고 비트코인도 도입을 검토하고 있다. 코드체인도 Schnorr 서명 검토를 위한 준비 작업을 진행 중이고 앞으로 계속 안정성을 테스트해 볼 예정이다. Schnorr 서명의 특성이 궁금하신 분은 이전 글을 참고.
30분 정도 발표를 마치고 즐거운 저녁 식사 시간. 첫 미팅 피자, 두 번째 미팅 치킨에 이어 오늘의 메뉴는 햄버거다. 개발자들의 식성을 고려해 패스트푸드 위주로 준비하였으나 건강을 해치는 것 같아 다음 주부터는 샌드위치, 샐러드로 전환할까 고민 중이다. 식사 시간에는 간단히 서로의 안부도 묻고, 블록체인 기술에 대한 논의도 이루어졌다. (먹는다고 바빠서 밥 먹는 사진은 못 찍었다.)
빠르게 식사를 마친 후 다시 모여 외부 기여자 중 한 분인 이동준님이 작성하신 Stratum 프로토콜제안을 함께 검토하였다. Stratum은 코드체인 노드와 마이너가 효율적으로 통신할 수 있도록 TCP 상에 JSON RPC를 정의한 네트웍 프로토콜이다. 비트코인, 이더리움 마이닝 풀 등에서도 Stratum 프로토콜을 사용하고 있으나 표준 명세가 없이 마이닝 풀마다 제각각 조금씩 다른 프로토콜을 정의해서 사용하고 있다.
코드체인도 최근 Cuckoo Cycle 기반의 PoW 합의 알고리즘을 지원하기 시작했기 때문에 코드체인 노드와 마이너 사이의 효율적인 통신 채널이 필요했다. 마침 이동준님이 해당 작업에 지원하여 프로토콜 제안을 해주셨고 이후 구현까지 진행하기로 하셨다. 코드체인을 오픈소스 한 이후 벌써 13개 이상의 PR를 주셨을 만큼 열정적으로 참여해주고 계신 이동준님에게 이 자리를 통해 감사의 말씀을 드린다.
설계 리뷰 이후에는 각자 삼삼오오 흩어져서 개발 논의 및 코드 리뷰를 진행하였다. 해외 오픈소스 프로젝트와 달리 코어 개발팀과 직접 만나 코드 리뷰를 진행할 수 있다는 사실은 코드체인 프로젝트의 가장 큰 장점이라 하겠다. 미리 PR을 올려놓고 미팅에 참석해서 리뷰를 진행할 수도 있고, 미팅에 와서 버그를 할당 받은 후에 그 자리에서 논의하고 바로 PR 및 코드 리뷰까지 진행하는 것도 가능하다.
코드체인 프로젝트에 PR을 하나라도 제출하신 분은 코드체인 데브 미팅에 참석 가능하다. 블록체인 코어 개발자가 되는 정도(正道)는 직접 코어를 개발해 보는 것이고 이미 코어 개발 경험이 있는 팀과 같이 하면 더욱 빠르게 성장할 수 있다. 아직 블록체인 기술에 익숙치 않다고 걱정할 필요는 없다. 코드체인은 초심자들도 쉽게 프로젝트에 참여할 수 있도록 비교적 쉽게 수정할 수 있는 간단한 이슈를 Good first issue 로 모아서 제공하고 있다. Good first issue를 하나 골라 커밋을 만들고 PR만 보내면 그 후로는 코드체인 개발팀이 친절히 도와준다.
블록체인 코어 기술을 개발하겠다는 팀은 많지만 소스코드를 공개하지 않으면 어떤 프로젝트를 하는지 알 방법이 없다. 코드를 공개했어도 개발활동을 오픈하지 않으면 외부 개발자들이 참여할 방법이 없다. 코드체인은 코드체인팀 뿐만 아니라 많은 외부 개발자들이 참여하는 진정한 의미의 오픈소스 프로젝트로 만들고 싶다. 개발자분들의 많은 참여 부탁드린다.
- 프로젝트 홈페이지: https://codechain.io/
- GitHub 저장소: https://github.com/CodeChain-io/codechain