- Updated the legal disclaimer text in the footer of https://cardanoexplorer.com/ #4261
- Improve DNS subscription valency and fallback behaviour #4243
- Single-machine multi-node mixed cluster CI prerequisites #4247
- A new endpoint to calculate the walletid of a given mnemonic #4237
- Correct change category in 3.0.3 and add section for unreleased changes #4232
- Refactor scripts to use nix-tools and create windows daedalus-bridge output #4183
- Remove Report Server #4194
- New testnet Genesis #4193
- Add explorer endpoint to fetch a range of blocks #4198
- Add python service to dump explorer data to PostgreSQL #4202
- Security updates for explorer frontend #4201
-
Fix issue that caused the node to lose sync with the chain in the OBFT era and then fail to re-sync once out of sync (CBR-525 #4153)
-
Fix wrong balance and payment reporting on coin selection failures (CO-450 #4159)
-
Additional coin selection fallback to cope with transaction filling up during random-improve selection (CO-450 #4159)
-
Additional guard to prevent too big transactions to be submitted (CO-449 #4131)
- Fix inconsistent 'hasSpendingPassword' resolution from legacy data layer migration (DEVOPS-1250 #4112)
-
Limit the rate of dns queries to avoid reaching the limit of open files, try resolve dns in ntp client every 30s rather than only once (CDEC-659 #4008)
-
Fix incoherent To/FromJSON instances in
core
,chain
,lib
. AlterTxValidationRules
datatype. (CBR-502 #4037)
-
Add
script-runner
tool to automate cluster-level testing (DEVOPS-1131: #3916 #4057) -
Node Monitoring API: nodes now serve their own settings and info via a web server via a
/api/v1/node-settings
and/api/v1/node-info
(still proxied by the wallet backend) (#110)- Set up scaffolding for node API #3788
- Wire Up Node Api #3851
- Unify Node APIs #3882
- Node API Jsend errors #3910
- Node API Documentation Server #3925
- Implement IPC shutdown #3939
- Implement Update endpoints for the Node API #3957
- Parse required CLI params in cluster #3987
- Fix Arbitrary instance for APIResponse #3989
- Special case 404 errors with empty bodies #3995
- Disable node monitoring API by default #4051
-
Additional node settings exposed through the wallet backend API in
/api/v1/node-settings
. This is in order to align and be on-par with the new node monitoring API. #4045 Added settings:slotId
: The current slot and epochslotCount
: The number of slots per epochmaxTxSize
: The largest allowed transaction size in bytesfeePolicy
: The fee policy, in flat Lovelace and variable Lovelace/bytesecurityParameter
: The consensus security parameter (usually referred ask
in the papers)
-
Implement block creation and validation for the OBFT
ConsensusEra
.- Implement hard fork mechanism (CDEC-610: #3822)
- Adapt epoch consolidation functionality for OBFT (CBR-497 #3966)
- Extend
LastBlkSlots
data type and storage for OBFT (CBR-499 #4003 #4052) - Disable SSC during OBFT. (CBR-490 #4026)
- Implement OBFT block validation (CBR-481 #4018 #4029 #4059)
- Add cluster-level tests for OBFT using
script-runner
(CBR-503: #4061 #4073) - Improve block validation tests (CBR-504 #4081)
- Implement OBFT block creation (CBR-482 #4077)
-
Review node-info 'localTimeInfo' API to include pending statuses (CBR-505 #4099)
-
Removal of V0 API & Legacy Data Layer (CO-372)
- Remove V0 and
Legacy*
modules (CO-394 #3667) - Move
wallet@Pos.Util.Mnemonic
towallet-new@Cardano.Wallet.Kernel.BIP39
(CO-374 #3663) - Replace remaining uses of
Pos.Util.Mnemonic
(CO-401 #3663) - Remove
wallet
dependency fromCardano/Wallet/Server/Plugins.hs
(CO-403 #3686) - Remove
wallet
dependency fromCardano/Wallet/API/V1/Swagger/Example.hs
(CO-404 #3687) - Remove
wallet
dependency fromCardano/Wallet/API/V1/Types.hs
(CO-405 #3688) - Remove
wallet
dependency fromCardano/Wallet/API/V1/Swagger.hs
(CO-406 #3689) - Remove
wallet
dependency fromwallet-new/src/Cardano/Wallet/Kernel/Pending.hs
&wallet-new/src/Cardano/Wallet/Kernel/Decrypt.hs
(CO-402 #3683) - Tweaks to
Cardano.Wallet.Kernel.Decrypt
(CO-408 #3699) - Remove
wallet
dependency fromwallet-new/src/Cardano/Wallet/Kernel/Migration.hs
(CO-407 #3836) - Remove
wallet-new/src/Cardano/Wallet/API/V1/Migration/Types.hs
(CO-380 #3700) - Remove
wallet
dependency fromwallet-new/src/Cardano/Wallet/Orphans/*
(CO-413 #3707) - Accommodate LegacyHandlers refactoring result and investigate possibility of removing
Core.Coin
instances (CO-422 #3809) - Follow-up on CO-373 (Move Mnemonic module into Kernel/BIP39) (CO-426 #3738)
- Cleanup references to
cardano-sl-wallet
acrosscardano-sl
(CO-430 #3750) - Remove
bench
package from cardano-sl-wallet-new (CO-442 #3828) - Remove
wallet
from cardano-sl codebase (CO-443 #3837)
- Remove V0 and
-
Rewritten and redesigned integration tests framework (CO-356 #4047)
-
Simplify prefixing of transaction to account for foreign transactions in inputs rather than process them from outputs (CO-432 #3768)
-
Implement validation rule that limits the
Attributes
size in aTx
(CDEC-643: #3878) -
Add proper mapping of kernel addresses to API errors when batch import of addresses (CO-447 #4084)
-
Remove redundant [] in backupPhrase doc example (#4038)
-
New "common use-case" entry the API doc about importing addresses (CO-447 #4040)
-
Links to specific sections of the API doc now work #4064
- Relocate fee sanity check and make it relative to each transaction (rather than absolute) (CO-446 #3993
- Correction to block retrieval concurrency and exception handling, so that it will recover in case of certain network failure conditions. (CDEC-658 #3998)
-
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 thewallet
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 toolcardano-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
toWalletAlreadyExists
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 toapplication/json
) (CO-369, #3596) -
The codebase now relies on the package
cryptonite
(instead ofed25519
) 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)
-
- Move code from
infra
tosinbin
so thatinfra
can be moved "up" in the dependency graph (CDEC-416: #3185, #3202, #3209) - Move code from
networking
tocore
, so thatnetworking
can be moved "up" (CDEC-432: #3238, #3261, #3266) - Remove unnecessary
Mockable
typeclass (CDEC-451: #3285) - Switch uses of
pipes
toconduit
, for consistency (CDEC-464: #3305) - Remove partial-function record accessors using
deriveIndexedBi
TH function (CDEC-385: #3153) - Create a script to visualize the package dependency graph within
cardano-sl
(CDEC-429: #3227) - Remove
Blockchain
class and clean upBlock
modules (CDEC-333: #3615) - Remove
HasProtocolConstants
reflection constraint in favour of explicit parameters (CDEC-369: #3482) - Remove remaining reflection constraints from
core
configuration (CDEC-509: #3437, #3505, #3522, #3549, #3550, #3570) - Add
stylish-haskell
enforcement in CI to keep code conformant (CDEC-383: #3142) - Move
Block
datatypes fromcore
tochain
(CDEC-485: #3351) - Move chain-related
core
types tochain
package (CDEC-505: #3412, #3593, #3600, #3601, #3611) - Add golden tests for
Undo
type (CDEC-623: #3735) - Reunite orphan instances
- Remove
-fno-warn-orphans
fromghc-options
inupdate-test
(CDEC-455: #3296) - Move
Arbitrary
instances fromwallet
towallet-test
(CDEC-437: #3259) - Move
Pos.Core.Genesis.Canonical
toPos.Util.Json.Canonical
(CDEC-513: #3445) - Weed out unused package dependencies (CDEC-425: #3240)
- Move code from
-
Improve readability and execution of various integration tests
-
Add integration tests to test redemption of certificates (CBR-398, #3525)
-
Removal of partial field accessors from
HandlerSpec
,InductiveValidationError
,InvariantViolation
andValidationResult
data types.(CDEC-403: #3263) -
Remove partial field accessors for
FakeTxsHistory
data type (CDEC-285: #3168) -
Review implementation of the BIP39 (Mnemonic Words) implementation
-
Add a test which checks if the configuration can be correctly parsed
-
Add Utxo not enough fragmentation error handling and multi-output transaction tests
-
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)
- Add a nightly test which syncs mainnet from scratch (DEVOPS-1016, #3487, DEVOPS-1052, #3626)
- CI speed improvements (DEVOPS-1032, #3544)
- Fixes for regeneration of
pkgs/default.nix
(DEVOPS-1045, #3677) - Ensure the nix-shell environment is built and cached by Hydra (DEVOPS-1059, #3653)
- Add support for building cardano-sl with
cabal new-build
(DEVOPS-1061, #3662, #3729, #3734, DEVOPS-1060, #3675) - Refactor nix files, add comments and documentation (DEVOPS-1083, #3728, #3760, #3761, #3763, DEVOPS-1004, #3400, DEVOPS-1067, #3690)
- Add stylish-haskell tests to the Hydra build (DEVOPS-936, #3166, #3189, #3222)
- Improve nixpkgs pinning (DEVOPS-779, #3180)
- Fix caching of nix builds (DEVOPS-810, #3174)
- Ensure CI builds all targets (including benchmarks), and runs all tests (DEVOPS-908, #3130, #3150)
- Build fixes for cardano-sl-explorer-frontend (DEVOPS-916, #3137, #3146, DEVOPS-999, #3472)
- Fix
nix-build
when run from agit
worktree (DEVOPS-949, #3691) - Windows build fixes (DEVOPS-957, #3272, DEVOPS-1003, #3398)
- macOS build fixes (
clang: Argument list too long
) (DEVOPS-1005, #3432, DEVOPS-1050, #3606) - Improve wallet integration tests (DEVOPS-980, #3325, #3380, DEVOPS-988, #3346)
- Demo cluster and launch script fixes (DEVOPS-985, #3342, DEVOPS-1062, #3665, DEVOPS-1101, #3769)
- Add timing information to nix builds (DEVOPS-1013, #3457, DEVOPS-1027, #3509, DEVOPS-1048, #3706)
- Better code linting in CI (DEVOPS-1031, #3527, DEVOPS-1057, #3649, DEVOPS-1100, #3762)
-
Upgrade block version to 0.2.0 to limit max block size to 32 KB.
-
Override max block size for epoch boundary blocks (also called genesis blocks) to have a limit of 1.953 MB.
-
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)
-
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 iteration of work. Cryptocurrency exchanges using the API are encouraged to update their integrations and move to API v1 because the old API is now regarded as deprecated and will be removed in future versions. (CBR-101)
-
The endpoint that provides information about the node (
/api/v1/node-info
) was 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. (CBR-186) -
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. (Wallet Backend - CBR-223)
-
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 had a negative impact on performance. (CBR-277)
-
The formal specification of a wallet for Cardano (or any UTXO-based cryptocurrency) has been written and it is available here. (CBR-60)
-
Feedback about the current Wallet API has been collected from Exchanges (CBR-104).
-
Complete Peer Discovery (P2P) design (CDEC-157).
-
Specification of shared seed generation via VSS (CDEC-180).
-
Specification of Randomness Generation (CDEC-208).
-
As-is specifications of ATRedeem addresses (CDEC-366).
-
Sending and receiving blocks on the network now works better because of the following changes. First, deserialization performance has been improved by optimizing memory usage. Next, blocks are now downloaded concurrently without batching. Finally, block traversal is optimized by the introduction of 'forward links' which remove the need for header retrieval and serialization. (CDEC-49)
-
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, much greater optimizations for the storage of blocks will be introduced, so this is only an interim solution. (CDEC-293)
-
I/O spikes in traffic were being caused by large logs being flushed. This issue has been fixed. (CBR-83)
-
Due to improper handling of DNS failures, Cardano node would sometimes fail to reconnect to the network after an internet connection was interrupted and would need to be restarted. This issue has been fixed. (CDEC-259)
-
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 current time from NTP servers and to get the response. As a result, some Daedalus users were prevented from using their wallet since Daedalus cannot be used if there is a time difference of more han 15 seconds. This issue has been fixed. (TSD-42)
-
Implement WalletActiveLayer & WalletPassiveLayer for wallet testing purposes (CBR-163).
-
Add integration deterministic tests for the Transaction endpoints (CBR-184).
-
Back port Timer to Pos.Diffusion.Subscription.Common (CDEC-243).
-
Message size limits should not be configurable (CDEC-260).
-
Upgrade to GHC 8.2.2 (CBR-51).
-
Fix AppVeyor hard limitation on Windows (CBR-268).
-
Fix tmux versions in demo-script (CO-295).
-
Clean script fails if file is missing (CO-316).
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)
These are the most important code changes which were included in release 1.2.0.
-
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).
-
Document the new Wallet V1 API (CBR-102, CBR-183, CO-105 & CBR-278).
-
Write a devops guide for the Exchanges (CBR-137).
-
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).
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.
Most important code changes which made to release 1.1.0.
-
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.
-
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.
-
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).
TODO: write down
TODO: write down
TODO: write down
TODO: write down
TODO: Move from https://github.com/input-output-hk/cardano-sl/blob/f556682ab0f0e02e571998ae207139ecc1a24f84/docs/changelog/v0_6_0.md
Important fixes:
- Better Kademlia peer selection (based on explicitly kept timestamps)
- Message limits: accurate limits for few types, runtime-accurate handling (for the node to work correctly after an update comes in, w/o need to restart it)
- Accurate version handshake (there were few cases where it wouldn't be handled properly)
- MPC: check more than 50% of stake provided commitments
- Fixes for consensus bugs found on Testnet: transaction sorting, undo construction and duplicate block creation
Important codebase changes:
- Code split to separate components (for each logical part of Cardano SL)
- Combined config for wallet, node, dev modes
- Block handling refactoring (needed to write tests)
- Data relay refactoring
- Classy-like structure of monad stack
Minor features:
- P2P peers w/o explicit Kademlia ID provided (only IP and port)
- More efficient block space usage
- Consistent block creation logic (check block we just created is valid before applying and distributing)
- Ability to launch the node with static peers
- Auto-generated documentation available at https://cardanodocs.com/technical/explorer/api/
- Upgraded the client-side with the new version of the libraries, now using PureScript
0.11.5
- Added paging for blocks, simplified API
- Added and improved socket.io, simplified events
- Japanese translations
- ADA formatting using Lovelaces
- Speed optimizations for block and epoch fetching
- Corrected mobile issues and improved mobile experience
- Added Waypoint header for better UX