4년전에 렛저사의 하드웨어 지갑을 처음 사서 사용해보고 느낀점은?
응? 개인키는 하드웨어에 저장되고 암호화되어 까볼수 없다지만 사용하는 전용프로그램은 해당 회사의 네트워크에 종속되어 있어
해당 회사가 서비스를 접거나 하면 지갑도 사용못할거 같은데? 였습니다.
3-4년전 부터 비트코인 노드와 이더리움 풀노드를 집과 회사에서 돌리고 있는데.
순전히 분산화된 리소스를 제공해 일정부분 네트워크에 기여하고자 하는 생각뿐이었거든요.
그러다가 어느날 노드를 이용해 트랜젝션을 만드는 원래부터 있었던 기능에 접근할수 있었습니다.
바쁘신분들을 위해 정리해 보면 다음과 같습니다.
1. 렛저 나노 지갑 사용 중 렛저사의 서비스가 중지되어 코인 전송이 불가능할때 개인 노드를 이용해서 비트코인과 이더 전송하는법.
2. 비트코인 : 일렉트룸 오픈소스 지갑 설치후 하드웨어 웰럿 연결, 이후 네트워크에서 비트코인 개인노드 연결.
3. 이더리움 : 크롬에 메타마스크 설치후 하드웨어 웰렛 연결후 ㅡ 설정 네트워크에서 이더리움 개인 노드 연결.
---------------------------------------------------------------------------------------------------------------------------------------------
1. 비트코인.
A. 렛저 전용앱 + 비트코인 RPC 노드
렛저사의 PC용 전용앱인 렛저 라이브의 경우 언젠가 부터 설정 - 실험적 특징 항목에 가면 자신의 비트코인 노드를 연결하는 기능이 아래와 같이 탑재되어 있습니다.
위 방법을 사용하면 내 트렌젝션이 외부 노드의 서비스 문제로 실행되지 않는것 등을 방지할수 있습니다만 렛저 라이브 앱 자체가 렛저 본사서비스에 종속되어 있어 완전한 해결책은 아니라고 생각하고 있었습니다.
즉 렛저라이브에 종속된 기본 비트코인 노드 서비스가 먹통일때 내 노드를 이용해 즉시 전송이 가능한 보조 서비스 정도..
B. Electrum
Electrum은 이름만 보면 전 이더 지갑 처럼 느껴지던데. 2011년에 나온 비트코인 전용 지갑 소프트웨어입니다.
비트코인 코어 지갑과 달리 체인데이터를 직접 저장하지 않아 간단히 설치할수 있는데
이 지갑은 하드웨어 웰렛을 연결하여 사용할수 있고 블록체인 데이터를 외부 노드에 의존하기 때문에 당연하게 노드 연결을 해야 하는데 이 설정을 통해 내 자신의 비트코인 노드에 연결할 수 있습니다.
UI가 아주 올드합니다.
Tool 메뉴의 네트워크에 가서 서버 항목에 내 비트코인 RPC 노드 데이터를 적어주면 됩니다.
예전에는 비트코인 코어 노드를 운영했었는데 얼마전부터 Umbrel을 돌리고 있고. 해당 패키지는 비트코인 코어 노드를 포함하고 있지만 일반네트워크가 아닌 Tor 네트워크에서 운영되기에 onion 주소로 연결됩니다.
지갑이 설치된 PC의 네트워크를 Tor 네트워크로 연결을 해주는 Tor "Windows Expert Bundle" 이 필요합니다.
https://www.torproject.org/download/tor/
위의 지갑 화면을 보면 오른쪽 하단에 빨간색 동그라미가 있는데 이게 노드 연결이 되지 않았다는 뜻입니다.
아래처럼 Tor를 실행하면 tor 네트워크에 접속되면서 접속이 완료되면 파란색으로 바뀌면서 사용가능하게 됩니다.
실제 Umbrel 메뉴에 보면 다양한 외부지갑에 노드를 연결하는 방법이 나와 있습니다.
이런 여러 지갑중 Electrum은 하드웨어 월렛인 렛저를 지원하는 지갑인거죠.
2. 이더리움
이더리움은 노드운영에 많은 리소스가 필요해 많은 상용업체들도 infura 서비스에 종속? 되어 있습니다.
국내 거래소의 이더리움 입출금은 인퓨라 서비스가 맛이 가거나 정비중에는 같이 서비스가 죽어버립니다. ^^;
메타마스크도 기본 이더 네트워크를 인퓨라로 사용중이더군요.
이더리움 개인 노드 연결 서비스도 렛저 라이브에 탑재되면 좋겠다 싶었는데 기미가 안 보이더라구요.
그러다가 보안성 문제로 쳐다보지도 않던 메타마스크를 업비트 덕분에 설치하고 보니 하드웨어 웰렛 연결이 가능하더라구요. --;
그리고 ERC20 체인을 위한 네트워크도 지원하는걸 보고 앗.. 노드 연결이 되겠다 싶어 테스트 해보았습니다.
전 이더리움 노드로 GETH를 사용하는데 실행 명령어에 아래 내용을 추가해 주면 됩니다. ( --rpc 명령어는 --http로 대체)
geth 뒤쪽으로 추가.. --http --http.corsdomain="chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn"
노드와 지갑이 같은 장치가 아닌경우 --http.addr=0.0.0.0추가
기존에 돌던 GETH에 위 명령어 추가하고 아래처럼 네트워크 추가하고 연결하니 지갑 잔액 조회도 정상이고 잘 됩니다.
이더리움 GETH 노드 설치법
0. 공유기 사용시 30303 포트 TCP 포트포워딩 설정
1. 우분투 기준. 이더리움 설치
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum
2. 서비스 유저 생성
cd ~
sudo adduser --home /home/eth2/eth1 --disabled-password --gecos 'Go Ethereum Client' geth
sudo chown -R geth:geth /home/eth2/eth1
sudo -u geth chmod -R 700 /home/eth2/eth1
3. 서비스 데몬설정
sudo nano /etc/systemd/system/geth.service
이하 내용
----------------------------------------------------------
[Unit]
Description=Geth-Main
After=network-online.target
[Service]
Type=simple
User=geth
ExecStart=geth --http --datadir=/home/eth2/eth1 --metrics --pprof --cache=2048 --syncmode full
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
---------------------------------------------------------------
or
[Unit]
Description=Geth-Main
After=network-online.target
[Service]
Type=simple
User=geth
ExecStart=geth --http --datadir=/home/eth2/eth1 --metrics --pprof --cache=5000
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
4. 서비스 실행
sudo systemctl daemon-reload
sudo systemctl start geth
sudo systemctl status geth - 서비스 실행 확인
sudo systemctl enable geth - 부팅시 자동실행
5. 로그확인
sudo journalctl -f -u geth.service
참조 :
https://cafe.naver.com/eth2staking