모든 밈(meme)에 자체 블록이 부여됩니다. 이것이 제가 Claude Code에게 준 한 줄짜리 간결한 요청이었고, 약 3주 후 memechain이 라이브되었습니다. 브라우저에서 무료로 체험할 수 있으며, 가입이나 설치가 필요 없습니다. 라이브: https://larajeftic.github.io/memechain/ 소스 (MIT): https://github.com/larajeftic/memechain
무엇인가요? 밈이 일종의 기록(inscription)인, 작은 Bitcoin 스타일의 체인입니다. 그림의 SHA-256 값이 서명된 트랜잭션에 포함되고, 채굴자(miner)가 이를 블록에 넣습니다. 그 후부터 이 밈은 하나의 소유자를 가지게 되며, 이 소유자는 이를 목록화하고 판매할 수 있습니다. Double SHA-256 작업증명(proof of work), 10블록마다 난이도 재조정(difficulty retarget), 블록당 50 MEME와 반감기(halving)가 적용됩니다. secp256k1 지갑과 RFC 6979 서명이 사용됩니다. 가스비(gas)는 없고, 실제 토큰도, 돈도 어디에도 없습니다: MEME는 판매되거나 구매될 수 없는 테스트용 토큰입니다. 저는 코인을 출시하는 것이 아니라, 온체인 시장이 실제로 어떻게 작동하는지 이해하고 싶었습니다.
제가 자랑스러워하는 부분은 동일한 합의 규칙(consensus rules)을 두 번 실행한다는 점입니다. node.py (Python)는 공개 테스트넷을 구동하며, docs/chain.js는 브라우저에서 이와 동일한 규칙을 실행합니다. 지갑을 생성하고, 블록을 채굴하며, 그림을 기록하고, 이를 목록화하고, 테스트 구매자가 MEME를 채굴하여 구매하게 한 뒤, 75%를 콜드 볼트(cold vault)로 이동시키고, 이후 제 전체 체인을 제네시스(genesis)부터 다시 재생성하면서 모든 해시와 서명을 검사할 수 있습니다. 이를 chain.json으로 내보내면 Python node가 유효성을 검증합니다. npm test는 JS와 Python이 모든 해시에 대해 일치하는지 교차 확인합니다. 공개 테스트넷은 항상 켜져 있는 서버 없이 구동됩니다. GitHub Actions 작업(job)이 20분마다 노드를 실행하고, 몇 개의 블록을 채굴하며, 공개 풀 폴더에서 밈을 기록하고, 그 내보내기 파일을 테스트넷 브랜치에 푸시합니다. 정적 사이트(static site)는 거기서 데이터를 읽어옵니다. 매 10번째 블록 해시는 OpenTimestamps를 사용하여 Bitcoin으로 타임스탬프가 찍힙니다. 풀에 pull request로 밈을 추가하면 봇이 이를 기록합니다.
Claude가 사용된 방법은? 모든 것이 터미널에서 Claude Code를 이용해 작성되었으며, 저는 검토하고, 테스트하고, 결정하는 과정을 거쳤습니다.
잘 작동했던 점: 먼저 Python 노드를 작성한 다음, 교차 검증 테스트(cross-validation test)를 거쳐 라인별 JS 포트(port)를 요청했습니다. 따라서 모든 후속 변경 사항은 Claude가 Playwright를 사용하여 로컬 페이지에 실행하고 스크린샷을 확인하며 자체 레이아웃을 비평하는 과정을 통과해야 했습니다. 두 번의 디자인 패스는 폐기되었습니다.
서버가 필요 없다는 말을 했을 때, Claude는 Actions-plus-branch 트릭을 제안한 테스트넷:
처음 시도했을 때 작동하지 않은 점: 브라우저 마이너(browser miner)가 배치형 논스 루프(batched nonce loops)로 이동할 때까지 UI를 멈추게 했고, 클램프(clamp)가 추가되기 전까지는 1초짜리 브라우저 체인에서 첫 블록 시간 리타겟팅(block-time retarget)이 심하게 초과되었습니다.
피드백 환영합니다. 특히 합의 규칙(consensus rules)에 대한 의견을 부탁드립니다. 그리고 자체 블록이 마땅한 밈(meme)이 있다면, PR을 열어주세요. /u/regressiveparty 제출 [link] [comments]