develop custom_top_html:no
default debug random = 0 / type = READ / detected = READ
개발
2019-07-20 19:11:43

IPFS 따라해보기

IPFS(InterPlanetary File System)란 무엇인가?

IPFS는 차세대 웹 3.0에 필수 요소의 하나라고 일컫을 수 있을만한 분산 저장소 구현중의 하나입니다.

 

기존 웹의 가장 큰 단점이라 할 수 있는 것 중 하나는 바로 "웹은 불안정하다"는 것입니다. 어제는 있었던 웹페이지가 오늘은 사라질 수 있습니다.
멀쩡히 돌아가던 사이트가 도메인 만료나 관리자의 소홀로 사라져버릴 수 있다는 것입니다. 우리가 자주 경험하는 404 오류가 바로 그것입니다.

 

이러한 단점을 보완하기 위해 사용할 수 있는 것이 바로 분산 저장소이며, 게중에 현재 상당히 인기있는 분산 저장소가 바로 IPFS입니다.

 

IPFS는 분산 저장소를 구현한 P2P 파일 시스템이며 다음의 특징을 가집니다. (InterPlanetary File System를 직역하면 "행성간 파일 시스템")
- 중앙화된 서버 없이 노드들이 P2P로 연결
- 고용량 파일을 효율적으로 전달. 파일의 중복을 알 수 있어 효율적인 저장소 사용
- 한번 업로드된 파일의 이름은 영원히 기록. 파일 버전 관리도 가능.
- 인터넷이 원활히 접속안되더라도 IPFS는 유지됨.

 

이상으로 간단하게 IPFS를 알아보았습니다. IPFS를 가장 쉽게 설명하라면, 비트 토렌트 기술을 사용한 파일 시스템이라고 생각하시면 쉽습니다.

(좀 더 자세한 내용은 하단의 참고 링크를 보시기 바랍니다)

IPFS를 써보자

IPFS는 P2P 분산 저장소이며, IPFS 네트워크에 참여하기 위해서는 IPFS 클라이언트를 실행시켜야 합니다.

 

다운로드

예를 들어 IPFS클라이언트를 다운받으려면 다음 링크를 통해 공식 IPFS클라이언트를 받을 수 있습니다.

https://github.com/ipfs/go-ipfs/releases

- 리눅스용 최신 버전: https://github.com/ipfs/go-ipfs/releases/download/v0.4.21/go-ipfs_v0.4.21_linux-amd64.tar.gz
- 윈도우용 최신 버전: https://github.com/ipfs/go-ipfs/releases/download/v0.4.21/go-ipfs_v0.4.21_windows-amd64.zip

데몬 실행

압축을 풀면 윈도우의 경우 ipfs.exe 파일이 IPFS클라이언트 본체 실행파일입니다.

맨 처음 실행하려면 다음과 같이 합니다. ("ipfs command" 식으로 실행시킵니다. command로는 init, add, cat, daemon 등등이 있습니다.)

 

./ipfs init (윈도우에서는 cmd창 열고 ipfs.exe init 명령을 내리면 됨)

 

그러면 다음과 같은 식의 내용이 화면에 출력됩니다.

 

$ ./ipfs init
initializing IPFS node at /home/foobar/.ipfs
generating 2048-bit RSA keypair...done
peer identity: QmQ6jXXXX3BystDRzR2XXXXCMa46XXXXsqQXXXX4Nz9ZAS
to get started, enter:

        ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

 

※ 팁: 화면 말미에 출력된 것처럼 ipfs cat 명령을 실행시켜보면 다음과 같이 출력됩니다.

 

$ ./ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
Hello and Welcome to IPFS!

██╗██████╗ ███████╗███████╗
██║██╔══██╗██╔════╝██╔════╝
██║██████╔╝█████╗  ███████╗
██║██╔═══╝ ██╔══╝  ╚════██║
██║██║     ██║     ███████║
╚═╝╚═╝     ╚═╝     ╚══════╝

If you're seeing this, you have successfully installed
IPFS and are now interfacing with the ipfs merkledag!
 -------------------------------------------------------
| Warning:                                              |
|   This is alpha software. Use at your own discretion! |
|   Much is missing or lacking polish. There are bugs.  |
|   Not yet secure. Read the security notes for more.   |
 -------------------------------------------------------

Check out some of the other files in this directory:

  ./about
  ./help
  ./quick-start     <-- usage examples
  ./readme          <-- this file
  ./security-notes

 

브라우져 주소창에 다음과 같이 넣어도 위와 같은 출력을 얻을 수 있습니다.

 

https://ipfs.io/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

 

ipfs를 데몬 모드르 다음과 같이 실행합니다.

 

./ipfs daemon (윈도우에서는 ipfs.exe daemon 명령을 cmd창에서 입력. 8080 포트를 열것이냐는 방화벽 안내 창이 뜰 때 확인 버튼을 눌러야 함)

 

※ 팁: 게이트웨이 포트 8080이 이미 사용중이라면 다음과 같은 식으로 8080포트를 다른 포트로 고칠 수 있습니다.
./ipfs config Addresses.Gateway /ip4/127.0.0.1/tcp/8083

데몬이 실행되고 난 후에는 http://localhost:5001/webui 로 연결하면 자신의 IPFS 클라이언트 노드의 상태를 확인할 수 있습니다.

파일 추가

다음과 같은 식으로 파일을 추가할 수 있습니다

예를 들어 hello.txt 파일에 "Hello Ddengle.com" 이라는 내용을 넣은 후에 다음 명령을 실행시키면 hello.txt 파일이 추가되며,

 

$ ./ipfs add hello.txt

added QmdzHZHzXGYzLmHC8qYzDd3NJwihMMQrFSijMjHwjxsqvZ hello.txt

 

다음 명령으로 추가된 파일을 확인할 수 있습니다

 

$ ./ipfs cat QmdzHZHzXGYzLmHC8qYzDd3NJwihMMQrFSijMjHwjxsqvZ
Hello Ddengle.com

 

이렇게 ipfs cat 명령을 통해서 자신이 추가시킨 컨텐츠를 볼 수 있다면, 다음 링크를 통해서도 확인할 수 있게 됩니다. (시간이 좀 걸릴 수 있음에 유의)

 

https://ipfs.io/ipfs/QmdzHZHzXGYzLmHC8qYzDd3NJwihMMQrFSijMjHwjxsqvZ

 

이러한 방식으로 자신이 조금 전에 올린 hello.txt가 IPFS 분산 네트워크 파일 시스템에 올라간 것을 확인할 수 있습니다.

참고

- https://steemit.com/kr/@kblock/8-ipfs-interplanetary-file-system-1-http-web-ipfs-web
- https://miiingo.tistory.com/204
- https://medium.com/coinmonks/how-to-add-site-to-ipfs-and-ipns-f121b4cfc8ee
6,273

ethminer님의 서명

주업은 오픈소스 프로그래머

 

ESN 디스코드 - https://discord.gg/hqHm69E

ESN 텔레그램 - https://t.me/ethersocialofficial

 

ESN 주소: 0x0c74e46b115e19726997dd559d2b6ff1bfb79af6

ETH 주소: 0x89307cb2fa6b9c571ab0d7408ab191a2fbefae0a

댓글 19
  • 오호 !
    케블리? kblock 님의 스팀잇 글이 저에겐 이해하기 쉽군요~
    여러가지의 기술들의 장점을 하나의 통합플랫폼으로 기획했고 공감가도록 만들었다는 것에 대단히 흥미롭습니다!
    좋은 정보 감사드립니다~!
  • ㅎㅎ 이거 개발한 친구들의 목표가 우주 정복인가 그렇죠~ 대단한 친구들 이죠!

    그런데 대략적으로 다 이해가 되지만 "한번 업로드된 파일의 이름은 영원히 기록. 파일 버전 관리도 가능." <-- 그럼 먼저 고유한 이름으로 올리면 선점 하는건가요? 마치 도메인처럼? ㅎㅎ

    그리고 잠깐 써봤을때 아쉬운건 속도가 아직은 실 서비스에 사용하기에는 좀 부족하다는 생각!

    그래도 대단하긴 합니다. 앞으로 어떻게 더 발전해서 사용될지 궁금하기도 하고요.

    좋은 정보 공유해주셔서 감사합니다.
  • 근데 그럼 그 많은 데이터는 어디다 보관하나요?
  • @소박하게캐자
    P2P 파일 공유 시스템이라고 보면 되는데요.
    각자가 파일을 가지고 있는거고 그것을 서로간에 공유할 수 있게 해주는 기술입니다.
  • @쌩광부
    개인이 큰 공간을 유지할까요??? 흠 기술이 알면 알수록 구현 가능성이 좀 의구심이 ㅋㅋ
  • @소박하게캐자
    개선은 계속 되겠으나, 이미 필수적인 요소는 구현된 구현체입니다.
    토렌트의 P2P 기술을 사용하기때문에 공간은 문제가 안되죠. 개개인의 작은 저장 공간이 모여 거대한 네트워크 파일 시스템의 일부가 되는 것이고, 결국 문제는 seed를 어떤 식으로 유지할 것인지 등등.
  • ?
    관리하기가 어려워서 웹 서비스로 쓰기 애매하고, 보안도 문제가 있네요.
  • 만약 범죄 사진이 IPFS 에 등록된다면 검열을 통한 삭제가 가능할까요?
    검열저항성에대해 제일 궁금한 부분이기도 합니다
  • @도원Dowon
    P2P 시스템이 + 위치에 기반된 시스템이 아니기때문에 검열 저항성을 갖는다고 합니다
  • @ethminer
    검열저항성을 갖는지 물어본것이 아니고 쉽게말해 리벤지포르노 사진 하나를 누군가 ipfs 에 올려버리면 그걸 어떻게 막느냐는거죠
    아니면 아무것도 막지말고 모든것을 자유롭게 쓰자는것이 추구하는바인지...
  • 보통 검열저항성을 이야기할때 사상표현의 자유, 정부나 감독기관의 검열의 문제점에 대해서 지적하곤 하던데요
    그 반대, 검열저항성을 이용한 범죄나 무분별한 이용에 대해서는 잘 이야기 안해주더라구요
  • ?
    ARWEAVE

    https://www.arweave.org/
  • @루미팜
    서버에 설치해서 CPU 100% 계속 짝는 걸 감수하고 노드 마이닝 반나절 정도 돌려봤는데..
    뭐 지갑에 들어온 건 당연히 없었고요..ㅎㅎ
    저게 감당이 되는 컨셉인가 싶기도 한데.. 의도는 참신해 보이고 API도 잘 준비된 것 같더군요.
  • ?
    @poleax19
    마이닝은 해보질 않아서 ㅎㅎㅎ

    제가 관심두고 있는코인이랑 파트너쉽 맺었길래 어떤코인인지 알게 되었습니다.
  • @루미팜
    자노, 모네로 밖에 안떠오르네요..ㅎㅎ
  • ?
    @poleax19

    LOKI 코인 이랑 파트너쉽 맺었거든요 제가 로키코인을 아주 좋게 보고 있어서
    로키는 일종의 토르 웹(TOR) 기능을 하는 믹스넷 을 만들었습니다.

    보통 마스터노드는 작업증명의 기능정도만을 하게되는데
    로키는 서비스노드라 칭하는(마스터노드) 기술을 만들었습니다.

    작업증명+믹스넷(TOR)+서버스토리지+@(추후 기능추가)를 만들었습니다.

     

    ARWEAVE가 LOKI NETWORK와 파트너쉽을 맺은건

     

    ARWEAVE의 영원히 사는 웹에 익명 믹스넷을 이용하여 업로드 하려는 계획 같습니다.

  • @루미팜
    좋은 정보네요.. 고맙습니다.
    영원한 웹과 완전한 익명성이라.. 엄청 위험해 보이기도 합니다..ㅎㅎ
  • ?
    현재
    글작성 100
    좋아요 9X200 1800
    댓글 10X12 120
    6195-2020 = 4175 (실제 조회수)
    조회수 약 7.52 배 뻥튀기
  • ?
    대박꿀팁
default debug random = 0 / type = READ / detected = READ

List of Articles
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
개발 IPFS 따라해보기 IPFS(InterPlanetary File System)란 무엇인가? IPFS는 차세대 웹 3.0에 필수 요소의 하나라고 일컫을 수 있을만한 분산 저장소 구현중의 하나입니다.   기존 웹의 가장 큰 단점이라 할 수 있는 ... 19 10 34001
ethminer
2019.07.20
1720 [강좌] 이더소셜 PHP API 서버 만들기 #3. 계정 잔액 확인하기 안녕하세요. 쌩광부입니다.   #3. 계정 잔액 확인하기   우선 이더소셜 노드에서 잔액을 읽어오기 위해 노드를 설치해야합니다.   1. 이더소셜 노드 설치하기   이더소셜 노드의 빌드를 위해 필... 4 10 2861
쌩광부
2018.12.14
1719 개발 블록체인 강의 05 - 암호화(2) 국내 대기업 L* 에서 교육한 블록체인 교육 실강입니다.   https://www.youtube.com/watch?v=naSwBOFA_DU&amp;feature=youtu.be                     ------------------------------------- 꼬... 5 10 1055
쌍둥아빠
2018.12.12
1718 [nadana]왕초보의 쌩광부님 지갑(3강) 따라하기 아~~~ 드디어 @쌩광부 님의 모바일 지갑 3강의 내용을 아래와 같이 해 냈습니다. ^^ 많은 우여곡절이 있었지만 지금까지 이것이 왜 안되었는지 함께 공유하고자 글을 올립니다.   1. 쌩광부님의 ... 9 file 10 686
nadana
2018.11.30
1717 개발 업비트 오픈API 파이썬 래퍼 업비트오픈API를 파이썬에서 사용하기 위해 만들어 공유합니다 모든 api에 대해 구현했고 출금api외엔 모두테스트 되었습니다 파이썬으로 봇/앱 개발하시는분들은 참고하시어 성투하세요 https:/... 9 10 8208
고인원
2018.07.01
1716 개발 [번역] 플라즈마 백서(이더리움 스케일링 솔루션) 안녕하세요 철학자입니다. 조샙푼과 비탈릭이 작성한 이더리움 스케일링 솔루션 &lt;플라즈마&gt; 백서 한글 번역본입니다. 번역에 도움을 준 온더의 jenny(jenny.k@onther.io)에게 감사의 말을 전합니... 6 10 2202
철학자
2018.04.15
1715 개발 카페24 쇼핑몰 암호화폐 결제수단 추가하기   카페24 쇼핑몰에 암호화폐 결제수단을 추가하는 방법을 소개합니다. 정식으로 암호화폐를 지원하는 모듈이 존재하지 않기 때문에 &quot;계좌이체&quot; 시나리오를 이용합니다. 우선, 카페24 관리자 페이... 8 file 10 3228
비트코인요
2018.04.14
1714 개발 서버없이 사용가능한 채굴기 독립 보호 프로그램 서버 / 클라이언트 프로그래밍 작업중에 간단히 테스트할겸 사용한 프로그램 하나 같이 쓰려고 합니다.   시작프로그램에 해당프로그램을 등록시키고 사용하시면 편하게 사용하실꺼 같아 올려봅... 11 10 3993
SweetHeaL
2017.12.12
1713 개발 BitcoinYo - POS(Point of sale) 서비스 오픈 for 자영업자   안녕하세요 비트코인요 입니다! 자영업자분들이 가상화폐를 이용해서 물건을 파실 수 있게 도와드리는 서비스를 소개합니다. 우선 결과 화면은 다음과 같습니다.     인터넷이 연결된 기기에서... 17 file 10 3070
비트코인요
2017.11.22
1712 개발 HI Miner basic 0.4.5 업데이트 했습니다. 무료 채굴관리 프로그램 HI Miner basic 0.4.5 버전 업데이트 안내입니다.   ※ 베타인 만큼 오류가 있을 수 있습니다. ※ 기존 버전 사용하시는 분들은 채굴 설정을 다시 해주시기 바랍니다. ※ 사... 10 10 4667
AMDMANIA
2017.08.10
1711 개발 자동매매 프로그램 무료 공개 합니다. (업데이트 08-15) 처음 공개한게 어제 같은데.. 피드백주신 내용들을 적용하다보니 공개한지 4개월이 되어가네요. 사용자의 대부분이 땡글 여러분이어서그간의 개선도 땡글여러분과 함께 만들어왔기때문에 가능하... 58 file 9 13504
luhath
2022.03.31
1710 개발 COSMOS 이더민트를 직접 테스트해봤습니다 그런데.. (수정 추가) 일전에 @꿀맨 님께서 COSMOS 이더민트를 ESN에 적용하는 것이 어떻겠냐는 제안을 주신 적이 있습니다.   며칠 전에 제가 직접 살펴보고 답변을 드렸는데, 땡글에도 글을 올리는 것이 좋을 것 같... 36 9 5790
ethminer
2019.03.22
1709 개발 이더리움과 이더제로 소스코드 비교 이더리움 소스코드와 이더제로 소스코드를 간단히 비교해보았습니다.   https://steemit.com/kr/@hackyminer/difference-between-ethereum-and-etherzero-souce-code   요약하자면,   - 리브렌딩... 6 9 3693
ethminer
2018.02.13
1708 개발 땡글 정직원 구인합니다. ^^ 인원 1명. 필수 : php, 안드로이드 모바일 하이브리드 앱 개발 가능자. 우대 : xe가능자. 학력 : 무관. 경력 : 3년 이상. 업무내용 : 땡글의 게시판 시스템 관리 및 서비스 개발. xe전용 하이브... 6 9 6328
쌍둥아빠
2017.11.12
1707 개발 개발자 모십니다. 자바(JAVA) 프론트, 백엔드등 입니다. 개발자를 모십니다. 현재 기획, 디자인, 서버코어, PM등은 구인완료 됐으며 모두 전직 게임개발자로 실력이 확실히 보장되시는 분들입니다. 초급, 중급 개발자분들이 오시면 배울게 많으실 것으... 13 file 9 4629
쌍둥아빠
2017.10.24
1706 개발 코인 트레이드 시뮬레이터 (ChainStock) 입니다.   이번엔 트레이딩에 도움이 될만한것을 만들어 보았습니다.    = 체인스톡 이라고 이름도 지었구요 ^^   블럭체인과 Stock 그리고 Tak 을 합성햇어요   이름에서처럼 트레이딩에 도움이 될수있... 47 file 9 13342
마루마루
2017.09.12
1705 개발 리눅스 터미널용 nvidia 오버클럭 스크립트 http://www.nippyzip.com/uploads/170815014119-75339.zip   nv-tool.zip 파일의 압축을 풀면 nv-tool.sh 쉘 스크립트가 들어있습니다.   ssh를 통해서 관리하시는 분들을 위해 터미널을 통해서 ... 8 file 9 3645
ethminer
2017.08.14
1704 개발 안녕하세요. 코인알람 개발자입니다~! 안녕하세요. 코인알람 개발자입니다   안녕하세요 코인투자자 여러분. 코인알람 개발자입니다. 많은 분들의 성원에 힘입어 더욱 열심히 개발을 하고 있습니다. 이번 업데이트에는 여러 거래소에 ... 20 file 9 6318
CoinAlarm
2017.08.07
1703 개발 주말저녁에 BitcoinYo 한글버전을 출시했습니다. 어서 코인 버셔요 ㅋㅋ;   어떻게 쓰는지 모르겠다는 문의가 좀 있어서 주말저녁에 시간내서 번역작업을 해봤습니다 . 비트코인이 뜨겁게 타오르는 시점에서 어서 주변물품 정리하셔서 비트코인 버셨으면 좋겠네요. 한국... 15 file 9 7879
이더리움링
2017.08.06
1702 개발 기술 개발 Bitlattice 작년 이맘때네요. Ethereum mist 지갑과 Geth 가 tx 를 생성하기 위해 사용자 암호를 user privilege level 에서 plain text 로 복호화 시켜 처리한다는 기초적이며 심각한 보안 문제를 나 자신... 22 9 2401
stardust
2017.06.08
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 93 Next
/ 93
default debug random = 0 / type = READ / detected = READ