January 27, 2022
이 글은 2021년 11월 13일 ~ 16일 네트워크 중단 사건 이후 흔히 말하는 ‘클레이튼 네트워크 장애’에 관한 글입니다.
먼저 겪으시는 모든 장애 상황이 “클레이튼 자체의 문제가 없다”고 주장하는게 아닙니다.
다만, 대부분의 장애가 실제로 ‘클레이튼 네트워크의 장애’인지 아닌지 의심해볼 수 있게 여러 정보를 제공하고자 합니다.
정보를 제공하면서 주장합니다 “그건 클레이튼 네트워크 장애가 아니에요!”
먼저 정확하게 ‘네트워크의 장애’를 정의할 필요가 있습니다.
이에 관해서 다양한 관점과 정의가 있겠지만 저는 아래와 같은 탈중앙 네트워크의 “합의 과정”에서 문제가 생겼을때를 네트워크의 장애라고 표현하고 싶습니다.
대표적인 예시는 아래와 같습니다
먼저 두가지를 말씀드리겠습니다.
8 Digital Payment Cryptos That Are Faster Than Bitcoin (2021년 9월) 글에 따르면
솔라나가 압도적으로 높은 TPS인것을 확인할 수 있습니다.
앞서 말했듯 ‘탈중앙성’에 대한 이야기는 하지 않겠습니다.
클레이튼의 TPS는 링크 에서 “실시간” 확인 가능합니다.
간단하게 말해서 가장 큰 이유는 각 서비스들이 위아래로 널뛰는 클레이튼의 TPS를 처리하지 못하는것이 원인입니다.
여기서 말하는 각 서비스란?
다시 정리하겠습니다.
이에 관해서는 봇 트랜잭션 분석 리포트를 첨부하겠습니다.
요약하면 수수료가 매우 저렴한(또는 고정된) 클레이튼 네트워크에 차익거래 트랜잭션으로 추정되는 트랜잭션들이 대량으로 발생하고 있는 것입니다.
‘저렴한 수수료’에 관해서는 아래에서 다시 다루겠습니다.
먼저, 거래소가 입출금을 중단할때 모든 이유가 블록체인 네트워크의 문제가 아닙니다.
또한 클레이튼의 높은 TPS로 인해 발생하는 지연도 ‘클레이튼 네트워크의 장애’라고 볼 수 없습니다. 간단하게 말해서 “그렇다면 솔라나는 언제나 네트워크 장애(지연)가 발생하고 있는 상황”입니다.
물런 실제로 솔라나는 네트워크 장애가…
해결방법은?
안타깝게도 디앱과 거래소는 각자에 맞는 ‘트랜잭션’을 처리하면 문제가 간단해집니다. 하지만 클레이스코프는 ’모든 트랜잭션‘을 처리하고 보여줘야 합니다.
예를들어 클레이스코프는 하나의 블록에 있는 모든 트랜잭션에 대해 여러가지 처리를 한 후 화면에 띄워주게 됩니다. (트레이싱이라는 무거운 작업을 포함합니다)
이를 회피할 수 있는 방법은 없습니다. 좋으나 싫으나 어차피 ‘모든 트랜잭션’의 결과를 보여줘야하기 때문입니다.
정리하겠습니다. 이는 단순한 ‘트릭’으로 해결할 수 없는 문제이며 근본적인 개선책이 필요합니다. (수평확장이라는…) 다시 말해 구조적 개선이 필요한 작업입니다. 몇주전에 비해 클레이스코프는 점점 성능이 좋아지고 있으며 v2를 도입하기도 했습니다.
문제가 없다고 말씀드리지 않습니다. 개선 작업이 필요하다 또는 진행중이라고 이야기합니다.
“아니 그러면 공식 Explorer가 느려지는게 클레이튼 네트워크 장애(지연)가 아니라고요?”
어쨋거나, 빠른시일내 클레이스코프가 높은 TPS를 처리할 수 있기를 기원합니다. 🙏
아래 Kakao If 2021 영상에서 클레이스코프의 구조에 대해 더 자세하게 학습 가능합니다.
카이카스 또한 ‘단일 지점’에 의존하고 있습니다.
물런 언제나, 모든 상황에서 클레이튼 CN노드와 EN노드가 ‘정상적’으로 블록과 트랜잭션을 전파하는것은 아닐겁니다. 하지만 여러분이 말하시는 ‘클레이튼 네트워크 장애’가 대체로는 이렇습니다.
현재 ‘클레이튼 네트워크’의 상태는 링크에서 “실시간” 확인 가능합니다.
물런 이 Grafana가 의존하고 있는 ‘노드’도 장애로 인해 멈출 수 있지만… 그것조차 네트워크 전체의 장애는 아닙니다. 적어도 이 노드는 다른 외부 요청을 처리하고 있지는 않을태니 그럴 확률은 낮을 겁니다…
어쨋든 현재 클레이튼 네트워크의 여러 디앱과 인프라가 과거에 비해 이슈가 생기고 있음은 분명해보입니다.
아닙니다. 일단 높은 TPS가 발생할 수 있는 원인은 클레이튼의 저렴한 수수료입니다.
그럼 저렴한 수수료가 원인이네! 그걸 해결하면 이전처럼 아무 지연없이 쓸 수 있는거 아니야?
봇 트랜잭션 분석 리포트에서 ”트랜잭션 수수료 인상은 모든 클레이튼 사용자에게 영향을 끼칠 수 있기에 클레이튼 팀은… 클레이튼의 자원이 소수에게 독점되지 않고 다같이 사용될 수 있도록 많은 고민을 하고 있습니다.”
말하는 바를 요약해보자면, ‘클레이튼에서 높아진 TPS를 다시 줄이것에는 가스 비용을 올리는 것 외에 쉽지 않아보입니다. 하지만 그렇게 해볼려고 하고 있습니다’
먼저 각 서비스의 운영자는 EN노드를 시스템 요구 성능을 지키며 실행해야 합니다.
그렇지 않음으로 발생하는 문제는…
그리고 대체로 노드의 요구 성능은 지속적으로 증가합니다.
위에서 말한 내용은 노드가 동기화한 블록과 트랜잭션 데이터를 처리하는 ‘애플리케이션’에 대해서 입니다.
그렇다면 노드가 겪고 있는 문제점은 무엇이 있을까요? 제가 보기에는 txpool(mempool) 설정 문제로 추정됩니다. (모든 문제가 그렇다는게 아니라, 필자가 보기에 그렇게 추정된다는 것입니다.)
먼저 해결 방법은 간단합니다. 공식 문서에서는 아래와 같은 설정을 권장하고 있습니다
// 2021.01.27
TXPOOL_EXEC_SLOTS_ALL=4096
TXPOOL_NONEXEC_SLOTS_ALL=4096
TXPOOL_EXEC_SLOTS_ACCOUNT=4096
TXPOOL_NONEXEC_SLOTS_ACCOUNT=4096
“아니 트랜잭션이 한번에 수천개씩 들어오는게 문제인데 왜 설정 이야기를 하시나요?”