Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, we completed the implementation of a new feature that allows the sorting of table items on the Delegates page in ARK Scan. Additionally, notable progress has been made on the ongoing development of a custom dedicated API for Mansail and improvements to the blockchain state.
Development Summary
Below is a breakdown of total commits and authors by project for development activity over the last week from September 15th through September 22nd, 2023.
Project | Commits | Authors |
---|---|---|
Mainsail | 16 | 2 |
ARK Scan | 18 | 2 |
ARK Vault | 0 | 0 |
Overall, the team has demonstrated consistent productivity and engagement over this period, with a total of 34 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, our main focus was on implementing a sorting feature for the ‘Delegates’ page, and we also addressed several identified bugs. Here are the specific improvements we made:
- Sorting has been added to the tables on the delegate page (delegates list, missed blocks, and recent votes).
- Missed blocks for standby delegates are now displayed in a gray color
- Adjustments were made to the presentation of low vote counts for delegates
- Minor UI improvements to table styles across the application
- Show tooltips for truncated delegate names and known wallets in transaction overviews
- Added sorting icons to the loading state of tables
Looking ahead to next week, our goals include releasing an update that introduces the sorting feature on the Delegates page. We will also start work on the redesign of the homepage, which will be our next primary focus.
Mainsail Weekly Report
Throughout this week, we’ve undertaken several optimizations and enhancements to the blockchain state, alongside the development of a new API implementation. To provide a clearer picture, here are the specific improvements:
- We removed the
WalletHolder
class. Now, when a wallet is cloned, it maintains a reference to the original wallet. Initial attributes like balance and nonce are set to 0 upon wallet creation. The clone doesn’t duplicate these attributes but calculates them dynamically. If a requested attribute exists in the clone wallet, it’s returned; otherwise, the original wallet is checked. This approach supports multi-level cloning, allowing a wallet clone to be cloned. When committing wallet changes (forgetting and setting attributes), these changes are merged back into the original wallet. This method of implementing lightweight wallet clones ensures good performance, even for wallets with numerous registered attributes. - We simplified
WalletIndex
, which now functions as a straightforward map, containing key-to-wallet mappings. We removed the backreference of wallets to keys because wallet reindexing during cloning is no longer necessary.WalletRepositoryClone
now tracks index changes and applies them to the original WalletRepository upon commitment. -
WalletEvents
have been removed. If necessary, they can be reimplemented differently. Users are generally interested in listening toonCommit
changes in the blockchainWalletRepository
. - Wallets now contain a reference to the
WalletRepository
for marking themselves asdirtyWallets
when changes occur. This approach eliminates the need to iterate through all wallets to filter the dirty ones, resulting in improved performance. -
WalletRepositoryClone
is no longer bound to request scope but is created via a factory to support multi-level clones (originalWalletRepository
->Clone WalletRepository
->CloneOfClone WalletRepository
). - Initial support for API integration tests has been introduced. These integration tests utilize a real Postgres database and are executed within the GitHub workflow.
- We’ve added search criteria and querying support to the API repositories. This means that query parameters can be included in API requests, which are then translated into SQL queries incorporating conditions like
or
,and
,like
,lessThan
, and more.
In the upcoming week, our focus will be on expanding API implementations with additional features, introducing support for lists within wallets, and working on the export and import of blockchain state.
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.