Shibuya collators guide

UPDATED December 28, 2021: There is new version of the shibuya node released, so if you are running old version - you should update it, just replace the astar-collator binary with new one from https://mercury-nodes.net/astar/astar-collator-3.2.2

WARNING You should reset your parachain db when upgraded to 3.2.2 version. You can do this by renaming or deleting your .local/share/astar-collator/chains/shibuya/db

Commands to update running nodes to the new version:

service shibuya-node stop
rm -f /usr/local/bin/astar-collator.bak
mv -f /usr/local/bin/astar-collator /usr/local/bin/astar-collator.bak
curl -sL https://mercury-nodes.net/astar/astar-collator-3.2.2 -o /usr/local/bin/astar-collator
chmod +x /usr/local/bin/astar-collator
service shibuya-node start
rm -f /usr/bin/astar-collator && ln -s /usr/local/bin/astar-collator /usr/bin/astar-collator

# RESET YOUR PARACHAIN DB
mv /home/shibuya/.local/share/astar-collator/chains/shibuya/db  .local/share/astar-collator/chains/shibuya/db.bak

If you are just starting out, follow the installation guide below.

The Shibuya testnet was announced on Sep 11, 2021, and it's onboarding collaborators, so everyone will be able to take part in the testnet.

There was a challenge for collators https://github.com/PlasmNetwork/growth-program/issues/169 - read all the details at the link. But now it is closed.

For those who want to connect quickly or who plan to participate in the future, I will write a short instruction.

First of all, what is Shibuya:

Shibuya is the Shiden’s parachain testnet with EVM functionalities which is the closest to the Shiden mainnet. Shibuya has the same chain specifications as Shiden and creates the best test environment for developers who want to launch their dApp on Shiden mainnet.

Technically, this means that we will run another astar-collator node, i.e. the well-known Subsrtrate framework. And if you have dealt with networks built on this framework, you already understand what to do. I can already hear the cries of "give me the binary and launch parameters, and stop yapping" from experienced noderunners.

TL;DR (too long; didn't read)

Let's not keep them waiting:

Minimum requirements for your infrastructure: Ubuntu 20.04 / 4 core CPU's / Memory 8 Gb / SSD min 60 Gb

1) Get the astar-collator binary from https://mercury-nodes.net/astar/astar-collator-3.2.2

2) Command to launch your collator: ./astar-collator --validator --name NODENAME --chain shibuya --parachain-id 1000 --rpc-cors all --telemetry-url 'wss://telemetry.polkadot.io/submit/ 0' --execution wasm --pool-limit=5 -- --chain tokyo

3) Telemetry

4) Shibuya explorer on Polkadot.js

A few remarks

Now for those who are still left and want to understand in more detail, or are just interested in the nuances.

First, you need place to run the node, so you need some kind of computer. And I sincerely advise not to do it on your home computer, despite the fact that the requirements for the node at this stage are not so high, you need a constant and good Internet connection, if you want to participate in the network as a collator (sorry for such an obvious clarification, but better to say before we start). Personally, I can think Hetzner Cloud quite a sufficient option (CPX31 VPS should be enough), but you can use any other cloud provider or even rent a baremetal server.

Second, make sure that you can provide incoming connections to your node on at least two TCP ports, by default your node should accept connections on 30333/tcp and 30334/tcp (although you can change this in the startup options)

Third, a small note, if you want to participate as a collator in the mainnet, you still need to learn how to work with Linux, the basic commands. Understand basicaly how the network works, what is IP (v4 and v6), service network ports (TCP and UDP) - this is very basic but very necessary knowledge to secure your node.

You have to be able to detect a problem and react to it appropriately, and if you can't fix it yourself, be able to ask the community correctly and provide the necessary reports so that you can get help quickly.

It would be good to be able to set up node monitoring (including from a remote location, suddenly the node is no longer available, but it itself "thinks" that everything is fine). For monitoring, by the way, you can also use third-party solutions, you do not need to install your own monitoring system. Of self-hosted solutions, usually use Prometheus+Grafana, Zabbix, Nagios, etc.

And I really recommend reading the Secure Validator Setup for everyone who is serious about running a collator node on mainnet.

To the point

If you've read to this point for some reason, it means you're not tired of my nerdiness and warnings and you're ready to rush headlong into a new Shibuya testnet.

And if the above is clear to you, then the rest is technically quite simple. Assuming that you have read the minimum requirements and you meet them. By the way, I'll say it again: Minimum requirements for your infrastructure: Ubuntu 20.04 / 4 core CPU's / Memory 8 Gb / SSD min 60 Gb

Next, we need to connect to the console of our server and run the commands from the priviledged user (we will use sudo command)

1) Install tools and download binary

sudo -s
apt update
apt upgrade -y
apt install -y curl
rm -f /usr/local/bin/astar-collator.bak
mv -f /usr/local/bin/astar-collator /usr/local/bin/astar-collator.bak
curl -sL https://mercury-nodes.net/astar/astar-collator-3.2.2 -o /usr/local/bin/astar-collator
chmod +x /usr/local/bin/astar-collator
rm -f /usr/bin/astar-collator && ln -s /usr/local/bin/astar-collator /usr/bin/astar-collator

Let's check version

# /usr/local/bin/astar-collator -V

You should see output like this

astar-collator 3.2.2-8f485fb8-x86_64-linux-gnu

2) Set you node name whatever you want

export NODENAME="My_Shibuya_Node"

3) Create unprivileged user to run a node from

useradd -mU shibuya

4) Create a systemd service for collator node

cat > /etc/systemd/system/shibuya-node.service << EOF
[Unit]
Description=Shibuya Collator Node
After=network-online.target
Wants=network-online.target

[Service]
User=shibuya
Group=shibuya
WorkingDir=/home/shibuya/
ExecStart=/usr/local/bin/astar-collator --validator --name $NODENAME --chain shibuya --parachain-id 1000 --rpc-cors all --telemetry-url 'wss://telemetry.polkadot.io/submit/ 0' --execution wasm --pool-limit 5 -- --chain tokyo
Restart=always
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

5) Enable and start a node as service and

systemctl enable shibuya-node
systemctl start shibuya-node
systemctl status shibuya-node

You should see output like this

● shibuya-node.service - Shibuya Collator Node
     Loaded: loaded (/etc/systemd/system/shibuya-node.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-09-11 16:09:13 UTC; 7min ago
   Main PID: 8018 (astar-collator)
      Tasks: 72 (limit: 154406)
     Memory: 483.2M
        CPU: 1min 17.590s
     CGroup: /system.slice/shibuya-node.service
             └─8018 /usr/local/bin/astar-collator --validator --name NODENAME --chain shibuya --parachain-id 1000 --rpc-cors all --telemetry-url wss://telemetry.polkadot.io/submit/ 0 --execution wasm --pool-limit 5 -- --chain tokyo 

2021-09-11 15:28:24 [Relaychain] ⚙️  Syncing 57.5 bps, target=#1137284 (37 peers), best: #1125837 (0xbfb2…27a8), finalized #1125830 (0xede7…89c5), ⬇ 897.6kiB/s ⬆ 51.1kiB/s    
2021-09-11 15:28:26 [Parachain] 💤 Idle (42 peers), best: #24529 (0x0282…b13b), finalized #19619 (0x8d4a…85d1), ⬇ 0.5kiB/s ⬆ 0.8kiB/s    
2021-09-11 15:28:29 [Relaychain] ⚙️  Syncing 55.1 bps, target=#1137284 (37 peers), best: #1126113 (0xa43d…c2aa), finalized #1126110 (0x0d0a…6f4b), ⬇ 4.9kiB/s ⬆ 16.9kiB/s    
2021-09-11 15:28:31 [Parachain] 💤 Idle (42 peers), best: #24529 (0x0282…b13b), finalized #19748 (0x929d…065d), ⬇ 3.5kiB/s ⬆ 0.5kiB/s    
2021-09-11 15:28:34 [Relaychain] ⚙️  Syncing 56.5 bps, target=#1137285 (37 peers), best: #1126396 (0x78c0…c5aa), finalized #1126390 (0x2c6e…c30a), ⬇ 7.8kiB/s ⬆ 23.6kiB/s    
2021-09-11 15:28:36 [Parachain] 💤 Idle (42 peers), best: #24529 (0x0282…b13b), finalized #19887 (0xd0d6…0437), ⬇ 7.8kiB/s ⬆ 2.3kiB/s    
2021-09-11 15:28:39 [Relaychain] ⚙️  Syncing 52.7 bps, target=#1137286 (37 peers), best: #1126660 (0x64d5…1ba8), finalized #1126660 (0x64d5…1ba8), ⬇ 7.4kiB/s ⬆ 74.2kiB/s    
2021-09-11 15:28:41 [Parachain] 💤 Idle (42 peers), best: #24529 (0x0282…b13b), finalized #20020 (0xe3d3…8c64), ⬇ 2.4kiB/s ⬆ 41.1kiB/s    
2021-09-11 15:28:44 [Relaychain] ⚙️  Syncing 64.9 bps, target=#1137287 (37 peers), best: #1126985 (0xea6f…9da9), finalized #1126980 (0x5147…e586), ⬇ 7.8kiB/s ⬆ 40.1kiB/s    
2021-09-11 15:28:46 [Parachain] 💤 Idle (42 peers), best: #24529 (0x0282…b13b), finalized #20167 (0x8a1f…5994), ⬇ 0.3kiB/s ⬆ 0.3kiB/s    

If your node is up and running, you should see its NODENAME (the name you configured) on the Telemetry page

6) Now you have to wait till your node is fully syncronized. This can take about 4 hours at this moment. Note, you must wait until both Parachain and Relaychain are synchronized

You can periodically check the current synchronization status:

journalctl -u shibuya-node -o cat -n 20

7) When your node is in sync, you are ready to be onboard. But you need some SDY tokens to set-up on-chain identity (10 SBY) and much more to become an active collator (32000 SBY)

For now, you can comment on github challenge your Shibuya account to request SBY tokens. Or if Challenge A-7 is over already, you may ask for help in discord tech chat https://discord.com/invite/wUcQt3R

After you got enought tokens to start your collator you have to:

8) Register on-chain identity https://docs.astar.network/integration/on-chain-identity WARNING: On-Chain identity is required with your Discord ID in the field of 'Legal Name'.

9) Register your node Session key in Shibuya network with your account

9.1) Get your session key

You now have to call for your ‘Session Key’, use the following command to get your key:

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

The server will answer with a long key, copy the long string of hexadecimal numbers 0x9917….b85a

9.2) Set Your Session Key

  • On PolkadotJS UI Click on ‘Developer’ — ‘Extrinsics’ — ‘Session’ — ‘setKeys(keys, proof)’
  • Use your validator account
  • Copy the long key you printed in previous step "9.1 Get your Session key" and paste it into the keys field.
  • In the proof field leave 0x00.
  • Click Submit Transaction

9.3) Verify Your session Keys

  • On PolkadotJS UI Click on ‘Developer’ — ‘Chain State’ — ‘Session’ — ‘nextKeys(ValidatorId)’
  • Use your validator account
  • Click on plus sign on the right side
  • You should see your key entered in step '9.2 Set Your Key'

10) Set your collator with: Extrinsics - CollatorSelection - Registrer as candidate

TBU To be updated later when Shibuya testnet goes public and new details will be posted

P.S. A small gift for those who have read the article to the end - here is a link to a one-line script that will do all the installation steps by itself

curl -s https://mercury-nodes.net/run_shibuya_node.sh | sudo bash -s -- YOUR_NODE_NAME

4 comments

Loading replies...