Skip to content

Commit

Permalink
Validator Guide: add instructions for installing multiple binaries (#…
Browse files Browse the repository at this point in the history
…4860)

* Validator Guide: add instructions for installing multiple binaries

After extensive discussion (see
[here](paritytech/polkadot#7147) and
[here](https://forum.polkadot.network/t/ux-of-distributing-multiple-binaries-take-2/2854)),
it's been determined that we will be distributing multiple binaries along with
`polkadot`. I'm updating the Validator Guide to reflect this. To make it easier
for validators, this may be the basis for some script in the future if that is
desired.

* Add a helpful note

* Update verification instructions

* Update docs/maintain/maintain-guides-how-to-validate-polkadot.md

Co-authored-by: Will Pankiewicz <9498646+wpank@users.noreply.github.com>

---------

Co-authored-by: Will Pankiewicz <9498646+wpank@users.noreply.github.com>
  • Loading branch information
mrcnski and wpank authored Aug 11, 2023
1 parent 048ceae commit 87f588c
Show file tree
Hide file tree
Showing 6 changed files with 89 additions and 57 deletions.
6 changes: 5 additions & 1 deletion docs/general/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,11 @@ blockchain.

## Blockspace

[Blockspace](https://polkadot.network/blog/blockspace-blockspace-ecosystems-how-polkadot-is-unlocking-the-full-potential-of-web3) is the capacity of a blockchain to finalize and commit operations. It represents a blockchain's security, computing, and storage capability as an end product. Blockspace produced by different blockchains can vary in quality, availability, and flexibility. Polkadot has a [blockspace-centric architecture](https://www.rob.tech/blog/polkadot-blockspace-over-blockchains/).
[Blockspace](https://polkadot.network/blog/blockspace-blockspace-ecosystems-how-polkadot-is-unlocking-the-full-potential-of-web3)
is the capacity of a blockchain to finalize and commit operations. It represents a blockchain's
security, computing, and storage capability as an end product. Blockspace produced by different
blockchains can vary in quality, availability, and flexibility. Polkadot has a
[blockspace-centric architecture](https://www.rob.tech/blog/polkadot-blockspace-over-blockchains/).

## Block Explorer

Expand Down
44 changes: 23 additions & 21 deletions docs/general/polkadot-v1.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,16 @@ keywords: [polkadot vison, polkadot 1.0, Blockspace, Resilience, Decentralizatio
slug: ../polkadot-v1
---


Since the release of Bitcoin in 2009, blockchain projects increased exponentially to the order of
tens of thousands. Different projects have different value propositions, suggesting that the future
will be multi-chain and that inter-chain communication will be crucial to establish collaborations
and leveraging each other strengths.

## Polkadot 1.0

Polkadot 1.0 reflects the status of Polkadot in 2023 at time of the release of the [Polkadot runtime
v1.0.0](https://github.com/paritytech/polkadot/releases/tag/v1.0.0). This sections focuses on Polkadot 1.0 and some philosophical digressions about network
resilience and blockspace.
Polkadot 1.0 reflects the status of Polkadot in 2023 at time of the release of the
[Polkadot runtime v1.0.0](https://github.com/paritytech/polkadot/releases/tag/v1.0.0). This sections
focuses on Polkadot 1.0 and some philosophical digressions about network resilience and blockspace.

Polkadot is a Layer-0 blockchain that brings to the multi-chain vision the following innovations and
initiatives:
Expand Down Expand Up @@ -87,41 +86,43 @@ Currently, Polkadot 1.0 achieve resilience through the following strategies:
participants and further increase physical (how many validator nodes per service provider) and
social decentralization (how many validator nodes per operator). Those can be explored with the
[Polkawatch App](https://polkadot.polkawatch.app/).
- An on-chain treasury and governance (see: [OpenGov](../learn/learn-polkadot-opengov.md) where every decision goes though public referenda and any
token holder can cast a vote.
- An on-chain treasury and governance (see: [OpenGov](../learn/learn-polkadot-opengov.md) where
every decision goes though public referenda and any token holder can cast a vote.

### Polkadot's Blockspace

The design and realization of Polkadot 1.0 allowed its creators to enable commoditization of blockspace.
The design and realization of Polkadot 1.0 allowed its creators to enable commoditization of
blockspace.

A blockchain is a way to store data. The storage unit is the block, and once a block is finalized
onto the chain, it is practically impossible to modify the data within that block. In addition to
being tamper-proof, public permissionless blockchains like Polkadot store data that are visible to
everybody (i.e. public), and anybody can become a network participant permissionlessly.

**Blockspace** is the capacity of a blockchain to finalize and commit operations. It represents a
blockchain's security, computing, and storage capability as an end product. Blockspace produced by
different blockchains can vary in security, flexibility, and availability.
**Blockspace** is the capacity of a blockchain to finalize and commit operations. It represents a
blockchain's security, computing, and storage capability as an end product. Blockspace produced by
different blockchains can vary in security, flexibility, and availability.

- **Security**, intended as how secure the blockspace is. In Proof-of-Stake (PoS) networks, this is
directly related to how much stake is locked on validator nodes, how much variance in stake there
is between validators (i.e. how easy it is to attack a single validator), and how many
validators there are securing the network (i.e. how easy it is for colluding validators to exert
influence on the network). Additionally, it is also important to look at how many validators are owned by single
operators (this will determine the degree of social centralization of the network), and how many
validators run on the same service provider (this will determine the degree of physical
is between validators (i.e. how easy it is to attack a single validator), and how many validators
there are securing the network (i.e. how easy it is for colluding validators to exert influence on
the network). Additionally, it is also important to look at how many validators are owned by
single operators (this will determine the degree of social centralization of the network), and how
many validators run on the same service provider (this will determine the degree of physical
centralization of the network).
- **Flexibility**, intended as how flexible the blockspace is, what can be done with it, and what
type of data can be stored. Data quality plays an important role depending on the type of network.
One might avoid having situations in which poor quality data flood blockspace hindering the prompt
execution of vital processes.
- **Availability**, intended as how available blockspace is and how difficult it is to access it. It
should not be too difficult to get your hands on it so that any business model can
thrive using it. Ideally, a marketplace must drive the blockspace price based on demand, with
secondary market options to ensure the usage of "second-hand" blockspace.
should not be too difficult to get your hands on it so that any business model can thrive using
it. Ideally, a marketplace must drive the blockspace price based on demand, with secondary market
options to ensure the usage of "second-hand" blockspace.

Polkadot has been designed around those core blockspace principles. However, its design can be
further improved such that the tasks which are currently managed on the relay chain, such as balances transfers, staking, and governance, can be delegated to
further improved such that the tasks which are currently managed on the relay chain, such as
balances transfers, staking, and governance, can be delegated to
[system parachains](../learn/learn-system-chains.md) to increase flexibility and to focus the use of
the relay-chain to provide shared security and interoperability. Blockspace is only accessible
through slot auctions, but an auction winner has access to a "freighter of blocks" regardless it is
Expand All @@ -148,5 +149,6 @@ strange lands but to possess other eyes._
Thus, if we start to see Polkadot with _other eyes_ we can truly envision its potential and what it
could become.

Polkadot is perfecting its implementation through [RFCs](https://github.com/polkadot-fellows/RFCs)
to continue being a decentralized, secure, ubiquitous computing engine to power the next generation of Web3 applications.
Polkadot is perfecting its implementation through [RFCs](https://github.com/polkadot-fellows/RFCs)
to continue being a decentralized, secure, ubiquitous computing engine to power the next generation
of Web3 applications.
18 changes: 12 additions & 6 deletions docs/learn/learn-polkadot-opengov-treasury.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,9 @@ Your proposal should address a problem, outline a goal, give a detailed account
reach that goal, and include any ongoing maintenance needs. As much as possible, you should itemize
the tasks to be completed so fees can be evaluated and milestones can be followed. You can check the
{{ polkadot: [guidelines for a successful proposal](https://docs.google.com/document/d/1IZykdp2cyQavcRyZd_dgNj5DcgxgZR6kAqGdcNARu1w) :polkadot }}{{ kusama: [guidelines for a successful proposal](https://docs.google.com/document/d/1CzEnurqwqLBOGrJI9CQORiGW9m6QyPOSshhzJdR57Pk) :kusama }}
and fill out the {{ polkadot: [Treasury proposal template](https://docs.google.com/document/d/1O_84mXYFERCavmnJyxbIPKFkG0bVBySRjCVy-d-VKcc) :polkadot }}{{ kusama: Treasury proposal template :kusama }} provided.
and fill out the
{{ polkadot: [Treasury proposal template](https://docs.google.com/document/d/1O_84mXYFERCavmnJyxbIPKFkG0bVBySRjCVy-d-VKcc) :polkadot }}{{ kusama: Treasury proposal template :kusama }}
provided.

### Announcing the Proposal

Expand All @@ -119,7 +121,9 @@ proposal, they will need to find an off-chain way to explain the proposal:
{{ kusama: [Kusama Direction room](https://matrix.to/#/#Kusama-Direction:parity.io) and the :kusama }}
{{ polkadot: [Polkadot Direction room](https://matrix.to/#/#Polkadot-Direction:parity.io). :polkadot }}
{{ kusama: [Kusama Watercooler](https://matrix.to/#/#kusamawatercooler:polkadot.builders). :kusama }}
- Use platforms like [Polkassembly](https://polkassembly.io) and [SubSquare](https://www.subsquare.io/) to initiate discussion with the community. They also offer a gauge poll to capture the community sentiment before submitting an on-chain referendum.
- Use platforms like [Polkassembly](https://polkassembly.io) and
[SubSquare](https://www.subsquare.io/) to initiate discussion with the community. They also offer
a gauge poll to capture the community sentiment before submitting an on-chain referendum.

Spreading the word about the proposal's explanation to the community is ultimately up to the
proposer.
Expand All @@ -135,10 +139,11 @@ and is

### Submit Treasury Proposal Preimage

The example below shows how to create a [preimage](../general/glossary#preimage) for a transaction that requests 100 DOT from
Treasury.
The example below shows how to create a [preimage](../general/glossary#preimage) for a transaction
that requests 100 DOT from Treasury.

- Navigate to [Polkadot-JS UI > Governance > Preimages](https://polkadot.js.org/apps/#/preimages) and then click on Add Preimage.
- Navigate to [Polkadot-JS UI > Governance > Preimages](https://polkadot.js.org/apps/#/preimages)
and then click on Add Preimage.
- Select the account which will be used to submit the preimage.
- Choose `treasury` pallet in the "propose" dropdown and the `spend(amount, beneficiary)`call
- Enter the DOT amount.
Expand Down Expand Up @@ -167,7 +172,8 @@ the image below). Take a note of this preimage hash, which is required to submit

The example below shows how to submit a Treasury track referendum.

- Navigate to [Polkadot-JS UI > Governance > Referenda](https://polkadot.js.org/apps/#/referenda) and then click on Submit proposal.
- Navigate to [Polkadot-JS UI > Governance > Referenda](https://polkadot.js.org/apps/#/referenda)
and then click on Submit proposal.
- Select the account which will be used to submit the proposal.
- Choose the appropriate submission track (The example below selected Small Spender track).
- Enter the preimage hash of the treasury spend transaction.(If the preimage exists on-chain, the
Expand Down
4 changes: 2 additions & 2 deletions docs/learn/learn-proxies.md
Original file line number Diff line number Diff line change
Expand Up @@ -320,8 +320,8 @@ account we will need to submit all three proxy calls.
:::caution The Account Tab in the Polkadot-JS UI cannot handle complex proxy setups

The Accounts Tab in the Polkadot-JS UI cannot handle complex proxy setups (e.g. a proxy -> multisig
-> a pure proxy which is part of another multisig). These complex setups must be done using
the [Extrinsics Tab](https://polkadot.js.org/apps/#/extrinsics) directly.
-> a pure proxy which is part of another multisig). These complex setups must be done using the
[Extrinsics Tab](https://polkadot.js.org/apps/#/extrinsics) directly.

**We recommend to use the [Westend Testnet](learn-DOT.md#getting-tokens-on-the-westend-testnet) if
you are testing features for the first time.** By performing the complex proxy setups on the
Expand Down
1 change: 0 additions & 1 deletion docs/learn/learn-xcm-transport.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,6 @@ A tutorial on how to open an HRMP channel on a parachain can be found

<iframe width="560" height="315" src="https://www.youtube.com/embed/tOnzk4AROUY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>


:::note

XCMP is not yet implemented. The following illustrates the overall design goals and expectations for
Expand Down
73 changes: 47 additions & 26 deletions docs/maintain/maintain-guides-how-to-validate-polkadot.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,10 @@ instead.

## Initial Set-up

:::

### Requirements

The most common way for a beginner to run a validator is on a cloud server running Linux. You may
choose whatever [VPS](#note-about-vps) provider that your prefer. As OS it is best to use a recent
choose whatever [VPS](#note-about-vps) provider that you prefer. As OS it is best to use a recent
Debian Linux. For this guide we will be using **Ubuntu 22.04**, but the instructions should be
similar for other platforms.

Expand Down Expand Up @@ -181,17 +179,23 @@ If it is not enabled, please see the
[official docs ("Kernel support")](https://docs.kernel.org/userspace-api/landlock.html#kernel-support)
if you would like to build Linux with landlock enabled.

### Installing the `polkadot` binary
### Installing the Polkadot binaries
:::info Multiple Validator Binaries

In addition to the `polkadot` binary, recent changes have separated out functionality into two additional needed binaries, `polkadot-prepare-worker`, and `polkadot-execute-worker`. All three binaries are needed to properly run a validator node. More context on these changes can be found [here](https://github.com/paritytech/polkadot/pull/7337)

:::
#### Installation from official releases

The official `polkadot` binaries can be downloaded from the
The official binaries can be downloaded from the
[Github Releases](https://github.com/paritytech/polkadot/releases). You should download the latest
available version. You can also download the binary by using the following direct link (replace
available version. You can also download the binaries by using the following direct links (replace
X.Y.Z by the appropriate version):

```sh
https://github.com/paritytech/polkadot/releases/download/vX.Y.Z/polkadot
https://github.com/paritytech/polkadot/releases/download/vX.Y.Z/polkadot-execute-worker
https://github.com/paritytech/polkadot/releases/download/vX.Y.Z/polkadot-prepare-worker
```

#### Optional: Installation with Package Managers
Expand Down Expand Up @@ -232,17 +236,7 @@ dnf config-manager --set-enabled polkadot
dnf install polkadot
```

After installing Polkadot, you can verify the installation by running

```bash
which polkadot
```

It should return

```bash
/usr/bin/polkadot
```
Make sure you verify the installation (see the "Verify the installation" section).

:::note By default, the Polkadot systemd service is disabled

Expand All @@ -252,6 +246,8 @@ To start the service, run:
sudo systemctl start polkadot.service
```

:::

#### Optional: Installation with Ansible

To manage Polkadot installation with Ansible, you can use the **Substrate node role** distributed on
Expand All @@ -267,9 +263,7 @@ Hub (replace X.Y.Z by the appropriate version):
docker.io/parity/polkadot:vX.Y.Z
```

:::

### Building the `polkadot` binary from sources
### Optional: Building the Polkadot binaries from sources

#### Prerequisites: Install Rust and Dependencies

Expand Down Expand Up @@ -321,16 +315,20 @@ Polkadot node software.
sudo apt install make clang pkg-config libssl-dev build-essential
```

Note - if you are using OSX and you have [Homebrew](https://brew.sh) installed, you can issue the
following equivalent command INSTEAD of the previous one:
:::note

If you are using OSX and you have [Homebrew](https://brew.sh) installed, you can issue the following
equivalent command INSTEAD of the previous one:

```sh
brew install cmake pkg-config openssl git llvm
```

### Build the Polkadot Binary from sources
:::

#### Building the binaries

You can build the `polkadot` binary from the
You can build the Polkadot binaries from the
[paritytech/polkadot](https://github.com/paritytech/polkadot) repository on GitHub.

You should generally use the latest **X.Y.Z** tag. You should either review the output from the "git
Expand Down Expand Up @@ -366,10 +364,11 @@ git checkout VERSION
./scripts/init.sh
```

Build native code with the production profile.
Build native code with the production profile. The following will make sure that the binaries are
all in your `$PATH`.

```sh
cargo build --profile production
cargo install --force --path . --profile production
```

**_This step will take a while (generally 10 - 40 minutes, depending on your hardware)._**
Expand Down Expand Up @@ -404,6 +403,28 @@ machine for extra security.
cargo install --force --git https://github.com/paritytech/substrate subkey
```

### Verify the installation

After installing Polkadot, you can verify the installation by running

```bash
polkadot --version
polkadot-execute-worker --version
polkadot-prepare-worker --version
```

It should return something like this (the exact versions don't matter, but they must all be the
same):

```bash
0.9.43-36264cb36db
0.9.43-36264cb36db
0.9.43-36264cb36db
```

If not, make sure that you installed all the binaries, all the binaries are somewhere in your
`$PATH` and they are all in the same folder.

### Synchronize Chain Data

You can begin syncing your node by running the following command if you do not want to start in
Expand Down

0 comments on commit 87f588c

Please sign in to comment.