Status Update

March 1, 2018

Status Updates (March, 2018) > March 1, 2018

Weekly Development Report

CORE

  • Core Backlog

This week the team concentrated on various key tasks. One of those tasks was the upgrade to Glasgow Haskell Compiler v8.2.2. A key member of the DevOps team noticed performance regression on the build with GHC-8.2.2. To mend the issue, another member of the team updated to the latest develop branch and made sure that the latest versions of libraries are used, including the log-warper fix by a member of the Networking team. Furthermore, the team put effort towards tackling HTTP-based block sync proof-of-concept. As it stands, block downloading on cardano-sl level has been tested. However, work on this feature will be stopped as the progress in the network layer has made it obsolete. In regard to Machine-readable logging: specify format two members of the team reviewed the logging proposal document and raised some concerns about preserving the human-readable format. At this moment there are two main issues left unresolved: Should the developers use only structured logging, human-readable logging or both as well as should the team implement structured logging in log-warper or just use another library for structured logging? The team is currently discussing the pros and cons of the respective approaches.

  • Exchanges Onboarding & Support

This week a team member has been officially assigned as the first line SPOC (Single Point of Contact) for the exchanges. The new SPOC contacted an exchange and the integration team received a list of questions from the exchange, which will be addressed in the documentation. Additionally, first agreement on the various communication channels between exchanges and IOHK has been put into effect.

DAEDALUS

Implementation of paper wallet certificate generator for Cardano wallet kicked off. This feature will be delivered within the scope of the Daedalus 0.10 and the Cardano 1.2 release. Testing for the upcoming Daedalus 0.9 and Cardano 1.1 release was completed, and the release is ready to be shipped. The team participated in the Daedalus roadmap planning workshop where the longer-term roadmap was defined.

WALLET BACKEND

  • Work on current wallet backend

In the past week the team worked on the task of DB schema change and migration to use more appropriate representations. A pull request has been created and has already undergone through a couple of review passes, but the test of migrations seems to be failing on Windows CI. On the front of Wallet Benchmarking, Performance Analysis and Improvement: A member of the team has started running benchmarks last week to compare the performance of the remedial work. So far, the results are not clear as the patched wallet seems to be running slower than the old one. The team plans to investigate further with profiling enabled, to see if there is anything obvious that stands out. In regard to Asynchronous restoration of a wallet from seed: the team has reached their first agreement in terms of API design. However, the actual implementation has not yet commenced and is planned to be started shortly.

  • API rewrite

One of the tasks tackled this past week has been the task of Porting (and revision) of /api/test/x endpoints. Both api/test/x endpoints (CSL-2094 + CSL-2093) have been successfully implemented. Some end points have been manually tested whereas others require unit tests which are currently in progress. The pull request in regard to the task of designing & implementing /api/v1/transactions endpoints is ready for review. Last, (but certainly not least) the development and coding of functionality that would allow users to send bug reports directly from Daedalus has been completed and the final tests are being completed.

NETWORKING

The team engaged in tackling the task of Block streaming. Prerequisites have been completed and tested. Implementation of block streaming has started and is going well. Additionally, network-related bugs are being investigated and solved.

DEVOPS

The team has made a second pull request for the Linux installer, which is ready - implemented via the nix-bundle. What's missing is a proper review, refactoring and internal testing. The team is making progress by using Dhall for configuring the cardano-launcher, which would give the ability the installer builds across OS and environments (mainnet, staging). Last but not least, the team is currently in preparation for the Nix 2.0 migration.

MISCELLANEOUS WORKSTREAMS

  • Sidechains

No progress since last week due to team availability. The intention is to still propose a paper for a conference in May 2018. The engineering review on the sidechain paper is still pending.

  • Smart Contract Language

Recruitment for roles promoted and in progress with over 13 candidates in the pipeline. A use case for crowdfunding has been identified, intended to guide design decisions. A discussion was also had pertaining to how the smart contract language could address limitations in Solidity including testability. The team discussed two approaches to maintaining state in Cardano SL: (1) small changes to Cardano SL-style transactions OR (2) extra space for program state to transactions that on-chain code can update. A team member proposed experiments to test both approaches using the crowdfunding use case.

Tech Support

Last week saw an uptick in the number of received tickets. The tech support team received a total of 823 tickets, out of which 625 were successfully resolved and the remaining 198 are being followed up. The top reported issues were:

  • Unable to connect to network
  • Antivirus-related issues
  • Cannot launch
  • Transaction-related questions