Difference between revisions of "Set up a Cardano staking pool"

From Organic Design wiki
(Staking from a paper wallet: online tx syntax)
(Configure topology files for block-producing and relay nodes)
Line 3: Line 3:
 
The [https://docs.cardano.org/projects/cardano-node/en/latest/getting-started/install.html 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.
 
The [https://docs.cardano.org/projects/cardano-node/en/latest/getting-started/install.html 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 [https://docs.cardano.org/projects/cardano-node/en/latest/stake-pool-operations/register_key.html#draft-transaction Register stake address on the blockchain]. The main issue is that you need to have some balance in your ''payment.addr'' address, and the previous step of ''creating a sample transaction'' is not optional, things in that step such as ''protocol.json'' and the output hash are referred to in this step.
 
Everything went smoothly until I got to [https://docs.cardano.org/projects/cardano-node/en/latest/stake-pool-operations/register_key.html#draft-transaction Register stake address on the blockchain]. The main issue is that you need to have some balance in your ''payment.addr'' address, and the previous step of ''creating a sample transaction'' is not optional, things in that step such as ''protocol.json'' and the output hash are referred to in this step.
  
The instructions [https://github.com/input-output-hk/cardano-tutorials/blob/master/node-setup/050_register_key.md here] help to clarify these confusing points even though the syntax is a little different since it's for a testnet.
+
The [https://docs.cardano.org/projects/cardano-node/en/latest/stake-pool-operations/KES_period.html#key-evolving-signature-and-kes-period Key Evolving Signature and KES period] section is redundant because it is done already in the [https://docs.cardano.org/projects/cardano-node/en/latest/stake-pool-operations/node_keys.html#generate-your-stake-pool-keys Generate your stake pool keys] section, but it is explained better in the later one.
 +
 
 +
The [https://docs.cardano.org/projects/cardano-node/en/latest/stake-pool-operations/core_relay.html#configure-topology-files-for-block-producing-and-relay-nodes Configure topology files for block-producing and relay nodes] section requires that we have a relay node IP address.
  
 
== Staking from a paper wallet ==
 
== Staking from a paper wallet ==

Revision as of 00:00, 1 August 2020

Cone.png This article or section is a stub. Stubs are articles that have not yet received substantial attention from the authors. They are short or insufficient pieces of information and require additions to further increase the article's usefulness. The project values stubs as useful first steps toward complete articles.


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.

Everything went smoothly until I got to Register stake address on the blockchain. The main issue is that you need to have some balance in your payment.addr address, and the previous step of creating a sample transaction is not optional, things in that step such as protocol.json and the output hash are referred to in this step.

The Key Evolving Signature and KES period section is redundant because it is done already in the Generate your stake pool keys section, but it is explained better in the later one.

The Configure topology files for block-producing and relay nodes section requires that we have a relay node IP address.

Staking from a paper wallet

todo... I'll document this properly after I've done it myself

The idea is to first temporarily install a Daedalus on an offline live booted Linux and then restore a paper wallet into it with the 24 word backup phrase. Then we should be able to interact with the running wallet's associated node from the CLI to create and sign a delegation transaction. That transaction can then be broadcast to the network using any online Cardano node.

First you'll need to find the port that your Daedalus is running on:

ps x | grep cardano-node

Then you'll need to create the key files:

cardano-cli shelley address key-gen \
--verification-key-file payment.vkey \
--signing-key-file payment.skey \
--host-addr 127.0.0.1 \
--port PORT

The syntax for a normal delegation transaction is:

cardano-cli shelley stake-address delegate \
--signing-key-file payment.skey \
--pool-id POOL \
--delegation-fee LOVELACE \
--host-addr 127.0.0.1 \
--port PORT

See also