8th Sep 2023
4 min read

ARK Development Report - September 8, 2023

Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. ARK Scan received a new release with updated blocks and transactions pages and Mainsail’s continued on the first API implementation solution. Let’s dive into the details.

Development Summary

Below is a breakdown of total commits and authors by project for development activity over the last week from September 1st through September 8th, 2023.

Project Commits Authors
Mainsail 27 2
ARK Scan 38 2
ARK Vault 0 0

Overall, the team has demonstrated consistent productivity and engagement over this period, with a total of 65 commits across all projects.

The number of commits and data for each project will fluctuate on a weekly basis depending on internal sprints, objectives and difficulty.

ARK Scan Weekly Progress

This week, we released a new version of ARK Scan. Notable updates include refreshed “Transactions” and “Blocks” pages, now featuring daily statistics and streamlined tables. More information about these changes is available in our release blog post.

Our next sprint will focus on revamping the ARK Scan homepage. The aim is to enhance user-friendliness, incorporating updated tables and a consistent look in line with the recent changes across ARK Scan.

Mainsail Weekly Report

This week, our Mainsail team has been actively engaged in two key areas: the initial development of the public API and addressing certain P2P-related issues that came to our attention. Here is a more detailed breakdown of our recent work:

  • Initial Public API Implementation: We have introduced three new packages: api-sync, api-http, and api-database. The api-sync package is designed to run within the main Mainsail process and is responsible for populating the database with fresh data. On the other hand, api-http is an implementation of a Hapi server, complete with predefined routes and controllers. This package operates as a separate process. Lastly, api-database manages database access for both api-sync and api-http, connecting to a PostgreSQL database. The current iteration of the API exposes straightforward endpoints and seeds the database with block, transaction, wallet, and validator-set round data.
  • Processor and Consensus Enhancements: We’ve made several improvements and fixes related to processor and consensus functionality. Notably, we’ve added verification of block timestamps, ensuring that the time difference between blocks adheres to the duration defined in the blockTime milestone property. We’ve also addressed issues with the ProposerPicker seed calculation. Additionally, our consensus mechanism now handles discrepancies in data if a process crashes during the commit phase, ensuring that temporary messages are appropriately managed.
  • Redefining State Building: Within the bootstrap package, we’ve redefined the process of state building. Custom builders, such as those for transactions, rewards, and committed rounds, have been replaced. Instead, blocks are now fully re-applied during the bootstrapping process. We’ve incorporated additional state indicators to differentiate between bootstrapping and regular block commits, which leads to less errors. During bootstrapping, certain checks and actions are skipped, such as storing blocks and transactions in the KV store and the committed transactions check.
  • P2P Network Improvements: We have made significant changes to our P2P networking components. NetworkState has been eliminated, and NetworkMonitor has been replaced with a cleaner P2P service implementation. This implementation periodically checks for an adequate number of connected peers and ensures the timely delivery of messages. If a period passes without receiving any messages, random peers are reverified, and their message status is verified. Our P2P banning mechanism has also been refined; peers are now banned only when they provide invalid or inconsistent data. Timeouts and non-responsiveness, while not leading to banning, do result in peer disconnection. However, these disconnected peers have the opportunity to reconnect if they successfully pass the verification process.

Next week, our focus will continue to be on expanding the API implementation and making general P2P improvements. Additionally, we plan to work on state snapshots to enable periodic saves of the blockchain state, which will improve node restart speed.

Feedback & Feature Requests

If you are using our open-source products and would like to provide feedback or request a feature, please feel free to contact us via the contact pages for the specific product you are using or open an issue on GitHub.

Quick access links to GitHub issues pages:

Follow on Twitter (X)

Follow us on X (Formerly Twitter) and keep checking the blog to stay up-to-date on all of our new releases. We post a weekly development report so you can easily see what we’ve been up to and follow along our journey towards making your decentralized future a reality.

Share:

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.