4th Oct 2024
5 min read

ARK Development Report - October 4, 2024

Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. The ARK Scan team has been working on recent EVM changes to ensure compatibility. The ARK SDKs team has focused on updating Go packages (client and crypto) and has also worked on improving the API documentation for those packages. The ARK Vault team has continued to make design improvements. The Mainsail team successfully launched the initial EVM network, which includes new Validators and Voting contracts, and has made further improvements to the EVM.

Development Summary

Below is a breakdown of total commits and authors by project for development activity over the last week from September 27th through October 4th, 2024.

Project Commits Authors
ARK Connect 0 0
ARK Scan 18 1
ARK SDKs & Docs 65 2
ARK Vault 54 3
Mainsail 34 2

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

This week, we’ve been focusing on ARK Scan, outlining the necessary adjustments to accommodate the changes introduced by Mainsail’s EVM support. We’ve started a new branch based on the current Mainsail development branch to serve as the foundation for these updates. Our primary focus has been adding support for 18 decimal points and Keccak addresses support, a requirement for EVM compatibility. Once the initial EVM support is in place, we’ll resume upgrading Laravel to the latest version.

Next week, we’ll continue enhancing ARK Scan with additional EVM support, enabling more thorough testing of the EVM changes.

ARK SDKs & Docs Weekly Report

This week, we focused on the Go packages (client and crypto) to support Mainsail. Here’s what we worked on:

  • Refactored issues with broadcast transactions:
    • Made the serialize method public (required for sending serialized transactions).
    • Fixed incorrect GetFee logic.
    • Added methods for building username registration/resignation.
  • Updated Go client packages for Mainsail support.
  • A configurable host option for go-client was added.

We also made progress on the Go documentation, adjusting public API docs and updating crypto-related Go docs. Additionally, we worked on design changes for the new documentation site.

Next week, we plan to finalize the necessary changes to the Go packages and continue working on the new docs website.

ARK Vault Weekly Report

This week, we continued updating UI elements across the app. Here’s what we completed:

  • Updated the 2nd signature creation and review pages:
    • Added an icon in the title section for each step.
    • Modified the UI to match the new design.
    • Reorganized data to align with other pages.
  • Updated the delegate resignation creation step:
    • Added an icon in the title section for each step.
    • Modified the UI to match the new design.
    • Reorganized data to align with other pages.
  • Updated pending and success steps for the multisignature transaction flow:
    • Added icons to each step.
    • Refactored the data structure to match other pages.
    • A new model for the signing steps was added.
    • Updated designs for all steps, including new layouts for pending and signed signees.

With these changes, only a few more pages need updating to match the new designs, which we’ll focus on next week. We’ve also started revising the ‘Exchanges’ design flow based on feedback from users who encountered issues. Once these updates are complete, we’ll begin thorough internal testing.

Mainsail Weekly Report

This week, we launched the initial testnet with full EVM support, including Validators and Voting as part of the EVM. This will be the foundation we build on going forward. The work completed this week includes:

  • Refactored transaction pool:
    • Added checks for sender’s balance and nonce. It now reads the actual balance and nonce from the EVM on new transactions to create the sender’s state.
    • Simplified the transaction pool logic and removed unnecessary code.
    • Only the affected transaction senders are passed to the worker, which avoids transaction deserialization in the worker. All transactions for the affected sender are reapplied after commit. Re-adding transactions is now cheaper since only balance and nonce checks are done.
    • Added logic to revert transactions for expired and removed ones. On revert, the nonce decreases, and the balance is restored to the sender’s state.
  • Implemented the start handler for evm-api-worker and transaction-pool worker. The start method sets the latest height, resets transactions, and loads the correct milestones. The API server boots up after initialization is complete, ensuring it serves accurate data. Instead of passing the entire block on every commit, only the new height is passed to the workers to avoid deserialization.
  • Removed EVM mock instance. Transactions in the pool no longer call the apply transaction handler, so the mock instance is no longer necessary. Transactions are processed when they are included in the block and when the block is processed.
  • Removed unused milestones:
    • multiPaymentLimit: Since we can’t control the payment logic in applied contracts, limiting max payments no longer makes sense.
    • nativeGasLimits and fees: These are no longer needed because native transactions were removed.
  • Transaction apply now returns TransactionReceipt.
  • Restored crypto-signature-ecdsa, which will be used for transaction signing.

Next week, we’ll continue working on general EVM improvements and fixes based on feedback from other teams who will start integrating these changes into user-facing apps. We’ll also refactor transactions to match the ETH format and make further API improvements.

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.

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.