Go-Ethereum Documentation – What is the Bootnode Command in Go-Ethereum?

bootnodesgo-ethereumprivate-blockchain

In the go-ethereum docs there is reference to a bootnode command:

Creating the rendezvous point

With all nodes that you want to run initialized to the desired genesis
state, you'll need to start a bootstrap node that others can use to
find each other in your network and/or over the internet. The clean
way is to configure and run a dedicated bootnode:

$ bootnode --genkey=boot.key

$ bootnode --nodekey=boot.key

With the bootnode online, it will display an enode URL that other
nodes can use to connect to it and exchange peer information. Make
sure to replace the displayed IP address information (most probably
[::]) with your externally accessible IP to get the actual enode URL.

Note: You could also use a full fledged Geth node as a bootnode, but
it's the less recommended way.

Is this command part of go-ethereum or a separate program?

My computer fails to find the command.

I have tried install via apt-get install bootnode gives "no such package"

I'm also unsure what the boot object is (with key attribute).

Is anyone able to clarify this?

Why is it not recommended to have the bootnode be a full node?

Best Answer

I think it had previously been a part of the "Geth and Tools" release package, but it's gone missing... An issue was raised a couple of days ago: #3703

With regards to what it does, further up the page you linked to there's a description of each of the standalone tools (yes, they're separate executables):

bootnode

Stripped down version of our Ethereum client implementation that only takes part in the network node discovery protocol, but does not run any of the higher level application protocols. It can be used as a lightweight bootstrap node to aid in finding peers in private networks.