Set up a Cardano staking pool
The official documentation for setting up a node and configuring it as a stake pool on the mainnet is mostly very clear and complete. I was able to get my node compiled, installed and running pretty easily. But configuring the node to run as a stake pool is more complicated and the documentation seems to have some missing bits, so I'm documenting here just the specific parts that I had trouble with.
Register stake address on the blockchain
Everything went smoothly until I got to [Register stake address on the blockchain https://docs.cardano.org/projects/cardano-node/en/latest/stake-pool-operations/register_key.html#draft-transaction]. The instructions for "Draft transaction" include some parameter values which refer to things that the prior instructions have not created.
The next section for calculating the fees refers to a file called protocol.json in the --protocol-params-file parameter. This file is actually mainnet-shelley-genesis.json.