Added
- Added a
milestoneHash
identifier to use for peer banning (#1837) - Added TypeScript declarations for
core-logger
(#1833) - Added TypeScript declarations for
core-logger-winston
(#1887) - Added TypeScript declarations for
core-container
(#1891) - Added TypeScript declarations for
core-database
(#1901, #1905) - Added TypeScript declarations for
core-transaction-pool
(#1906) - Added TypeScript declarations for
core-blockchain
(#1943) - Added TypeScript declarations for
core-snapshots
(#1947) - Added TypeScript declarations for
core-api
(#1948) - Added TypeScript declarations for
crypto
(#1917) - Added the
core-jest-matchers
package (#1926) - Added the
core-interfaces
package (#1924) - Return the transaction expiration time via API (#1927)
- Added the ability to disable the public API cache (#1930)
- Return the vote of a wallet via public API (#2009)
- Upgrade script for 2.1 (#1999)
- Installation script for deb/rpm distros (#2016)
- Case specific errors for
crypto
(#2038)
Changed
- Migrated from JavaScript to TypeScript (#1625)
- Moved the
peers.json
configuration intocore-p2p
(#1625) - Merged
core-transaction-pool-mem
intocore-transaction-pool
(#1625) - Use a faster alternative to derive an estimate (#1655)
- Reworked crypto configuration to make it simpler (#1733)
- Moved the dynamic fees configuration into
core-transaction-pool
(#1733) - Periodically check for new peers instead of retrying until finding some (#1738)
- Adjusted some banning times for peers to make network recovery smoother (#1730)
- Simplified configuration by further separating network and core (#1733)
- Take the
minFeeBroadcast
value into account for fee statistics (#1873) - Only allow vendor fields for type 0 and 6 transactions (#1931)
- Improved the network quorum details and feedback (#1898)
- Only return errors when broadcast and pool fees are too low (#1940)
- Improved performance of BIP38 (#1941)
- Cleaned up the logic of block processing (#1953)
- Cleaned up the logic of serialise/deserialise in crypto (#1969)
- Replaced all ARK naming with CORE (#1970)
- Use system paths for data and configuration (#1987)
- Increased the maximum transaction age to 6 hours (#1996)
- Replaced progress bars with logging to reduce noise (#2044)
- Replaced commander.js with @oclif in
core-debugger-cli
(#2049) - Replaced commander.js with @oclif in
core-snapshots-cli
(#2050) - Replaced commander.js with @oclif in
core-tester-cli
(#2051) - Moved docker files from
docker/*
todocker/development/*
(#2053) - Moved the genesis blocks from the
core
configuration to the network configuration incrypto
(#2052) - Separate business-logic from data-layer logic (#2055)
Fixed
- Resolved an issue with the
resolveOptions
method that would result in options being resolved for plugins that are not registered in the container (#1625) - Malformed condition for filtering peers (#1689)
- Use the correct pagination schema for the v2 public API (#1717)
- Ensure that delegate searches can handle undefined values (#1831)
- Mark semantically invalid versions as invalid overall (#1836)
- Ordering of delegates via public API (#1731)
- Handle webhooks that have no conditions (#1869)
- Validate the network byte on transactions (#1853)
- Use correct schemas for address, public key and username validation in the public API (#1954)
- Populate the last block of all delegates (#1919)
- Return the transaction forging timestamp instead of signing timestamp (#1957)
- Mark cold wallets as not found in the legacy API (#1955)
- A malformed condition that resulted in wrong peer lists (#1939)
- Properly verify block slot timestamps (#1985)
- Return fixed peer states for v1 and v2 API responses (#2027)
- Validate IP ranges to detect loopbacks (#2045)
- https://github.com/ArkEcosystem/security-vulnerabilities/blob/master/core/core-sv-010.md (#2046)
- Check if the blockchain state storage is available before performing fork checks (#2047)
- Gracefully handle a corrupted cached
peers.json
file (#2061) - Always sort transactions by sequence and the requested field to make API sorting deterministic (#2058)
- Disallow multiple registrations for same delegate (#2080)