Cryptographic currency implementing Ouroboros PoS protocol
Cardano SL 3.2.0 is a maintenance release that
This a library release; no update is required for the blockchain nodes.
https://iohk.io/blog/how-cardano-releases-are-versioned/
Cardano SL 3.1.0 (of Cardano 1.7.0) is a small release which contains a new API endpoint for calculating a wallet ID from a wallet recovery phrase; it was created specifically for Daedalus 0.15.0. It also includes maintenance improvements like license update and other. See CHANGELOG.md for details.
This a library release; no update is required for the blockchain nodes.
https://iohk.io/blog/how-cardano-releases-are-versioned/
Cardano SL 3.0.3 (of Cardano 1.6.0) is a minor maintenance update
The Cardano SL 3.0.2 (of Cardano 1.5.2 release) is a small update which
For more information see the release notes.
https://iohk.io/blog/how-cardano-releases-are-versioned/
Cardano SL 3.0.1 (of Cardano 1.5.1) release is a small update which fixes a minor issue:
For more information please see the release notes.
https://iohk.io/blog/how-cardano-releases-are-versioned/
Cardano SL 3.0.0 (of Cardano 1.5.0 release) provides a new consensus protocol, Ouroboros BFT, that is important in preparation for moving to the Shelley phase. Ouroboros BFT is a key step in the transition from Ouroboros Classic, the current consensus protocol running the Cardano network in Byron era, to Ouroboros Genesis, the protocol for the Shelley era. (Ouroboros Genesis will be a major upgrade to the protocol that underpins Cardano because it is the first proof-of-stake protocol that matches the security guarantees of proof-of-work protocols such as Bitcoin.)
Ouroboros BFT will not be immediately activated after deployment of the release. It will be activated through a protocol update later, which will be announced separately. This protocol update will deactivate the Ouroboros Classic protocol and activate the Ouroboros BFT consensus protocol. This update will be, technically. a hard fork; it will take place in a smooth and automatic way as a planned protocol upgrade whereby all parties of the current federated system will have agreed to the change.
The v0 wallet API, which was deprecated in Cardano SL 2.0.0 (of Cardano 1.4.0 release), is now completely removed in Cardano SL 3.0.0 and can no longer be used. Therefore cryptocurrency exchanges need to migrate from v0 to v1 wallet API before upgrading to this release.
This release also includes many other improvements like performance improvements when rendering lists with a large number of transactions and wallet addresses, the addition of features for detecting insufficient disk space, and a new screen that visualizes the block storage consolidation process.
For more information please see the release notes.
https://iohk.io/blog/how-cardano-releases-are-versioned/
Blund files (containing blocks and their undos) for older epochs (from zero up to current epoch minus two) are now consolidated into epoch/index file pairs. That means that the number of files to store the block chain for a single epoch is reduced from 21600 (one blund file for each slot in an epoch) to an epoch/index file pair. Consolidation happens on-the-fly in a background process.
Previously, exchanges could accidentally overload their wallet servers. We
have added configurable throttling to the API service to prevent this
problem. To configure this, setting, view the changes in the
configuration.yaml
file under the wallet
section. The API will now return
a 429 error containing the microseconds to wait until retry. (CBR-179, #3431)
We can force an NTP-check when getting node-info via the API (?force_ntp_check
query flag)
The API provides an endpoint to retrieve basic statistics on the UTxO distribution of a wallet (/api/v1/wallets/{walletId}/statistics
) (CO-347, #3402)
cardano-sl exposes a new package x509
with tooling for defining a PKI infrastructure from pure Haskell. This is basically an export of the internals of the tool cardano-sl-x509-generate
Structured logging (CBR-97 #3483 #3645, CBR-207, #3476 #3477, CBR-211 #3507, CBR-213, #3481, DEVOPS-1097, #3764, #3395, #3443, DEVOPS-1109, #3785, CBR-275 #3533 #3534 #3655, CBR-345 #3526 #3613 #3632 #3633 #3709, CBR-348 #3523, CBR-430 #3603, CBR-423 #3609, RCD-42 #3816)
Enable new data layer in Docker images for exchanges (DEVOPS-1037, #3545, DEVOPS-1046, #3594).
New cluster
package with utility and CLI to start a full-fledged cluster of nodes
Support query against some fields of the Account resource (balance, addresses) enabling client to fetch only the data they need (CO-324, #3210)
Integration with the new data-layer
Finalize port of API V0 to V1
Expose ntp client api for makeing forceful ntp checks and a review of the ntp client code base CDEC-355
Add exception handling code in reporting exception handler, to prevent IOExceptions from killing the main thread. This was noticed when the network connection was interrupted, and the reporter died when it tried to report over the down network. (CDEC-470, #3365)
Improve type safety (and as a consequence, API documentation) of account indexes (CBR-306, #3086)
The Swagger specification had names with illegal characters. These names where changed to be URL friendly. PR #3595
The creation of mnemonic doesn't throw anymore when provided words outside of the BIP39 English dictionnary. Instead, it returns an error value gracefully (CO-325)
Response from JSONValidationError
are now also encoded inline (instead of a pretty-encoding with newlines) (DDW-318, #3619)
[API BREAKING CHANGE] 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 the wallet. To reflect this,
the V1 endpoint does not fail anymore as it used to when an address is not recognised and returns instead a new field
'is-ours' which indicates either that an address is ours, or that it is 'not-recognised'. (CBR-401, #3646)
[API BREAKING CHANGE] A DELETE request to /api/v1/wallets/{wallet}
now correctly fails with 404 if the wallet doesn't exist. Previously it incorrectly responded with 204.
Fix commitAndReleaseBuffer: invalid argument (invalid character)
error in Docker image (DEVOPS-877, #3173)
Fix logger implementation, enabling pure logger to be used without side-effects (CO-409, #3697)
Crash host node when the underlying wallet dies (CBR-263, #3584)
Ensure correct file permissions are set when generate x509 certificates (CBR-470, #3773)
Fix checksum verification in BIP-39 implementation (CO-298, #3013)
Fix wallet starting bug introduced by CDEC-509 (CBR-400: #3486)
Fix restoration ignoring new accounts in legacy data layer (DEVOPS-1153: #3911)
Tweaks to Cardano Explorer for Testnet (DEVOPS-1094, #3817, DEVOPS-1121, #3831, RCD-48, #3883)
Fix bug in Windows launcher where upgrading to 2.0.0 would terminate any other Daedalus wallets that were running (RCD-52, #3926)
Friendly error mistakes from deserializing invalid addresses instead of brutal 500 (CBR-283)
[API BREAKING CHANGE] Add walletId
to WalletAlreadyExists
WalletLayerError (CBR-254)
Small refactor of wallet Errors implementation to be more maintainable (CBR-26, #3429)
Content-Type parser is now more lenient and accepts application/json
, application/json;charset=utf-8
and no Content-Type at all (defaulting to application/json
) (CO-369, #3596)
The codebase now relies on the package cryptonite
(instead of ed25519
) for Ed25519 implementation (CO-325)
[API BREAKING CHANGE] Improve diagnostic for NotEnoughMoney
error (CBR-461, #3702)
When Content-Type's main MIME-type cannot fall back to 'application/json' then UnsupportedMimeTypeError is returned (CO-416, #3727)
Add cardano-node --no-tls
option to wallet (DEVOPS-879, #3074)
Improve error reporting when a worker thread in cardano dies (DEVOPS-1063, #3664)
Add failure injection options to wallet for Daedalus testing (DEVOPS-1086, #3787)
core
packagesinfra
to sinbin
so that infra
can be moved "up" in the dependency graph (CDEC-416: #3185, #3202, #3209)networking
to core
, so that networking
can be moved "up" (CDEC-432: #3238, #3261, #3266)Mockable
typeclass (CDEC-451: #3285)pipes
to conduit
, for consistency (CDEC-464: #3305)deriveIndexedBi
TH function (CDEC-385: #3153)cardano-sl
(CDEC-429: #3227)Blockchain
class and clean up Block
modules (CDEC-333: #3615)HasProtocolConstants
reflection constraint in favour of explicit parameters (CDEC-369: #3482)core
configuration (CDEC-509: #3437, #3505, #3522, #3549, #3550, #3570)stylish-haskell
enforcement in CI to keep code conformant (CDEC-383: #3142)Block
datatypes from core
to chain
(CDEC-485: #3351)core
types to chain
package (CDEC-505: #3412, #3593, #3600, #3601, #3611)Undo
type (CDEC-623: #3735)-fno-warn-orphans
from ghc-options
in update-test
(CDEC-455: #3296)Arbitrary
instances from wallet
to wallet-test
(CDEC-437: #3259)Pos.Core.Genesis.Canonical
to Pos.Util.Json.Canonical
(CDEC-513: #3445)Improve readability and execution of various integration tests
Add integration tests to test redemption of certificates (CBR-398, #3525)
Review implementation of the BIP39 (Mnemonic Words) implementation
Add a test which checks if the configuration can be correctly parsed
Make an inventory of existing wallet errors and exceptions (CBR-307)
Various API documentation / guides fixes
Documentation updates for Nix 2.0 (DEVOPS-976, #3311, #3343)
pkgs/default.nix
(DEVOPS-1045, #3677)cabal new-build
(DEVOPS-1061, #3662, #3729, #3734, DEVOPS-1060, #3675)nix-build
when run from a git
worktree (DEVOPS-949, #3691)clang: Argument list too long
) (DEVOPS-1005, #3432, DEVOPS-1050, #3606)Add genesis data for the Cardano SL public Testnet. (#3265, #3349, #3585, DEVOPS-398)
Add a "faucet" API to dispense Testnet Ada to users. (#2939, DEVOPS-834)
Support additional fields for Daedalus bug reports in the report server. (#3394, TSD-116)
Fix a case where the error reporting system can cause the node to stop syncing. (#3294, CDEC-469, CDEC-439)
Adjust the address format to distinguish testnet and mainnet addresses. (#3540, #3556, #3558, #3561, #3578, #3583, #3618, #3659, #3685, CO-353, CO-354)
Add a workaround for the RocksDB issue which prevented Daedalus Windows users with non-ASCII usernames from starting the wallet. (#3465, CBR-391)
Add support to cardano-sl-launcher for launching Daedalus in "safe mode". (#3421, DDW-380)
Fix the x509 certificate generation tool to allow using IP addresses as subject alternate names. (#3390, DEVOPS-992)
Fix display of the git version in Cardano Explorer. (#3386, DEVOPS-999)
Update Windows build script to use a newer openssl version. (#3397, DEVOPS-1003)
Fix a build system issue which caused slow builds. (#3622, DEVOPS-916)