Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. In this edition, we highlight the ongoing efforts of our development team. This week, we released a new version of ARK Scan featuring an updated homepage design. Additionally, we are making progress in implementing the API for Mainsail and enhancing blockchain state management.
Development Summary
Below is a breakdown of total commits and authors by project for development activity over the last week from October 6th through October 13th, 2023.
Project | Commits | Authors |
---|---|---|
Mainsail | 10 | 2 |
ARK Scan | 32 | 2 |
ARK Vault | 0 | 0 |
Overall, the team has demonstrated consistent productivity and engagement over this period, with a total of 42 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 launched a new version of ARK Scan with a redesigned homepage that adheres to our simplified and user-friendly design.
For more details about this release, please refer to our blog post, which outlines all the changes made to the homepage.
Next week, we will focus on resolving reported bugs, implementing the new style for the ‘Support’ page, and beginning the process of aligning the ‘Statistics’ page with our updated design style.
Mainsail Weekly Progress
This week, we’ve undertaken several enhancements and expansions to our API. Notably, improvements to the blockchain state have also been a focal point. To provide a more detailed overview:
- The API now includes a delegates controller.
- Database migrations for the
api-database
are exclusively initiated from theapi-sync
package, rather than theapi-http
package. - Hapi has been updated to version 21, alongside relevant packages such as
@hapi/boom
andjoy
. - The synchronization procedure, responsible for storing new commit data in the database, has been moved outside the commit method. During the commit process, a new sync job is created. This alteration has reduced the duration of the commit phase, allowing more room for consensus-related processing. Additionally, the job is periodically reattempted in the event of a connection error during the sync. If the sync is not completed, and a new commit occurs, it is temporarily paused until the preceding job concludes.
- In the event of an unhandled error during the commit phase, the application is terminated. This precaution is taken due to the suspicion of state corruption, which could potentially create vulnerabilities.
- A new proposer package has been introduced to extract
ProposerSelector
logic that was originally part of the consensus package. Notably,ProposerSelector
no longer relies on the private validatorMatrix but instead utilizes theStateStore
attribute, which is exported in the snapshot. - State snapshots are now a part of the system, encompassing the entire blockchain state, including the
StateStore
with registered attributes and the completeWalletRepository
(comprising wallets, their attributes, and indices). These snapshots are exported in the .gz format on the data path. New environment variables have been introduced to control this feature:-
CORE_STATE_EXPORT_DISABLED
, which optionally disables exporting. -
CORE_STATE_EXPORT_INTERVAL
, which determines the export frequency (default set to 1000 blocks). -
CORE_STATE_EXPORT_RETAIN_FILES
, specifying the number of snapshots to retain, with a default value of 2.
-
Looking ahead, our development team will primarily concentrate on API changes in the coming week. By channeling our efforts toward these API refinements, we aim to provide a more robust, efficient, and user-friendly experience, ultimately contributing to the continued growth of our platform.
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.