블록체인
Node 분류

Keep Network의 ECDSA & Beacon nodes Digital Ocean에 설치하기

컨텐츠 정보

본문



가상서버호스팅으로 유명한 Digital Ocean(디지털오션)에 Keep Network의 ECDSA & Beacon nodes를 설치하는 방법을 알려드리겠습니다.


Keep Network의 ECDSA & Beacon nodes 지갑 셋팅하기 ( https://www.wsgvet.com/blockchain/4 )


위 링크를 보고 지갑 및 Infura 정보를 메모장에 저장해둔 후 진행 가능합니다.



1. Digital Ocean 가입하기


f181703c3ec55e6f4dc8f1218f2ea584_1603720872_7813.png

https://m.do.co/c/a48d7a3c9408


위 추천인 링크로 가입한 후 결제 카드를 등록하면 60일 동안 $100을 무료로 쓸 수 있습니다.


4GB 상품이 $20이므로 인스턴스 2개를 2달 동안 편하게 사용할 수 있습니다.


f181703c3ec55e6f4dc8f1218f2ea584_1603720891_2884.png

카드인증 및 주소를 입력하면 위와 같이 $100를 무료로 쓸 수 있다고 나옵니다.


Let's make something 을 눌러서 시작합니다.



2. Droplet 생성하기


f181703c3ec55e6f4dc8f1218f2ea584_1603720931_283.png

위와 같이 Go to Control Panel을 클릭합니다.


f181703c3ec55e6f4dc8f1218f2ea584_1603720953_2497.png

위와 같이 Get Started with a Droplet을 클릭합니다.


f181703c3ec55e6f4dc8f1218f2ea584_1603720991_7591.png

위와 같이 Ubuntu 20.04 (LTS) x64, Basic, $20/mo 를 클릭합니다.


$20/mo 상품 가격이 변했다면 4GB 램을 가지고 있는 상품을 선택하면 됩니다.


f181703c3ec55e6f4dc8f1218f2ea584_1603721021_2155.png

위와 같이 Singapore를 클릭하고, AuthenticationPassword를 선택, 마지막으로 Create root password에 SSH 접속 비밀번호를 입력합니다.


비밀번호의 조건이 매우 까다롭습니다.


최소 8글자, 반드시 대문자 1개 이상 포함(처음과 끝은 제외), 반드시 숫자 1개 이상 포함, 마지막 단어는 숫자나 특수문자를 넣으면 안됩니다.


예를들어 keep-2020-Node 이런 식으로 넣으면 통과됩니다.


생성한 비번을 메모장에 저장해둡니다.


f181703c3ec55e6f4dc8f1218f2ea584_1603721071_6314.png

위와 같이 Choose a hostname에 keep을 넣어주고 제일 밑에 Create Droplet을 클릭하면 Droplet이 생성됩니다.


f181703c3ec55e6f4dc8f1218f2ea584_1603721089_5708.png

위와 같이 진행상황을 볼 수 있습니다.


f181703c3ec55e6f4dc8f1218f2ea584_1603721104_2575.png

생성이 완료되면 위와 같이 나옵니다. 오른쪽에 128.199.155.65와 같이 IP 주소가 나오는데요.


SSH에서 접속할 수 있는 IP 주소입니다.


메모장에 저장해둡니다.


이제 디지털오션에서의 작업은 끝났습니다.



3. SSH 접속프로그램 Putty 다운받기


(1) 32bit 용 Putty 다운 받기


https://the.earth.li/~sgtatham/putty/latest/w32/putty.exe


(2) 64bit 용 Putty 다운 받기


https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe


자신의 컴퓨터에 맞는 bit를 선택해서 다운 받으면 됩니다.



4. Putty 실행 후 SSH 접속하기


다운 받은 파일을 실행하면 설치 후 실행이 됩니다.


f181703c3ec55e6f4dc8f1218f2ea584_1603721208_0343.png

위와 같이 Host Name (or IP address)에 디지털 오션에서 생성한 Droplet의 IP 주소를 넣고 Open을 누릅니다.


f181703c3ec55e6f4dc8f1218f2ea584_1603721229_2906.png

위와 같이 경고표시가 나오는데요. 그냥 예(Y)를 누르면 됩니다.


안나와도 상관없습니다.


f181703c3ec55e6f4dc8f1218f2ea584_1603721244_7246.png

login asroot 를 넣고, password에 디지털 오션에서 생성한 비밀번호를 그대로 넣고 엔터를 치면 로그인이 됩니다.


비밀번호는 입력해도 표시가 되지 않으니 당황하지 않아도 됩니다.


f181703c3ec55e6f4dc8f1218f2ea584_1603721267_8784.png
 

정상적으로 로그인이 됐다면 위와 같이 나올 것입니다.



5. Docker 설치하기



sudo apt update -y && sudo apt -y upgrade && sudo apt -y autoremove \
&& sudo apt install nano curl -y \
&& sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y \
&& curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - \
&& sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" -y \
&& sudo apt update -y \
&& sudo apt install docker-ce docker-ce-cli containerd.io -y \
&& sudo sudo systemctl start docker && sudo systemctl enable docker \
&& sudo ufw allow 22 && sudo ufw allow 3919 && sudo ufw allow 3920 && sudo ufw enable \
&& sudo mkdir -p beacon/persistence ecdsa/persistence \
&& sudo docker --version;


위 내용을 복사 후 붙여넣기 합니다. 


Putty에 붙여넣기 하는 방법은 검은 화면에 마우스 우클릭하면 됩니다.


그리고 엔터를 치면 알아서 설치합니다. 시간이 좀 걸립니다.



Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Docker version 19.03.13, build 4484c46d9d


위와 같이 물어보는데 y, 엔터 누르면 됩니다. 마지막에 Docker version이 나오면 성공입니다.



6. node 소스 다운받기



위 명령어를 복사 후 붙여넣기해서 실행합니다.



Cloning into 'keep'...


remote: Enumerating objects: 41, done.
remote: Counting objects: 100% (41/41), done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 41 (delta 14), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (41/41), 7.63 KiB | 781.00 KiB/s, done.


위와 같이 다운 받아질 것입니다.



7. Node 정보 입력하기


총 8개의 파일을 수정해야 합니다. 지갑정보가 저장된 메모장을 엽니다. 지금을 위해 만들어둔 것입니다.


우선 쉬운 것부터 하겠습니다.



nano keep/beacon/config/keep-beacon-operator-account-address.txt


위 내용을 복사해서 붙여넣기 후 엔터를 칩니다.



REPLACE THIS TEXT WITH YOUR WALLET ADDRESS


위 내용이 나올텐데요. 컨트롤 + k를 눌러서 지웁니다.


그리고 메모장에 있는 자신의 이더리움 지갑 주소를 넣습니다.


컨트롤 + v를 누르면 붙여넣기가 됩니다.


그리고 컨트롤  + O, 엔터, 컨트롤 + X를 눌러서 저장 후 빠져나옵니다.


앞으로 저장 후 빠져나오는 것은 컨트롤  + O, 엔터, 컨트롤 + X 라고 생각하시면 됩니다.



nano keep/beacon/config/keep-beacon-operator-account-password.txt


위 명령어를 넣으면 



REPLACE THIS TEXT WITH YOUR WALLET PASSWORD


위 내용이 나올텐데요. 컨트롤 + k를 눌러서 지웁니다.


그리고 지갑 생성할 때 만든 비밀번호를 넣습니다.


메타마스크 접속 비번이 아닙니다.


keystore 파일 생성할때 넣은 비번입니다.


저장 후 빠져나옵니다.



nano keep/beacon/config/keep-beacon-operator-account-keyfile


위 명령어를 넣으면



REPLACE THIS TEXT WITH YOUR WALLET JSON CONTENT


위와 같은 내용이 나올텐데요. 컨트롤 + k를 눌러서 지웁니다.


그리고 아까 메모장에 복사해둔 {"version":3,~~ 로 시작하는 keystore 파일의 내용을 전부 붙여넣기 해줍니다.


좀 이상하게 나올 수 있는데, 한줄이므로 걱정하지 않아도 됩니다.


저장 후 빠져나옵니다.


총 3개의 파일을 수정했는데요. ecdsa 노드도 같은 내용이므로 복사해줄 것입니다.



cp keep/beacon/config/keep-beacon-operator-account-address.txt keep/ecdsa/config/keep-ecdsa-operator-account-address.txt \
&& cp keep/beacon/config/keep-beacon-operator-account-password.txt keep/ecdsa/config/keep-ecdsa-operator-account-password.txt \
&& cp keep/beacon/config/keep-beacon-operator-account-keyfile keep/ecdsa/config/keep-ecdsa-operator-account-keyfile;


위 내용을 전부 복사해서 붙여넣은 후 엔터를 칩니다. ecdsa에도 같은 내용이 복사가 되었습니다.


이제 파일 2개만 수정하면 됩니다! 끝이 보이네요!



nano keep/beacon/config/config.toml


위 명령어를 넣으면 글자가 많이 나옵니다.



# This is a TOML configuration file for Beacon node.


# Connection details of ethereum blockchain.
# Please, replace this links with your's Infura links.
[ethereum]
  URL = "wss://ropsten.infura.io/ws/v3/YOUR_PROJECT_ID_ON_INFURA_FOR_BEACON_NODE"
  URLRPC = "https://ropsten.infura.io/v3/YOUR_PROJECT_ID_ON_INFURA_FOR_BEACON_NODE"


# Your wallet address and link to your's wallet keyfile on the server. Replace your wallet address. No need to cha>
[ethereum.account]
  Address = "PASTE_HERE_YOUR_WALLET_ADDRESS"


우리가 바꿔야 할 것은 총 3군데입니다. 모두 메모장에 저장해둔 것들입니다.



wss://ropsten.infura.io/ws/v3/YOUR_PROJECT_ID_ON_INFURA_FOR_BEACON_NODE


위 내용 대신에 infura에서 생성한 beacon node의 endpoints에서 wss://로 시작하는 것으로 바꿔주면 됩니다.



wss://ropsten.infura.io/ws/v3/1234123412341234124124


대략 위와 같이 되겠죠?



위 내용도 https://~~ 로 시작하는 내용으로 바꿔주면 됩니다.



Address = "PASTE_HERE_YOUR_WALLET_ADDRESS"


위 내용도 자신의 keep 계정 지갑 주소를 넣어주면 됩니다.


다 바꿨으면



# This is a TOML configuration file for Beacon node.
# Connection details of ethereum blockchain.
# Please, replace this links with your's Infura links.


[ethereum]
  URL = "wss://ropsten.infura.io/ws/v3/12341234123412341234121234"
  URLRPC = "https://ropsten.infura.io/v3/243523452345234523523523453245"


# Your wallet address and link to your's wallet keyfile on the server. Replace your wallet address. No need to change keyfile path.


[ethereum.account]
  Address = "0x23l45jhk3ljj53l4k5j3lk5j34l1"


위와 같이 될 것입니다. 저장 후 빠져나옵니다.


이제 ECDSA node의 설정을 바꿀 것입니다.



nano keep/ecdsa/config/config.toml


이번에도 똑같이 총 3군데를 바꾸면 됩니다. 모두 메모장에 있는 것들이죠?


지갑주소는 beacon node와 같을 것이고, URL과 URLRPC는 ECDSA node의 그것으로 교체하면 됩니다.


저장 후 빠져나옵니다.



Node 실행하기


우선 Beacon node를 실행합니다.



cd && cd keep/beacon \
&& export KEEP_ACCOUNT_PASSWORD=$(cat ./config/keep-beacon-operator-account-password.txt) \
&& export SERVER_IP=$(curl ifconfig.co);


위 내용을 전체 복사해서 한번에 붙여넣고, 엔터를 누릅니다.



sudo docker run -d \
--entrypoint keep-client \
--restart always \
--volume ~/keep/beacon/persistence:/mnt/keep-beacon-client/persistence \
--volume ~/keep/beacon/config:/mnt/keep-beacon-client/config \
--env KEEP_ETHEREUM_PASSWORD=$KEEP_ACCOUNT_PASSWORD \
--env LOG_LEVEL=debug \
--name beacon-node \
-p 3920:3919 \
keepnetwork/keep-client:v1.3.1 --config /mnt/keep-beacon-client/config/config.toml start


위 내용을 전체 복사해서 한번에 붙여넣고, 엔터를 누릅니다.



Unable to find image 'keepnetwork/keep-client:v1.3.1' locally
v1.3.1: Pulling from keepnetwork/keep-client
21c83c524219: Pull complete
0b8fa4bc359c: Pull complete
Digest: sha256:1d8508f8e274f34ef5f78677b7c42cb05d3c80da84a8837cf6363b42b0856c6a
Status: Downloaded newer image for keepnetwork/keep-client:v1.3.1
d61ae27d09e27338382857dff8729c95d4fce9418130699af5ebb475f43ed8fb


위와 같이 나오면 실행 완료입니다.


이제 ECDSA node를 실행합니다.



cd && cd keep/ecdsa \
&& export KEEP_ECDSA_OPERATOR_ACCOUNT_PASSWORD=$(cat ./config/keep-ecdsa-operator-account-password.txt);


위 내용을 전부 복사해서 붙여넣은 후 엔터를 누릅니다.



sudo docker run -d \
--entrypoint keep-ecdsa \
--restart always \
--volume ~/keep/ecdsa/persistence:/mnt/keep-ecdsa-client/persistence \
--volume ~/keep/ecdsa/config:/mnt/keep-ecdsa-client/config \
--env KEEP_ETHEREUM_PASSWORD=$KEEP_ECDSA_OPERATOR_ACCOUNT_PASSWORD \
--env LOG_LEVEL=debug \
--name ecdsa-node \
-p 3919:3919 \
keepnetwork/keep-ecdsa-client:v1.4.0 --config /mnt/keep-ecdsa-client/config/config.toml start


위 내용을 전체 복사해서 한번에 붙여넣고, 엔터를 누릅니다.



Unable to find image 'keepnetwork/keep-ecdsa-client:v1.4.0' locally
v1.4.0: Pulling from keepnetwork/keep-ecdsa-client
21c83c524219: Already exists 
77ec07c446a8: Pull complete 
Digest: sha256:363e3d09d9d2c01284b12bb5858ceef2330255329a0b8452074ad21e013a792e
Status: Downloaded newer image for keepnetwork/keep-ecdsa-client:v1.4.0


위와 같이 나오면 성공입니다.


잘 되고 있는지 확인하려면



docker ps


위 명령어를 내렸을 때



@keep-node:~/keep/ecdsa$ docker ps
CONTAINER ID        IMAGE                                       COMMAND                  CREATED              STATUS              PORTS                    NAMES
71b78c95c9e6        keepnetwork/keep-ecdsa-client:v1.4.0   "keep-ecdsa --config…"   About a minute ago   Up About a minute   0.0.0.0:3919->3919/tcp   ecdsa-node
9f8dfb7e2cba        keepnetwork/keep-client:v1.3.1         "keep-client --confi…"   5 minutes ago        Up 5 minutes        0.0.0.0:3920->3919/tcp   beacon-node


위와 같이 STATUS에 Up ~~ minutes로 나오면 성공입니다.


혹시 Restarting~~ 으로 나오면 잘못된 것이니 다시 체크해보세요.



docker logs beacon-node -f


위 명령어는 Beacon-node가 잘 돌아가는지 볼 수 있습니다.


빠져나오려면 컨트롤 + c를 누르면 됩니다.



docker logs ecdsa-node -f


위 명령어는 ECDSA-node가 잘 돌아가는지 볼 수 있습니다.


빠져나오려면 컨트롤 + c를 누르면 됩니다.


또는 https://keepnode.app/ 이 사이트에 들어가서 메타마스크와 연결하면 어느정도 정보가 나옵니다.



8. Node가 연결됐는지 확인하는 방법


Node를 실행한 후 10~20분 정도 기다립니다.


그 후에 확인해보면 됩니다.


실행 직후에는 peer가 붙지 않습니다. 걱정마세요!


1. Beacon-node



docker logs beacon-node 2>&1 --since 5m | grep "number of connected peers"


위 명령어를 내렸을 때



@keep-node:~$ docker logs beacon-node 2>&1 --since 5m | grep "number of connected peers"
2020-09-27T12:59:03.882Z        INFO    keep-net-libp2p number of connected peers: [85]
2020-09-27T13:00:03.882Z        INFO    keep-net-libp2p number of connected peers: [85]
2020-09-27T13:01:03.882Z        INFO    keep-net-libp2p number of connected peers: [85]
2020-09-27T13:02:03.882Z        INFO    keep-net-libp2p number of connected peers: [85]
2020-09-27T13:03:03.882Z        INFO    keep-net-libp2p number of connected peers: [85]


위와 같이 나오면 성공입니다. 



2. ECDSA-node



docker logs ecdsa-node 2>&1 --since 5m | grep "number of connected peers"


위 명령어를 내렸을 때



@keep-node:~$ docker logs ecdsa-node 2>&1 --since 5m | grep "number of connected peers"
2020-09-27T12:59:00.498Z        INFO    keep-net-libp2p number of connected peers: [366]
2020-09-27T13:00:00.498Z        INFO    keep-net-libp2p number of connected peers: [371]
2020-09-27T13:01:00.499Z        INFO    keep-net-libp2p number of connected peers: [373]
2020-09-27T13:02:00.498Z        INFO    keep-net-libp2p number of connected peers: [376]
2020-09-27T13:03:00.498Z        INFO    keep-net-libp2p number of connected peers: [381]


위와 같이 나오면 성공입니다.



9. Node 업그레이드하기



docker stop beacon-node && docker stop ecdsa-node && docker rm beacon-node && docker rm ecdsa-node


위 명령어로 Node를 정지하고, 생성했던 컨테이너를 삭제합니다.


https://hub.docker.com/r/keepnetwork/keep-client/tags


https://hub.docker.com/r/keepnetwork/keep-ecdsa-client/tags


위 링크에 가서 각각의 버전을 확인하거나,


버전없이 그냥 latest 버전을 다운 받아서 실행하는 방법도 있습니다.



10. 최신버전의 Beacon node를 실행하는 방법



cd && cd keep/beacon \
&& export KEEP_ACCOUNT_PASSWORD=$(cat ./config/keep-beacon-operator-account-password.txt) \
&& export SERVER_IP=$(curl ifconfig.co);


위 내용을 전체 복사해서 한번에 붙여넣고, 엔터를 누릅니다.



sudo docker run -d \
--entrypoint keep-client \
--restart always \
--volume ~/keep/beacon/persistence:/mnt/keep-beacon-client/persistence \
--volume ~/keep/beacon/config:/mnt/keep-beacon-client/config \
--env KEEP_ETHEREUM_PASSWORD=$KEEP_ACCOUNT_PASSWORD \
--env LOG_LEVEL=debug \
--name beacon-node \
-p 3920:3919 \
keepnetwork/keep-client --config /mnt/keep-beacon-client/config/config.toml start


위 내용을 전체 복사해서 한번에 붙여넣고, 엔터를 누릅니다.



Unable to find image 'keepnetwork/keep-client:latest' locally
latest: Pulling from keepnetwork/keep-client
21c83c524219: Already exists 
069b56ef4eed: Pull complete 
Digest: sha256:8e4f82dddb3e47a225825e6ed99339a0b484cbb89dde69e0d59f7c43eef10aba
Status: Downloaded newer image for keepnetwork/keep-client:latest
337c9e8f7db1d2f4ccc1bdba865727d3bdf708749bcbf453d9317957a339e6c4


위와 같이 latest 이미지를 다운 받아서 실행하게 됩니다.



최신버전의 ECDSA node를 실행하는 방법



cd && cd keep/ecdsa \
&& export KEEP_ECDSA_OPERATOR_ACCOUNT_PASSWORD=$(cat ./config/keep-ecdsa-operator-account-password.txt);


위 내용을 전부 복사해서 붙여넣은 후 엔터를 누릅니다.



sudo docker run -d \
--entrypoint keep-ecdsa \
--restart always \
--volume ~/keep/ecdsa/persistence:/mnt/keep-ecdsa-client/persistence \
--volume ~/keep/ecdsa/config:/mnt/keep-ecdsa-client/config \
--env KEEP_ETHEREUM_PASSWORD=$KEEP_ECDSA_OPERATOR_ACCOUNT_PASSWORD \
--env LOG_LEVEL=debug \
--name ecdsa-node \
-p 3919:3919 \
keepnetwork/keep-ecdsa-client --config /mnt/keep-ecdsa-client/config/config.toml start


위 내용을 전체 복사해서 한번에 붙여넣고, 엔터를 누릅니다.



Unable to find image 'keepnetwork/keep-ecdsa-client:latest' locally
latest: Pulling from keepnetwork/keep-ecdsa-client
21c83c524219: Already exists 
6afa303e4d4e: Pull complete 
Digest: sha256:50386fbfffde9e5d9250db9ee07ac94065707a3874a4957b709696e4b9e8093e
Status: Downloaded newer image for keepnetwork/keep-ecdsa-client:latest
a2abcbe032179fcac5a252c68dba0a70af06cb20aaa1e32f9eb38f4cde512fe9


이렇게 버전을 삭제하면 최신버전으로 다운 받아서 실행하게 됩니다.



Keep Network 참고사이트


Keep Discord : https://discordapp.com/invite/wYezN7v

Homepage : https://keep.network/

Keep GitHub : https://github.com/keep-network

스테이킹 가이드 : https://keep-network.gitbook.io/staking-documentation/

Docker Hub : https://hub.docker.com/u/keepnetwork

Vultr로 구축하는 방법 : https://medium.com/@nickgrego/step-by-step-guide-for-installing-both-ecdsa-beacon-nodes-on-vps-with-100-voucher-db930ab2a667

관련자료

  • 서명
    우성짱의 NAS를 운영하고 있습니다.

    저의 즐거움이 여러분의 즐거움이면 좋겠습니다.

댓글 0
등록된 댓글이 없습니다.
전체 8 / 1 페이지
RSS

최근글


새댓글


알림 0