행성간 파일 시스템(IPFS)이란 무엇이며 어떻게 사용합니까?

게시 됨: 2022-06-25
웹에 연결된 "인간" 기호가 있는 여러 육각형 타일.
Andrii Yalanskyi / Shutterstock

IPFS(Interplanetary File System)는 분산된 P2P 파일 공유 네트워크로 새로운 분산 웹의 토대가 될 수 있는 위치에 있습니다. 작동 방식과 사용 방법은 다음과 같습니다.

목차

분산 인터넷
IPFS 작동 방식
데이터 저장 방법
IPFS를 설치하는 방법
웹 인터페이스
IPFS 데스크탑 클라이언트
다음은 무엇입니까?

분산 인터넷

비록 그것이 글로벌하긴 하지만 월드 와이드 웹은 여전히 ​​중앙 집중식 네트워크입니다. 인터넷 뒤에 있는 데이터 저장소는 주로 대규모 서버 팜 또는 클라우드 플랫폼의 물리적 또는 가상 서버입니다. 이러한 시설은 단일 회사가 소유하고 있습니다. 서버는 다른 회사가 소유하거나 임대하며 외부 세계에 액세스할 수 있도록 구성 및 노출됩니다.

HTTPS란 무엇이며 왜 주의해야 합니까?
관련 HTTPS란 무엇이며 왜 주의해야 합니까?

해당 서버의 정보에 액세스하려는 사람은 브라우저에서 적절한 서버로 HTTPS 연결을 설정해야 합니다. 서버는 중앙에 있으며 보유하고 있는 데이터에 대한 액세스에 대한 모든 요청을 처리합니다.

이것은 물론 단순화이지만 일반적인 모델을 설명합니다. 확장을 허용하고 견고성을 제공하기 위해 조직은 미러 서버와 콘텐츠 전송 네트워크를 사용할 수 있습니다. 그러나 그때에도 사람들이 해당 파일에 액세스하기 위해 갈 수 있는 위치는 상대적으로 작고 유한합니다.

IPFS는 분산 네트워크의 구현입니다. 가장 인기 있는 분산 시스템 중 하나는 버전 제어 소프트웨어인 Git입니다. Git은 저장소를 복제한 모든 개발자가 자신의 컴퓨터에 기록을 포함하여 전체 저장소의 복사본을 가지고 있기 때문에 분산 시스템입니다. 중앙 리포지토리가 지워지면 리포지토리의 모든 복사본을 사용하여 복원할 수 있습니다. IPFS는 이러한 분산 개념을 파일 저장 및 데이터 검색에 적용합니다.

IPFS는 Juan Benet이 만들고 그가 설립한 Protocol Labs에서 관리합니다. 그들은 Git의 분산된 특성과 급류의 분산된 대역폭 절약 기술을 사용하여 IPFS 네트워크의 모든 노드에서 작동하는 파일링 시스템을 만들었습니다. 그리고 지금 여기에서 작동하고 있습니다.

IPFS 작동 방식

IPFS 분산 웹은 노드 라고 하는 연결된 모든 컴퓨터로 구성됩니다. 노드는 데이터를 저장하고 데이터를 요청하는 모든 사람이 액세스할 수 있도록 할 수 있습니다.

누군가 파일이나 웹 페이지를 요청하면 파일 사본이 노드에 캐시됩니다. 점점 더 많은 사람들이 해당 데이터를 요청함에 따라 더 많은 캐시 복사본이 존재하게 됩니다. 해당 파일에 대한 후속 요청은 파일이 있는 모든 노드 또는 노드 조합에 의해 수행될 수 있습니다. 데이터를 전달하고 요청을 이행하는 부담은 점차 많은 노드에서 분담됩니다.

이것은 새로운 유형의 웹 주소를 요구합니다. 데이터의 위치를 ​​알고 해당 데이터에 대한 특정 URL을 제공해야 하는 주소 기반 라우팅 대신, 분산 웹은 콘텐츠 기반 라우팅을 사용합니다.

초보자를 위한 BitTorrent: 토렌트 다운로드를 시작하는 방법
관련 초보자를 위한 BitTorrent: 토렌트 다운로드를 시작하는 방법

데이터가 어디에 있는지 말하지 않습니다. 당신이 원하는 것을 요청하면 그것은 당신을 위해 찾아져 검색됩니다. 데이터가 여러 컴퓨터에 저장되어 있기 때문에 모든 컴퓨터에서 토렌트 다운로드와 같이 데이터의 일부를 컴퓨터에 한 번에 공급할 수 있습니다. 이는 대기 시간을 줄이고 대역폭을 줄이며 단일 중앙 서버로 인한 병목 현상을 방지하기 위한 것입니다.

중앙 집중식 모델에서 벗어나면 해커가 공격할 초점이 없습니다. 그러나 대부분의 사람들이 당면한 관심사는 파일, 이미지 및 기타 미디어가 다른 사람의 컴퓨터에 저장된다는 생각일 것입니다.

별로 그렇지 않습니다. IPFS는 연결하고 업로드하는 대상이 아닙니다. 분산된 공용 Dropbox가 아닙니다. 노드를 호스팅하거나 클라우드 서비스에서 호스팅하는 전문적으로 프로비저닝된 노드를 사용하기 위해 비용을 지불하여 참여하는 것입니다. 그리고 공유하거나 게시하기로 선택하지 않는 한 다른 사람이 액세스할 수 없습니다. 사실, "업로드"라는 용어는 오해의 소지가 있습니다. 실제로 하고 있는 일은 파일을 자신의 노드로 가져오는 것입니다.

암호화란 무엇이며 어떻게 작동합니까?
관련 암호화란 무엇이며 어떻게 작동합니까?

다른 사람이 파일에 액세스할 수 있도록 하고 콘텐츠를 일부만 선택하도록 제한해야 하는 경우 가져오기 전에 암호화해야 합니다. 데이터 전송은 양방향으로 암호화되지만 가져온 파일은 기본적으로 의도적으로 암호화되지 않습니다. 따라서 암호화 기술의 선택은 귀하에게 달려 있습니다. IPFS는 파일 저장소 암호화 형식을 "공식" 암호화로 푸시하지 않습니다.

데이터 저장 방법

데이터는 IPFS 개체라고 하는 256KB 청크에 저장됩니다. 그보다 큰 파일은 파일을 수용하는 데 필요한 만큼의 IPFS 개체로 분할됩니다. 파일당 하나의 IPFS 개체에는 해당 파일을 구성하는 다른 모든 IPFS 개체에 대한 링크가 포함되어 있습니다.

체크섬이란 무엇이며 왜 주의해야 합니까?
관련 체크섬이란 무엇이며 왜 주의해야 합니까?

파일이 IPFS 네트워크에 추가되면 콘텐츠 ID 또는 CID라고 하는 고유한 24자 해시 ID가 제공됩니다. 이것이 IPFS 네트워크 내에서 식별되고 참조되는 방법입니다. 파일을 검색할 때 해시를 다시 계산하면 파일의 무결성이 확인됩니다. 검사에 실패하면 파일이 수정된 것입니다. 파일이 합법적으로 업데이트되면 IPFS가 파일 버전 관리 를 처리합니다. 즉, 파일의 새 버전이 이전 버전과 함께 저장됩니다. IPFS는 분산 파일 시스템처럼 작동하며 이러한 버전 관리 개념은 해당 파일 시스템에 어느 정도의 불변성을 제공합니다.

노드의 IPFS에 파일을 저장하고 Dave라는 누군가가 파일을 요청하고 해당 노드로 다운로드한다고 가정해 보겠습니다. 그 파일을 요청하는 다음 사람은 당신이나 Dave로부터, 또는 파일의 일부가 당신의 노드와 Dave의 노드에서 오는 토렌트와 같은 방식으로 파일을 얻을 수 있습니다. 더 많은 사람들이 파일을 다운로드할수록 더 많은 노드가 추가되어 후속 파일 요청에 도움이 됩니다.

가비지 수집은 캐시된 IPFS 개체를 주기적으로 제거합니다. 파일을 영구적으로 저장하려면 노드에 고정 할 수 있습니다. 즉, 가비지 수집 중에 정리되지 않습니다. 데이터를 IPFS 네트워크에 노출하고 영구적으로 고정한 상태로 유지하는 클라우드 스토리지 제공업체의 스토리지에 대해 비용을 지불할 수 있으며 IPFS에 액세스할 수 있는 호스팅 웹사이트에 특별히 맞춤화된 서비스가 있습니다.

웹사이트의 무언가가 입소문을 타고 웹사이트로 엄청난 양의 트래픽을 유발하는 경우 해당 페이지를 검색하는 모든 노드에 페이지가 캐시됩니다. 이러한 캐시된 페이지는 추가 페이지 요청을 처리하고 수요를 충족하는 데 도움이 되는 데 사용됩니다.

물론 이 모든 것은 충분한 수의 노드가 켜져 있고 사용 가능하며 고정 및 캐시된 데이터가 충분해야 합니다. 그리고 그것은 참가자를 필요로 합니다.

IPFS를 설치하는 방법

Windows 사용자는 IPFS 릴리스 페이지에 있는 EXE 파일을 다운로드하여 실행할 수 있습니다. Mac을 사용하는 경우 DMG 파일을 다운로드하고 평소와 같이 응용 프로그램으로 끌어옵니다. 문제가 발생하면 공식 문서를 확인하십시오.

데모 목적으로 Ubuntu에 설치하는 과정을 살펴보겠습니다. 모든 Linux 배포판의 IPFS 및 IPFS 데스크톱 클라이언트에 사용할 수 있는 Snap 패키지가 있습니다. IPFS를 설치하기만 하면 브라우저를 사용하여 제어하고 관리할 수 있는 완전히 작동하는 IPFS 노드를 갖게 됩니다. 데스크톱 클라이언트를 설치하면 브라우저를 사용할 필요가 없으며 클라이언트는 동일한 기능을 모두 제공합니다.

Snaps를 설치하려면 다음을 사용하십시오.

 sudo 스냅 설치 ipfs 

핵심 IPFS 스냅 설치

 sudo 스냅 설치 ipfs-desktop 

IPFS 데스크탑 클라이언트 스냅 설치

이제 노드를 초기화하는 명령을 실행해야 합니다.

 ipfs 초기화 

IPFS 노드 초기화

다음 명령은 어려움이 있고 데몬이 실행되지 않거나 연결할 수 없는 경우 IPFS에서 제안합니다. 우리가 시도한 모든 테스트 컴퓨터에서 다음이 필요하므로 지금 바로 발급하는 것이 좋습니다.

 ipfs 구성 --json API.HTTPHeaders.Access-Control-Allow-Origin '["webui://-", "http://localhost:3000", "http://127.0.0.1:5001", "https //webui.ipfs.io"]' 

IPFS에서 교차 출처 요청 구성

 ipfs 구성 --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]' 

IPFS에서 액세스 방법 구성

 sudo sysctl -w net.core.rmem_max=2500000 

네트워크 버퍼 크기 조정

그것들을 제거하면 IPFS 데몬을 시작할 수 있습니다.

 ipfs 데몬 

IPFS 데몬 시작

데몬이 시작되면 연결하는 데 사용할 수 있는 두 개의 주소를 보고합니다. 하나는 IPFS 데스크탑용이고 다른 하나는 IPFS "webui" 또는 웹 사용자 인터페이스용입니다.

IPFS 데몬 연결 주소

웹 인터페이스

webui 주소 http://127.0.0.1:5001/webui 를 브라우저에 붙여넣어 IPFS 웹 프런트 엔드에 연결합니다.

기본 페이지는 "상태" 화면입니다. 노드의 상태와 활동을 보여주는 대시보드입니다. 호스팅하는 파일의 크기와 노드가 호스팅하는 캐시된 IPFS 개체의 총 크기를 보여줍니다. 이것은 IPFS 네트워크의 다른 곳에서 가져온 데이터입니다. 또한 대시보드에는 인바운드 및 아웃바운드 IPFS 트래픽을 보여주는 두 개의 실시간 게이지와 해당 트래픽의 기록을 보여주는 실시간 그래프가 표시됩니다.

IPFS webui 상태 화면

다른 화면으로 변경하려면 왼쪽 사이드바에 있는 아이콘 중 하나를 클릭하십시오. "파일" 화면에서 IPFS로 가져온 파일을 볼 수 있습니다. 파란색 "가져오기" 버튼을 사용하여 컴퓨터에서 IPFS로 가져오려는 파일이나 폴더를 검색할 수 있습니다.

IPFS webui 파일 화면

IPFS는 Merkle 트리를 사용합니다. 이들은 1979년 Ralph Merkle가 발명한 매우 효율적인 바이너리 해시 트리의 상위 집합입니다. 나무가 많으면 숲이 있습니다. "탐색" 아이콘은 IPFS와 머클 포리스트에 저장된 다양한 유형의 정보를 탐색할 수 있는 화면을 엽니다.

IPFS webui 파일 화면

잘 알려진 XKCD 웹사이트의 만화 아카이브가 있습니다. 해당 옵션을 클릭하고 만화를 선택하면 선택한 만화가 IPFS를 통해 전달됩니다.

IPFS를 통해 제공되는 XKCD 만화

"피어" 아이콘은 전 세계에서 IPFS 연결이 있는 위치를 표시하는 세계 지도를 엽니다.

IPFS webui 피어 화면

몇 분 안에 호주, 벨로루시, 벨기에, 캐나다, 중국, 핀란드, 프랑스, ​​독일, 일본, 말레이시아, 네덜란드, 노르웨이, 폴란드, 포르투갈, 루마니아, 러시아, 싱가포르, 한국, 스웨덴, 대만, 터키, 영국, 그리고 물론 미국.

필요한 경우 IPFS가 전 세계적인 화제를 불러일으켰다는 긍정적인 증거입니다. 물론 사용 가능한 모든 노드에 연결하지는 않습니다. 비효율적입니다.

IPFS 데스크탑 클라이언트

시스템의 응용 프로그램 실행기에서 IPFS 데스크탑을 찾으십시오. 그놈에서 IPFS 데몬 이 중지 된 상태에서 "Super" 키를 누르고 "ipfs"를 입력합니다. 파란색 IPFS 큐브 아이콘이 표시됩니다.

이 아이콘을 클릭하면 데스크탑 클라이언트가 시작됩니다. 데몬 자체를 시작합니다.

데스크톱 클라이언트의 모양과 기능은 웹 인터페이스와 완전히 동일하지만 이번에는 독립 실행형 애플리케이션으로 실행됩니다.

IPFS 데스크탑 클라이언트

애플리케이션이 제공하는 추가 기능 중 하나는 알림 영역의 앱 표시기입니다.

이를 통해 옵션 메뉴와 노드 상태에 대한 신호등 표시기에 빠르게 액세스할 수 있습니다. 표시등은 정상 실행 중인 경우 녹색, 오류 시 빨간색, 시작 중인 경우 노란색입니다.

IPFS 앱 표시기 메뉴

다음은 무엇입니까?

기존의 중앙 집중식 웹을 갑자기 대체할 수는 없지만 시간이 지남에 따라 상황이 발전할 것입니다. 아마도 IPFS는 그것이 어떻게 발전할 것인지를 엿볼 수 있습니다.