Status Update

May 17, 2018

Status Updates (May, 2018) > May 17, 2018

Weekly Development Report

CORE

Exchanges

Last week the team concentrated their efforts on Version 1 API and test coverage for the initial roll-out. The developers wrote small tools to easily generate and validate swagger json schemas corresponding to the wallet's backend API specs. Example addresses are now more representative of what they might be in real-life.

The effort to review and gather feedback on the current V1 API is now complete and awaits feedback from the exchanges.

DAEDALUS

Last week the team tested Daedalus update mechanism in the scope of QA tasks for the upcoming Daedalus 0.10.0 with Cardano 1.2.0 release.

The team implemented multiple UI improvements such as prevention of drag and drop actions on static UI elements and a fix for wallet navigation tabs where the long text would break in multiple lines on smaller screens in case of the Japanese language.

In the scope of regular maintenance, the team introduced better Electron IPC API and improved Cardano API error handling.

The team is working on the finalization of test coverage improvements of the React-Polymorph library.

WALLET BACKEND

The team spent time on tidying up the incorrect (0) balance issue. The issue is old and the underlying code has much evolved since then. It is possible that this was fixed in some recent additions; What's certain however is that the issue is complicated to reproduce. The team will need to confirm with support this week whether similar cases have been reported recently. If not then this issue will be closed.

In regard to adding server side Transport Layer Security (TLS) check, significant progress has been made. Currently, the developers need to verify that each of the files required by the wallet to start is available on disk (--tlsca, --tlscert and --tlskey). If one of them is missing, the generation tool generates new ones (overriding any existing file).

The team was also able to make progress on investigating high (and recurrent) IO traffic in the wallet. The root cause has been identified and the exchanges has now finally applied the patch that the team provided a few weeks ago. They are currently awaiting feedback from the exchanges.

The formal specification for the new wallet backend is now completed and available on the Cardano Docs website. The only part that still requires an in-depth study is input selection, which is a separate study and for which another separate tickets has been raised. But this will be looked at further down the line once development has progressed.

API rewrite

The task to design wallet’s V1 API is now completed. All tasks are completed and this is ready for release 1.2 The only outstanding tasks is to improve the wallet’s error handling.

NETWORKING

The team engaged in an effort to speed up verification and application of blocks. The developers discovered and fixed a flaw in profiling & criterion benchmarks of blocks verification, optimized calls to getCurrentSlot, getAdoptedBVFull, also generated profile data that was analyzed with a senior engineer, which now has led to new ideas on how to optimize.

Furthermore, work was done to smooth block syncing and to have a progress bar that would show block sync progress from latest synced point. Currently the Daedalus UI does not have this feature, therefore, a call will be made this week with the required stakeholders to decide if this task should be closed or further worked on.

DEVOPS

DevOps continued supporting QA efforts for the upcoming Daedalus and Cardano release. The team worked with QA and developers to reproduce and troubleshoot a bug identified during release candidate testing which impacts whether Daedalus opens correctly. This is considered a blocker for the release and efforts are ongoing to resolve it. DevOps also submitted new installers to the internal staging blockchain to help QA test the update mechanism.

In preparation for the upcoming Cardano Byron testnet, an engineer started developing a new faucet backend and its supporting infrastructure, and two engineers are making Daedalus installers more modular independent copies which target different clusters may be built and simultaneously run on the same machine. Part of the Daedalus work includes adding an IPC mechanism so Cardano can advertise which port its using, and as a perk we anticipate IPC will enable Daedalus to relaunch the Cardano backend in the event that it fails. Two other engineers are working closely with the Mantis team to prepare operational aspects of the K-EVM testnet.

The team continued handling CI support requests and making improvements. When an integration test failed we determined it was due to a missing /etc/protocols file, and proposed a fix. We also started working with developers to incorporate Haskell benchmarking into CI. To make macOS build machines more maintainable an engineer integrated nix-darwin into DevOps' tooling, and also bumped much of our infrastructure to nix 2.0.

CARDANO DECENTRALIZATION

Delegation

One of the researchers has found a potential issue with chain delegation in the research paper, which he has bounced back to the researchers. This might have an impact on the research paper as it could require a minor modification.

Networking

On the front of Peer Discovery Implementation the researchers are continuing to make good progress. Last week public interface was completed, one potential security problem fixed and routing table maintenance is almost ready.

MISCELLANEOUS WORKSTREAMS

The Gougan team is currently preparing for K-EVM testnet launch. Additionally, detailed planning for the smart contract language and Marlowe based on signed off roadmap has begun and the team reports good progress. The team also spent time Working with RV on deliverables; raising concerns about test reporting and gas model in IELE.

Tech Support

Last week saw a decrease in the number of tickets received. The tech support team received a total of 748 tickets, out of which 322 were successfully resolved. The top reported issues were:

  • Unable to connect to network
  • Unable to update wallet
  • Cannot sync
  • Misc.