- Nomad Network는 가입, 약관, 데이터 제출, 권한 승인자 없이 사용자가 직접 소유·통제하는 비공개 탄력 통신 플랫폼을 만들기 위한 오프그리드 메시 통신 도구임
- 기반은 LXMF와 Reticulum이며, 암호화 메시 네트워크 기능과 P2P 메시지 라우팅을 제공해 패킷 라디오부터 광섬유까지 다양한 통신 매체에서 동작함
- 공용 인터넷, IP, Ethernet 없이도 사용할 수 있고 packet radio, LoRa, serial line 위에서 운용 가능하며, Reticulum 덕분에 300bps 라디오 링크에서도 사용된 사례가 있음
- 기능은 암호화 메시징, 제로 설정 메시 통신, 오프라인 사용자를 위한 분산 암호화 메시지 저장소, 페이지·파일 호스팅 노드, 텍스트 기반 브라우저와 페이지 캐싱을 포함함
- 현재 베타 소프트웨어이며 암호화 모범 사례를 염두에 두고 만들었지만 외부 보안 감사를 받지 않았고 프라이버시를 깨는 버그가 있을 수 있음
Nomad Network가 제공하는 통신 모델
- Nomad Network는 사용자가 완전히 통제하고 소유하는 비공개 탄력 통신 플랫폼을 구축할 수 있게 함
- 가입, 약관 동의, 데이터 제출, 권한 승인자나 게이트키퍼가 필요 없음
- 저장소는 공개 미러이며, 실제 개발은 다른 곳에서 진행 중임
- 그래픽 사용자 인터페이스가 있는 LXMF 클라이언트를 원하면 Linux, Android, macOS용 Sideband를 사용할 수 있음
기반 기술과 네트워크 매체
- Nomad Network는 LXMF와 Reticulum 위에 구축됨
- 두 프로젝트는 Nomad Network가 의존하는 암호화 메시 네트워크 기능과 P2P 메시지 라우팅을 제공함
- 이 기반 덕분에 패킷 라디오부터 광섬유까지 매우 다양한 통신 매체에서 프로그램을 사용할 수 있음
- 공용 인터넷 연결이 없어도 동작하며, IP 또는 Ethernet 네트워크도 필수 조건이 아님
- packet radio, LoRa, serial line만으로 사용할 수 있음
- 필요하면 분리된 네트워크를 인터넷이나 사설 Ethernet으로 브리지할 수 있음
- 완전히 인터넷 위에서 동작하는 네트워크도 만들 수 있음
- Reticulum을 사용하기 때문에 매우 낮은 대역폭 매체에서도 효율적이며, 300bps 라디오 링크에서 성공적으로 사용된 적이 있음
주요 기능
- Reticulum이 지원하는 packet radio, LoRa, WiFi 등에서 암호화 메시징을 제공함
- 제로 설정과 최소 인프라 기반의 메시 통신을 지원함
- 오프라인 사용자를 위해 메시지를 보관하는 분산 암호화 메시지 저장소가 있음
- 연결 가능한 노드는 페이지와 파일을 호스팅할 수 있음
- 노드 측에서 PHP, Python, bash 등으로 페이지를 생성할 수 있음
- 노드의 콘텐츠와 상호작용하기 위한 텍스트 기반 브라우저가 내장됨
- 페이지 작성을 위한 사용하기 쉬운 대역폭 효율적인 마크업 언어를 제공함
- 브라우저에서 페이지 캐싱을 지원함
설치와 실행
pip install nomadnet
nomadnet
nomadnet --daemon
nomadnet --help
- 일반 사용자 패키지 설치를 차단하는 운영체제에서는
~/.config/pip/pip.conf의 [global] 섹션에 다음 설정을 추가해 pip 동작을 되돌릴 수 있음
[global]
break-system-packages = true
- 격리된 환경에 설치하려면
pipx를 사용할 수 있음
pipx install nomadnet
pipx install rns
pipx install lxmf
nomadnet
nomadnet --daemon
nomadnet --help
- 시스템에서 처음으로
pip로 프로그램을 설치한 경우, 실행 명령이 인식되지 않으면 시스템 재부팅 후 다시 시도해야 할 수 있음
- 프로그램을 처음 실행하면 사용을 시작하는 데 필요한 정보를 담은 Guide section이 표시됨
packet radio, LoRa, 테스트넷 사용
- packet radio 또는 LoRa에서 Nomad Network를 사용하려면 Reticulum 설치가 관련 packet radio TNC나 LoRa 장치를 사용하도록 설정돼야 함
- 물리 네트워크를 직접 만들지 않고 시험하려면 인터넷을 통해 Unsigned.io RNS Testnet에 연결할 수 있음
- 테스트넷에는 이미 일부 Nomad Network 및 LXMF 활동이 있음
- 연결 후
nomadnet을 한동안 실행해 페이지나 서비스를 호스팅하는 다른 노드의 announce를 받을 수 있음
- 직접 연결을 시도할 수 있는 테스트넷 노드:
abb3ebcd03cb2388a838e70c001291f9: Dublin Hub Testnet Node
ea6a715f814bdc37e56f80c34da6ad51: Frankfurt Hub Testnet Node
- 아직 알려지지 않은 노드의 페이지를 탐색하려면 프로그램의
Network 섹션에서 Ctrl+U로 URL 대화상자를 열고 주소를 입력한 뒤 Go를 선택하거나 Enter를 누르면 됨
- NomadNet은 요청한 노드를 발견하고 연결하려고 시도함
Android와 Docker
- Android에서는 Termux를 사용해 Nomad Network를 설치할 수 있지만, 일반적인 한 줄 설치보다 명령이 더 필요함
- 네이티브 Android 그래픽 앱이 필요하면 Sideband를 사용할 수 있음
- Nomad Network는 GitHub Packages에 Docker 이미지로 자동 게시됨
- 이미지 태그는 최신 커밋용
master 또는 특정 릴리스 버전 번호 형식임
- 예시 버전 태그는
0.2.0임
docker pull ghcr.io/markqvist/nomadnet:master
docker run -it ghcr.io/markqvist/nomadnet:master --textui
docker run -i ghcr.io/markqvist/nomadnet:master --daemon --console
도구, 확장, 로드맵
- Nomad Network는 유연하고 확장 가능한 플랫폼이며, 커뮤니티 제공 도구와 노드 측 확장이 있음
- 지원 요청, 토론, 아이디어 공유는 Nomad Network discussions pages에서 할 수 있음
- 개발 로드맵의 새 주요 기능에는 네트워크 전체에 전파되는 bulletin과 discussion thread, 협업 지도와 지리공간 정보 공유가 포함됨
- 개선·수정 항목에는 링크 상태 표시, 메뉴 이동 단축키, 노드 공유, 일부 OS의 내부 편집기 문제 수정, 실패 메시지 재시도 메커니즘 등이 포함됨
보안 상태와 주의점
- Nomad Network는 베타 소프트웨어로 간주해야 함
- 암호화 모범 사례를 매우 우선해 만들어졌지만, 외부 보안 감사를 받지 않았음
- 프라이버시를 깨는 버그가 있을 수 있음
- 감사에 도움을 주거나 후원하려면 연락하라는 안내가 있음