페이지상단으로이동

IPFS와 함께 파일코인 사용하기

    • 장제윤 기자
    • |
    • 입력 2021-09-17 14:35
    • |
    • 수정 2021-09-17 14:35
▲IPFS와 함께 파일코인 사용하기

브라우저 3000(Browsers 3000)은 프로토콜 랩스가 주최하며 웹3 브라우저의 미래를 구축을 위해 분산 솔루션 개발에 중점을 두어 5주간 개최되는 해커톤이다. 지미 “케이크” 리가 표준 웹 브라우저를 통한 파일코일을 활용하기 위해서 텍스타일 라이브러리(Textile Library) 및 에스츄어리(Estuary)를 실행하는 방법에 관련하여 설명한 간략한 요약본은 아래에 기술됐다. 전체의 강연을 보려면 여기를 클릭하면 된다.

웹 브라우저가 웹3의 사용으로 조금씩 옮겨가고 있는 현재 분산 파일 스토리지에 대한 필요성은 더 분명해지고 있다. 그러나 IPFS와 같은 분산 스토리지 프로토콜에 대한 액세스와 마찬가지로 브라우저 플러그인은 더욱 제한되고 있는 실정이다. 표준 웹 브라우저가 항상 IPFS를 기본적으로 잘 활용할 수 있는 것은 아니다. 결과적으로 이러한 스토리지 시스템을 사용하여 앱을 개발하려고 하는 개발자를 돕기 위해서는 중간 매개체가 필요하다.

에스츄어리는 웹3를 코딩하는 많은 개발자들이 찾는 솔루션이다. 본질적으로 에스츄어리는 최소한의 파일코인 라이브러리가 통합된 IPFS 노드이다. 파일코인과 IPFS를 함께 작동하는 것은 복잡한 프로세스가 아니지만, 제대로 올바르게 사용하려면 세심한 주의를 요한다.

텍스타일은 개발자들이 표준 API를 통해 IPFS에 콘텐츠를 고정할 수 있도록 호스팅 중개인으로 사용된다. 이것들이 어떻게 함께 작동하는지 살펴보기 전에 각각 무엇을 하는지 살펴볼 필요가 있다.

IPFS와 파일코인: 천국(블록체인)에서 행해진 경기

파일코인은 가상세계 어디에서든지 액세스 가능한 데이터를 저장하기 위한 목적으로 만들어진 분산 네트워크이다. 사용자는 사용 가능한 스토리지를 네트워크의 노드로 제공하고 데이터가 해당 노드에서 저장되고 검색될 경우 파일코인을 얻는다.

IPFS는 개발자를 위해 웹에서 데이터의 저장 및 검색을 처리하는 웹3 기반의 파일 시스템이다. 블록체인이 아닌 가장 가까운 비교 대상은 클라우드가 될 것이다. 이때 거대기업이 통제하지 않는 경우는 제외한다.

코딩을 오래전에 배운 사람은 C 언어 계열에 나와있는 변수에 액세스 하는 포인터를 기억할 것이다. 이와 비슷하게 IPFS도 콘텐츠 아이디(CID)를 사용하는데, 이를 이용하면 사용 가능한 노드에서 데이터에 액세스 할 수 있다.

로컬 드라이브에 파일 주소를 활용하는 대신에 IPFS 드라이브에 CID 주소를 참조할 수 있다. 그러나 브라우저가 항상 IPFS를 인식하는 것은 아니기 때문에 파일로서 해당 CID를 인식할 수 있는 방법이 구현되어야 한다. 이를 위해서는 텍스타일이라고 불리는 도구를 사용하면 된다.

영구 IPFS 데이터 저장소, 텍스타일 소개

IPFS 파일과 관련해 브라우저가 가지고 있는 문제점은 파일들이 영구성이 없는 것이다. 텍스타일은 개발자들이 어떤 웹사이트나 애플리케이션에서도 파일들을 추가할 수 있는 간단한 호스팅 솔루션을 제공한다. 이를 위해서 IPFS 프로트콜이 모든 주류 브라우저에서 기본적으로 구축이 안되어 있음에도 불구하고 텍스타일은 IPFS 데이터를 정리 및 색인 및 고정하는 방법을 제공하는 “버킷(Buckets)”을 사용한다.

버킷 설정은 텍스타일 허브 계정에 액세스 할 경우 필요한 키들을 저장할 로컬 비밀 파일을 만들기만 하면 끝나는 간단한 문제이다. 텍스타일 허브 계정에 등록하고 앱 개발을 시작할 경우 공개 키와 개인키를 부여받는다. 해당 키들은 아래에 나와있는 형식이 갖추어진 텍스트 파일에 삽입되어야 한다.

TEXTILE_HUB_KEY = XXXX

TEXTILE_HUB_SECRET = XXXX

IPFS_GATEWAY = https://ipfs.io

절차 중에 이 부분이 가장 기술적으로 어렵다. 텍스타일은 CLI 도구는 시스템이 버킷에 액세스 할 수 있도록 공개키 및 개인에 대한 값을 제공해야 한다. 개발자가 이 부분을 통과하기만 하면 버킷을 사용하는 앱을 개발하는 것은 매우 간단해진다. 넥스트 JS와 텍스타일 버킷을 사용하여 프로젝트를 쉽게 시작할 수 있도록 기술된 템플렛의 예는 여기를 클릭하면 볼 수 있다.

텍스타일의 통합은 모든 언어와 프레임워크를 사용하여 개발을 할 수 있다. 일부 개발자는 제품에 React 또는 Vue를 사용하는 것을 선호할 수 있지만 Angular 또는 기타 JS 구현도 마찬가지로 작동할 수 있다. 공개 및 개인키는 안전하게 데이터를 호스트 할 수 있다. 또한 libp2p ID를 생성할 수 있다.

앱을 사용하는 유저가 libp2p 키를 설정하고 나면 텍스타일을 통한 버킷 인프라를 사용하면서 IPFS에 데이터를 고정시킬 수 있다. 서버 부하와 연결 품질에 따라 파일들은 액세스 가능하기 전까지는 시간이 조금 걸릴 수도 있다.

IPFS 네트워크에 인기 있는 데이터가 많을수록 검색 속도가 빨라진다. 사용자가 저장하려고 하는 데이터가 오랜 시간 저장 가능한가에 대한 검증을 더 요구하는 경우 텍스타일 버켓은 파일코인 네트워크에서 이미 알고 있는 스토리지 제공자와 거래를 할 수 있도록 파일코인 API를 지원한다. 그러나 스토리지 제공자들을 아무도 모를 경우에는 어떻게 해야 하는가? 에스츄어리는 파일코인 네트워크에 데이터를 가져오는 더 단순한 솔루션을 제공한다.

이중 저장 시스템

텍스타일을 사용하여 데이터를 버켓에 추가할 경우 해당 데이터는 IPFS에 고정되며 액세스 가능하지만, 해당 데이터가 저절로 파일코일 체인에 들어가지 않는다. 텍스타일이 제공하는 IPFS 게이트웨이를 통해 액세스 가능한 데이터는 파일코인 블록체인에 추가 예정인 제공자랑 스토리지 거래를 해야한다. 파일코인 네트워크에 고정된 데이터를 얻으려면 에스츄어리와 [Textile’s Bidbot]()와 같은 중간 매개체가 필요하다.

에스추어리를 사용하면 데이터를 업로드하여 100개가 넘는 노드에 액세스할 수 있지만 해당 데이터가 실제로 체인에 있는지 의문이 들 수 있다. 이에 대한 쉬운 확인 방법이 있어 이를 통해 파일, CID, 데이터를 현재 제공하는 공급자를 읽을 수 있다.

에스츄어리에 파일을 업로드하는 것은 여러 방법이 존재하므로 쉽다. 예로 들면, 사용자는 애플리케이션 안에서 [Estuary’s API]()를 사용할 수 있으며, 명령줄을 사용하거나, 로그인하여 브라우저에서 파일을 끌어다 놓을 수 있다.

에스츄어리는 특정 계정과 관련된 데이터 리스팅을 허용한다. 이때의 데이터 리스팅은 사용자가 액세스할 수 있는 모든 파일과 파일코인 네트워크에 있는 스토리지 제공업체를 포함하여 해당 CID에 대한 정보를 제공한다. 에스추어리는 앱을 함께 사용하기 위해 React JS와 협력하여 쉬운 복사-붙여놓기의 기능을 제공한다. 개발자들은 물론 API 키들에 추가해야 하지만 대부분에 대해서 에스추어리의 가이드에서 직접 스니펫을 사용하여 행할 수 있다.

웹 스토리지에 대한 새로운 패러다임

IPFS와 파일코인은 상호 보완적인 시스템이며 생태계는 그 둘이 같이 작동하도록 하기 위하여 텍스타일과 에스추어리 같은 도구를 개발했다. 플러그인에 대한 제한이 증가됨에 따라 이러한 도구들은 현재의 브라우저에서 웹3를 개발하는데 가장 좋은 솔루션이 되었다. 시간이 지나고 IPFS가 더 액세스 가능해짐에 따라 브라우저는 기본 통합을 계속 지원할 것이다. (참조: OperaBrave) 기본 통합 지원이 계속될수록 텍스타일 및 에스추어리는 시스템이 함께 작동하도록 하는 간단한 해결책이 될 것이다.

더욱 다양한 정보 및 방송 관련 소식은

공식 SNS 채널을 통해 확인 가능합니다.

장제윤 기자 | [email protected]

댓글 [ 0 ]
댓글 서비스는 로그인 이후 사용가능합니다.
댓글등록
취소
  • 최신순
닫기