상세 컨텐츠

본문 제목

[Mastering the Lightning Network] 5 - 라이트닝 네트워크 노드 운영하기

IT.About/라이트닝 네트워크

by zNine 2021. 12. 24. 16:17

본문

728x90
반응형

5장에서는 라이트닝 네트워크 노드를 운영하는데 필요한 내용들에 대해서 다룬다.

  • 하드웨어 플랫폼 선택
    • PC
    • 전용 H/W (ex: 라즈베리파이)
    • 미리 구성된 H/W
    • 클라우드
  • 권장 하드웨어 사양
    • CPU
      • 64bit, 2~4 코어
    • RAM
      • 최소 4GB ~ 8GB
    • Storage
      • 512GB ~ 1TB
      • 현재 400GB, 매년 60GB 증가
      • Bitcore Core 경우 I/O 많이 발생
      • 가격 고려해서 HDD or SSD 선택
  • Installer or Helper
    • RaspBlitz
      • 가장 인기 있다고 . 라즈베리파이 4 사용.
      • 다양한 서비스 설치 가능.(Tor, ElecRS, BTCPay 서버, BTC RPC 탐색기 등)
    • Mynode
      • 쉬운 설치 추가 서비스 설치 가능.
    • Umbrel (필자가 사용중)
      • UX/UI 유명. 매우쉽게 접근 가능.
      • 라즈베리파이 4, Linux OS(윈도우 가상머신) 설치 가능.
      • 초기 실행 Neutrino/SPV 동작, 블록 다운로드 완료 모드 자동으로 전환.
    • BTCPay 서버
      • 전자 상거래 지불 플랫폼.
      • 도커 컨테이너와 docker-compose 사용해 비트코인 노드, 라이트닝 노드, 지불 게이트웨이 설치 가능.
      • 라즈베리파이 4, PC 다양한 플랫폼에 설치 가능.
      • 여러 서비스 설치 가능.
  • 라이트닝 노드 구현
    • c-lightning - Make, Autotools GNU 유틸리티 사용
    • LND - Go
    • Eclair - Java/Maven
  • 노드 채널 백업
    • 백업은 라이트닝 노드 실행 매우 중요한 고려사항.
    • static channel backup(SCB)이라고 하는 추가 백업 레이어가 필요.
    • SCB 단점
      • 새로운 CT 있을때마다각 채널의 상태를 백업해야함.
      • 백업에서 복원하는 것의 위험성.
      • 개인 정보와 채널 보안을 위해 채널 백업을 암호화해야
    • 위의 단점에도 불구하고 SCB 수행해야하며, 백업 매커니즘은 구현중이며 아직까지는 라이트닝에서의 약점으로 존재.
    • LND SCB 내장 매커니즘으로 제공하고 있음.
    • Eclair 비슷하게 서버사이드 배포 매커니즘을 제공. Mobile 구글 드라이브 백업을 선택적으로 제공.
    • c-lightning 플러그인으로 제공.
    • 일관된 백업 매커니즘은 없는 상태.
  • Hot Wallet Risk
    • 라이트닝의 자금은 항상 온라인상태.
    • 자금의 양이 많은 경우 콜드월렛에 저장하는것이 안전.
    • 핫월렛에 노출된 자금을 줄이는 솔루션이 있음.
      • On-chain sweep
        • 라이트닝 지갑 -> 비트코인 지갑으로 자금을 이동.
        • 채널 닫으면 .
      • Off-chain sweep
        • 네트워크에 알려지지 않은 라이트닝 노드를 실행해 정기적으로 숨겨진 노드로 자금을 이동.
        • 숨겨진 노드는 Tor 서비스를 이용해 IP주소를 알수 없도록해 해킹에 대비 할수 있음.
        • 정기적으로 실행되는 스크립트를 설정해야 .
      • Submarine swap sweep
        • 채널 잔액을 상대방에게 보내고, 상대방은 비트코인을 보내는 방식.
      • Submarine swap with Loop
        • Loop 서비스를 사용(LND 노드에서만 가능하며, 추가 소프트웨어 설치 필요)
        • Loop In - 비트코인 결제를 수락하고 라이트링 결제로 전환
        • Loop Out - 라이트닝 결제를 수락하고 비트코인 결제로 전환
  • 라이트닝 노드 가동 시간 가용성
    • 항상 온라인 상태 유지 필요. (지불 받기, 채널 열기/닫기 포로토콜 위반 모니터링 )
    • 메모리, SWAP, 오픈 파일, 디스크 공간 등의 제한으로 노드 or 서버가 중단  수있음.
    • 자동화 필요
      • 자동 시작
      • 자동 노드 시작 (노드 프로세스 시작)
      • 네트워크 연결
      • 로그 파일 관리
    • 노드 모니터링
      • 여러 가지 방법이 있으며, 라이트닝 노드 API 쿼리를 위해 사용자 설정이 필요.
      • 모니터링 API 표준화가 필요.
    • Watchtowers
      • 라이트닝 프로토콜 위반 모니터링 패널티 해결을 아웃소싱하기 위한 매커니즘.
      • 서버(watchtower), 클라이언트 두가지 설정이 있음.
      • 개발 초기 단계.
      • LND 서버/클라이언트 모두 포함되어 있음. (설정으로 활성화 가능)
  • 채널 관리
    • 노드 운영자의 반복적인 관리가 필요.
    • 노드에서 다른 노드로 아웃바운드 채널을 열고,  다른 노드가 노드에 인바운드 채널을 열도록 해야함.
    • 채널 오픈 자금은 발신자 한쪽에만 있기때문에,
    • 인바운드/아웃바운드 밸런싱을 위해서는 채널을 오픈한 상대에게 나의 노드로 채널을 오픈하도록 유인하는 것이 필요.
    • 아웃바운드 채널 열기
      • 라우팅 실패를 고려해 두개 이상의 채널이 필요.
      • 다중 결제를 지원, 초기 자금을 여러채널로 분할하고 용량을 결합해 결제를 라우팅 할수 있음.
      • well-connected 노드에 연결하기
      • 두개 이상의 채널 열기
      • 너무 많은 채널 열지 않기
      • 채널 용량은 너무 적게 만들지 않기
      • Autopilot(오토파일럿) 소프트웨어를 이용해 자동화 가능.
    • Rebalancing
  • 라우팅 수수료
    • 노드에서 결제를 라우팅하는데에 대한 수수료.
    • 기본 수수료로 설정하는 것을 추천.
  • 노드 관리
    • Command line 또는 사용자 정의 스크립트 기능을 제공.
    • 기반 인터페이스
      • Ride The Lightning
        • LND, c-lightning, Eclair 지원.
        • Umbrel 에서 설치 & 실행 가능
      • lndmon
        • LND 제조사(Lightning Labs)에서 구현.
        • LND 노드의 다양한 메트릭을 모니터링 가능.
        • Read-only 인터페이스. (채널 open/close, 결제 불가)
      • ThunderHub
        • Ride The Lightning과 유사, LND 전용이며 UI 우수함.
728x90
반응형

관련글 더보기