About Pirl 2.0

Pirl has migrated from it's original protocol ( ethash ) and it's now based on substrate.

Pirl 2.0 is fully decentralised and is managed by the community using democracy modules.

This new version of Pirl is a continuity of the initial idea. The major changes are:

  • New monetary policy
  • decentralised treasury
  • validation of the blockchain using Validator node
  • staking ( you can nominate a validator and stake on top of it )

Protocol informations:

  • ID: PIRL
  • ss58Format: 42
  • TokenDecimals: 12 ( previously 18)
  • TokenSymbol: PIRL
  • RPC port: 9933
  • WS port: 9944
  • P2P port: 30333



Pirl Logo

Particiapte in Pirl 2.0

Run a validator

Nominate

Governance

Validator

Validators secure the Relay Chain by staking PIRL, validating proofs from collators and participating in consensus with other validators.

These participants will play a crucial role in adding new blocks to the Relay Chain and, by extension, to all parachains. This allows parties to complete cross-chain transactions via the Relay Chain.

Validators perform two functions. First, verifying that the information contained in an assigned set of parachain blocks is valid (such as the identities of the transacting parties and the subject matter of the contract). Their second role is to participate in the consensus mechanism to produce the Relay Chain blocks based on validity statements from other validators. Any instances of non-compliance with the consensus algorithms result in punishment by removal of some or all of the validator’s staked PIRL, thereby discouraging bad actors. Good performance, however, will be rewarded, with validators receiving block rewards (including transaction fees) in the form of PIRL in exchange for their activities.

WARNING

If you don't use the right requierements you could have your stake slashed, this guide is a baseline, if you do it your own way be sure to know what you are doing or you will loose money.

Requirements

The most common way for a beginner to run a validator is on a cloud server running Linux. You may choose whatever VPS providers that your prefer, and whatever operating system you are comfortable with.

The transactions weights in Pirl were benchmarked on standard hardware. It is recommended that validators run at least the standard hardware in order to ensure they are able to process all blocks in time. The following are not minimum requirements but if you decide to run with less than this beware that you might have performance issue.

Minimum Hardware :

  • 10GB ram, 60 GB Storage, 4 CPU , stable server uplink connection with fixed IP

Ideal Hardware :

  • 60GB ram, 300 GB Storage, 6 CPU, stable server uplink connection with fixed IP

Using Ubuntu 18.04 :

Install Rust Once you choose your cloud service provider and set-up your new server, the first thing you will do is install Rust.

If you have never installed Rust, you should do this first. This command will fetch the latest version of Rust and install it.

curl https://sh.rustup.rs -sSf | sh

Otherwise, if you have already installed Rust, run the following command to make sure you are using the latest version.

rustup update

Finally, run this command to install the necessary dependencies for compiling and running the Polkadot node software.

sudo apt install make clang pkg-config libssl-dev build-essential

Note - if you are using OSX and you have Homebrew installed, you can issue the following equivalent command INSTEAD of the previous one:

brew install cmake pkg-config openssl git llvm

Install & Configure Network Time Protocol (NTP) Client NTP is a networking protocol designed to synchronize the clocks of computers over a network. NTP allows you to synchronize the clocks of all the systems within the network. Currently it is required that validators' local clocks stay reasonably in sync, so you should be running NTP or a similar service. You can check whether you have the NTP client by running:

If you are using Ubuntu 18.04 / 19.04, NTP Client should be installed by default.

timedatectl

If NTP is installed and running, you should see System clock synchronized: yes (or a similar message). If you do not see it, you can install it by executing:

sudo apt-get install ntp

ntpd will be started automatically after install. You can query ntpd for status information to verify that everything is working:

sudo ntpq -p

WARNING: Skipping this can result in the validator node missing block authorship opportunities. If the clock is out of sync (even by a small amount), the blocks the validator produces may not get accepted by the network. This will result in ImOnline heartbeats making it on chain, but zero allocated blocks making it on chain.

Building and Installing the pirl Binary


Centos 8

Install and configure time

dnf install chrony

Enable it

systemctl enable chronyd

Allow the process in firewall

firewall-cmd --permanent --add-service=ntp && firewall-cmd --add-port=30333/tcp --permanent && firewall-cmd --reload

If you have never installed Rust, you should do this first. This command will fetch the latest version of Rust and install it.

# curl https://sh.rustup.rs -sSf | sh
# source $HOME/.cargo/env

Otherwise, if you have already installed Rust, run the following command to make sure you are using the latest version.

rustup update

Install development tools

dnf group install "Development Tools" -y

Install other tools needed

dnf install -y cmake llvm  llvm-devel clang

Install rust tools

rustup toolchain install nightly-2020-07-01
rustup update nightly
rustup update stable
rustup target add wasm32-unknown-unknown --toolchain nightly-2020-07-01

clone Pirl from github

git clone https://github.com/pirl/pirl-2_0

and build it

cargo +nightly-2020-07-01 build --release

Copy the binary ready to use

 cp -rp target/release/pirl /usr/bin/

Make the service permanent

create systemd file in /usr/lib/systemd/system/pirl.service

[Unit]
Description=Pirl Validator
After=network-online.target

[Service]

ExecStart=/usr/bin/pirl  --port "30333"   --ws-port "9944"   --rpc-port "9933" --validator  --name "CHANGE IT TO A DESIRED NAME"
User=root
Restart=always
ExecStartPre=/bin/sleep 5
RestartSec=30s

[Install]
WantedBy=multi-user.target

Check if your node is appereing in the telemetry UI : https://telemetry.polkadot.io/#list/Pirl

Step 2 Assign the node to an account

We assume that you have already claim your coin from Pirl 1.0 (see how to claim) or you already have an account with your Pirl on it.

You need to create an controller account in order to do the next steps.

The stash account serve as you "cold wallet" with all your precious coin

The controller account serve as a manager to your stash account

Always keep in safe place your keystore file or your 12/24 words seed

To create an controller account, add account Controller

Choose any name that suit for you Controller

Then send some pirl (from your stash account) for covering network fees Controller

You can proceed to the next steps

Create session key:

Go in you terminal where the node is installed and paste the current command, you will have a session key of your node.

curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9933

Submitting the setKeys Transaction:

Go to the explorer you can now create a validator, use the key generated above to paste in the form.

Last step, hit the validate button when the transaction is confirmed.

In case you have already bonded your pirl Stashes

If your currently nominate, you can stop that with square button

You can add your session key in the associate button Stashes

Voila, you are all set



List of VPS providers

How to be a Nominator

Requirements

You need an account with some pirl on it. If you have a Pirl 1.0 account and do not have claim it yet on the new blockchain, please refer to this tutorial

Setup

  1. You need to create a new account for control your staked Nominate Nominate

  2. Then send some pirl for covering network fees Nominate

  3. Then go to staking panel Nominate

  4. Add nominator Nominate

  5. For stash account, select the account with you stash (the one with all your precious pirl) and for controller account, the newly created account in step 1 Nominate

  6. Choose your validator, you can choose multiple validators. This choice is up to you.

WARNING

For avoiding being slashed (aka loose money), choose wisely your validator ! The validator need to have good uptime (99.99%) and good behaviour (see How does slashing works ? for more info about slashing). The list below is purely indicative and not a recommandation.

Nominate

Info

Rewarding system work as follow :

Validator are reward by block reward + 20% transaction fee. This do not depend on stake amount !

Validator take a % commision (you can see that info in staking overview)

Validator and Nominator share the remaining reward according to their share

Eg. Validator has 100 pirl staked, NominatorA has 50 pirl staked and NominatorB has 200 pirl staked

Validator get 28.57% of the remaining reward, NominatorA 14.29% and NominatorB 57.14%.

You can check potential profit/era in the targets panel, but be carreful, this value change according to nomination on each era NominatorProfit

  1. Now you need to authorize transaction Nominate

  2. And tadaa ! Enjoy stacking with Pirl. Your all done. Nominate

Claim PIRL coins from old chain to Pirl 2.0

This tutorial describes how to claim your Pirl from “old chain” to Pirl 2.0. Balance of Pirls are taken from snapshot at block 7 650 000.

In this tutorial we will use the MEW wallet and Pirl 2.0 Portal. Before proceeding, you will have to create a wallet in the Pirl 2.0 Portal and log in to your Pirl wallet in MEW using your Keystore file.

If you dont get any Pirl balance in the MEW wallet, please check your Network settings (1) and set to (PIRL) as shown in picture below.

Pirl 2.0 Portal https://dashboard.pirl.network

Claims

In Pirl Portal, click Account and choose “Claim Tokens”.

Claims

Choose your Pirl 2.0 wallet that you want to use for your claim, and click “Continue”

Claims

Copy your Pirl adress from MEW (1) and paste in to Pirl 2.0 Portal (2), and click “Continue”

Claims

Go to “Message” in MEW (1) Copy string from Pirl 2.0 Portal (2) and paste in to MEW (3), and click “Sign” and “Confirm Signing” in the next box.

Claims

Copy signature message from MEW (1) and paste in to Pirl 2.0 Portal (2), and click “Confirm claim”.

Claims

If everything goes well, you will get a confirmation message as shown below. Click “Claim” and then “Submit” in the next box to collect your Pirls.

Claims

After a few seconds your Pirl 2.0 balance will be updated with the claimed Pirl.

Claims

Well done !

If you have any feedback or comments to this tutorial, please make a reply in this forum.

Thank you @Fantomas for the tutorial

How to connect your ledger wallet through MEW for claiming your asset

Firstly, go to MEW then click on Access My Wallet MEW

Then select Hardware MEW

Then select the kind of hardware wallet you use (in our case Ledger, but should be revelant for other) MEW

Do not forget to open the pirl app in your Ledger

Then click on the arrow next to Ethereum to see all network available MEW

Then select the Pirl network MEW

Then choose your address, check ti accept Terms and tada ! MEW

Now you can proceed to claim guide

Migration FAQ

Fast access

Claiming

Masternode

General

Validator

Claiming

What should I do to switch to pirl 2.0 ?

Follow the claiming guide

We have until when to claim for yours Pirl 2.0 ?

There is no time limit set.

If I keep my PIRL on the exchange, is the change to the new blockchain automatic ?

Yes, the exchanges will swap your PIRL automatically. (Please don´t hold your coins longer at any exchange, not your keys, not your coins)

I used the web wallet, I'm safe for the claim ?

Yes, you can claim your coins with web wallet. Follow the claiming guide

Can I claim my coins with ledger wallet ?

Yes, be sure to have backup phrase and latest firmware.

Masternode

Do I need to disable the masternode to get my claim in Pirl 2.0 ?

No, you will get your coins even if they are locked in the contract.

I didn't unlocked the coins locked in masternode contract, are they lost ?

No, the coins locked in the masternode contract(s) will be available freely in your wallet after claiming process.

How to delete all the old Pirl services on masternodes ?

BE SURE TO NOT HAVE PIRL KEYS PRESENT

service pirl stop && service marlin stop && rm -rf /root/.pirl && rm -rf /root/.marlin && systemctl disable pirl && systemctl disable marlin

General

Does wPIRL need to be bridged back to pirl legacy chain for swap of coins?

Yes, you need to bridge all your coins back to be able to swap your PIRL. After the snapshot it's not possible until we re-implemented it. No date or schedule yet.

Is Ledger or any hardware wallet supported at the start of the new chain ?

Not at the beginning but we will support hardware wallets at a later stage. No date or schedule yet.

How does slashing works ?

  • Level 1: isolated unresponsiveness, i.e. being offline for an entire epoch. No slashing, only chilling.
  • Level 2: concurrent unresponsiveness or isolated equivocation. Slashes a very small amount of the stake and chills.
  • Level 3: misconducts unlikely to be accidental, but which do not harm the network's security to any large extent. Examples include concurrent equivocation or isolated cases of unjustified voting in GRANDPA. Slashes a moderately small amount of the stake and chills.
  • Level 4: misconduct that poses a serious security or monetary risk to the system, or mass collusion. Slashes all or most of the stake behind the validator and chills.

Reference research article about slashing

Can I get my coins back if I stake or create a validator ?

Yes you can unlock them when you want, you will have to wait the cooldown period to get it credited in your wallet, actual waiting period is 28 days.

Validator

What is the validator reward amount ?

We can calculate it precisely, it depend on the network staking rate. Validator will have minted coins plus 20% of the transfert fees ( 80% goes to decentralised treasury ). Rewards are calculated based on era points, which have a probabilistic component. In other words, there may be slight differences in your rewards from era to era, and even amongst validators in the active set at the same time. These variations should cancel out over a long enough timeline.

What is the minimum requierement for a validator ?

The absolute minimum requrements to run the validator node are described below. This settings are NOT recomended as this could lead to unstable node and you could end up getting slashed!! If running validator node with specs close to minimum you must monitor your node and set up warnings for load etc..

  • Minimum: 10 GB RAM, 60 GB Storage, 4 CPU
  • Recomended: 60 GB RAN, 300 GB Storage, 6 CPU
  • Public IP on validator node needed for basic setup. (More information will come on how to setup a secure validator with sentry nodes)
  • Stabile internet connection are required. The validator nodes plays a very important role by securing the network and we recommend renting VPS from providers with good infrastructure and not trying to set up at home.

Read more about validators requierements here

Contribution

How can I contribute to the docs ?

Fork and create a pull request on this repo: https://github.com/starkleytech/pirl-docs

Credits :

Community guides

Polkadot wiki