# BTFS: 비트토렌트 파일 시스템

> Clean Markdown view of GeekNews topic #14363. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=14363](https://news.hada.io/topic?id=14363)
- GeekNews Markdown: [https://news.hada.io/topic/14363.md](https://news.hada.io/topic/14363.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-04-17T10:01:46+09:00
- Updated: 2024-04-17T10:01:46+09:00
- Original source: [github.com/johang](https://github.com/johang/btfs)
- Points: 3
- Comments: 1

## Topic Body

### BTFS (BitTorrent 파일 시스템)

#### BTFS 개요

- BTFS를 사용하면 **.torrent** 파일이나 **magnet link**를 마운트하여 읽기 전용 디렉토리로 사용 가능
- 애플리케이션에서 파일을 읽을 때 필요한 부분만 다운로드 됨
- **ls**, **cat**, **cp** 등의 일반적인 도구들이 정상 동작함
- **vlc**, **mplayer** 등의 애플리케이션도 수정없이 사용 가능

#### 사용 예제

```
$ mkdir mnt
$ btfs video.torrent mnt
$ cd mnt
$ vlc video.mp4
```

마운트 해제 및 종료:
```
$ fusermount -u mnt
```

#### 설치 방법

##### Debian/Ubuntu
```
# apt-get install btfs
```

##### Arch Linux
```  
# pacman -S btfs
```

##### Gentoo
```
# emerge -av btfs
```

##### Fedora
```
# dnf install fuse-btfs
```

##### Fedora OSTree
```
$ rpm-ostree install fuse-btfs
```

##### OpenSUSE
```
# zypper install btfs 
```

##### macOS
Homebrew를 이용한 설치:
```
$ brew install btfs
```

#### 의존성 패키지 (Linux)
- fuse (Ubuntu 16.04에서는 "fuse") 
- libtorrent (Ubuntu 16.04에서는 "libtorrent-rasterbar8")
- libcurl (Ubuntu 16.04에서는 "libcurl3")

#### 최신 Debian/Ubuntu에서 소스로 빌드하기
```
$ sudo apt-get install autoconf automake libfuse-dev libtorrent-rasterbar-dev libcurl4-openssl-dev g++
$ git clone https://github.com/johang/btfs.git btfs
$ cd btfs
$ autoreconf -i
$ ./configure
$ make
```

설치하려면 추가로:
```
$ make install
```

#### macOS에서 빌드하기

Homebrew로 의존성 패키지 설치:
```
$ brew install Caskroom/cask/osxfuse libtorrent-rasterbar autoconf automake pkg-config
$ git clone https://github.com/johang/btfs.git btfs
$ cd btfs
$ autoreconf -i
$ ./configure 
$ make
```

설치하려면 추가로:
```
$ make install
```

### GN⁺의 의견
- BTFS는 토렌트 파일을 가상의 파일시스템처럼 탐색하고 사용할 수 있게 해주는 흥미로운 프로젝트임
- 주요 OS들에서 쉽게 설치할 수 있는 것이 장점이지만, FUSE 기반이라 성능이 제한적일 수 있음
- 토렌트의 특성상 모든 파일이 로컬에 다 있지 않아도 되므로, 제한된 스토리지를 가진 기기에서 유용할 듯
- 하지만 콘텐츠가 불법 공유된 것일 가능성이 높아 저작권 이슈가 있을 수 있음
- 개인이 제작하고 공유하는 오픈 소스 프로그램이라 안정성이나 보안 측면에서 주의가 필요함

## Comments



### Comment 24489

- Author: neo
- Created: 2024-04-17T10:01:46+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=40047041) 
- 대규모 조직에서 토렌트 파일 빌더, 트래커, 단순 파일 서버 역할을 하는 서버 프로그램이 있다면 방대한 양의 공용 데이터를 저장할 수 있음
- 예전에 한 은행을 위해 Ubuntu NetBoot 기반의 최소 패키지로 구성된 리눅스 배포판을 만들었는데, 지점에 서버가 없어서 자가 시딩이 가능했음. Wake-on-lan과 PXE 설정만 되어 있으면 짧은 시간 내에 수백 개의 복제본을 만들 수 있었음
- 이 도구는 BitTorrent v2의 새로운 기능을 사용하도록 업그레이드되어야 함. 특히 머클 해시 트리는 파일별 해시 트리와 디렉토리 구조를 가능하게 함
- "손상된" 미디어 파일을 복구해 주는 BTFS가 있으면 좋겠음. 예를 들어 미디어 변환 시 디스크에 스크래치가 있거나 코덱 옵션이 좋지 않아 일부가 누락된 경우 손상된 부분을 다운로드하여 원활하게 수정할 수 있음
- 이것은 Internet Archive 콘텐츠에 접근하기에 완벽한 클라이언트임. 각 IA 항목에는 자동으로 IA의 웹 시드가 있는 토렌트가 있음
- 이것이 더 많이 사용되지 않는 이유가 궁금함. BTFS를 오버레이로 사용하여 가상 머신/OS를 구축할 수 있지 않을까? 흥미로운 방향으로 보임
- 또는 전체 텍스트 검색이 인덱싱된 SQLite 파일로 데이터를 저장하는 것이 더 좋음. 그러면 토렌트를 주문형으로 전체 텍스트 검색할 수 있음
