중앙 서버 없는 IRC 연합 채팅 Parley, 닉네임 중복 시 엉뚱한 사람에게 가던 멘션 푸시 수정
- Parley는 도메인마다 작은 인스턴스를 돌리는 중앙 서버 없는 채팅망으로, 인스턴스끼리 DNS와 well-known 신원 문서로 서로를 찾고 서명된 메시지를 HTTPS로 주고받으며 Lurker, WeeChat, mIRC 같은 일반 IRC 클라이언트에 플러그인 없이 붙음
- 커밋 52118a9e가 닉네임이 인스턴스마다 겹칠 때 멘션 푸시가 엉뚱한 사람에게 가던 문제를 고침.
bob:bar.com은 어느 인스턴스에서 쓰든 bar.com의 bob으로, 맨bob은 보낸 사람 로컬 인스턴스의 bob으로 읽음 - 다른 인스턴스에서 온 메시지가 맨 닉네임만으로 이쪽 사용자를 지칭하면 더 이상 푸시하지 않도록 동작이 의도적으로 바뀜. 보낸 쪽 클라이언트는 상대에게 정규화된 닉네임을 보여주기 때문임
- 새 통합 테스트
TestOnlyTheBobThatWasMeantIsPushed는 인스턴스 두 개를 bob 하나씩으로 연결해 5개 줄이 각각 의도한 bob에게만 푸시되는지 확인하며, 기존 main에서는 첫 줄에서 실패함 - 저장소는 커밋 192개, 태그 5개, 워처 1명이며, &room은 서버 로컬, #room은 연합 방으로 동작함
Hacker News opinions
중앙 서버가 없는 채팅망임. 도메인마다 작은 인스턴스를 돌리고, 인스턴스끼리 DNS랑 well-known 신원 문서로 서로 찾아서 서명된 메시지를 HTTPS로 주고받음. Lurker나 WeeChat, mIRC 같은 평범한 IRC 클라이언트로 플러그인 없이 붙을 수 있음.
일반 사용자도 자기 인스턴스 안 돌리고 그냥 쓸 수 있는 건가? 아무나 가입하게 해주는 공개 서버가 있어야 할 텐데.
좋긴 한데 스팸이 금방 문제 될 듯. 사용자 단위로도, 인스턴스 통째로도 차단할 수 있다고는 하더라.
몇 주 전부터 딱 이런 걸 생각하고 있었음. 이메일 같은 IM이라고나 할까. 예전에 MSN 안 깔려고 mIRC 봇으로 IM 하던 때가 떠오르네.
그거 이미 있는데. 누가 IETF에 RFC까지 내고 구현도 해놨음. XMPP라고.
XMPP인데 XML 대신 IRC인 셈이지. 근데 실제로는 TCP+XML이 아니라 HTTP+JSON이고 IRC는 그냥 프런트엔드임. 다른 프런트엔드 붙여도 됨.
오픈 링크 네트워크를 왜 안 썼을까. IRC 서버 링크는 스패닝 트리 요구 때문에 엉망이고, RFC에 있는 서버 간 프로토콜은 구현한 서버가 0이라 결국 비공식 프로토콜 중에 골라야 함. 그럴 바엔 용도에 맞게 새로 만드는 게 낫지.
&채널 쓰는 건 재밌는데, IRC 역사의 그 부분을 마주했을 때 봇이나 클라이언트가 얼마나 죽는지 궁금하긴 함.
Slack이랑 같다는 소리도 있는데 Slack은 완전 중앙집권이고 폐쇄적이라 셀프호스팅 자체가 안 됨. 다른 얘기임.
그럼 방이 내 서버가 아는 호스트들 사이에서만 글로벌하다는 거네. 영원한 넷스플릿 파티 같고, 밴은 우리 서버 관리자만 할 수 있고. 밴은 서버별이고, 방은 서버가 꺼져도 없어지지 않음. 방을 소유한 서버가 없으니까.
LLM으로 개발하면 새 프로젝트를 파면서 기존 작업을 안 보게 되는 게 문제임. 이건 XMPP 절반을 형편없이 구현한 수준인데 저장소엔 그 얘기가 전혀 없음.
LLM은 호기심이 없고 과제를 완수하도록 학습돼서, 만들기 전에 조사하거나 의도를 의심하는 단계를 대충 넘김.
대부분의 AI 프로젝트처럼 한 달 뒤엔 작성자 본인도 안 쓸 거라고 봄.
XMPP를 모르는 게 아니라 알고도 IRC를 고른 걸 수도 있음. 나도 IRC에서 컸고, 익숙한 기술에 대한 향수로 만드는 경우가 있음.
XMPP는 20년째 관리가 엉망인 비대한 프로토콜임. 텍스트 메시지 보내는 데 스펙이 왜 이렇게 구현하기 어렵게 되는지 모르겠음.
atproto나 activitypods, 아니면 matrix 위에 올렸으면 계정을 또 만들 필요가 없었을 텐데.
C 런타임 없이 순수 Go SQLite 쓰는 게 스크래치나 distroless 이미지엔 좋은데 다른 장점도 있나?
공개 인스턴스 목록 같은 거 없나? 다시 IRC 좀 해보고 싶음. 평화로웠는데.
서버를 무한정 찍어내면서 라인레이트로 스팸 뿌리는 악성 유저는 어떻게 막을 계획임? 이런 것 때문에 좋은 걸 못 쓰게 되는 거지.