티스토리 뷰
NODE_1 빨간색
NODE_2 파란색
NODE 보라색으로 표시된 것은 NODE_1 과 NODE_2에서 모두 진행
1. aws에서 EC2인스턴스 생성.
아래 포트를 열어준다.
IPFS
4001 - 다른 노드와 통신
5001 - API서버
8080 - 게이트웨이 서버
IPFS-CLUSTER
9094 - HTTP API 엔드포인트
9095 - IPFS 프록시 엔드포인트
9096 - Cluster swarm . 클러스트 노드간 통신
2. go 설치
https://golang.org/dl/ 접속하여 최신 버전을 확인 후 아래 변수 값을 바꿔준다.
#최신버전 확인
GO_VERSION=1.17
curl -LO https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz
rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz
rm go${GO_VERSION}.linux-amd64.tar.gz
cat ~/.profile | grep /usr/local/go/bin || echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
cat ~/.profile | grep GOPATH= || echo 'export GOPATH=$(go env GOPATH)' >> ~/.profile
cat ~/.profile | grep GOPATH/bin || echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.profile
source ~/.profile
echo $GOPATH
go version
3. ipfs 설치
https://dist.ipfs.io/#go-ipfs 에서 최신 버전을 확인 후 아래 변수 값을 바꿔준다.
IPFS_VERSION=0.12.1
curl -LO https://dist.ipfs.io/go-ipfs/v${IPFS_VERSION}/go-ipfs_v${IPFS_VERSION}_linux-amd64.tar.gz
tar xvfz go-ipfs_v${IPFS_VERSION}_linux-amd64.tar.gz
rm go-ipfs_v${IPFS_VERSION}_linux-amd64.tar.gz
sudo ./go-ipfs/install.sh
ipfs version
mkdir -p /home/${USER}/ipfs/data
echo 'export IPFS_PATH=/home/${USER}/ipfs/data' >> ~/.profile
source ~/.profile
ipfs init
ipfs init 오류떠도 신경 안 써도 됨
4. Swarm key 생성
(NODE_1에서 생성하고 나머지 NODE는 이 swarm.key를 복붙해서 사용)
git clone https://github.com/Kubuxu/go-ipfs-swarm-key-gen.git
cd go-ipfs-swarm-key-gen
go build ipfs-swarm-key-gen/main.go
./main > ~/ipfs/data/swarm.key
cat ~/ipfs/data/swarm.key
5. swarm key 복붙
나머지 노드에 위에서 만든 swarm.key의 내용을 복붙.
cd ~/ipfs/data
vi swarm.key
복붙^^
cat swarm.key
6. IPFS 노드 부트스트랩 초기화
NODE_1 과 NODE_2에서 bootstrap list 초기화
ipfs bootstrap rm --all
ipfs bootstrap list
네트워크를 Private 모드로 강제 설정
export LIBP2P_FORCE_PNET=1
7. IP주소 및 IPFS ID 확인
IP주소는
ip addr
NODE_1의 IP주소
peer ID는
ipfs id
NODE_1의 IPFS ID
8.부트스트랩 피어 추가
이제 아래 형식으로 bootstrap 추가
ipfs bootstrap add /ip4/[NODE_IP_ADDRESS]/tcp/4001/ipfs/[NODE_PEER_ID]
NODE_2에서 NODE_1의 정보로 추가.
ipfs bootstrap add /ip4/<NODE_1의 IP주소>/tcp/4001/ipfs/<NODE_1의 IPFS ID>
ipfs bootstrap list
9. 통신을 위한 IPFS config
cd ~/ipfs/data
vi config
"Addresses"를 찾아서 기본적으로 127.0.0.1이므로 노드가 서로 바라볼 수 있도록 하려면 각 노드의 IP에 따라 이 매개변수를 설정해야함.
게이트웨이 매개변수는 브라우저에 엑세스하기 위함.
각 노드에서 자기 자신의 IP주소로 바꾼다.
10. daemon 백그라운드 실행
ipfs daemon &
peer 추가 확인
ipfs swarm peers
11. NODE_1 에서 파일 add
cd ~
vi hello.txt
HELLO IPFS :) MY NAME IS ehdcjf
wq!
ipfs add hello.txt
12. node_2에서 파일 get
ipfs get QmTzA1SUffo2irYJuPsE2Litj9LzmgryKbRRLNRPukJu8t --output=hello.txt
cat hello.txt
내일은
IPFS 백그라운드 실행
IPFS Cluster
참고
https://miiingo.tistory.com/205
https://labs.eleks.com/2019/03/ipfs-network-data-replication.html
'블록체인' 카테고리의 다른 글
블록체인 기술의 현재 (1) | 2022.04.20 |
---|---|
블록체인의 특징 및 중요성 (0) | 2022.04.18 |
Hyperledger Fabric Tutorial3: Running a Fabric Application (0) | 2022.01.24 |
Hyperledger Tutorial2: Deploying a smart contract to a channel (0) | 2022.01.24 |
HyperLedger Fabric Peers(node) 개념 (0) | 2022.01.14 |
- Total
- Today
- Yesterday
- 롱베케이션
- 다이나믹프로그래밍
- 동적프로그래밍
- create db
- 최소공통조상
- create databases;
- 은둔청년체험
- 로드나인
- MySQL
- 투포인터
- DB 생성
- 투포인터 연습
- 다이나밍프로그래밍
- MOD
- 면접비
- BFS
- 서버점검
- 개발자면접
- node.js
- 면접질문
- 그래프
- 서버개발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |