WEEKLY DEVELOPMENT REPORT
This week the Daedalus team continued work on the integration of both the hardware wallet and the Shelley Cardano node, as well as preparing for the upcoming Daedalus 2.4.0-ITN1 release.
There is no update from the team this week.
This week the team added a migration endpoint to the Shelley component of the API, to make it easy to migrate a Shelley wallet to another wallet.
The version and integration with cardano-node was bumped following the pioneer releases. Nix script improvements were also made to improve access to various cardano-node deployment information.
Revisions were made to the getNetworkParameters endpoint to remove the extraneous "epochId" path parameter and to add a "decentralizationLevel" indicator to the set of returned parameters.
Work continued on support for cardano-node. The wallet can now send and receive basic UTxO transactions, despite some challenges regarding fee calculations. The majority of integration tests are now passing, and we are continuing to fix the remaining tests one-by-one. In the interim, we are adding support for delegation certificates and stake pool listing. Support was also added for cardano-node in Shelley mode, when connected to cardano-wallet-shelley.
Some minor API documentation improvements and fixes were made, using feedback gathered from exchanges as well as from users who raised questions on Slack. In addition, the package delivery workflow was automated to reduce the number of steps post-release.
A user friendly command-line interface was delivered for performing HD derivation in the console for all types of Cardano wallets. The associated commands are simple and well integrated, and also include multiple output encoding as well as good error handling. For example, a user can create a recovery phrase and easily obtain the public key of the associated reward account.
Issue #1670 was also fixed, where input resolution was not carried out over the entire database, but only on the fetched data. Additionally, a bug regarding transaction ordering was fixed.
This week, the networking team merged and reviewed multiplexer changes which allow on-demand start of protocols. They also continued working on a set of comprehensive tests which will cover scenarios needed by the p2p-governor.
The team also implemented a server that is based on the new connection-manager, but this has not yet been merged to the master branch.
Investigations took place on how MonadDelay is using unbounded delays in a safe way (this is especially useful in 32-bit architectures, where previously maximal delay was about 30 minutes). In addition, the team updated cardano-db-sync to use the cardano-client library, and worked on updating other clients as well.
Discussions were held about the warm-peer protocol, which is needed to send keep-alive messages and query blockchain tip information. Last but not least, the team has been busy preparing their design document for a public release.
The team tested ITN rewards transfer CLI tooling and update proposals. They also made Daedalus improvements to support the Shelley public testnet as well as faucet improvements to support different levels of API keys. Finally, they worked on Rust cross-compilation tooling and release builds for musl/mac.
The team successfully tested the hard fork combinator by simulating a hard fork between two mock ledgers. They also added the change discussed at the CSM regarding how to give delegators time to react when stake pools change their parameters. Stake pool re-registration certificates now always delay updating the stake pool parameters until the beginning of the next epoch, and crucially, after the stake distribution snapshot.
Genesis delegation certificates now register their VRF keys (as a hash). The team also ensured that the VRF key in the block header is checked against the registered hash for PBFT blocks, and the two VRF values (nonce and leader), are checked for PBFT blocks.
Some tests were moved from consensus to cardano-ledger-specs and the spec was also updated with all the recent activity on the exec model.
Finally, some investigation work took place on the Byron addresses to figure out how best to handle the authorization of Byron addresses in Shelley.
This week the Plutus team made some organizational changes by merging plutus-emulator into plutus-contract and plutus-contract-tasty back into plutus-contract. They also split out the demo for the plutus-scb (smart contract backend), to provide two contract choices. Finally, they updated the sequence of handleBlockchainEvents and improved some ambiguous syntax for the builtin application.
The Marlowe team spent time testing the changes made in the previous week to the Marlowe Playground. They also made further changes to the Isabelle build task for NIX/Hydra and also worked on the Isabelle build task for NIX/Hercules.