Hyperledger Seoul Meetup 8월 모임 후기

Jiwon Yeom
5 min readAug 24, 2018

--

HL 밋업에 다녀왔습니다. 삼성SDS는 처음 방문해보았는데, 그 위용과 자본력과 간지에 놀라며 입장했습니다. 꽤 넓은 홀을 꽉 채운 인파도 인상적이었죠. ‘개발자'를 위한 밋업이어서 더 기대가 됐습니다.

크로스 플랫폼 활용에 대한 실무적 접근(Elementrem 김민수님)

Elementrem 김민수님은 Hyperledger Sawtooth서 개발한 경험을 나누어주셨습니다. 크로스플랫폼이라는 게 굉장히 거창하게 들리지만, 사실 이더리움 진영의 solidity 언어를 sawtooth라는 플랫폼 위에서 사용하는 것이라는 이야기를 해주셨습니다. solidity를 그대로 쓸거면 이더리움 대신 왜 sawtooth를 써야 하는지에 대해서는, sawtooth가 가진 비즈니스 블록체인의 속성을 꼽았습니다.

Sawtooth의 PoET (Proof of Elapsed Time) 알고리즘은 개인적으로 제가 굉장히 관심 갖고 있는 분야이기도 합니다. Intel이 Sawtooth를 이끌고 있는 만큼, 이 합의 알고리즘은 특이하게도 CPU chip 기반으로 합의 처리를 합니다. Fabric 입장에서 Sawtooth가 위협(?)적인 이유는, 비즈니스적 요구를 충족시킬 수 있으면서도 dAPP도 같이 개발할 수 있는 플랫폼이기 때문입니다. Fabric의 모든 요건을 충족시키는 것은 아니지만, 코인 등 퍼블릭 블록체인을 사업적으로 필요로 하는 경우는 매력적인 선택지죠. 아직 블록체인 산업 표준을 누가 장악하느냐는 결정되지 않았지만, Fabric 만을 밀고 있는 IBM 의 경우 다시 한 번 새 시장에서 고배를 마시게 될 수도 있겠습니다.

HLF 1.1 Deep Dive & 1.2 New Features(삼성SDS 정연호 프로)

정연호 프로님의 세션은 개인적으로 기대를 굉장히 많이 하고 있었습니다. 워낙 Hyperledger KRUG 의 guru이시니까요ㅎㅎ 이번 세션은 기대만큼 많은 것을 배워갈 수 있는 시간이었습니다.

특히 어느 수준 이상의 테스트 환경을 갖고 있지 않으면 확인해보기 어려웠던 부분을 시원히 보여주셔서 좋았습니다. 또한 HLF의 친절한 듯 불친절한 documentation에서 확인할 수 없었던, 개발자가 부딪혀 보아야만 알 수 있는 것들을 나누어주셨습니다.

BTF 알고리즘 처리 방식

개인적으로 좋았던 부분을 몇 가지 꼽아보자면, 하나는 Kafka와 BFT 알고리즘의 통신 방식 차이였습니다. 사실 합의 알고리즘 부분이 어떻게 다른지, 어떻게 달라지고 있는지 이런 것들을 쫓아가기가 어려웠는데 쉽게 짚어주셔서 좋았습니다. Kafka는 두 개 프로세스 간의 데이터를 처리함에 있어서 트랜잭션의 ‘순서’를 보장하여 신뢰를 유지하는 반면 — HLF의 ordering service를 생각해보세요 — BFT처럼 과연 그 트랜잭션의 내용이 옳은가에 대해서는 검증하지 않습니다. 그러다보니 Kafka에서는 노드 간 통신이 단방향입니다. 클라이언트가 endorsement result를 담아서 보내주면, 그걸 ordering service가 보고 committing peer에 보냅니다. 나중에 SBFT가 pluggable로 등장하면 이 큰 얼개 안에서 각 피어 간 데이터 검증이 이루어지기 때문에 단방향 구조가 깨지게 되겠죠.

두번째로는 클라이언트 SDK에서 상대방 조직의 endorsing peer로 다이렉트 통신을 해야 하기 때문에 전용 회선을 놓아야 하며 방화벽도 뚫어야 한다는 것이었습니다. 문서로 볼 때는 그런가 보다 하고 넘어갔는데, 이런 부분이 사실 실제 프로젝트를 진행하면서 가장 문제가 되는 부분 중 하나이겠다는 생각이 들었습니다. 중간에 submitter를 두는 등 향후 버전에서 보안되는 부분이 있어야겠다 싶었습니다.

마지막으로는 말도 많고 탈도 많은 HLF의 TPS 문제입니다. 로컬에서 돌리면 100TPS가 최대로 나오지만, 사실 실제 비즈니스 네트워크 환경이 아니기 때문에 별로 의미 없는 수치입니다. 프로님께서 테스트해보신 결과, 2개 조직에서 각각 하나씩의 피어를 갖고 오더러는 총 세 대일 때 1000tps가 나오려면 CPU가 72코어 정도는 필요하다고 하시더군요. CPU intensive하다고는 생각했지만 꽤 충격적인(ㅋㅋ) 결과였습니다.

이번 밋업도 유익하고 재미있었습니다. 매번 참여자들이 늘어나는 것 같아서 좋았습니다. 다음 세션 주제로 어떤 분이 Fab-coin에 대해서 제안해주셨는데, 다음 세션도 기대하고 참여해보아야겠습니다. :)

--

--