Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. Throughout the week, our team has addressed reported issues on ARK Scan and initiated the refactoring of certain portions of the codebase. On Mainsail, efforts were directed towards enhancing the readability of the state and P2P packages, and a CLI tool for testing all transaction types has been developed.
Development Summary
Below is a breakdown of total commits and authors by project for development activity over the last week from January 12th through January 19th, 2024.
Project | Commits | Authors |
---|---|---|
Mainsail | 24 | 2 |
ARK Scan | 20 | 2 |
ARK Vault | 0 | 0 |
Overall, the team has demonstrated consistent productivity and engagement over this period, with a total of 44 commits across all projects.
The number of commits and data for each project will fluctuate every week depending on internal sprints, objectives, and difficulty.
ARK Scan Weekly Progress
In the past week, our focus has been on addressing reported issues and starting the refactoring process. Here’s an overview of the progress made:
- Fixed a UI issue with chart corners
- Fixed an issue with dark mode toggle being possible to spam, causing weird UI quirks
- Improved overall price caching throughout the application and implemented rate-limits to optimize price updates.
- Improve insights data by introducing specialized types for the data returned by various statistics, moving away from plain objects/arrays.
Looking ahead to the next week, our agenda includes further enhancements to the overall codebase of ARK Scan. Additionally, we plan to start on a Proof of Concept for streamlining data pooling, aiming to elevate both performance and user experience.
Mainsail Weekly Progress
During the past week, we focused on general improvements and introduced a straightforward CLI tool for testing transaction types. To provide a detailed overview:
- Refactored identifiers for containers, following the
Identifiers.<package/namespace>.<class/instance>.<optional: factory>
pattern throughout the entire project. - Added a commit round to the
api-database
, distinguishing rounds in the block response:round
(consensus round when the block was proposed),commitRound
(consensus round when the block was committed),validatorRound
(representing the validator round, e.g., round height in ARK V3). - Refactored and improved the readability of the state and P2P packages.
- Extracted the
Repository
class for the state store and wallet, encompassing common logic for handling attributes. This class includes methods such assetAttribute
,getAttribute
, andforgetAttribute
. TheRepository
supports nested cloning and manages data merging back to the originalRepository
on commit. - Removed
workerPlugins
fromapp.json
. EachServiceProvider
now includes therequiredByWorker
method, indicating whether the plugin should be loaded in workers. This enhances the readability ofapp.json
by eliminating duplicated packages. - Integrated
WalletRepository
into the state. When a new block is processed, it alters the content of the state and the clonedWalletRepository
. Changes are written back to the original state on commit. Multiple clones of the same state can be active concurrently in specific scenarios, such as when multiple blocks for the same height but different rounds are proposed. - Prepared a simple
mainsail-tx-tester
, enabling users to send all available transactions via the CLI. This is a standalone package.
In the upcoming week, our plans include making an initial release on npmJS, addressing validator set fixes and state export improvements, and continuing our work on documentation.
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.