Status Update

April 26, 2018

Status Updates (April, 2018) > April 26, 2018

Weekly Development Report

CORE

A plan of action pertaining to the core rework was presented to a wider audience at the weekly technical meeting. The team made significant progress in researching various options in support of reverse engineering of the specifications as well as possible short-term performance improvements in the block storage layer.

Further progress was also made on the task of CBR-97 Machine-readable logging: specify format. A senior engineer has read the document and has provided some thoughts on how to progress. Senior engineers will have a conversation in order to decide how to progress this this task and what what needs to be done in order for implementation .

DAEDALUS

Last week the team received audit results for the Paper wallets certificate generator feature. The requested changes were implemented and tested and the feature is now ready to be released. The team disabled text selection on most of the static UI parts in order to achieve a more native look and feel of the application. As a part of the regular maintenance the team added multiple minor UI and code style improvements and extended automated test coverage by adding transaction display tests. Both the Daedalus and Cardano team members lists shown on the About dialog were updated on the scope of the preparations for the upcoming release. In the second part of the week the Daedalus team started manual testing and quality assurance tasks for the Daedalus 0.10.0 and Cardano 1.2.0 release.

WALLET BACKEND

Last week the team tackled various important tasks in order to improve exchange integration processes, streamline various wallet features as well as performance improvements. On the task of CBR-3 Decommission Cardano-SL-1.0- exchanges branch the team now awaits for an update from the exchanges to execute their migration plans, before moving further into decommissioning the old branch.

Furthermore, the team incorporated feedback received form a senior engineer, with regard to tracking metadata in the task of CBR-60: Write and validate formal specification for the new wallet backend. Also, the team provided the design of the acid-state DB for the wallet, combining the requirements of the formal wallet specification with the requirements of the Version 1 API designed by a team specialist.

Work continued on CBR-17: Implement wallet backend's new data layer following its formal spec. Last week, the team designed and put the acid-state layer into Github. Once this is merged it will also close four other tasks. Additional design work was done to match the Data Storage Interphase (DSI) -> Cardano Interpreter. The team reports that after a bug fix, which addressed previous slow performance issues, the active wallet generative tests are passing. The developers pushed to get the inductive rollback tests to run successfully. The problem still exists, however, the team successfully narrowed down the problem to how we are dealing with pending transactions.

Additionally, work continued on connecting the block listener to the passive wallet. The team was able to get the block listener to a stage where the it fills a channel with information about block events, which are read out by a worker process and applied to the passive wallet.

NETWORKING

The team mainly focused on CBR-96 Speed up verification and application of blocks. The team successfully added the ‘encodedSize’ function to the Bi class. The task of adding quick check tests is almost complete.

Also, significant progress was made on building benchmarks to measure which parts of the code could be improved as well as a quantifiable measure of those improvements.

More details about the network team's efforts are available in the CARDANO DECENTRALIZATION section of this report.

DEVOPS

DevOps spent much of last week supporting Daedalus and Cardano development and release planning. We identified a few scenarios where CI incorrectly succeeds, fixed immediate symptoms, and planned for longer-term improvements. Work also continued on the addition of integration tests to CI which spawn fresh Cardano clusters, claim Ada from the genesis block, and test basic wallet API functionality. Recent Daedalus configuration changes caused a regression in Daedalus development workflows, so we coordinated with Daedalus devs to fix it. More changes were scheduled for the upcoming Daedalus 1.2.0 release including security improvements for the new paper wallet feature, so DevOps built and internally announced RC-2. In support of API V1 stabilization efforts the V0 to V1 migration documentation was tested and improved, with a special focus on addressing the needs of existing exchanges. Additional work on Cardano and Daedalus include proposing configuration management changes to Cardano, helping developers benchmark block syncing, and discussing potential 3rd party Daedalus plugin mechanisms.

Cluster maintenance and cloud provider workflows also came up last week. Nodes on the internal staging cluster were nearing inode exhaustion. The team solved this issue by allocating larger volumes. We were also paged for a rare incident where a mainnet relay node failed status checks for a few minutes. The relay was fully operational after a clean reboot. Prompted by recent account management changes with our cloud provider, we have taken the opportunity to conduct an internal audit of how accounts and their API keys are managed and have planned improvements in this area.

DevOps worked with managers to ensure that both our team and teams that depend on us are productive. As part of the Praxis project we are keeping informed about QA's increased involvement with Cardano benchmarking and helping to facilitate the benchmarking team's handover. We have also been talking to other managers about creating cross-team development squads to diversify skillsets and improve focus on the most significant business objectives. Separately, we made plans to have external contractors provide the K-EVM and IELE testnet projects with more DevOps support, starting this week. Lastly, we discussed ways to improve and scale exchange engagement, and will be making a business proposal this week.

CARDANO DECENTRALIZATION

Delegation

Research paper - Vincent suggested re-evaluating the need for non-malleability, this might lead to simplifications in the address scheme. Apart from that, the paper is basically complete. Design document - Phillip made some additions.

Incentives

The main focus of the past week was the research paper. The experiments finally look very promising - stable behaviour that leads to a desired configuration. However, on the research side of things (i.e. the actual paper), the team still have to prove some theorems to align the theory with the experimental results.

Networking

Last week the team concentrated on various tasks. One of the tasks undertaken by the team was the effort to speed up block retrieval. A designated team member is working on testing and benchmarking the block streaming protocol, and ensuring it is backwards compatible. A different team member is working on block syncing micro-benchmark, which is aimed at measuring improvements and profiling as well as finding possible optimisations.

Also, a team member reviewed and merged a code backlog remaining after the 1.2.0 release was forked (they had been holding back some potentially disruptive changes from the immediate release).

Core Specification

'As is' State - Most of the rules that touch delegation have been specified.

MISCELLANEOUS WORKSTREAMS

K/IELE

Last week the team mainly concentrated on Runtime Verification development work, Mantis code merge and preparing for the internal testnet.

Marlowe

The main goal and time spent was on paper review, analyses and a presentation of the materials.

Smart Contract Language

The team focused on research topics, defining the roadmap and preparing a presentation plan for first testnet.

Reagan

Further testing was undertaken on a new AWS resource.

Tech Support

Last week saw an uptick in the number of tickets received. The tech support team received a total of 1066 tickets, out of which 270 were successfully. The top reported issues were:

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