Broton Journal: Launching a block producer

Live notes of a block producer on Proton blockchain

Broton BP
Coinmonks
Published in
10 min readApr 6, 2022

--

Aloha, Dear Reader! Thank you for reading us!

In our previous article, we self-introduced ourselves and told about how we came to Proton.

Today I want to tell you about our own experience of launching a block producer (BP) on Proton. We don’t want to dive deep into technical details because our more experienced colleagues, block producers, and the Proton team already wrote excellent articles describing all the installation steps. Still, we want to put it together to give you a big picture. As one of the oldest Proton BPs likes to say:

Being a BP is a bit more than just running a node and forgetting it… — EOSUSA Michael.

We will step you through the process from beginning to end, highlight the information sources we used and focus on important details.

But first, read the article in the official Proton blog to get an overview of How to become a Block Producer on Proton.

There is a difference between knowing the path & walking the path. — Morpheus.

EOSIO? Never heard… 🤷‍♂️

Before we go to concrete, let’s learn the basic theory to understand better what we are doing (actually, if you decided to become a block producer on Proton, you should already know about EOSIO — otherwise, you should take some time and do your research on this using the provided resources).

Proton is based on EOSIO technology — a sophisticated platform for building blockchains. Many popular blockchains are based on it: EOS, Telos, Wax, and others. Do not confuse it with a “fork” — Proton is not a fork of EOS; it is an independent blockchain based on EOSIO technology.

EOSIO consensus mechanism is called DPoS (Delegated Proof of Stake), a modification of the PoS (Proof of Stake). In contrast to PoS, where end-users act as validators, in DPoS, the function of creating blocks and validating transactions is delegated to trusted nodes — block producers. In Proton, only the top 21 block producers produce blocks; others are waiting in standby mode and must be ready to step into the schedule. The rating of block producers is based on end-user voting — when Proton users stake their $XPR to earn APR (Annual Percentage Rate), they choose four block producers to vote for.

Block producers earn rewards for their work, which is paid in $XPR — the rewards come from 1% annual inflation. Besides that, 1% of inflation goes to all stakers and another 1% — to governing council.

That’s how it works in general. So, if you are seriously intended to become a block producer, you should know how you will grow your reputation. 🔝 Don’t expect people will vote for you just because you are running a node.

Fortunately, EOSIO has excellent documentation on its website, and you can get all the information there. Also, there are lots of helpful videos, tutorials, webinars, and even free EOSIO Training & Certification course.

Let’s get down to business!

We want to make your life a little bit easier, so we compiled this detailed plan relying on our knowledge and experience:

  1. Join the Proton Testnet Telegram group.
  2. Create a Proton account for your BP.
  3. Create a website and social media accounts.
  4. Provide information about your BP.
  5. Create nodes joined to Proton Testnet.
  6. Request permissions to register your producer node on Testnet.
  7. Register your producer node on Testnet.
  8. Get some votes for your Testnet producer node to step into the schedule.
  9. Successfully sign blocks on Testnet for a minimum of two weeks.
  10. Create nodes joined to Proton Mainnet.
  11. Request permissions to register your producer node on Mainnet.
  12. Register your producer node on Mainnet and be ready to produce blocks!
  13. Claim the rewards.

Going step by step, we will make accents on some not obvious things we faced when passing through the process ourselves.

1. Join the Proton Testnet Telegram group

Proton Testnet is an official Telegram group for block producers and candidates. Here you can always count on help from other BPs if you will face a problem. But please, make sure you’ve done your research before asking questions. ☝️

2. Create a Proton account for your BP.

You should reserve a name both on Testnet and Mainnet because it can be registered by anyone else.

You can check if an account is free or not using Proton explorer:

If you don’t have a Proton account yet, download the Webauth.com mobile wallet and create it on Mainnet. If you already have a personal account, it will be better to register a separate one for your BP using Proton Resources dApp.

On Testnet, you can create an account here.

3. Create a website and social media accounts

Website is the face of your BP — it is displayed in the block producers list on protonscan.io. So, buy a domain and create a website to let people know who you are and what you are doing.

There are some requirements:

  1. You must have a file named bp.json at the root of your domain. We used two different sub-domains for registering on Testnet and Mainnet, so we put two bp.json files at the following URLs: testnet.brotonbp.com/bp.json and mainnet.brotonbp.com/bp.json. All other URLs are redirected to the main domain — brotonbp.com, so regular users see our website. If you use a single domain, you can create a chains.json file that describes which bp.json files are related to each network.
  2. Also, you must provide ownership disclosure information on your website and say a few words about your BP and mission.

When you create a bp.json file, you can specify your social networks accounts — be sure to do it, Twitter at least. You need communication channels with your supporters.

4. Provide information about your BP

Just complete this form — provide your data and write about your intentions.

5. Create nodes joined to Proton Testnet

There are several types of nodes.

Primary infrastructure (required):

  • Producer Node —is responsible for producing blocks. Producer nodes should have no public services exposed. ❗️
  • Standard v1 chain API (a dedicated server is required).

Secondary infrastructure (not required, but preferred):

  • Hyperion by EOS Rio provides dApps developers on Proton with History API to extract various historical data from the blockchain.

Also, you should not forget about having backup nodes in a separate location and load balancing. You must guarantee an uptime of your nodes.

This time we only talk about the primary infrastructure. We will light up the setup of a Hyperion node in the following articles when we have it running.

As I said before, there are several good-written instructions that we used when creating our nodes:

❗️It might not be clear from the manuals, so I want to point out that for security reasons, you should not use your account’s “owner/active” keys to run “regproducer” and in the config.ini file — instead, you should generate a separate keypair for signing blocks.

Keep in mind that the information may be partially outdated by the moment of reading because new versions of the software are periodically released, or requirements may change. Still, the documentation updates may take some time.

Though it is noted in the manuals, people often miss it: don’t forget to disable overclocking for a BP node:

Comment out eos-vm-oc-enable and eos-vm-oc-compile-threads (EOSVM OC is not to be used on a block signing node)

❗️Important note: no VPS and garage-hosted hardware — only bare-metal servers and data center grade services are suitable for signing blocks!

Technical requirements may differ from manual to manual, but the ones specified in this official article by Proton are the most accurate for a producer node at this moment:

  • CPU: 3.5+Ghz Processor tuned for performance mode
  • RAM: 64GB+
  • Drives: 1TB+ SSD (NVMe preferred)
  • Bandwidth: 50mbit/s+

We use a similar configuration with Core i9 11900K.

❗️And one more important thing: you must keep your Testnet nodes running all the time — it is not just for playing until you start operating on Mainnet!

6. Request permissions to register your producer node on Testnet

There is a particular permissions portal where you have to request permission to register your BP. You need to connect your wallet and request the “Reg producer” permission. The official WebAuth.com Proton wallet is not designed to work with Testnet, so you will need the universal EOSIO Anchor wallet by Greymass, one of the Proton block producers.

After you request the permission, it has to be approved. There are two ways to get approval:

  • The easy and long one: ask Michael from EOSUSA in the Proton Testnet Telegram group.
  • The recommended way: create a multi-sig transaction — it is a mechanism provided by EOSIO to make proposals that can be approved by a group of active block producers or committee members. Here is the manual written by EOSUSA Michael to avoid people using the first way. 😂

After creating a proposal, you have to get approvals from at least two (three for Mainnet) parties specified in the proposal. You have to find those people in Telegram and ask them to approve your proposal by giving them the link. It may not be easy, but you have to get through it. 😁

7. Register your producer node on Testnet

It must be the easiest step among all —when you have the permission, you need to execute the “cleos regproducer” command, which is described in the manuals on the 5th step.

✅ Our first milestone — we registered BROTON BP on Testnet on December 03, 2021.

8. Get some votes for your Testnet producer node to step into the schedule

To start producing blocks, you need some votes to get to the top 21. To get votes, you should ask Michael from EOSUSA about that.

A few words about the workflow… Michael is responsible for reviewing all block producers candidates and preparing information for the committee that consists of the governing council members. The committee meeting is held every two weeks. Michael himself can add votes, but make sure that Michael knows about you. Your node may start producing blocks at any time — you have to be ready.

9. Successfully sign blocks on Testnet for a minimum of two weeks

When you complete all previous steps, your work is to monitor your node and wait until you get approval to register on Mainnet.

We used that time to fill our website with content and build a community on social networks — and that is what I advise you to do.

❗️Some essential things you should know:

  • There is a recommended execution time for creating a block — 0.35ms. Make sure that you do not exceed it! At first, we used a not too powerful server and had an average of about 0.37 — it was the reason for rejection, so we lost almost a month because of additional iterations.
  • Do not miss rounds! Missed rounds are also the reason not to approve you for the Mainnet. If you need to run maintenance, you should unregister your node and register it again after the maintenance is finished. Remember that some time should pass after executing “unregprod” before your node will be out of schedule.

Mostly actual for Mainnet: when you unregister a node, you still keep your votes, but if someone decides to update their votes in this period, your node will be missing from the block producers list, and you will lose the votes in this case.

Here are some helpful links:

10. Create nodes joined to Proton Mainnet

We used our Testnet two-weeks period to set up the Mainnet nodes to be ready when we get the approval.

All the same as on the 5th step, but there is the specific manual:

11. Request permissions to register your producer node on Mainnet

Request the “Reg producer” permission in advance while you wait for the approval — there is a different permissions portal address for Mainnet.

In our case, we didn’t have to create a multi-sig proposal to get the permission approved — when the time came, Michael approved it himself, so maybe you will be as lucky as we are… 😁

Our second milestone — we registered on Proton Mainnet on March 9, 2022. 🍾 Wow, it took us more than three months to get here! Though, there were some reasons…

12. Register your producer node on Mainnet and be ready to produce blocks!

Execute the “cleos regproducer” command — this time on Mainnet. That’s it!

Celebrate a little, but not too much, because now you have a massive responsibility for the operation of the Proton blockchain — at any time, you must be ready to start producing blocks. However, that’s in theory — in practice, you have to work hard to convince people to vote for your BP.

13. Claim the rewards

Some points you should know about the rewards:

  1. There are two types of rewards: “vote pay” and “block pay”. All block producers earn vote rewards according to their number of votes; block rewards are paid only to the top 21 block producers producing blocks. (block producers producing blocks… 🤯)
  2. You should claim the rewards once a day because if you don’t, your vote rewards will be distributed among other block producers who claim. Check this article (written for Telos but applicable to Proton) to find out how to automate the claiming procedure.

Do not use your “owner/active” keys for claiming the rewards or any other scripts — it is unsafe. It is better to make different keys with limited permissions for every scenario. For claiming the rewards create a separate key with just a single “claimrewards” permission.

I hope our experience will be helpful for someone. Meanwhile, this reading is coming to an end, but we are not saying goodbye— it is just the beginning… 🚀⚛️🤙

Next time, we will sum up our results after a month of work as a block producer. Stay tuned — it will be interesting! 🤙

To learn more about Proton and not to miss important updates, we recommend you:

Also, you can see the starter guide on our website to have a quick tour of Proton.

Join Coinmonks Telegram Channel and Youtube Channel learn about crypto trading and investing

Also, Read

--

--

Broton BP
Coinmonks

We are BROTON BP — a block producer on the Proton blockchain. This blog is our journal where we write about Proton and milestones on our BP path.