얼마전에 DappNode를 소개해 드린적이 있습니다.
https://www.clien.net/service/board/cm_vcoin/17517636CLIEN
개인이 노드를 운영하기 편하도록 패키지화 되어있는 시스템인데.
오늘은 여기에 이더리움 테스트넷인 Görli Testnet을 이용하여 스테이킹하는 방법을 소개해볼까 합니다.
일단 기존글을 참조해서 Dappnode를 설치합니다.
https://www.clien.net/service/board/cm_vcoin/17517636CLIEN
참 그전에 스테이킹을 하려면 32이더가 있어야 하는데. 우리는 테스트넷을 이용할 계획이므로
32 GoerliETH를 확보해야 합니다. ( 확보에 시간이 걸리니 먼저 모으세요. )
테스트넷에서 이용할 코인을 무료로 주는 서비스를 faucet이라고 하는데.
테스트넷 공식 홈페이지 https://goerli.net/ 에 따르면 몇 가지가 있습니다. - 해당 페이지 상단 링크를 이용해주세요.
https://fauceth.komputing.org/?chain=5 : 이더주소로는 지급하지 않고 ENS주소로만 줍니다.
https://goerli-faucet.mudit.blog/ : 트위터나 페이스북에 이더리움 주소를 포함한 글을 쓰고 이 링크를 넣으면 테스트 이더를 주는데.
(하루에 하나. 9일에 6.25개 한정입니다. - 또한 트위터나 페이스북 팔로우나 활동점수가 일정수 이상이어야 줍니다. - 전 안되더라구요)
https://goerli-faucet.com/ ( 텔레그램에 등록하면 준다는데 밸런스가 거의 없어서 안 들어오네요..)
https://goerli-faucet.pk910.de/ ( 구세주? POW 파우셋 - cpu 마이닝을 통해 적립된 테스트 이더를 지급합니다. )
한번 시작하면 5시간동안 채굴가능, 한번 지급후 같은 주소로 재시작하려면 2시간 기다려야함.
중간에 끊어지면 재시작 가능.
i3-4330으로 110H/S ( 시간당 0.33 채굴) , 2400G로 200H/S ( 시간당 0.55 ) 1700x으로 400H/S( 시간당 1.2)
주의 : 공인 IP당 하나의 세션만. ( VPN이용하면 기가막히게 알아내고 페널티 줍니다.)
메타마스크로 이더 주소 4개 이상 만들어 IP 두개 정도로 열심히 2일정도 돌리니 32테스트 이더를 모았습니다.
다만 채굴방식이라 선뜻 손에 안가시는분들도 계시겠네요. 소스는 공개되어 있습니다. https://github.com/pk910/PoWFaucet
* 메타마스크 지갑에서 Goerli 테스트넷을 선택하려면 설정-고급에서 테스트넷에 전환표시 기능을 켜야 합니다.
다시 DappNode로 돌아와서. 시스템을 설치하면
같은 로컬 시스템에서는 dappnode.local이라는 주소로 접속이 가능하고.
일차로 접속후 초기설정을 한후에는 VPN에서 접속설정을 가져와 wireguard로 접속하는게 정신건강에 이롭습니다.
wireguard에 해당 설정을 넣고 activation을 하면 해당 노드는 이제 VPN으로만 접근이되고
my.dappnode주소로 접속이 됩니다.
공유기나 방화벽을 조정해서 해당 사용포트를 포트포워딩하거나 upnp를 설정해줍니다. - API나 uPNP둘중 하나는 열려야 합니다.
설치 후 조금 기다리면 DappSTORE에 앱이 나타나는데. 아래 패키지를 설치해 줍니다.
Goerli Geth - Goerli 테스트넷을 위한 EL 클라이언트 입니다.
Prysm Prater 는 Goerli 테스트넷을 위한 CL 클라이언트 중 하나 입니다.
Web3singer Prater는 Goerli 테스트넷 밸리데이터를 위한 키관리 패키지입니다. - 이걸 이용해 키스토어를 임포트 합니다.
DMS는 그라파나를 이용해 시스템 상태나 밸리데이터 상태를 볼수 있게 도와줍니다.
설치후 기다리면 체인 동기화가 끝나고 준비가 완료됩니다.
메인넷 GETH와 Prysm은 동기화후 약 720GB가 필요했는데. 테스트넷이라 200기가 언더로 소요되었습니다.
노드가 준비가 되고 32 테스트 이더가 모였으면 이제 디파짓을 통해 밸리데이팅을 합니다.
ethereum.org의 공식페이지로 가서 goerli스테이킹을 위한 런치패드를 실행합니다.
https://goerli.launchpad.ethereum.org/en/
밸리데이터 되기를 누르면 다음 화면을 맞이합니다.
POS는 무엇인지. 32이더가 필요하고 되돌리수 없으며 새로운 키페어를 만들어야하고 , 노드가 꺼지면 페널티가 있으며 네트워크를 위해하는 행동을 하면 퇴출되고 키는 잘 관리해야 하며 기타 등등 동의를 합니다.
중간에 체크리스트도 나오는데 꼭 참고하세요.
https://goerli.launchpad.ethereum.org/en/checklist
EL 클라이언트 선택 페이지가 나오고 , CL 클라이언트 선택페이지가 나옵니다.
https://goerli.launchpad.ethereum.org/en/select-client
그리고 이제 중요한 키 만들기 페이지 입니다.
https://goerli.launchpad.ethereum.org/en/generate-keys
키 관리가 제일 중요한 일 중의 하나이기 때문에 본인이 제일 안전하다고 싶은 방법을 선택하시면 됩니다.
기존의 하드웨어 지갑을 이용하려다가 일단은 새로운 키를 만들어 작업해봤고.
윈도우 기반으로 Wagyu Key Gen app을 사용해봤습니다.
앱을 다운받은후 키생성 작업은 네트워크를 물리적으로 끊고 오프라인으로 작업하시기 바랍니다.
기존 키가 있는경우엔 복원을 하실수도 있고. 새로운 니모닉세트로 새 키를 만들수도 있습니다.
스테이킹을 위해 새로운 키가 필요하니 새 키를 만들어줍니다. 네트워크는 테스트넷을 선택합니다.
니모닉을 생성후 스테이킹에 필요한 키를 만들어 내야 하는데. 추가 설정에 보니 인출에 쓸 주소를 입력하는 곳이 있습니다.
아마 이키로 스테이킹하고 나중에 출금시에는 이 주소로만 출금이 가능한거 같아 기존 이더 주소를 여기에 설정합니다.
생성될 키를 저장할 폴더를 지정후 다음을 누르면 2가지 파일이 생성되고 끝이 납니다.
키스토어 파일은 트랜젝션 Sign에 필요한 키인데 . 밸리데이터에 입력해 나중에 실제 스테이킹시 사용합니다.
키 만들때 입력한 암호로 암호화 되어 있고. dappnode에 Web3singer Prater에 나중에 입력합니다.
개인적으로는 해당키가 온라인에 올라가니 좀 불안한 부분이 있는데. 해당키만으로 출금은 불가능하다고 합니다.
디파짓 파일은 바로 다음에 있을 런치패드를 이용해 32이더를 이체하고 컨트랙을 맺는데 사용됩니다.
이후 32이더가 있는 메타마스트 지갑을 연결하고 이체를 완료하면 됩니다.
메타마스크에 렛저 하드웨어 지갑을 연결해 디파짓 트랜젝션을 수행할때 에러가 나는 경우가 있습니다.
이경우엔 렛저 지갑의 이더리움 앱의 설정에 들어가
"Blind signing"과 "Display Contract Data'을 모두 enable 해주세요.
경우에 따라서는 펌웨어와 앱 업데이트가 필요할수도 있습니다.
위 설정후 트랜젝션 컨펌을 위해 렛저지갑을 확인하는데 확인창만 12개정도가 나오더군요. ^^;
디파짓이후 16-20시간정도 대기를 해야 한다고 하는데.
일단 Dappnode 설정을 마무리 합니다.
위에서 만든 키스토어를 Dappnode의 Web3signer Prater 이 입력해야 합니다. 아래 UI 누르면 키 입력창이 나옵니다.
키스토어를 임포트하고 비번을 입력해 키를 풀어줍니다.
이후 키 리스트에 퍼블릭 키가 보입니다,
이 퍼브릭 키값을 복사해 아래 주소창에 넣어주시면 디파짓 현황을 확인할수 있습니다.
나중에 정상적으로 끝나면 테스트 이더 모아서.
추가로 밸리데이터 입력.
한번에 밸리데이터 3개 만들기.
시스템 지우고 복구해보기 등등 해보려 합니다.
혹시 잘못된 정보나 이더 스테이킹 관련해서 보안설정등에 좋은 정보 있으시면 댓글로 부탁드리겠습니다.
https://kb.beaconcha.in/
https://goerli-faucet.pk910.de/
테스트 이더 소진으로 멈춘건지 어쩐건지는 아직 모르겠습니다. 테스트 이더를 더 구할 방법이 없네요. ㅜ.ㅜ