11th Aug 2023
7 min read

ARK Development Report - August 11, 2023

Welcome to our latest weekly development report, where we spotlight the valiant efforts of our development team. During this period, our primary attention has been dedicated to conducting thorough internal testing of Dashbrd and addressing any identified issues. Additionally, work has started on the redesign of the ‘Delegates’ pages within ARK Scan, accompanied by great progress in enhancing consensus mechanisms of the Mainsail framework. Let’s explore the details of these exciting developments.

Development Summary

Below is a breakdown of total commits and authors by project for development activity over the last week from August 4th through August 11th, 2023.

Project Commits Authors
Mainsail 18 2
ARK Scan 11 2
ARK Vault 0 0
Dashbrd 123 6

Overall, the team has demonstrated consistent productivity and engagement over this period, with a total of 152 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

Throughout this week, progress has been made in the development of the forthcoming ‘Delegates’ page, which is designed to enhance user-friendliness and simplicity. The following specific improvements have been implemented:

  • We have introduced new information boxes that highlight important data. These boxes will present details about missed blocks, the current voting ARK (ARK is the cryptocurrency used on the platform), and a direct link to a guide on becoming a delegate.
  • A new table has been implemented to showcase delegate information in a more user-friendly way. This table will provide users with key information about delegates, incorporating a novel approach to displaying missed block information.
  • To keep users informed, a ‘Missed Blocks’ tab has been created. Within this tab, delegates who have missed blocks in the last 30 days will be listed.
  • Another addition is the ‘Recent Votes’ tab. This tab will display voting transactions from the last 30 days (votes, unvotes and vote swaps).
  • We have incorporated a filtering mechanism for the ‘Recent Votes’ tab. This empowers users to fine-tune the displayed data, allowing them to focus solely on specific transaction types of interest.
  • Essential backend adjustments have been made to facilitate the presentation of data in the delegate information boxes located in the header section. Moreover, the data pertaining to missed blocks within the past 30 days has been restructured for better integration within the table.
  • The ‘Delegate Monitor’ feature has been moved to a distinct page within the ‘Resources’ section. This separation has been enacted to differentiate between data that holds greater significance for users and data that holds greater significance for delegates.

As we transition into the approaching week, our focus will be directed toward quality assurance (QA) activities concerning the items already implemented on the ‘Delegates’ page. Development progress will then continue in the subsequent week.

Dashbrd Weekly Progress

During the past week, our efforts were primarily directed towards extensive internal testing and rectification of reported bugs by our internal team. Additionally, we finalized the designs for the landing page of Dashbrd.

To provide a summarized overview of the key accomplishments:

Dashbrd General Items

  • Replaced Laravel Nova with the open-source solution Filament, which is a significant refactor to ensure reliance on freely available solutions.
  • Enhanced text search functionality on the database level by changing from btree to a gin index for specific columns.
  • Disabled clickable tooltips on touch devices for items with action classes, except for disabled items.
  • Introduced transition states to copy buttons for a smoother user experience.
  • Expanded the readme and introduced SETUP and CONTRIBUTING documentation for external users.
  • Updated references from Twitter to X and included a Discord server link in the footer.
  • Resolved an issue where JSON data was erroneously rendered instead of HTML.

Dashbrd Wallet Items

  • Enabled automatic updates of balances and tokens during data retrieval.
  • Rectified a sorting issue for tokens based on price.
  • Ensured proper update of fees when switching between tokens on different networks.
  • Displayed the token network in the send dialog to provide clarity on the network for specific tokens.
  • Adjusted max amount recalculation to account for changes in fees when they update.
  • Implemented proper handling of excessive retries exception during token retrieval.
  • Simplified the network service by utilizing predefined network manifests and removing exception-based fee fetching code.

Dashbrd Collections & Gallery Items

  • Addressed the problem where adding a cover to a Gallery prevented removal or change due to missing button visibility.
  • Standardized width and padding on the NFT page to maintain consistency with other pages.
  • Introduced a loading state when searching for NFTs within specific collections for an improved user experience.
  • Restructured truncation module to allow wallet addresses to use the available width, avoiding truncation on Gallery cards.
  • Corrected the link for ‘Curated by’ on the Gallery edit page to redirect to the explorer
  • Eliminated token number duplication from NFT titles.
  • Enhanced zooming functionality for NFT images to reduce delays.
  • Improved mobile user experience by consistently displaying certain actions rather than hiding them behind clickable elements.
  • Improved handling of large numbers for gallery values.
  • Optimized rendering on collection pages to avoid multiple rerenders.
  • Disabled the ‘Report’ button immediately upon reporting a collection, without requiring a page refresh.
  • Made the NFT property sidebar scrollable to enhance user experience.
  • Introduced tooltips for icons when hovering over NFT images.
  • Implemented a custom scrollbar for the properties sidebar to ensure visual compatibility across operating systems.

Looking ahead, our focus for the upcoming week will remain on testing, bug fixing, and optimizing Dashbrd in preparation for its public release. Simultaneously, we will start to work on the Dashbrd landing page.

Mainsail Weekly Progress

Throughout the past week, our attention was directed toward consensus and P2P optimizations, accompanied by a series of general enhancements and resolutions.

For a more detailed overview:

  • The consensus handler underwent segmentation into distinct processor classes: Prevote, Precommit, Proposal, and CommittedBlock processors. Each processor assumes responsibility for activities such as buffer deserialization, data verification, signature authentication, and cross-referencing with previously received data. Subsequent to verification, the processor communicates the outcome back to the P2P layer, which possesses the capability to disqualify peers based on their verification status. Messages that are promptly authenticated are subsequently retransmitted. Notably, the node restricts the rebroadcasting activity to solely encompass messages received via broadcast, omitting those that have been downloaded.
  • The transaction pool has been improved to now facilitate the broadcasting of transactions.
  • The crypto generator has been updated to incorporate support for base58 addresses, a format that is used by the ARK network.
  • A P2P Throttle class was extracted, introducing requisite code corrections necessary to manage heightened network traffic.
  • The process of proposal serialization has been refined, contributing to improved efficiency and reliability.
  • Improvements were made to the messages store, which is instrumental in restoring states during bootstrap. Notably, the store is now cleared upon block commitment to prevent data loss. It also accommodates multiple proposals from the same validator, an infrequent scenario that may arise if a block encounters non-acceptance across multiple rounds.
  • Additional improvements were undertaken, encompassing refined log output, various consensus fixes, enhanced P2P verifier functionality, and precise schema adjustments. These actions collectively contribute to the ongoing enhancement of system robustness and reliability.

In the following week, the primary attention will be directed toward monitoring the internal Mainsail network. This will involve at the moment a limited set of delegates in order to enhance network stability and identify potential issues. Simultaneously, efforts will be initiated to enhance the BlockProcessor module.

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:

What’s Next

Our main focus continues to be on internally testing Dashbrd and addressing any reported bugs, along with implementing general optimizations and enhancements. Additionally, we will initiate the development of the Dashbrd landing page, as the design has been finalized. Our objective is to complete all remaining tasks for Dashbrd within the forthcoming week, with the aim of making it accessible to the public as soon as possible. As for ARK Scan, there won’t be significant advancements in the upcoming week, except for quality assurance on the ‘Delegates’ page. Our intention is to release a new version of ARK Scan during the third week of August.


Follow us on X 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.