InterPlanetary File System
IPFS(InterPlanetary File System)은 버저닝된 전역 P2P 파일 시스템으로, 오픈 웹에 새로운 데이터와 데이터 구조 전송 프로토콜을 가져오기 위해 기트(Git), 비트토렌트와 HTTP 등 많은 아이디어를 차용했다.
오픈소스는 혁신을 가져올 복잡한 문제를 풀 수 있는 간단한 솔루션을 개발하는 것으로 알려져있 으나, 이러한 강력한 프로젝트는 오픈소스 커뮤니티의 단편적인 모습에 불과하다. IFPS는 대담하거나 어이없고, 심지어 실행이 어려운 아이디어를 증명하는 좀 더 급진적인 그룹에 속하는데, 모든 컴퓨팅 기기를 연결할 방법을 찾는 P2P 분산 파일 시스템이 바로 이 경우에 해당한다. IPFS는 깃 커뮤니티와 현재 100명 이상의 기여자가 있는 IRC 채널을 포함해 다양한 매체를 통해 커뮤니티를 유지한다. 이 '미친' 아이디어는 2015년 알파 테스트로 사용해볼 수 있게 된다.
Web Interface
Projects
Private IPFS
- Building Private IPFS Network with IPFS-Cluster for Data Replication
- Deploy a private IPFS network in 5 steps | by Sander van Laar | Medium
IPFS 설치 및 초기화
먼저 IPFS를 설치하고 초기화합니다. IPFS를 설치하는 방법은 공식 홈페이지(https://ipfs.io/)에서 확인하실 수 있습니다.
Bootstrap 노드 생성
IPFS 네트워크에서는 Bootstrap 노드가 필요합니다. Bootstrap 노드는 다른 노드들이 새로운 피어를 찾을 때 사용하는 초기 노드입니다. Bootstrap 노드를 생성하는 방법은 다음과 같습니다.
위 명령어에서 BOOTSTRAP_NODE_IP와 BOOTSTRAP_NODE_ID를 적절한 값으로 대체하여 실행합니다. 예를 들어, Bootstrap 노드의 IP 주소가 192.168.0.10이고 Peer ID가 QmXXXXXXXXXXXXXXX일 경우에는 다음과 같은 명령어를 실행합니다.
노드 생성 및 초기화
새로운 노드를 생성하고 초기화합니다. 이때, 이전에 생성한 Bootstrap 노드의 IP 주소를 설정해줍니다.
사설 네트워크 설정
새로운 노드에서 다음과 같은 명령어를 실행하여 사설 네트워크를 설정합니다.
여기서 YOUR_NETWORK_ID는 네트워크 식별자를 의미합니다. 이 식별자는 노드들이 같은 사설 네트워크에 속하는지 확인하는데 사용됩니다. 네트워크 식별자는 임의로 지정할 수 있습니다.
노드 실행 및 연결
마지막으로, 각각의 노드를 실행하고 서로 연결합니다. 이때, 사설 네트워크에 속하는 노드들끼리만 연결되도록 설정해야 합니다.
위 명령어에서 노드IP주소와 노드ID를 적절한 값으로 대체하여 실행합니다. 이렇게 하면 노드들끼리 사설 네트워크를 구성할 수 있습니다.
참고로, IPFS는 NAT(Network Address Translation) 환경에서 문제가 발생할 수 있기 때문에 NAT 관련 이슈를 해결해햐 한다.