Status Update
May 24, 2019
Status Updates (May, 2019) > May 24, 2019
Weekly Development Report
DAEDALUS
Wallet
This week the team continued working on the implementation of UI designs for stakeholder delegation in the Daedalus wallet.
Two new screens which present information about decentralization start time and current progress have been successfully implemented, and the team is currently working on the implementation of the 'Staking Pools' screen.
In the scope of regular maintenance tasks, the team fixed a minor issue with field validation on the 'Generate address' spending password input on the 'Receive' screen, along with the minor UX issues with the renaming and deleting of a wallet on the 'Settings' screen.
App Platform
This week the team upgraded the Cardano JavaScript SDK to use the coin selection algorithm provided by the Cardano Rust project, refined the developer wallet interface, and improved high-level tests. The smart contract backend was improved to gracefully handle port collision scenarios, as well as handle startup and shutdown sequences better. The design was also determined for lifting the pub/sub-mechanics of signing a transaction created externally to a separate module so it can be used as a standalone service. Additionally, work started on a server-side JavaScript contract execution engine, which is the target for the first production-ready milestone of the smart contract stack.
BACKEND OPTIMIZATION
Lots of work completed on the integration side this week. The team has been strengthening the integration test suite in various ways and automating some previously manual bits of testing (like interacting with the command-line interface). Engineers have also started testing transactions over a local cluster of Byron nodes, with promising results.
Additionally, the team has started working on parsing the new binary format that Jörmungandr uses to represent blocks on the chain. It is now possible to decode most 'legacy' pieces of information present in a genesis block (bits related to the Shelley era have been left aside for now).
Finally, the team has been working on a new engine to support SQLite as a database option. The database schemas and low-level primitives to interact with it have been finalized and a new implementation of the database shouldn’t be far behind.
NETWORKING
The networking team has been working on a high-level interface for the network layer, simplifying the multiplexing and getting a clear interface for running network applications on top of it. The team has also integrated cardano-ledger types into the Byron proxy, and implemented a large part of the demo application which streams and validates blocks from mainnet.
Engineers have also been working on Windows support using named pipes, as well as updating the session type framework. Work has also been ongoing on ΔQ-algebra, which will be used to construct graphs of nodes and validate whether good connectivity in a peer to peer scenario is possible. The team also built a demo application for the multiplexing layer and block fetch protocol, which successfully demonstrates that full bandwidth can be used during protocol pipelining in block fetch.
DEVOPS
This week's main focus has been on integrating NixOS services for the Byron proxy. The initial work of adding NixOS services to the Byron proxy will also be adopted with command line wallets, explorer instances, and most importantly stake pool core nodes and relays. The work will also aid in providing docker containers for end users that do not want to use NixOS. These services make it easier for developers that want to proxy the current chain and run the new ledger validation against it.
The team has also been hard at work at integrating monitoring and logging tools into an internal deployment and will soon be deploying this monitoring framework to the public testnet. This framework will be provided to all stake pool operators to help them monitor their environment.
CARDANO DECENTRALIZATION
This week the team has been working on some internal demos to highlight development efforts. The first demo covers live chain validation, which shows a node pulling blocks from the network and running them through ledger validation. The second demo is of the consensus-ledger integration, which shows the permissive BFT (PBFT) consensus algorithm working with the ledger validation code. The two demos combined demonstrate that the ledger code can integrate neatly with the other core components of the Cardano node.
GOGUEN
The Plutus team worked on some refactoring and simplification of the code and reorganized some of the test cases. They were also busy updating the Plutus use cases and encoding multi-currency values. This week the Marlowe team continued working on general improvements in Meadow. Subscriptions for the online Udemy courses for both Marlowe and Plutus are now well over 5k and continue to grow. The feedback continues to be positive. The education team has been busy fine-tuning the backlog of items and held a series of prioritization sessions to form their delivery plan for the remainder of 2019. This will be presented to the executive team next week along with the education strategy. The initial chapters of the Plutus ebook are being reviewed by the team and work has started on the scenario chapters.
ANNOUNCEMENTS
IOHK is currently looking for talented people to work with us. Please see the IOHK Careers page for more details.