Bitsocial과 ActivityPub
ActivityPub은 Fediverse를 떠받치는 W3C 표준입니다. 사용자는 인스턴스라고 부르는 서버를 골라 그곳에 계정을 두고, 서버들은 서로 게시물을 주고받습니다. Mastodon은 가장 잘 알려진 마이크로블로깅 소프트웨어이고, Lemmy는 주제별 커뮤니티로 이루어진 Reddit 스타일의 링크 모음 겸 포럼이어서 Seedit 같은 Bitsocial 앱과 가장 비슷한 Fediverse 소프트웨어입니다.
ActivityPub의 동작 방식
- 받은편지함과 보낸편지함. 모든 계정에는 받은편지함(inbox)과 보낸편지함(outbox)이 있습니다. 서버는 다른 서버의 받은편지함으로 액티비티를 전달하고, 받는 쪽 서버는 각자 자기 사용자가 팔로우하는 내용의 사본을 저장합니다.
- 서버가 소유하는 신원. 계정과 게시물의 ID는 원본 서버 도메인의 HTTPS 주소입니다. Mastodon
핸들은
@user@domain형식으로 WebFinger를 통해 해석되며, 서버가 사용자를 대신해 연합 메시지에 서명합니다. - 클라이언트. 앱과 브라우저는 사용자 자신의 서버하고만, 그 서버의 API를 통해 통신합니다.
- Lemmy 커뮤니티. 커뮤니티는 하나의 인스턴스에 호스팅되는 그룹 액터입니다. 사용자가 커뮤니티에 게시물을 보내면 커뮤니티가 이를 팔로워에게 다시 퍼뜨립니다. 공통 포럼 표준(FEP-1b12)에 따르면 커뮤니티는 게시물을 먼저 검증할 수 있으며, 모더레이터의 수동 승인까지 둘 수 있습니다.
- 모더레이션. 모더레이션은 서버마다 따로 이루어집니다. 관리자는 계정을 정지하거나, 서버를 통째로 차단하거나, 허용 목록에 있는 서버하고만 연합할 수 있습니다. Lemmy에는 커뮤니티별 모더레이터도 있습니다.
- 스팸 방지. ActivityPub은 스팸 방지 메커니즘을 정의하지 않습니다. Mastodon과 Lemmy는 승인, 초대, 가입 질문, 캡차, 이메일 확인으로 가입을 거르고, 그 뒤로는 속도 제한, 신고, 모더레이션에 의존합니다.
차이점
신원은 도메인에 속한다
Fediverse 계정은 그 서버의 도메인에 속합니다. Mastodon은 팔로워를 새 계정으로 넘길 수 있지만, 게시물은 옮겨지지 않고 이전은 기존 서버에서 시작해야 하며 30일의 대기 기간이 있습니다. Bitsocial에서는 프로필과 커뮤니티가 키페어이므로 호스트나 앱을 바꿔도 신원은 바뀌지 않습니다. 신원 및 커뮤니티 소유권을 참고하세요.
커뮤니티가 어디에 있는가
Lemmy 커뮤니티는 구조적으로 Bitsocial 커뮤니티와 비슷합니다. 게시물은 커뮤니티로 가고, 커뮤니티는 다시 퍼뜨리기 전에 게시물을 확인할 수 있습니다. 차이는 커뮤니티가 어디에 있느냐입니다. Lemmy 커뮤니티는 만든 사람의 홈 인스턴스에서만 만들 수 있고, 인스턴스 관리자가 그 커뮤니티를 완전히 통제하며, 다른 인스턴스로 옮기는 방법은 문서화되어 있지 않습니다. Bitsocial 커뮤니티는 그 자체가 하나의 키페어입니다. 소유자는 어디서든 커뮤니티 노드를 실행할 수 있고, 그 위에 군림하는 서버 관리자는 없습니다.
스팸 방지
Fediverse 서버는 주로 가입 단계에서 스팸을 막고 이후에는 모더레이션으로 대응합니다. Bitsocial 커뮤니티는 모든 게시물을 받아들이기 전에 챌린지를 실행하며, 캡차, 허용 목록, 결제, 그 밖의 어떤 코드든 각 커뮤니티가 직접 고릅니다. 맞춤형 스팸 방지 챌린지를 참고하세요.
인프라 운영
인스턴스를 운영하려면 도메인, TLS, 이메일을 갖춘 상시 가동 서버가 있어야 합니다. Mastodon은 여기에
PostgreSQL, Redis, 백그라운드 워커도 필요합니다. Lemmy는 더 가벼워서, 프로젝트 자체 수치로 RAM이 약
150MB입니다. 각 인스턴스는 자기 사용자가 팔로우하는 원격 콘텐츠의 사본을 저장합니다. Bitsocial
커뮤니티 노드는 도메인도 인증서도 필요 없으며, 데스크톱 앱이나 bitsocial-cli에서 실행됩니다.
서버가 대가로 주는 것
Fediverse 서버는 전체 기록을 보관하고 안정적으로 제공하며, Mastodon에는 수년간 다듬어진 성숙한 모더레이션 도구가 있습니다. Bitsocial은 오래된 콘텐츠를 영구히 보장하지 않으며, 모더레이션 도구는 각 앱에 들어 있습니다.
비교
| 질문 | ActivityPub (Mastodon, Lemmy) | Bitsocial |
|---|---|---|
| 분류 | 연합 서버 | P2P 커뮤니티 네트워크 |
| 신원 | 서버 도메인의 계정, 서명은 서버가 수행 | 사용자와 커뮤니티를 위한 Ed25519 키페어 |
| 게시물 저장 위치 | 원본 서버와, 팔로우하는 모든 서버에 있는 사본 | 커뮤니티 소유자의 노드와, 그 커뮤니티를 읽고 시드하는 피어 |
| 온라인 유지 주체 | 인스턴스 관리자 | 커뮤니티 소유자 노드와 보조 시더 |
| 커뮤니티 | 하나의 인스턴스에 호스팅되는 Lemmy 커뮤니티 | 자체 노드가 게시물을 수락하거나 거부하는 일급 객체 |
| 스팸 방지 | 가입 관문, 속도 제한, 신고, 모더레이션 | 게시물이 받아들여지기 전에 거치는 커뮤니티별 챌린지 |
| 모더레이션 | 서버 관리자와 커뮤니티 모더레이터, 서버별로 독립 | 커뮤니티 소유자가 자기 커뮤니티를 모더레이션하고, 무엇을 보여줄지는 앱이 선택 |
| 이름 | @user@domain 및 !community@domain 핸들 | 키로 해석되는 .bso 및 .eth 이름 |
| 브라우저 | 사용자 자신의 서버의 클라이언트 | 일반 브라우저 탭 안에서 동작하는 P2P 노드 |
| 주요 절충 | 안정적인 기록과 성숙한 모더레이션, 그러나 신원과 커뮤니티가 서버에 속함 | 서버나 도메인이 필요 없지만 오래된 콘텐츠가 영구히 보장되지는 않음 |