안녕하세요 ㅎㅎ
저번 시간에는 react를 활용해서 콜라를 구매하고 판매하는 그리고 갯수를 입력하고, 입력 받은 만큼 구매를 하는
Dapp을 만들어보았죠 ㅎㅎ
입력 받은 만큼 판매를 하는 기능을 구현해보라는 숙제아닌 숙제를 한가지 내드렸었는데 하셨는지요! ?
아마 어려움없이 하셨을거라 생각되어집니다!
오늘부터는 ipfs를 활용해서 블록체인에 데이터를 올리고, 가져오는 Dapp을 한번 만들어볼거예요!
처음 접하시는 분들은 어려움이 적잖아 있을거라 생각되어지지만, 잘 따라만 하시면 크게 어려운 점은 없을거예요!
중간에 막하시는거나 이해가 안되는점 있으면 언제든 댓글 달아주시면 확인하는대로 바로 답변드릴게요!
일단 ipfs가 무엇인지부터 알아봐야 겠죠
ipfs란! InterPlanetary File System입니다..... 그게 뭐냐 하면.. 행성간의 파일 시스템입니다..........
뭔말이야이게 ㅋㅋㅋㅋ
자, ipfs를 간단히 말하면 분산화된 파일 저장 시스템입니다!
물론 ipfs장점은 분산화된 저장방법 빼고도 여러가지가 있지만 가장 큰 장점을 꼽으라면 위에 말씀드렸던
파일 저장의 방법이죠 ㅎㅎ
저희가 사용하는 모든 어플리케이션은 중앙서버에 모든 데이터를 저장하게 설계가 되어있죠.
예를들면 유튜브의 동영상이 어디에 저장될까요?
당연히 유튜브자체의 서버에 저장이 되어있겠죠?
클라우드를 사용하는 어플리케이션이라면 클라우드 서버에 저장이 될테구요.
하지만.. 만약에라도 정말 만약에 유튜브의 서버가 위치한 지역에 지진이나서
무너진다던가 폭탄을 맞는다던가한다면..
그지역의 유튜브 서버에 저장되어있는 동영상들은 모두 영영 사라지게 되어버립니다..
물론 유튜브같은 세계적인 기업은 이중화를 넘어 삼중화 사중화.. 이상까지 해놓을테지만 ..
그래서 나온게 바로 IPFS라는 것입니다.
IPFS 공식 홈페이지에 들어가보면 왜 IPFS를 사용해야하나? 를 굉장히 이해하기 쉽게 설명해주고있어요!
https://ipfs.io/#why
- 분산화된 저장 시스템이다!
- HTTP에 비해서 굉장히 효율적이다!
3. 블록체인과 같이 사용하기 굉장히 적합하다 이게 바로 저희가 이번 시간에 IPFS를 알아보는 이유죠!
저희가 DApp을 개발하기위해 사용하는 이더리움 네트워크에 데이터를 저장할수가 있을까요?
간단한 글정도는 당연히 가능하고, 작은용량의 사진까지도 가능할거라고 생각되거든요.
하지만 동영상이나, 고해상도 사진을 이더리움 네트워크에 올린다면....
네 물론 억지로 올리려면 쪼개서 올릴순 있을거예요 이더리움의 한블락의 크기가 약 1MB정도인데
1기가의 동영상만 올리려해도 얼마나 쪼개서 올려야 하는지 감이 오시나요..
그래서 바로 IPFS를 활용하는것입니다.
IPFS를 활용해서 어떻게 올리냐!!! 네 이제 설명 드릴게요 ㅋㅋ
IPFS에 txt파일이나, 사진 , 동영상 등등 파일을 업로드 하게되면 그에 대응되는 해쉬값이라는게 생성이 되요!
저희는 이 해시값을 블록에 올림는 방법을 블록체인에 파일을 직접 업로드 하는것을 대신할거랍니다!
제가 간단히 만든 웹에서 IPFS에 파일을 올려보고, 해시값을 블록에 담아볼게요!
이런 웹사이트입니다... 급하게 만드느라 대충대충 만들었어요 ㅎㅎㅎ
파일을 아무거나 하나올리고 버튼을 클릭하면
다음 사진과 같이 그 파일에대한 해시값이 나오게됩니다 ㅎㅎ
그리고 https:// ipfs.io/ipfs/QmYz95ZSCFgQyXkbSfU5wz4dbP1UfV1FJUKMuu2Sohs7pn에 들어가시면 제가 올린 파일이 무엇인지 볼수가 있게되는거죠!
개인적으로 mcthemax를 참좋아해서 관련 음악을올렸네요
자 결론적으로 IPFS에 파일을 올리면!
다들 토렌트라는 프로그램을 아실겁니다.
토렌트와 같은 원리로 여러노드에 쪼개서 파일이 저장이되구, 그 쪼갠 값을 합친게 바로 위에서 보인 해시값이
되는 원리입니다.
더욱 자세한 설명을 원하시면 백서를 읽어보시길 추천드릴게요....
오늘은 간단히 IPFS에 대해서 알아보았습니다!
다음시간에는 위에 보여준것처럼 코딩을 진행해보도록 할게요!