December 6, 2019
Status Updates (December, 2019) > December 6, 2019
WEEKLY DEVELOPMENT REPORT
This week the team continued working on preparations for the delivery of the Daedalus rewards wallet for the Incentivized Testnet. The team integrated API endpoints for listing, joining, and leaving stake pools, along with implementing UI changes to the delegation center and the delegation setup wizard. The network splash screen has also been updated with information about the Incentivized Testnet network, and there will be a new Daedalus icon that will be used for this version of the wallet client.
The team also implemented a number of other changes: external link icons were added to application menu items that open web content, the display of ada amounts in the wallet sidebar was improved, error messages on the ‘Send’ screen were improved, new mainnet and testnet Daedalus icons were implemented, and a new ‘Receive’ screen was designed. The team also updated the wording on the ‘Loading’ screen and ‘Daedalus Diagnostic’ dialog, as well as extending the list of stories in Storybook and fixing some minor translation issues.
Finally, in the scope of regular maintenance tasks, the team added a script that ensures that the yarn.lock file is correctly formatted and removed some unused third-party dependencies.
There is no update this week since the team was focused on supporting the release of the new Daedalus rewards wallet for the Incentivized Testnet.
This week the team worked on ensuring that all services in the Explorer backend now have Docker images, which are used internally by the project team for integration testing and as a local development environment. For implementors, this also provides a convenient approach using container-based hosting environments. Elsewhere, Cardano GraphQL achieved a first release candidate, an important milestone in the project’s readiness for production, as the API is now stable and there will be only fixes applied until the QA process is complete.
As a result of the team’s work this week, the wallet can now delegate to a stake pool and requires only one API call from users to do so. Behind the scenes, the wallet handles the creation and signing of delegation certificates and selects the necessary funds from the wallet to complete the delegation. Users can see how their delegation request is progressing by monitoring the transaction to which it corresponds. Once found in the ledger, delegation certificates are tracked by the wallet, making sure that they also survive any potential chain switches and rollbacks.
Work is still being done on finalizing how rewards will be tracked and displayed to users. The team is planning to finish the integration of reward balances next week.
The team has been making progress on the peer-to-peer governor this week. The first non-trivial QuickCheck test was passed, demonstrating that the governor successfully finds all reachable peers, or reaches a limit of peers to find. The team has also been working on specifying the distinction between local and public roots: local roots are IP addresses known in advance to the governor, whereas public roots are IP addresses that are discovered through DNS servers (which are known in advance as well).
In other work, the team successfully ran a full-duplex connection integrated with consensus protocols, simplified the ouroboros-network API, and adjusted the chairman application, which checks consensus between Shelley nodes, for a mixed cluster of Byron and Shelly nodes together with Byron proxies. This mixed cluster is run on every commit on CI. The documentation for the 1.0.0 release was also updated.
This week the DevOps team started the transition testing of OBFT-era core nodes. They aim to have all testnet core nodes replaced in the next few weeks.
The team has been making progress across a number of areas this week, including finishing and checking the code needed for block production, addressing a few bugs turned up by testing, and improving performance by adding some infrastructure that allows blocks to be served as binary BLOBs without deserializing them.
There has also been progress on both Shelley and Byron ledgers. For the Byron ledger: some improvements in data representation have been ported over from the Shelley ledger, and an internal audit has been underway, comparing the formal specification with the executable specification to ensure as much parity as possible. While for the Shelley ledger, the automatic property-based tests are being extended so that they cover more of the ledger rules, and the ledger implementation is being integrated with the consensus implementation using Ouroboros Praos.
Finally, work is being done to establish system-level benchmarks, with stability and performance looking excellent so far. The test cluster currently spans three continents, and the test system remains completely stable when batches of 50,000 test transactions are submitted – with not a single transaction being lost in any run so far.
This week the Plutus team started work on updating the contracts that are used as example use cases in the Plutus Playground. They also updated the game state machine and started to investigate how to improve running the Plutus Playground server tests. In addition, they began researching using MAST for Plutus Core.
The Marlowe team fixed some minor issues that were appearing in the Marlowe Playground.