Developers Forum for XinFin XDC Network

Blockchain Minions
Blockchain Minions

Posted on

🏗 A faster dev cycle

TL;DR
XDC is moving all its dev-net stack towards AWS infrastructures to boost dev velocity.

Plan:

The core-dev team from XDC is working on a plan to migrate all XDC infrastructures to AWS provided services. Over the past years, the dev teams has experiences a few difficulties when working on the XDC chain, that includes:

  1. It take a lot effort to set up new nodes on dev-net.
  2. Unclear of the CI/CD model
  3. dev-net/test-net are not easily scalable
  4. Limited observability support(logging and metrics)

This has caused a few headaches for the dev team as it's quite time consuming to debug/re-produce mainnet issues as well as slowing down the new feature development. To address this concern, we have proposed the plan to move the existing self hosted server to AWS ECS/EC2 and utilise other powerful tools/features provided by AWS to ease the pain.


In below section, We will list some of the services AWS offers that might be useful for Xinfin.

Image description

With the help of AWS tools in conjunction with github CI/CD pipelines, We shall be able to build infrastructure that will enable us to provision a set of AWS EC2 instances used for the deployment of a development network, an integration testing pipeline, and a public testing network. At least two categories of system can achieve the deployment and testing automation:

  • Instances running a XDC node written in Go. Including Full node, observation node and bootnode etc.
  • Instances running HTTP services such as explorer, master node explorer, forensics, stats server etc.

Expected outcome

We are primarily focused on internal dev-net at this stage, but will apply same changes to testnet if proved to be rewarding.

Devnet: Its mission is to serve as the network in which the internal teams can test new changes and achieve fast development iterations. It shall consists at least below elements

  1. Hosting Multiple XDC mining nodes + One bootnode + One observer node
  2. Hosting Blockchain explorer + Stats server + Forensics + Masternode server
  3. All XDC nodes are within secure private network and not accessible by outside network.
  4. All above are achieved by using terraform and other automation tools for resource creation, destroy and monitoring.
  5. Easily configurable with minimal effort to scale up/down number of XDC mining nodes.
  6. Integrated with CI/CD tools such as github actions. Merged PR into dev-upgrade or master shall automatically trigger tests and builds, as well as start the auto-deployment of latest XDC Version to dev-net.

Testnet: Its mission is to perform pre-release version testing with the public once being tested fine from devnet.

All the same points from devnet, except XDC nodes are publicly available.

Discussion (2)

Collapse
tpada13 profile image
Jonathan

Using industry leading product such as AWS infrastructure will indeed boost velocity. This would be a great example of an XIP. Check out how to contribute to the XIP process here: xdc.community/pages/xips/

Collapse
akhekade profile image
Atul Khekade

Much needed!