CAP 정리의 반례, 비트코인
- 데이터 일관성: 작업증명을 통한 완전무결한 장부
- 가용성: 신뢰받는 제3자 없이 직접 노드를 구성해 거래할 수 있는 시스템
- 파티션 감내: 식별될 필요가 없는 노드들로 구성된 P2P 네트워크
#Bitcoin View quoted note →
CAP 정리
- 데이터 일관성(consistency), 가용성(availability), 파티션 감내(partition tolerance)라는 세 가지 요구사항을 동시에 만족하는 분산 시스템을 설계하는 것은 불가능하다
알렉스 쉬. 가상 면접 사례로 배우는 대규모 시스템 설계 기초. 인사이트, 2021.
운영하는 블로그로 nostr의 NIP-05 인증 스펙을 지원하도록 개발했는데 이 과정에서 두 가지 문제를 마주하였다.
- CORS 문제
현재 블로그는 AWS S3에 빌드를 배포하고 CloudFront를 사용해 페이지를 제공하고 있다. CloudFront 콘솔 ‘동작’ 메뉴에서 ‘응답 헤더 정책’을 ‘SimpleCORS’로 설정해 문제를 해결했다.
- Public Key 형식 문제
CORS를 해결했는데 또 다른 문제를 마주했다. NIP-05는 bech32 형식의 주소가 아닌 Hex 형식의 PubKey를 제공해야한다. ‘npub~’으로 시작하는 주소는 bech32 형식이다. bech32 형식의 주소를 Hex 형식으로 변환하는 코드를 작성해 해결했다.
그 결과… 인증 마크를 획득했다!