Kaspad v0.12.0 - 2022-04-14 =========================== Breaking changes: Hard-fork at DAA score 14687583 (estimated to be on 28/04 16:38 UTC) which includes: * Using separate depth than finality depth for merge set calculations (#2013) * Not counting the header size as part of the block mass (#2013) * Increasing block version to 1 (#2013) * Removing the limit on amount of KAS that can be sent in one transaction (#2013) Bug fixes: * Making a workaround for the UTXO diff child bug (#2020) * Use cosigner index 0 for read only wallets (#2014) Non-breaking changes: * Adding a "sweep" command to `kaspawallet` (#2018) * Use `blue work` heuristic to skip irrelevant relay blocks * Kaspawallet daemon: Add Send and Sign commands (#2016) Kaspad v0.11.17 - 2022-04-06 =========================== * Decrement estimatedHeaderUpperBound from mempool's MaxBlockMass (#2009) Kaspad v0.11.16 - 2022-04-05 =========================== * Don't skip wallet address with different cosigner index (#2007) Kaspad v0.11.15 - 2022-04-05 =========================== * Add support for auto-compound in `kaspawallet send` (#1951) * Unite reachability stores (#1963, #1993, #2001) * Add names to nameless routes (#1986) * Optimize the miner-kaspad flow and latency (#1988) * Upgrade to go 1.18 (#1992) * Add package name to kaspawalletd .proto file (#1991) * Block template cache (#1994) * Add extra data to GetBlockTemplate request (#1995, #1997) * New definition for "out of sync" (#1996) * Remove v4 p2p version (#1998) * Remove increase pagefile from deploy.yaml (#2000) * Cache the pruning point anticone (#2002) * Add DB compaction after the deletion of a DB prefix (#2003) * Fixed a bug in staging of pruning point by index (#2005) * Clean up debug log level by moving many frequent logs to trace level (#2004) Kaspad v0.11.14 - 2022-03-20 =========================== * Fix a bug in the new p2p v5 IBD chain negotiation (#1981) Kaspad v0.11.13 - 2022-03-16 =========================== * Display progress of IBD process in Kaspad logs (#1938, #1939, #1949, #1977) * Optimize DB writes during fresh IBD (#1937) * Add AllowConnectionToDifferentVersions flag to kaspactl (#1940) * Drop support for p2p v3 (#1942) * Various transaction processing fixes and workarounds (#1943, #1946, #1971, #1974) * Make kaspawallet store the utxos sorted by amount (#1947) * Implement a `parse` sub command in the kaspawallet (#1953) * Set MaxBlockLevels for non-mainnet networks to 250 (#1952) * Add cache to DAA block window (#1948) * kaspactl: string slice parser for GetUtxosByAddresses (#1955, first contribution by @icook) * Add MergeSet and IsChainBlock to RPC (#1961) * Ignore transaction invs during IBD (#1960) * Optimize validation of expected header pruning point (#1962) * Fix a bug in bounded marge depth validation (#1966) * Don't relay blocks in virtual anticone (#1970) * Add version to block template to allow tracking of miner's kaspad version (#1967) * New p2p version: v5 (#1969) * Fix IBD shared past negotiation to be non quadratic also in the worst-case (#1969, p2p v5) * Send pruning point anticone in batches (#1973, p2p v5) * Cleanup log output mistakes and try to be more clear to the user (#1976, #1978) * Apply avoiding IBD logic from patch10 to p2p v4 IBD handling (#1979) Kaspad v0.11.11 - 2022-01-27 =========================== * Fix for rare consensus bug regarding DAA window order. The bug only affected IBD from scratch and only today (#1934) Kaspad v0.11.10 - 2022-01-27 =========================== * Add monitoring of heap and save heap profile if size is over some limit (#1932) * Extract IBD management from invs relay flow to a new separated flow (#1930) * Add --transaction-file options to the `sign` and `broadcast` wallet subcommands (#1927) * Filter redundant blocks from daa window on IBD (#1925) * Implement a P2P upgrade mechanism (#1921) Kaspad v0.11.9 - 2021-12-30 =========================== Breaking changes: * Implement the new monetary policy. Breaking change effective only in ~4 months (#1892) Bug fixes: * Fix two pruning proof IBD crash bugs (#1913) * Fix UTXO index bug showing wrong wallet balance (#1891) Non-breaking changes: * Address search: cleanup repetitively-offline addresses and use randomization weighted by connection failures (#1899, #1916) * New DNS seeders and removal of offline one (#1901, #1910, #1918) * Add request balance by address to kaspactl (#1885) * Wallet: show balance by addresses (#1904) * Reject outdated non-DAA blocks submitted via RPC (#1914) * Add a profile option to kaspawallet daemon (#1854) Kaspad v0.11.8 - 2021-12-13 =========================== Bug fixes: * Update reindex root for each block level (#1881) Non-breaking changes: * Update readme (#1848) * Lower devnet's initial difficulty (#1869) Kaspad v0.11.7 - 2021-12-11 =========================== Breaking changes: * kaspawallet: show-address →new-address + show-addresses (#1870) Bug fixes: * Fix numThreads using getAEAD instead of decryptMnemonic (#1859) * Apply ResolveVirtual diffs to the UTXO index (#1868) Non-breaking changes: * Ignore header mass in devnet and testnet (#1879) * Remove unused args from CalcSubsidy (#1877) * ExpectedHeaderPruningPoint fix (#1876) * Changes to libkaspawallet to support Kaspaper (#1878) * Get rid of genesis's UTXO dump (#1867) Kaspad v0.11.2 - 2021-11-11 =========================== Bug fixes: * Enlarge p2p max message size to 1gb * Fix UTXO chunks logic * Increase tests timeout to 20 minutes Kaspad v0.11.1 - 2021-11-09 =========================== Non-breaking changes: * Cache the miner state Kaspad v0.10.2 - 2021-05-18 =========================== Non-breaking changes: * Fix getBlock and getBlocks RPC commands to return blocks and transactions properly (#1716) * serializeAddress should always serialize as IPv6, since it assumes the IP size is 16 bytes (#1720) * Add VirtualDaaScore to GetBlockDagInfo (#1719) * Fix calcTxSequenceLockFromReferencedUTXOEntries for loop break condition (#1723) * Fix overflow when checking coinbase maturity and don't ban peers that send transactions with immature spend (#1722) Kaspad v0.10.1 - 2021-05-11 =========================== * Calculate virtual's acceptance data and multiset after importing a new pruning point (#1700) Kaspad v0.10.0 - 2021-04-26 =========================== Major changes include: * Implementing a signature hashing scheme similar to BIP-143 * Replacing HASH160 with BLAKE2B * Replacing ECMH with MuHash * Removing RIPEMD160 and SHA1 from the codebase entirely * Making P2PKH transactions non-standard * Vastly enhancing the CLI wallet * Restructuring kaspad's app/home directory * Modifying block and transaction types in the RPC to be easier to consume clientside A partial list of the more-important commits is as follows: * Fix data race in GetBlockChildren (#1579) * Remove payload hash (#1583) * Add the mempool size to getInfo RPC command (#1584) * Change the difficulty to be calculated based on the same block instead of its selected parent (#1591) * Adjust the difficulty in the first difficultyAdjustmentWindowSize blocks (#1592) * Adding DAA score (#1596) * Use DAA score where needed (#1602) * Remove the Services field from NetAddress. (#1610) * Fix getBlocks to not add the anticone when some blocks were filtered by GetHashesBetween (#1611) * Restructure the default ~/.kaspad directory layout (#1613) * Replace the HomeDir flag with a AppDir flag (#1615) * Implement BIP-143-like sighash (#1598) * Change --datadir to --appdir and remove symmetrical connection in stability tests (#1617) * Use BLAKE2B instead of HASH160, and get rid of any usage of RIPEMD160 and SHA1 (#1618) * Replace ECMH with Muhash (#1624) * Add support for multiple staging areas (#1633) * Make sure the ghostdagDataStore cache is at least DifficultyAdjustmentBlockWindow sized (#1635) * Resolve each block status in it's own staging area (#1634) * Add mass limit to mempool (#1627) * In RPC, use RPCTransactions and RPCBlocks instead of TransactionMessages and BlockMessages (#1609) * Use go-secp256k1 v0.0.5 (#1640) * Add a show-address subcommand to kaspawallet (#1653) * Replace p2pkh with p2pk (#1650) * Implement importing private keys into the wallet (#1655) * Add dump unencrypted data sub command to the wallet (#1661) * Add ECDSA support (#1657) * Add OpCheckMultiSigECDSA (#1663) * Add ECDSA support to the wallet (#1664) * Make moving the pruning point faster (#1660) * Implement new mechanism for updating UTXO Diffs (#1671) Kaspad v0.9.2 - 2021-03-31 =========================== * Increase the route capacity of InvTransaction messages. (#1603) (#1637) Kaspad v0.9.1 - 2021-03-14 =========================== * Testnet network reset Kaspad v0.9.0 - 2021-03-04 =========================== * Merge big subdags in pick virtual parents (#1574) * Write in the reject message the tx rejection reason (#1573) * Add nil checks for protowire (#1570) * Increase getBlocks limit to 1000 (#1572) * Return RPC error if getBlock's lowHash doesn't exist (#1569) * Add default dns-seeder to testnet (#1568) * Fix utxoindex deserialization (#1566) * Add pruning point hash to GetBlockDagInfo response (#1565) * Use EmitUnpopulated so that kaspactl prints all fields, even the default ones (#1561) * Stop logging an error whenever an RPC/P2P connection is canceled (#1562) * Cleanup the logger and make it asynchronous (#1524) * Close all iterators (#1542) * Add childrenHashes to GetBlock/s RPC commands (#1560) * Add ScriptPublicKey.Version to RPC (#1559) * Fix the target block rate to create less bursty mining (#1554) Kaspad v0.8.10 - 2021-02-25 =========================== * Fix bug where invalid mempool transactions were not removed (#1551) * Add RPC reconnection to the miner (#1552) * Remove virtual diff parents - only selectedTip is virtualDiffParent now (#1550) * Fix UTXO index (#1548) * Prevent fast failing (#1545) * Increase the sleep time in kaspaminer when the node is not synced (#1544) * Disallow header only blocks on RPC, relay and when requesting IBD full blocks (#1537) * Make templateManager hold a DomainBlock and isSynced bool instead of a GetBlockTemplateResponseMessage (#1538)