Rotifer v0.9.0: Open Mesh — 당신의 첫 번째 P2P gene node
요약
Rotifer v0.9.0은 libp2p를 내장하여 중앙 서버 없이 기기 간 직접적인 P2P 통신을 지원하는 오픈 메쉬 네트워크를 제공합니다. Kademlia와 GossipSub를 활용해 유전자(gene) 메타데이터를 탈중앙화 방식으로 교환하며 실험적인 네트워크 레이어를 구축합니다.
핵심 포인트
- libp2p 기반의 탈중앙화 P2P 노드 기능 도입
- 중앙 서버 없는 직접적인 gene announcement 교환 가능
- Kademlia 및 GossipSub를 통한 피어 발견 및 전파 처리
- 바이너리가 아닌 메타데이터 우선 전송 방식 채택
v0.9.0은 rotifer CLI에 내장된 libp2p 노드를 제공합니다. 이제 동일한 LAN 상의 두 기기가 중앙 서버 없이 직접 gene announcement(유전자 공고)를 교환할 수 있습니다. libp2p가 전송(transport)을 처리하고, Kademlia가 피어 발견(peer discovery)을 담당하며, GossipSub가 전파(propagation)를 처리합니다.
이것은 Rotifer 네트워크 레이어의 첫 번째 실행 가능한 버전입니다. 의도적으로 작게 설계되었으며 실험적(experimental) 단계로 표시되어 있습니다. 이 포스트는 이것이 현재 무엇을 할 수 있고 무엇을 할 수 없는지에 대해 정확하게 기술합니다. 탈중앙화 네트워크의 신뢰성은 바로 이러한 정밀함에서 성장합니다.
@rotifer/playground는 현재 v0.9.0이며, @rotifer/mcp-server는 v0.9.1로 별도의 라인을 따릅니다. 둘 다 npm에 있습니다.
실제 P2P 노드 — 당신의 기기에서
이것이 중앙 집중식이 아닌 이유
Rotifer의 전제는 능력이 진화한다는 것입니다. gene(유전자)은 적합도(fitness)를 두고 경쟁하며, 더 나은 것들이 퍼져 나갑니다. 이 프로세스는 실행될 기질(substrate)이 필요합니다. 중앙 레지스트리(central registry)가 이를 호스팅할 수 있지만, 레지스트리는 통제의 단일 지점이자 장애의 단일 지점(single point of failure)이기도 합니다. 즉, 이를 운영하는 사람이 무엇이 전파될지 결정하고 이를 중단시킬 수 있습니다. 피어 투 피어(peer-to-peer) 레이어는 이러한 병목 지점을 제거합니다. 노드들이 직접 공고를 교환하므로, 특정 운영자가 먼저 승인하지 않아도 gene이 퍼질 수 있습니다. 이 메커니즘은 중앙 디스패처가 작업을 배분하는 방식보다는 생물학의 수평적 유전자 이동(horizontal gene transfer)에 더 가깝습니다.
실행하기
CLI는 이제 실제 libp2p 노드를 내장합니다. 기기 A에서:
rotifer network start --host 0.0.0.0 --port 9878
rotifer network status # /ip4/192.168.x.x/tcp/9878 라인을 복사하세요
동일한 Wi-Fi에 있는 기기 B에서, --bootstrap을 A의 주소로 지정하세요:
rotifer network start --host 0.0.0.0 --port 9878 \
--bootstrap /ip4/192.168.x.x/tcp/9878
rotifer network peers # 1~2초 내에 A가 나타납니다
A에서 gene을 공고하면, B가 이를 수신합니다:
rotifer network announce hello-world # A에서 실행
rotifer network received # B에서 실행
왜 메타데이터가 우선인가
공지(announcement)는 유전자 바이너리(gene binary)가 아니라, 유전자가 무엇인지 그리고 누가 그것을 가지고 있는지에 대한 메타데이터(metadata)를 전달합니다. 이것이 이후의 모든 기능이 구축될 발견 계층(discovery layer)입니다. 유전자를 먼저 공지 형태로 흐르게 하면, 실제 코드를 가져오고(pulling), 점수를 매기며(scoring), 승자를 전파(propagating)하는 모든 과정이 처음부터 다시 작성해야 하는 작업이 아니라 작동하는 기반 위에서의 점진적인 단계가 됩니다. 전송(transport)의 가장 작고 정직한 조각을 먼저 출시하는 것이 다음 단계들을 실행 가능하게 만듭니다.
또한 이는 정직한 경계를 설정합니다. 현재는 메타데이터만 이동하기 때문에, 수신 노드(receiving node)는 유전자가 존재한다는 사실은 알게 되지만 아직 그 코드를 가져오거나 검증할 수는 없습니다. 바이너리를 가져오고 이를 증명(attesting)하는 것은 의도적으로 분리된 이후의 계층입니다. 우리는 이 경계를 모호하게 만들기보다 명확하게 한계를 설정하여 출시하고자 합니다.
v0.9가 경로 상에서 위치하는 곳
정확히 말하자면, 진화하는 에이전트(agents)들의 자율적인 네트워크가 Rotifer의 목표이며, v0.9가 출시하는 것은 그 목표로 가는 길의 첫 번째 전송(transport) 조각입니다. 현재는 실험적이며 의도적으로 작게 설계되었습니다: 동일한 LAN 상의 두 대 이상의 머신, 수동 --bootstrap, 메타데이터 전용(유전자 바이너리가 아닌 공지). 아직 스스로 피어(peers)를 발견할 수 없고, 인터넷을 통해 연결될 수 없으며, 노드 간의 적합도 기반 교환(fitness-driven exchange)도 없습니다. 이것들은 이후의 이정표입니다. 우리는 우리가 도착했다고 주장하는 것이 아니라, 경로 상의 현재 위치를 표시하고 있는 것입니다.
v0.9 경제적 기반
Open Mesh는 v0.9 경제 작업과 함께 출시됩니다: 평판 역학(reputation dynamics), 자동화된 시즌 리셋, 그리고 적합도/가중치(fitness/weight) 표시입니다. 유전자는 시간이 지남에 따라 지위(standing)를 쌓으며, 여러분이 보는 수치는 가공되지 않은 적합도(raw fitness)와 획득한 평판(earned reputation)을 모두 반영합니다. 적합도는 유전자가 자신의 작업에서 얼마나 잘 수행하는지를 측정하며, 평판은 여러 실행과 시즌에 걸쳐 얼마나 잘 유지되었는지를 측정합니다. 이 두 가지를 나란히 보이게 유지함으로써, 단 한 번의 운 좋은 점수가 마치 지속적인 실적(track record)인 것처럼 위장할 수 없도록 합니다.
시즌 리셋(season reset)은 구체적인 이유가 있어 존재합니다. 리셋되지 않는 리더보드는 실력(merit)보다 연차(age)에 보상을 줍니다. 즉, 초기 유전자(genes)들이 더 뛰어나서가 아니라 관성(inertia)에 의해 그 자리를 유지하게 됩니다. 정기적인 리셋은 아레나(Arena)의 경쟁력을 유지합니다. 오늘 발표된 더 강력한 유전자가 단순히 먼저 도착한 유전자를 추월할 수 있게 합니다.
하이브리드 충실도 유전자 (Hybrid Fidelity genes)
이제 유전자는 외부 의존성(external dependencies), 성능 저하 동작(degradation behaviour), 그리고 시뮬레이션 사양(simulation spec) 등 자신에 대해 더 많은 것을 선언할 수 있습니다. 실제로 이는 유전자가 환경을 사용할 수 없을 때, 조용히 실패(failing silently)하는 대신 어떻게 동작할지를 명시함을 의미합니다.
외부 API를 호출하는 유전자를 예로 들어보겠습니다. 선언된 성능 저하 사양(degradation spec)이 있다면, 해당 API가 다운되었을 때 런타임(runtime)에 무엇을 할지(캐시된 결과 반환, 우아한 성능 저하(degrade gracefully), 또는 명시적 실패(fail loudly))를 알려줍니다. 이를 통해 동작은 호출자가 추론할 수 없는 환경적 사고가 아니라, 유전자의 계약(contract)의 일부가 됩니다.
rotifer doctor
툴체인(toolchain)을 위한 새로운 상태 점검(health check) 기능입니다:
rotifer doctor
빌드하기 전에 누락되었거나 잘못 구성된 의존성을 표시하므로, 망가진 환경이 혼란스러운 컴파일 에러 대신 명확한 보고서로 나타납니다. 가장 흔한 첫 실행 실패 사례는 네이티브 빌드 누락, 오래된 캐시(stale cache), 잘못된 Node 버전과 같이 설정이 절반만 완료된 툴체인입니다. rotifer doctor는 이러한 문제들을 난해한 스택 트레이스(stack trace)에서 실행 가능한 체크리스트로 바꿔줍니다.
이번 릴리스에서는 OAuth 로그인 콜백(callback) 문제도 수정되었습니다. 이제 로컬 포트에 안정적으로 바인딩되어, rotifer login 시 발생하던 간헐적인 타임아웃 현상이 더 이상 발생하지 않습니다.
다음 단계
여기서부터 네트워크 레이어(network layer)는 세 가지 방향으로 성장합니다:
- 자동 발견 (Automatic discovery) — 노드들이 수동적인
--bootstrap없이 서로를 찾습니다. - 인터넷 도달 범위 (Internet reach) — NAT 트래버설(NAT traversal) 및 릴레이(relays)를 통해, 노드가 동일한 LAN뿐만 아니라 어떤 홈 네트워크에서도 참여할 수 있습니다.
- 적합도 기반 교환 (Fitness-driven exchange) — 유전자들이 단순한 공지(announcements)가 아니라, 실력(merit)에 따라 노드 간에 전파됩니다.
각 항목은 v0.9가 구축한 전송(transport) 계층을 기반으로 합니다.
설치 / 업그레이드
설치 / 업그레이드
npm install -g @rotifer/playground@latest
MCP Server 사용자의 경우:
npm install -g @rotifer/mcp-server@latest
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기