AT Protocol 기반 분산 코드 포지 Tangled, bobbin 인덱서 11개 리전 배포와 knot2 Rust 재작성 공개
- AT Protocol 기반 분산 코드 포지 Tangled가 새 아키텍처를 공개함. Svelte 프런트엔드를 엣지에 배포하고, 디스크 없이 메모리에서만 돌아가는 Rust 인덱서 bobbin을 11개 이상 리전에 띄워 읽기 전용 AT Protocol 데이터를 처리함.
- 이슈, PR, 코멘트, 리액션, 라벨은 이제 knot 서버의 저장소 안에 COB(collaborative object)로 저장됨. COB는 저장소 자체의 Git 객체 체인이고, 수정할 때마다 사용자 PDS에
org.tangled.graph.attestation레코드를 써서 어느 버전에 대한 변경인지 양방향으로 검증함. - Organization 계정은 자체 DID와 핸들을 가진 실제 AT Protocol 계정이며 비밀번호 없이 위임된 형태로 동작함. 소유자가 멤버를 초대하고 조직 소속이면 누구나 조직 자격으로 저장소를 만들거나 포크할 수 있음.
- 레코드 스키마는
sh.tangled.*에서org.tangled.*로 전면 교체됐고 셀프호스팅 사용자는 knot를 v1.20.0으로 올려야 함. knot2는 커스텀 Git 서버와 SSH 서버를 한 바이너리에 묶은 Rust 재작성판임. - Hacker News에서 332점, 댓글 86개를 기록함. 창업자는 lexicons 안정화와 아키텍처, UI 전면 개편, 조직 지원, 몇 주 내 비공개 저장소 지원을 언급하며 질문을 받음.
Hacker News 의견들
Tangled 공동창업자인데 이번 런치 정말 기대하고 있음. lexicons 안정화하고 아키텍처랑 UI 전면 갈아엎었고, 전체 스택이든 일부든 셀프호스팅 쉽게 만들었음. 조직 지원도 나갔고 비공개 저장소는 몇 주 안에 나옴. 질문 뭐든 받음.
나는 프로젝트 대부분 자체 Forgejo로 옮겼는데, 등록 안 시키고 외부인이 PR 보내게 하는 게 안 돼서 아쉬웠음. Tangled 서버 하나 띄워놓으면 모르는 사람이 이슈나 PR 보내려면 뭘 해야 하는 거임?
써보려고 블루스카이 계정 만들었는데 자동화가 바로 밴 먹였음. 이의제기했는데 답이 없었음.
knot에 http(s) 지원 계획 있음? 집에서 돌리고 싶은데 집 IP 노출은 싫어서 cloudflared 쓰고 있음.
처음 런치 때도 knot 돌리는 건 꽤 쉬웠는데 지금은 뭐가 달라진 거임? 아직 셀프호스팅이 안 쉬운 부분이 있으면 뭔지 궁금함.
CI/CD가 제일 궁금함. Spindle이 뭘 하는 놈이고 Dagger나 Drone 같은 걸 붙인 사례가 있는지. 예제 저장소 있으면 알려줘.
forgefed.org는 어떻게 생각함?
knot 셀프호스팅 고민 중인데 비즈니스 모델이 웹사이트엔 안 보임. 좀 알려줄 수 있음?
사이드 프로젝트를 자체 Gitea에 두고 GitHub에 미러링해뒀는데 Tangled로 옮기고 싶음. 근데 Neovim 새로 깔면서 플러그인 하나가 Tangled에 있어서 설치가 안 됐음. backing knot이 죽은 건지 사이트에선 알 수가 없었고 패키지 매니저는 매 세션마다 에러만 뱉었음.
그 문제는 어느 패키지 매니저에나 있음. 우리는 모든 git 저장소 미러를 인프라에 두고 backing knot이 죽으면 거기서 서빙함. proxy.golang.org처럼 해시 확인하고 당겨 쓰면 됨.
ActivityPub은 인스턴스가 죽으면 다른 인스턴스에서 찾을 수라도 있는데 ATProto는 그런 게 없어 보임. 대신 누구나 데이터를 독립적으로 인덱싱할 수 있어서 메시지를 안 놓침. 트레이드오프가 다름.
셀프호스팅하면 비공개 저장소도 됨?
지금은 안 됨. 데이터 모델이 ATProto 기반이라 일단 전부 공개라는 전제고, 접근 제어 데이터를 얹는 작업이 진행 중임.
SHA256 지원은 언제 함? SHA256 저장소가 있는데 히스토리 다시 쓰기 싫음. Git 3도 SHA256으로 가잖음.
이미 지원함. 셀프호스팅 knot는 기본이 sha256임.
분산 시스템이라면서 중앙 인프라 확장 문제를 이렇게 많이 얘기하는 게 이상함. ATProto는 이런 앱에 완전히 안 맞는 프로토콜 같음.
소셜 요소에는 ATProto가 맞는 선택이라고 봄.
이상한데? 이번 릴리스 요점이 원하는 부분만 셀프호스팅하거나 연합하게 만드는 거 아니었음?
업데이트 후 코드 리뷰 UI는 GitHub에 비하면 훨씬 나아졌는데 코멘트 섹션에 Comment 버튼이 없는 건 이해가 안 감. Shift-Enter가 제출이라 사람들이 모르고 PR 닫고 있을 듯. 알림까지 가는 동작이면 버튼이 맞지.
lexicon 확정됐다는데 이슈랑 PR, 코멘트 레코드가 유저 스코프에서 저장소 스코프로 옮겨진 것도 포함됨? 그걸 기다리고 있었음. juju.bi라는 포지를 Tangled과 호환되게 만들어서 knot 서버처럼 굴리고 싶음.