Welcome to our latest weekly development report, where we spotlight the valiant efforts of our development team. We hope you are all out there enjoying your summer. Here’s a quick look at what we’ve been working on.
Development Summary
Below is a breakdown of total commits and authors by project for development activity over the last week from June 23rd through June 30th, 2023.
Project | Commits | Authors |
---|---|---|
Mainsail | 14 | 2 |
ARKScan | 51 | 3 |
ARKVault | 0 | 0 |
Dashbrd | 110 | 5 |
Overall, the team has demonstrated consistent productivity and engagement over this period, with a total of 175 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.
ARKScan Weekly Progress
Earlier this week, a minor version update was deployed for ARKScan, focusing on resolving various small issues. These include concealing the address “value” on the Test Network, hiding the delegate information box on mobile devices for non-delegate wallets, top aligning data in the transaction table, and ensuring the QR code displays in full width on mobile devices. You can read the full changelog in our GitHub Release Notes .
Along with that, progress has been made on implementing the ‘Export’ function, along with other notable improvements. To provide a summary:
- Improvements have been made to the search indexing speed of the blocks and transaction indexes. With certain adjustments to the Meilisearch configuration, indexing of new data now requires significantly less time.
- Tooltips have been added for the ‘Type’ column in the table, specifically for ‘Vote’, ‘Unvote’, and ‘Vote Swap’ actions. These tooltips will display the delegate associated with the respective voting action.
- As part of our ongoing efforts to streamline the ARKScan experience and prioritize essential data, the decision has been made to remove identicons from the search feature. This change aligns with our goal of reducing the unnecessary focus on graphical representations and will be extended to all areas of the ARKScan platform.
- Legacy search code has been removed to minimize dead code debt for future development.
- A user interface has been implemented for the transaction export feature, allowing users to define preferences according to their requirements.
- The majority of the transaction history export functionality has been implemented based on the user preferences set through the user interface.
In the upcoming week, our primary focus will be on completing the implementation of the transaction export feature and incorporating the export functionality for validated blocks as well in preparation for a subsequent release.
Dashbrd Weekly Progress
The Dashbrd development team has been working hard to tackle the most critical and complex tasks as we approach their completion. Throughout this week, notable progress has been made, including:
- Completed the user interface (UI) for the ‘Send’ feature of the ‘Wallet’.
- Implemented the functionality to create and broadcast transactions through MetaMask, enabling users to send tokens via Dashbrd.
- Incorporated the display of projected transaction fees in a native token.
- A user interface was implemented to showcase failed transactions and loading skeletons, enhancing the display of dynamically changing data.
- Decoupled wallets from networks in preparation for the future addition of Ethereum network support alongside Polygon.
- Addressed several issues in the Collections feature, including a fix for sorting order, NFT width display, proper visualization of collection charts, and accurate representation of the FIAT value of the collection.
In the upcoming week, our plan is to focus on completing the functionality of the ‘Send’ feature within the wallet. Additionally, we aim to finalize the implementation of fetching and storing transaction history for tokens.
Mainsail Weekly Progress
During the past week, the Mainsail team made progress in executing consensus-related tasks and undertaking essential P2P modifications to accommodate the impending change.
To summarize the work done:
- Implemented the addition of a store for Proposal, Prevotes, Precommits, and consensus state. Content is stored on disk using a key-value store and is cleared at each height.
- Achieved consensus bootstrapping through the use of the store state. All consensus messages from the previous height are restored and processed to restore the consensus state.
- Enhanced the functionality of the consensus and block processor to handle two structures:
RoundState
, which represents received Proposal, Prevotes, and Precommits for the active block round, andCommittedBlockState
, which represents the committed block after receiving +2/3 commits. A valid block can be represented using either of these structures.CommittedBlockState
is utilized during node synchronization, whileRoundState
is employed when the node is already synchronized. - Updated the P2P functionality by removing the isAppReady plugin and introducing support for downloading CommittedBlocks. The node initiates block downloads when it detects another peer with a higher height. The PostBlock route has been removed, and nodes now only broadcast Propose, Prevote, and Precommit messages. Missing blocks and consensus messages can be downloaded if detected from the header.
- Ensured the execution of consensus handlers in a locked fashion, preventing parallel execution of two handlers to ensure data consistency.
- Introduced the concept of
commitedRound
, which represents the total number of rounds required to form the last committed block. This value is used to determine the correct proposer within the given validator set.
In the following week, the team will continue in their ongoing efforts to make essential changes to the consensus mechanism functionality and P2P layer.
Community 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 next release will be for ARKScan and will introduce several enhancements, including the export feature for transactions and validated blocks, as well as the other items mentioned above.
Follow us on 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.
Have a great weekend and see you next week!