Skip to content

Commit

Permalink
Merge pull request #601 from input-output-hk/olgahryniuk-patch-102
Browse files Browse the repository at this point in the history
Update the SPO section
  • Loading branch information
olgahryniuk authored May 1, 2024
2 parents 578a7af + f07d836 commit d5ecad2
Show file tree
Hide file tree
Showing 12 changed files with 129 additions and 290 deletions.
87 changes: 0 additions & 87 deletions docs/08-operating-a-stake-pool/01-stake-pool-operations-101.mdx

This file was deleted.

74 changes: 35 additions & 39 deletions docs/08-operating-a-stake-pool/02-about-stake-pools.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,51 +3,47 @@ title: About stake pools, operators, and owners
metaTitle: About stake pools, operators, and owners
---

This section includes an overview of stake pool operations and explains the ways
of creating and managing your own stake pool.

A [stake pool](/learn/stake-pools) is a reliable server node that holds and
maintains the combined stake of various stakeholders in a single entity. Stake
A [stake pool](/learn/stake-pools) is a reliable server node that represents the
combined stake of various stakeholders in a single entity. Stake
pools use the [Cardano node](https://docs.cardano.org/learn/cardano-node/) to
validate how the pool interacts with the network and are responsible for
transaction processing and block production.

Successfully operating a stake pool includes the roles of a stake pool operator
and one or more stake pool owner(s). It is important to note that there is a
conceptual difference between these two roles:

- A _stake pool operator_ is a person who is assigned responsibility for setting
up and keeping the stake pool running, which means that they own or rent a
server, hold the key of the stake pool, and hold responsibility for running
and monitoring the node. With their key, a stake pool operator can sign
blocks, register, re-register, or retire a stake pool, and post updated
certificates. A stake pool operator is also empowered to exclude some stake
pool owners during re-registration.
- A _stake pool owner_ is a person who pledges their stake to the pool to
increase the pool’s reward earning capacity and desirability. The ability of
the owner to [pledge stake](/learn/pledging-rewards) provides protection
against Sybil attacks.

Usually, the stake pool operator and the owner is the same person, however, a
stake pool can also have multiple owners, who pledge their stake to form one
larger pool to ensure it is competitive. Even in this case, there is still only
one stake pool operator who is responsible for stake pool processes.

It is essential that all stake pool owners trust a stake pool operator. All
operators’ and owners’ rewards are paid out into a single shared reward account
associated with the reward address of the pool. The holder of the rewards
account pays out rewards independently to the owners.

This makes it clear to all parties that an agreement is needed to define when
form the backbone of the Cardano network by processing transactions and validating and producing blocks.

Stake pool roles include a stake pool operator
and one or more stake pool owner(s). It is important to note the
conceptual differences between the two:

- A _stake pool operator_ is the owner of the cold and VRF signing keys used to create the stake pool.
The operator configures and maintains stake pool infrastructure and is responsible for monitoring it.
The operator can register, re-register, or retire a stake pool, update
certificates, and ensure that the block-producing node can sign and validate blocks and process transactions.
- A _stake pool owner_ is determined by the stake signing keys used in stake pool creation. The owner's
[pledge stake](/learn/pledging-rewards) is intended to
provide protection against Sybil attacks.

Usually, the stake pool operator and the owner are the same person. However, a
stake pool can have multiple owners that choose to combine their pledge. It should
be noted that the stake pool's declared pledge must be met by the combined stake in the
owner's wallets and failure to do so will result in the pool being unable to produce blocks.

All operator and owner rewards are paid out into a single rewards account
associated with the reward address of the pool. If a stake pool has multiple owners, it is
up to the owner of the rewards account to distribute rewards to the operator and
other owners.

An agreement is likely needed to define when
and how the accumulated rewards in a shared account should be split. For
example, they can agree to have the operator control the shared account, or they
could choose to use a multisig account.
can choose to use a multisig account.

To run a pool effectively, a bi-directional relationship and trust are crucial.
If this trust is broken, other parties can lose in regards to accumulated or
potential rewards, or reputation for the operator.

_Note, that to eliminate such a case, it is beneficial for owners and operators
to consider entering into contractual arrangements._
:::info

Developer resources:

- [Stake pool operations overview](https://developers.cardano.org/docs/operate-a-stake-pool/)
- [Cardano course: creating a stake pool](https://cardano-course.gitbook.io/cardano-course/handbook/create-a-stake-pool)

Read the following sections to find out how to set up and operate a stake pool.
:::
45 changes: 0 additions & 45 deletions docs/08-operating-a-stake-pool/03-creating-a-stake-pool.mdx

This file was deleted.

22 changes: 11 additions & 11 deletions docs/08-operating-a-stake-pool/04-node-connectivity.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,12 @@ block creation.

## Cardano networking

Cardano's networking evolved from its initial federated structure to hybrid and the current Dynamic peer-to-peer (P2P) model. Networking will keep evolving with future additions such as Ouroboros Genesis and peer-sharing. See [this explainer](https://docs.cardano.org/explore-cardano/cardano-network/p2p-networking) for more details about network evolution and Dynamic P2P.
Cardano's networking evolved from its initial federated structure to hybrid and the Dynamic peer-to-peer (P2P) model. Networking will keep evolving with future additions such as Ouroboros Genesis and peer-sharing. See [this explainer](/explore-cardano/cardano-network/p2p-networking) for more details about network evolution and P2P.

In a previous hybrid setup, SPOs could configure a node to connect to, for example, 50 other SPO nodes. This is a pretty large number, since many nodes can be offline, change their addresses, etc. While 20 connections are enough for efficient communication, SPOs had to over-provision because of the static configuration.

In a Dynamic P2P setup, SPOs can target to configure 20 connections, which can be picked from thousands of SPO relays, not just 50. And if any are offline, or go offline, the setup will automatically pick new ones, to meet the set target. This means that the configuration is no longer limited to a static pool of 50 peers.

P2P also allows for more sophisticated configurations for direct peering arrangements between SPOs. For example, if two SPOs want to maintain a connection between their relays, and each has two relays, they can configure a group of peers that lists the other SPOs’ two relays but with a target that there should be at least one connection. This means that there is no need for over-provisioning, and SPOs still get automatic failover if one relay goes down. With static configuration, one had to choose between listing only one and thus not getting resilience, or listing both and over-provisioning (using more resources).

## Connecting core and relay nodes

As a stake pool operator, you will have two types of nodes: core nodes and relay
Expand All @@ -27,14 +25,16 @@ producing blocks, while relays are responsible for communicating with other
relays in the network and broadcasting blocks. This difference determines how
they are configured and how they are connected to the network.

A core node is configured with various key-pairs and an operational certificate
needed for block generation. It only connects to its relay nodes.
A core node is configured with various key pairs and an operational certificate
required for block generation. It only connects to its relay nodes.

:::info

Developer resources:

## Instructions to configure a node
- [Stake pool networking](https://developers.cardano.org/docs/operate-a-stake-pool/stake-pool-networking)
- [Cardano relay configuration](https://developers.cardano.org/docs/operate-a-stake-pool/cardano-relay-configuration)
- [Configurations and setup](https://cardano-course.gitbook.io/cardano-course/handbook/create-a-stake-pool/the-setup)

- [About node configuration files](https://github.com/input-output-hk/cardano-node-wiki/blob/main/docs/getting-started/understanding-config-files.md)
- [Configuring topology files for block-producing and relay nodes](https://github.com/input-output-hk/cardano-node-wiki/blob/main/docs/stake-pool-operations/0_core_relay.md)
- [Getting configuration files and connecting the node](https://github.com/input-output-hk/cardano-node-wiki/blob/main/docs/stake-pool-operations/1_getConfigFiles_AND_Connect.md)
- [Starting the node](https://github.com/input-output-hk/cardano-node-wiki/blob/main/docs/stake-pool-operations/2_start_your_nodes.md)
:::

Read the next section about **keys and operational certificates** to proceed.
18 changes: 7 additions & 11 deletions docs/08-operating-a-stake-pool/05-node-monitoring.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,14 @@ metaTitle: Logging and monitoring

Regular monitoring of active nodes is crucial to determine if the node is running optimally, if the system is performant, or if fine-tuning is required.

Activate a trace on the node to access metrics, including network traffic, memory usage, and general blockchain data. For details, see:
:::info

- [Configuring logging](https://github.com/input-output-hk/cardano-node-wiki/blob/main/docs/logging-monitoring/logging.md)

You can then choose a toolset to monitor your node:
Developer resources:

- [Monitoring the node with EKG](https://github.com/input-output-hk/cardano-node-wiki/blob/main/docs/logging-monitoring/ekg.md)
- [Using a Grafana Dashboard](https://github.com/input-output-hk/cardano-node-wiki/blob/main/docs/logging-monitoring/grafana.md)
- [Monitoring the node in real time with RTView](https://docs.cardano.org/cardano-components/cardano-rtview)
- [Monitoring the node with Prometheus](https://github.com/input-output-hk/cardano-node-wiki/blob/main/docs/logging-monitoring/prometheus.md)
- [Cardano course: monitoring the nodes](https://cardano-course.gitbook.io/cardano-course/handbook/monitoring-our-nodes)
- [Monitoring with gLiveView](https://developers.cardano.org/docs/operate-a-stake-pool/monitoring-gLiveView)
- [Grafana dashboard tutorial](https://developers.cardano.org/docs/operate-a-stake-pool/grafana-dashboard-tutorial)

:::

You can also see video tutorials and Cardano Course handbook material:

- [Monitoring the node with Prometheus and Grafana](https://cardano-course.gitbook.io/cardano-course/handbook/monitoring-our-nodes)
- [Video explainer on monitoring the node with Prometheus](https://www.youtube.com/watch?v=iqAmwhk7djE&list=PLNEK_Ejlx3x2ut-Pq-hi0NFVsgKB3EddR&index=22)
Loading

1 comment on commit d5ecad2

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deploy preview for cardano-documentation ready!

✅ Preview
https://cardano-documentation-5trddtzf4-iog.vercel.app
https://cardano-documentation.vercel.app

Built with commit d5ecad2.
This pull request is being automatically deployed with vercel-action

Please sign in to comment.