Skip to content

InterPlanetary File System

IPFS(InterPlanetary File System)은 버저닝된 전역 P2P 파일 시스템으로, 오픈 웹에 새로운 데이터와 데이터 구조 전송 프로토콜을 가져오기 위해 기트(Git), 비트토렌트와 HTTP 등 많은 아이디어를 차용했다.

오픈소스는 혁신을 가져올 복잡한 문제를 풀 수 있는 간단한 솔루션을 개발하는 것으로 알려져있 으나, 이러한 강력한 프로젝트는 오픈소스 커뮤니티의 단편적인 모습에 불과하다. IFPS는 대담하거나 어이없고, 심지어 실행이 어려운 아이디어를 증명하는 좀 더 급진적인 그룹에 속하는데, 모든 컴퓨팅 기기를 연결할 방법을 찾는 P2P 분산 파일 시스템이 바로 이 경우에 해당한다. IPFS는 깃 커뮤니티와 현재 100명 이상의 기여자가 있는 IRC 채널을 포함해 다양한 매체를 통해 커뮤니티를 유지한다. 이 '미친' 아이디어는 2015년 알파 테스트로 사용해볼 수 있게 된다.

Web Interface

Projects

Private IPFS

IPFS 설치 및 초기화

먼저 IPFS를 설치하고 초기화합니다. IPFS를 설치하는 방법은 공식 홈페이지(https://ipfs.io/)에서 확인하실 수 있습니다.

Bootstrap 노드 생성

IPFS 네트워크에서는 Bootstrap 노드가 필요합니다. Bootstrap 노드는 다른 노드들이 새로운 피어를 찾을 때 사용하는 초기 노드입니다. Bootstrap 노드를 생성하는 방법은 다음과 같습니다.

ipfs bootstrap add /ip4/BOOTSTRAP_NODE_IP/tcp/4001/ipfs/BOOTSTRAP_NODE_ID

위 명령어에서 BOOTSTRAP_NODE_IP와 BOOTSTRAP_NODE_ID를 적절한 값으로 대체하여 실행합니다. 예를 들어, Bootstrap 노드의 IP 주소가 192.168.0.10이고 Peer ID가 QmXXXXXXXXXXXXXXX일 경우에는 다음과 같은 명령어를 실행합니다.

ipfs bootstrap add /ip4/192.168.0.10/tcp/4001/ipfs/QmXXXXXXXXXXXXXXX

노드 생성 및 초기화

새로운 노드를 생성하고 초기화합니다. 이때, 이전에 생성한 Bootstrap 노드의 IP 주소를 설정해줍니다.

ipfs init --bootstrap /ip4/BOOTSTRAP_NODE_IP/tcp/4001/ipfs/BOOTSTRAP_NODE_ID

사설 네트워크 설정

새로운 노드에서 다음과 같은 명령어를 실행하여 사설 네트워크를 설정합니다.

ipfs config --json Swarm.PrivateNetworks '["YOUR_NETWORK_ID"]'

여기서 YOUR_NETWORK_ID는 네트워크 식별자를 의미합니다. 이 식별자는 노드들이 같은 사설 네트워크에 속하는지 확인하는데 사용됩니다. 네트워크 식별자는 임의로 지정할 수 있습니다.

노드 실행 및 연결

마지막으로, 각각의 노드를 실행하고 서로 연결합니다. 이때, 사설 네트워크에 속하는 노드들끼리만 연결되도록 설정해야 합니다.

ipfs daemon --enable-pubsub-experiment
ipfs swarm connect /ip4/노드IP주소/tcp/4001/ipfs/노드ID

위 명령어에서 노드IP주소와 노드ID를 적절한 값으로 대체하여 실행합니다. 이렇게 하면 노드들끼리 사설 네트워크를 구성할 수 있습니다.

참고로, IPFS는 NAT(Network Address Translation) 환경에서 문제가 발생할 수 있기 때문에 NAT 관련 이슈를 해결해햐 한다.

See also

Favorite site