Cardano 1.4.0: Daedalus 0.12.0 and Cardano SL 2.0.0 - Release Notes
Cardano 1.4.0
Mainnet Release Date: 18th of December 2018
How Cardano Releases are versioned
Daedalus 0.12.0
New Features
New wallet backend with new v1 API
Daedalus now ships with a completely new wallet backend implementation based on the Formal specification for Cardano wallet, which improves reliability and performance, and eliminates a large number of issues users were experiencing with the previous wallet implementation. Integration with the wallet backend has been completely rewritten, and Daedalus now uses Cardano wallet API v1 to communicate with the backend instead of the now deprecated v0 API.
Wallet data migration
The new wallet implementation changes how wallet data is stored and managed. Wallet data migration is an automatic process which:
- Informs users about the change
- Restores all users wallets
- Synchronizes the wallets with the Cardano blockchain
Form submission with the enter key
Users can now submit forms, like Send ada, using the enter key on their keyboards for quicker and easier operation.
Single running instance per network
Daedalus now only allows one running instance per network to eliminate data corruption issues. Users can still have multiple instances of Daedalus running if those instances are using different networks: for example, one using Cardano mainnet and the other using Cardano testnet.
Changed Features
Improved process management
Process management has been completely re-engineered to give Daedalus greater control of the Cardano node process, especially when detecting issues with the Cardano node and recovering from them. This change also introduces a dynamic selection of ports, which eliminates issues with starting the Cardano node if the configured port is already taken. This feature also includes dynamic TLS certificate generation for two-way encryption in communication with the Cardano node for improved security. This change fixes some of the issues which were causing Daedalus to be stuck on the loading screen with a ‘Connecting to network’ message.
Improved clock synchronization checks
In order for Daedalus to work and the Cardano node to process blocks and synchronize with the blockchain, the clock on user's machine needs to be synchronized with global time. Checks for clock synchronization are now improved. Users can now re-trigger checks if their clock is off after synchronizing without restarting Daedalus, or after waiting for 30 minutes. These checks now also handle communication failures with time servers and allow users to use Daedalus if time servers are not available.
Link to known issues in Daedalus
Known issues are now collected in an article on the Support Portal, and a link to known issues is available on the Daedalus Support page in Daedalus user interface.
New Platform Support
Linux support
Daedalus now supports Linux! This release was tested against Ubuntu 18 and Fedora 28, but it should work with all other major distributions.
MacOS Mojave support
Daedalus now supports the latest release of Mac operating system, macOS 10.14 Mojave.
Cardano SL 2.0.0
New Features
New wallet backend with new v1 API
The new wallet backend implementation is based on and tested against the Formal specification for Cardano wallet, which gives us much greater confidence in its correctness. Exchanges will benefit from improved performance, and also from new
input selection policies which will provide far better long-term unspent transaction output (UTxO) management.
Optimized block storage
Optimized block storage significantly reduces the number of files and space needed to store blockchain data on a user’s machine. Instead of using one file per block (one file for every 20 seconds of blockchain history), blocks are now stored in two files per epoch (two files per 5 days of blockchain history). Only the most recent history of the blockchain will continue to use one file per block for easier handling of blockchain rollbacks. This will reduce the number of files needed to store the blockchain from about 1.5 million to less then 50,000 files for one year of blockchain history, which will significantly improve performance.
Consolidation of blockchain data will take some time for users who have just upgraded Daedalus, and the reduction in hard drive space usage will not be visible immediately. Users should keep Daedalus running for a couple of hours to a day for the consolidation of data to complete, depending on their personal computer performance. For users with SSD drives this will be much quicker.
Read more at Blockchain storage consolidation
Configurable throttling for the API
To prevent accidental overloads of wallet servers for enterprise users and exchanges, configurable throttling was introduced in the API. When the number of API requests exceeds the configuration value, the API will return an error containing a number of milliseconds needed to wait until retrying.
New endpoint for getting UTxO distribution statistics for a wallet
A new endpoint (/api/v1/wallets/{{walletId}}/statistics/utxos) was added to the Cardano API for fetching basic UTxO distribution statistics in the form of a histogram for a wallet.
Flag for forcing NTP checks for node-info API endpoint
NTP checks can now be forced when getting node information using the /api/v1/node-info endpoint to refresh information and re-check clock synchronization information.
Changed Features
Logging
Logging for the wallet has been completely revamped, and the log format has changed. The new log format is JSON, whereas the old format was plain text. In addition, it now supports structured logging: Haskell data structures can be put into the log in JSON representation and be read back and interpreted as Haskell structures. Moreover, the log files can now be queried with tools (ie 'jq'), especially if logging of structured representations was used. There is also an improved log rotation in place which takes care of deleting old files and keeping disk usage within normal limits.
Resolved Issues
Internet disruption causes blockchain synchronization to stop
In some cases, after an internet connection had been lost, blockchain synchronization did not continue when the link was re-established. Users who experienced this issue were stuck on the loading screen with ‘Connecting to network’ message. This issue has now been fixed.
Breaking API changes
Read this blog to learn more.
Improved endpoint for checking if address belongs to the wallet
The behavior of /api/v1/addresses/{address} has been adjusted to reflect more accurately the meaning of ownership regarding addresses. The previous version of this endpoint failed with an HTTP error when the given address was unknown to the wallet. This was misleading, since an address that is unknown to the wallet may still belong to it. The endpoint no longer fails as it used to when an address is not recognized, instead returning a new field 'isOurs' which indicates either that an address is ours, or that it is 'notRecognised'.
Improved behavior of the endpoint for deleting wallets
Delete request to /api/v1/wallets/{wallet} now correctly fails with 404 if the wallet doesn't exist. Previously it incorrectly responded with 204.
System Requirements
Supported platforms
MacOS
MacOS 10.12, MacOS 10.13, MacOS 10.14
Windows
Windows 7, Windows 8, Windows 10 (Only 64-bit Windows is supported)
Linux
- Tested against:
- Ubuntu 18.04
- Fedora 28
- Aimed at all Linux distributions
Recommended minimum hardware requirements
- 64-bit dual core processors
- 4 GB of RAM
- 10 GB of free drive space
- Broadband Internet connection
Known issues
Initial blockchain synchronization sometimes stalls
During the initial Daedalus sync, the loading screen may intermittently show a "Network connection lost - reconnecting..." message on computers with lower specifications. If this happens, Daedalus will automatically recover and reconnect within a couple of minutes.
Update installations sometimes fail
Sometimes, after clicking on ‘Update and restart’ Daedalus will shut down, but the installation of the update will not start. If the user then tries to launch Daedalus within 60 seconds of Daedalus shutting down, the update will fail. The way around this problem is to wait for a minute after Daedalus shuts down and then start Daedalus manually. This will begin the installation process and avoid the problem.
Alternatively, the update can be made by downloading the latest installer from the Daedalus website and installing the new version of Daedalus manually. This will cure the problem.