Releases: input-output-hk/cardano-sl
Cardano SL 1.3.0
Cardano SL 1.3.0
Features
Cardano wallet API v1 for the exchanges
A subset of endpoints from the Cardano wallet API, used by cryptocurrency exchanges, was moved to the new Cardano REST API v1. The remaining endpoints will move from v0 to v1 in the next release. Cryptocurrency exchanges are encouraged to move to API v1 because the old API is now regarded as deprecated and will be removed in future versions (CBR-101).
Subscription status added to node information
The endpoint that provides information about the node (/api/v1/node-info
) has been expanded to include information about the node subscription status, which can be used to check if the Cardano node is connected to the network or not.
Improved error message for missing charset in API calls
The generic message returned from Cardano node endpoint calls when the charset was not specified is replaced with a more descriptive error message to help users of the API troubleshoot the problem.
Support for sending raw data on the network
It is now possible to send raw, CBOR serialized data to the network using the diffusion layer. Previously, the data had to be serialized before sending it to the network, which slowed things down.
Specifications and documentation
Formal specification for new wallet backend
The formal specification of a wallet for Cardano (or any UTXO-based cryptocurrency) is available here: https://cardanodocs.com/technical/formal-specification-for-a-cardano-wallet/.
Bug fixes and improvements
Faster sending and receiving of blocks
Sending and receiving blocks on the network now works better. First, deserialization performance has been improved by optimizing memory use. Next, blocks are now downloaded concurrently without batching. Finally, block traversal is optimized by the introduction of 'forward links', which removes the need for header retrieval and serialization.
Optimised block storage
Block storage is now optimized by consolidating block and undo data in a single file. This change reduces disk use and improves performance when reading and writing blocks. In later Cardano versions, block storage will be improved even more, so this is only an interim solution.
High (and recurrent) I/O traffic in wallet reduced
I/O spikes in traffic were being caused by large logs being flushed. This issue has been fixed.
Failure to reconnect to the network
Improper handling of DNS failures would sometimes cause the Cardano node to fail to reconnect to the network after an internet connection was interrupted and would need to be restarted. This issue has been fixed.
Time error between user’s computer and the network
The endpoint (/api/settings/time/difference
) for calculating the time difference between a user’s computer and Cardano network was returning an incorrect value in some cases. This was because the calculation was not properly handling the time needed to request the current time from NTP servers and to get the response. As a result, some Daedalus users were prevented from using their wallet because Daedalus cannot be used if there is a time difference of more than 15 seconds. This issue has been fixed.
Cardano SL 1.2.1
Cardano SL 1.2.1 (Mainnet)
Bug fix release.
-
The wallet launcher now uses a lock file. This prevents problems on Windows if upgrading Daedalus while the old version is still running. (DEVOPS-872)
-
Fix character encoding error in the connect script of the Docker image. (DEVOPS-877)
Cardano SL 1.2.0
Cardano SL 1.2.0 (Mainnet)
These are the most important code changes which were included in release 1.2.0.
Features
-
Add to the V1 API all endpoints required for Exchanges (CBR-103).
-
Development and execution of Benchmarking Tools for the Wallet V0 API (CBR-7, CBR-23 & CBR-88).
-
Detailed design and documentation of how to test a wallet. Pre-requisite for building regression tests (CBR-24).
-
Discriminate between publicly exposed wallet API endpoints and endpoints reserved to an internal IOHK usage (CBR-19).
-
Design and implementation of the new V1 API endpoints (CBR-16).
-
Optimize the way the mempool is used in the Wallet Backend (CBR-6).
-
Analyse the usage of database updates and introduce new atomic updates in the Wallet Backend (CBR-8).
-
Investigate and solve the balance discrepancy experienced by Bittrex (CBR-135).
-
Asynchronous restoration of a wallet from seed (CBR-90).
-
Add sorting and filtering capabilities to the wallet V1 API (CBR-20).
Bug fixes
-
Fix wallet creation and backup when there are non-latin characters in wallet name (R120-4).
-
Fix issue where Daedalus remains stuck at "Connecting to network..." screen after updating version (CBR-282, R120-17).
Cardano SL 1.1.1
Bug fix release.
-
When making a bug report in the wallet, ensure that usable log files exist before packing them into an archive.
-
Update the report-server version used in the Cardano network infrastructure, which fixes some issues in receiving bug reports.
Cardano SL 1.1.0
Cardano SL 1.1.0 (Mainnet)
Most important code changes which made to release 1.1.0.
Features
-
A new API endpoint is created for providing information on how much time on user’s machine is out of sync with the global time.
-
An API endpoint for creating transactions is improved to support multiple destination addresses (transaction batching).
-
Logs are compressed when sent to the reporting server to reduce bandwidth usage.
-
The Cardano launcher configuration is improved with support for the YAML format to remove the need for custom scripts for launching the Cardano node.
-
A new option for launching the Cardano node allows usage of API endpoints without TLS encryption for easier testing while developing integrations.
Bug fixes and improvements
-
Fixed improper node shutdowns, which caused some of the ‘connecting to network’ issues when using Daedalus. Improved Cardano node shutdown behavior by improvements to concurrency and exception handling, providing fixes to rocksdb database bindings.
-
Fixed transaction queuing and resubmission logic to remove some of the issues reported by cryptocurrency exchanges.
-
Several minor fixes to the update system for correctly receiving and installing updates from the blockchain to remove some of the reported cases of failed updates.
-
Fixed several space leaks in the operation of the Cardano node, fixing the Cardano node using all memory resources issue.
-
Fixed a bug with block retrieval, causing the extremely slow syncing after blockchain syncing reaches 99%.
-
Fixed a bug with blockchain syncing in case of unreliable internet connection, causing the blockchain syncing to never complete.
-
Fixed a bug causing block syncing to stop working in some cases when the Cardano node is left running for an extended period of time.
-
Improved performance of blockchain syncing by the removal of some unnecessary serialization and deserialization.
-
Fixed a bug causing the Cardano node to fail to start on slow computers, caused by a too-restrictive 5-second timeout.
-
Improved networking policy by allowing more time to connect to the network, resolving connectivity problems for users on slow internet connections.
-
Significant performance improvements for API endpoints for handling wallet operations, where the issues previously caused slow performance for users operating wallets with a large number of addresses, such as cryptocurrency exchanges.
-
Logging improved by making logs less verbose when that is not needed and by expanding the logs to cover more cases necessary for better issue diagnostics and easier quality assurance.
-
Improved automated issue reporting for some previously uncovered cases of Cardano node failures.
Other work
-
Migrated from Travis to Buildkite with nix-based workers as a CI solution.
-
Applied few minor fixes were applied to consensus logic.
-
Introduced auxx: tooling suite for developers to be able to quickly test and closely interact with node or network.
-
Introduced technical documentation for various parts of system, technical documentation is located at https://github.com/input-output-hk/cardano-sl/tree/release/1.1.0/docs.
-
Performed a series of huge refactorings to have better code decomposition, type definitions.
-
Implemented first methods for v1 wallet API (prototype).
Release 1.0.3
CSL v1.0.3 Release notes
Various minor fixes:
-
CSL-1758 Risk of infinite update loop in Daedalus update system
Fix was provided to disallow update issue in case of particular operational error. -
CSL-1747 cardano-launcher should kill cardano-node process properly
Fix to problem of applying updates. -
CSL-1708 Fix leaks in log-warper
Fix to some space leaks in logging library. -
CSL-1640 couldn't run the node error
Fix to minor problem few users were seeing.
Minor features for wallet API:
-
CSM-484 Add flag to make TLS optional
Allow TLS encryption of Wallet API communication to be turned off. -
CSL-1783 Create API for checking current version info
New API for Wallet backend
Fixes for issues occurred on wallets operating with hundreds of addresses:
- CSL-1720 Don't call BListener during lrc
- CSM-491 Acid evnts log automatically grows over time
- CSM-494
/api/wallets
(as well as/api/accounts
) works for a long time - CSM-505 Wallet shows incorrect balance
Fixes to wallet logging (verbosity, readability):
Fixes to Explorer:
- CSE-236 Search by time is not working
- CSE-240 Add getLeaders pagination
- CSE-231 "Address does not exist" error for existing addresses
- CSE-193 Extend genesis page
Updates to utility code for operation on clusters:
-
CSL-1840 Port devnet configuration to cardano-sl-1.0
Added configuration to launch dev clusters withcardano-sl-1.0
, further was used for testing -
CSL-1794 Provide necessary knowledge and code changes to increase tx size limit in cardano-sl-1.0
Update to utility code, docs. -
CSL-1765 automate update system proposals
Update utility improvement.
Cardano SL 0.3
v0.3.2 Version 0.3.2
Cardano SL 0.2
v0.2 Merge branch 'feature/dae111-txhistory-cache' into cardano-sl-0.2
Cardano SL 0.1
v0.1 [CSL-585] Fix for attributes, fixed