6th Mar 2024
6 min read

Introducting Mainsail's Early Testnet

We are pleased to introduce our initial Mainsail testnet. Over the past few weeks, we have intensively prepared all the necessary tools and documentation for the public release of Mainsail testnet. With this announcement, we extend an invitation to anyone interested in familiarizing themselves with the platform or assisting in issue discovery to join us on this new journey.

Mainsail has undergone development for some time now, reaching a stage where we seek initial feedback from the community and delegates to enhance its security and prepare for production.

Important Links To Get Started

For those eager to learn more about Mainsail requirements and the process of setting up a node or registering a validator, we have compiled a set of useful links in our Mainsail documentation:

General Information

The testnet has been operational internally for several months, during which we addressed issues as they arose. While it has been running smoothly without significant problems, we now seek broader engagement to ensure its robustness and stability. Thus, we have reset the network and encourage active participation in testing.

For the initial testnet, we have prepared:

  • ARK Scan - a blockchain explorer compatible with Mainsail.
  • Documentation - essential guides for setting up nodes, registering delegates, and more.
  • CLI Tool - tools aiding in transaction testing and delegate registration.
  • Faucet - a resource for receiving tokens for testing purposes, facilitating transaction testing and validator registration.

This blog post covers how to get started and highlights the major changes users may notice in this early stage.

Looking ahead, we plan to transition away from the term ‘Delegate’ in favor of ‘Validator,’ a more widely recognized term in the market. This transition is already reflected in the codebase and documentation, though not yet in our user interfaces, which we will update in the coming months for full compatibility with Mainsail. Additionally, we introduced ‘Usernames,’ allowing users to register a username for a desired address to enhance recognizability. Unlike validators, who can actively participate in the network, usernames open up different use cases.

Here’s a quick breakdown of the most notable backend, node and validator setup changes:

  • Introducing a (2-stage) BFT consensus mechanism with instant block finality.
  • The Public API is now operated as a separate process and made optional.
  • Transactions are now broadcasted using a different port; the previous port (4003) has been replaced with the new port (4007). Additionally, the P2P has moved from port 4001 to port 4000.
  • Validators are now required to register a dedicated private key for block validations.
  • To avoid a three-way split since peers are no longer part of the quorum, the number of validators has been increased to 53 from the previous count of 51, ensuring a prime number.
  • The availability of on-chain usernames has been added to all addresses through a dedicated username registration transaction.

In this early testnet phase, we support the following transactions:

  • Transfers - standard transfers between addresses.
  • Multipayments - simultaneous transfers to two or more addresses in a single transaction.
  • Vote - casting a vote for a preferred validator using addresses balance.
  • Unvote - retracting a vote from a validator.
  • Switch Vote - changing the vote from one validator to another within the same transaction.
  • Validator Registration - registering a validator with a chosen name.
  • Validator Resignation - resigning from the role of validator, rendering the address ineligible for block production and getting new votes.
  • Username Registration - introducing usernames, allowing users to register a username for an address.
  • Username Resignation - similar to validator resignation, allowing users to resign a username.
  • Multisignature Registration - registering an address as a multisignature address for collaborative transactions.

Testnet Faucet

Users can request 100 DARK tokens for the Mainsail network on the Mainsail DARK Faucet app to begin testing. Simply provide your DARK address, and the faucet will promptly send 100 DARK tokens to the specified address.

ARK Scan

Basic support for Mainsail has been integrated into the Mainsail Testnet Explorer .

Please note that this integration is still a work in progress, and certain features may not be fully supported or implemented yet, including:

  • Validators are referred to as Delegates.
  • Potential inaccuracies in voter count due to voting and unvoting activities.
  • Optional usernames may result in blank displays in some instances rather than falling back to other identifiers such as public keys.
  • Display of current supply excludes newly forged coins.

We’ll be working on addressing all of the above and other issues in the upcoming weeks.

Mainsail CLI Transaction Tester

For initial testing, we’ve developed a straightforward CLI tool that enables you to interact with the network seamlessly. Dive into the Mainsail TX Tester repository and read over Mainsail TX Tester documentation to learn more.

This tool empowers you to:

  • Generate new addresses (random or custom mnemonic).
  • Create and broadcast transfers to specified addresses.
  • Register as a validator.

Have A Question or Want To Report An Issue?

Should you encounter queries about the Mainsail setup or identify issues during testing, don’t hesitate to reach out through either of the following avenues:

  • Open an issue on our GitHub Repository at Mainsail repository .
  • Join our community-driven Discord and hop into the #mainsail_testnet channel. You can access the server here .

As this marks an early stage of Mainsail and our testnet, we haven’t allocated any bounties specifically for reporting bugs or security vulnerabilities. Nevertheless, we encourage active participation and looking over the codebase to enhance its resilience and efficiency. Your contributions are invaluable as we strive to refine and strengthen Mainsail for future iterations.

What’s Next?

In the upcoming weeks, we encourage users to join the network and help run public nodes. This will offer insights into real-life usage scenarios with a broader user base.

On the development front, our next milestone involves integrating ARK Vault with Mainsail, facilitating broader participation in regular testing activities like transaction sending, username registration, validator registration, resigning, and more.

We remain committed to enhancing the overall Mainsail codebase based on user feedback and addressing any issues that surface. Additionally, our team will continue progressing with the EVM feature implementation.

In light of substantial architectural shifts in Mainsail, particularly when compared with Core v3, we are set to write a dedicated, in-depth blog post. This post aims to provide a detailed comparison, going into the general improvements, inner workings of the updated consensus mechanism featuring finalization, the introduction of new dedicated validator keys, API architecture and more. Stay tuned for an insightful exploration of these transformative changes!

Follow on Twitter (X)

Stay connected with us on X (formerly Twitter) and keep an eye on our blog for the latest Mainsail updates and other developments within the ARK Ecosystem.


Get in Touch!

Whether you want to learn more about ARK Ecosystem, want to apply for developer bounty, become our partner or just want to say Hello, get in touch and we will get back to you.

An Ecosystem of Developers

Join us on our journey to create the future of Web3.