이더리움 부트노드 소개
새로운 노드가 이더리움 네트워크에 참여할 때, 새로운 피어를 발견하기 위해 이미 네트워크에 있는 노드에 연결해야 합니다. 이더리움 네트워크로 들어가는 이러한 진입점을 부트노드라고 합니다. 클라이언트에는 일반적으로 부트노드 목록이 하드코딩되어 있습니다. 이러한 부트노드는 일반적으로 이더리움 재단의 데브옵스(devops) 팀이나 클라이언트 팀 자체에서 운영합니다. 부트노드는 정적 노드(static node)와 같지 않다는 점에 유의하세요. 정적 노드는 반복해서 호출되는 반면, 부트노드는 연결할 피어가 충분하지 않고 노드가 새로운 연결을 부트스트랩해야 할 때만 호출됩니다.
부트노드에 연결하기
대부분의 클라이언트에는 부트노드 목록이 내장되어 있지만, 자체 부트노드를 실행하거나 클라이언트의 하드코딩된 목록에 없는 부트노드를 사용하고 싶을 수도 있습니다. 이 경우 다음과 같이 클라이언트를 시작할 때 이를 지정할 수 있습니다(예시는 Geth용이며, 해당 클라이언트의 문서를 확인하세요).
geth --bootnodes "enode://<node ID>@<IP address>:<port>"
부트노드 실행하기
부트노드는 NAT(네트워크 주소 변환(Network Address Translation) (opens in a new tab)) 뒤에 있지 않은 풀 노드입니다. 모든 풀 노드는 공개적으로 접근할 수 있는 한 부트노드 역할을 할 수 있습니다.
노드를 시작할 때 enode를 로그에 기록해야 합니다. 이는 다른 사람들이 여러분의 노드에 연결하는 데 사용할 수 있는 공개 식별자입니다.
enode는 일반적으로 다시 시작할 때마다 재생성되므로, 부트노드에 대한 영구적인 enode를 생성하는 방법은 클라이언트 문서를 확인하시기 바랍니다.
좋은 부트노드가 되려면 연결할 수 있는 최대 피어 수를 늘리는 것이 좋습니다. 많은 피어와 함께 부트노드를 실행하면 대역폭 요구 사항이 크게 증가합니다.
사용 가능한 부트노드
go-ethereum 내에 내장된 부트노드 목록은 여기 (opens in a new tab)에서 찾을 수 있습니다. 이러한 부트노드는 이더리움 재단과 go-ethereum 팀에서 유지 관리합니다.
자원봉사자가 유지 관리하는 다른 부트노드 목록도 사용할 수 있습니다. 항상 하나 이상의 공식 부트노드를 포함해야 합니다. 그렇지 않으면 이클립스 공격(eclipse attack)을 받을 수 있습니다.