The Ultimate Guide: How to deploy Polygon Blockchain Node
With the continuous adoption of blockchain technology, first-generation blockchains have to scale up to accommodate the increasing transaction rate. This problem of scalability has led to the growth of layer-2 scaling solutions, one of which is Polygon.
Polygon is a multilevel framework with functionalities for developing interoperable blockchain networks. It was launched to scale the Ethereum blockchain using sidechain solutions. This solution resolved the throughput problems, lack of community governance, and poor user experience. It uses the Plasma technology to process off-chain transactions before recording them on Ethereum.
Aside from increasing the levels of interoperability, liquidity, and security, Polygon aims to enhance the adaptability and scalability features of the Ethereum network. It supports the interoperability and release of several decentralized applications using the Ethereum network. The ecosystem consists of developers, block creators, stakeholders, and clients.
Advantages of Polygon SDK
Developers use the Polygon software development kit (SDK) stack and network to launch preset blockchain networks featuring attributes for optimal results. Additionally, they can explore the wide range of new modules on the network to create stand-alone blockchains that are flexible, scalable, and secure. Polygon plans to support the deployment of DeFi applications off the Ethereum network.
Polygon is interoperable, compatible with Ethereum, sovereign across blockchains, scalable, secure, modular, and developer-friendly. It comprises the Polygon protocol and framework. Polygon protocol aids the exchange of autonomous messages between two Polygon chains and with Ethereum. Also, it ensures the security of the messages using a set of validators or Ethereum directly. Polygon framework aids the deployment of preset blockchains on Ethereum. It integrates several modules that perform different functions, including staking, consensus, governance, execution, and dispute resolution.
The Polygon SDK is used on the network to deliver modularity and compatibility with Ethereum. It has a special provision for EVM implementation that allows developers to use Solidity in developing and deploying smart contracts on Ethereum with its best properties. The SDK features modularity, including runtime, consensus mechanisms, and DB engine selection.
It is pluggable and extensible, allowing developers to build node and auxiliary extensions. Also, it possesses a plugin system that developers can use to deploy extensions for standard and core components in the platform. The SDK architecture features networking, synchronization and consensus, blockchain, state, TxPool, JSON RPC, and GRPC.
Polygon wallet, Polygon bridge, Polygon staking, and Widget dashboard exist on the Polygon network. Polygon wallet enables the exchange of crypto assets on the Polygon network, and its available on Metamask, WalletConnect, and Coinbase Wallet. Polygon bridge links the Ethereum and Polygon blockchains together. It facilitates the exchange of digital assets. Widget Dashboard allows users to manage all their Polygon wallet widgets.
Polygon Architecture
Polygon is designed to consist of four layers, including Ethereum, security, Polygon networks, and execution layers. These layers support its interoperable and Ethereum-compatible ecosystem. The platform operates on Plasma-enabled sidechains and hybrid Proof of Stake consensus. The structure, client nodes, local DApps, validator nodes, tokens, etc. of its consensus is similar to that of other networks. However, its transactions are collected and processed on the Ethereum network.
The Ethereum layer is a set of smart contracts executed on Ethereum. This layer performs functions like transaction verification and inter-chain communication. Also, it manages staking, delegators, validator shares, and snapshots of the sidechain state. The security layer runs alongside Ethereum, providing an additional layer of security by creating a validator pool. These two layers are optional compared to the other two.
The Polygon network layer is the hub of networks built on Polygon. Each blockchain has its community and oversees local consensus and block production. The execution layer oversees the execution of smart contracts and the implementation of Ethereum Virtual Machine (EVM) on Polygon. The flexibility of Polygon allows developers to create preset blockchain networks that cooperate with other blockchains easily.
Polygon is developed to enable several blockchain scaling mechanisms, such as Validum Chains, Plasma, Optimistic Rollups, and zk Rollups. These mechanisms increase the transaction throughput of related blockchains without affecting security or user experience. Zk Rollups serves in bundling bulk transfers off the network into one transaction, using zero-knowledge proofs to record it on the Ethereum network.
Polygon plasma comprises contracts used in moving assets across chains. Optimistic rollup is an Ethereum layer-2 solution to aid near-instant transactions using fraud proofs. Polygon combines the properties of Ethereum and its autonomous blockchains to create a full-blown multi-chain system.
The Proof of Stake model works on staking management contracts deployed on Ethereum with incentivized validators operating Heimdall and Bor nodes. Polygon supports only Ethereum, but it plans on onboarding additional chains depending on consensus and community suggestions. This expansion would enable an interoperable decentralized layer-2 network.
Also, Polygon features Heimdall (Proof of Stake layer) and Bor (Block producer layer) nodes. Heimdall is the validator node. It works with the staking contracts on Ethereum to implement the PoS consensus on Polygon. It is built on the Tendermint consensus engine, having changed the signature scheme and several data structures. Heimdall is responsible for validating a block, selecting a block producer committee, etc.
Bor oversees aggregating transactions into blocks. It is the block producer layer. Block producers are routinely changed through committee selection on Heimdall. The Bor nodes create blocks and the Heimdall nodes consistently verify them. The sidechain virtual machine is compatible with Ethereum.
Deploying Polygon Node on Cloud
To benefit from the growing popularity of Polygon and host your projects on it, you need to be connected to Polygon nodes. This connection will enable deploying smart contracts, processing transactions, and testing your app functionality.
Deploying Polygon’s sidechain on the cloud is easy and Zeeve can do that for you. However, you need one local machine to run the Ansible playbook and one remote machine for Full Node. You need to install Ansible and Python 3.x on the local machine. While on the remote machine, you need to ensure Go is not installed and the SSH public key of your local machine is on the remote machine to enable connection to Ansible.
The system must have 16–32 GiB of memory, 4–8 core CPU (t3 xLarge), and a minimum of 650GB SSD that must be extendable. You should note that the setup will not work on Python2.x. Ansible can be installed with Python 3.x when you use “pip3 install ansible” command It will install Python 3 dependencies and Ansible.
Similarly, issues will occur when using Ansible if Go is already on your VM, as Ansible only works with specific packages of Go. Also, you will need to delete setups for Polygon Validator (Heimdall or Bor), as your setup will run into issues if you have them. The two machines have to be prepared then you set up a full node to run a node through Ansible. You configure it, start it, and check its health with the community.
Operating a node isn’t easy nor is keeping it in good condition. A Polygon node comprises four components- PoS node, REST API server, RabbitMQ server, and EVM node. The PoS node is what is known as Heimdall while the EVM node is the Bor. According to Polygon’s documentation, you need to run a Heimdall first and let it sync.
In running a mainnet release version of your node, you need to create a working directory, clone the repository, and check the mainnet version. After this, you copy the Docker file to a new location, edit the file, and build a Docker image. This step is followed by creating a Heimdall data directory after which you overwrite the genesis.json file when you start the mainnet.
In configuring your node for the Polygon mainnet via the cloud, use the following steps:
a. Ensure you have access to the remote machine or virtual machine where you want the full node on.
b. Clone the https://github.com/maticnetwork/node-ansible repository
c. Open the sentry->hosts section, edit the inventory.yml file and add your IP(s). For more information, see https://github.com/maticnetwork/node-ansible#inventory.
d. Confirm if the remote machine is reachable by running ansible sentry -m ping.
e. Test run the machine using the following command to see if the correct remote machine/ VM is configured:
ansible-playbook -l sentry playbooks/network.yml -extra-var=”bor branch=v0.2.14 heimdall branch=v0.2.8 network version=mainnet-v1 node type=sentry/sentry heimdall network=mainnet heimdall network=mainnet heimdall network=mainnet heimdall network=mainnet heimdall network= -list-hosts
It will produce the following playbook: playbooks/network.yml pattern: [‘all’] host (1): xx.xxx.x.xxx as confirmation.
f. Set up the entire node using- ansible-playbook -l sentry playbooks/network.yml
If you have any problems, run ansible-playbook -l sentry playbooks/clean.yml to delete and clear the entire setup.
g. Log in to the remote machine/ VM.
h. Open for heimdall-config.toml editing.
i. Add the following flag in ~/node/bor/start.sh to the bor start params:
-bootnodes “enode://0cb82b395094ee4a2915e9714894627de9ed8498fb881cec6db7c65e8b9a5bd7f2f25cc84e71e89d0947e51c76e85d0847de848c7782b13c0255247a6758178c@44.232.55.71:30303,enode://88116f4295f5a31538ae409e4d44ad40d22e44ee9342869e7d68bdec55b0f83c1530355ce8b41fbec0928a7d75a5745d528450d30aec92066ab6ba1ee351d710@159.203.9.164:30303”
You can either host your directory locally or use a cloud provider. This is what Zeeve offers, you can use Zeeve to access major cloud platforms while deploying your node.
About Zeeve
Zeeve is an enterprise-grade web 3.0 infrastructure for deploying, monitoring, and scaling nodes. It can be used to deploy a Polygon node in seconds with the desired cloud while using Zeeve’s resources. It has ready plugins, tools, and libraries for setting up a secure Polygon node. It is highly optimized for availability, reliability, and performance, enabling developers to build dApps and smart contracts.
Zeeve has an unshared architecture for deploying nodes with highly secure endpoints to connect with Polygon Heimdall and Bor layers securely. It also features a highly configurable platform that can connect with the existing Polygon node by adding its ENode URL, choosing to run a full node or archive node, and deciding its exposure. Zeeve supports several cloud platforms, including Private Cloud, Digital Ocean, Azure, Google Cloud, and AWS.
You can trust Zeeve to deploy polygon nodes where blockchains interact arbitrarily to exchange information useful in providing decentralized solutions. We create a hub where different blockchains can connect and be optimized. Sign up now.
Originally published at https://www.zeeve.io on May 7, 2022.