All notable changes to this project will be documented in this file.
The changelog format is based on Keep a Changelog.
0.7.0.1 - 02-September-2019
- T1003 - TrustedHosts filter for diagnostic packet handlers
- prohibition of zero-based keys and derived addresses
- delegated harvester unlocking (via special encrypted message directed to node owner)
- dynamic rental fees
- naming review changes:
- T1002 - catbuffer (models, validators, etc)
- T1007 - mongo naming review changes
- T1008 - config variable naming
- use donna ed25519 implementation, use batched signature verification
- T1013 - use non-reversed private keys in
SIGNATURE_SCHEME_NIS1
- this change will require private keys used in catapult to be un-reversed, when switching from NIS1 - generate nemesis block statement
- turn coresystem into plugin
- bug in harvesting ut facade factory
0.6.0.1 - 26-July-2019
- Restriction mosaic plugin
- Metadata plugin
- Outgoing address account restrictions
- Prevent creation of secret locks that violate restrictions at creation time
- Add receipt when namespace transitions from active to locked
- Allow configurable namespace depth and min namespace duration
- Update AddressValidator to always check network byte
- Bug in namespace lifetime grace period handling
- Do not delete deactivated mosaics from state hash
- Apply fee surplus to activity bucket total fees paid in harvester
- Synchronize FileTransactionStatusStorage::flush to avoid race condition
0.5.0.1 - 28-June-2019
- PoS+ consensus mechanism, see #26 for details
- Breaking, all transaction versions are now 1
- Rename
property
transaction/plugin torestriction account
- Renumber validation result codes
- Add cmake component groups
- Deadlock in broker process when small number of threads in thread pool
- Mongo mapping functions from model to dbmodel
0.4.0.1 - 31-May-2019
- New catapult.broker process that pushes changes into MongoDB and and ZMQ.
- New catapult.recovery process that repairs local state after ungraceful termination.
- catapult.server produces file-backed messages that are consumed by catapult.broker.
- Inflation support via new config-inflation.properties.
- Implementation of harvest fee sharing and beneficiary specification.
- Prevent transactions from being replayed on different networks by prepending the network generation hash to transaction data prior to signing and verifying.
- Cosignatories must opt-in before being added to a multisig account.
- Allow use of same secret with different recipients by adding Recipient to SecretLockTransaction.
- HashLockTransaction Mosaic supports aliases to to the currency mosaic.
- Allow aggregate bonded transaction lifetime to be configured independently of other transactions.
- Bugs in rollback causing potential fork.
- Bugs in state hash calculation causing potential fork.
- Bugs in receipts hash calculation causing potential fork.
- Mosaic levy references.
0.3.0.2 - 27-Feb-2019
- Upgrade boost from 1.64.0 to 1.69.0 and related changes around asio usage.
- Shift from c++14 to c++17.
- Optimized harvester performance.
- Fix harvester crash, CacheHeightView was not thread safe.
0.3.0.1 - 08-Feb-2019
- Receipts record any state-dependent change not observable from the block header or transaction data. The block header stores the root hash of all the receipts linked to the block.
- You can now attach namespaces and subnamespaces to addresses or mosaics using the AliasTransaction. A namespace can only be the alias of one account or mosaic at a time.
- Remote harvesting has been enabled. Remote harvesting enables an account to use a proxy private key that can be shared with a node securely to calculate new blocks.
- The base mosaic for currency is now configurable. This means other mosaic different than xem can be defined in private networks.
- Properties FeeMultiplier and BeneficiaryPublicKey were added to the block header.
- Transaction fee property was renamed to MaxFee.
- Dynamic fee handling - Transactions specify max fee and blocks set fee multiplier, which determines actual fee paid.
- Node reputation handling - When interacting with other nodes, each node will gather data, which will influence future partner node selection probability.
- Mosaics are no longer tied to namespaces. This means a mosaic is no longer identified by the namespace. Instead, the identifier is a random uint64.
- Mosaics can be set to not expire. This means there is no need to renew them. However, namespaces have to be renewed after a given count of blocks.
- MosaicDefinitionTransaction comes with an additional 32-bit field called nonce. The nonce is a random value used to generate the mosaic ID.
- SecretLockTransaction now supports Op_Sha3_256, Op_Keccak_256, Op_Hash_160, Op_Hash_256 hash algorithms.
0.2.0.2 - 02-Nov-2018
- Accounts can be configured to receive transactions only from an allowed list of addresses. Similarly, an account can specify a list of addresses that it doesn’t want to receive transactions from. The same behavior can be applied to allow or block transactions containing a given mosaic id or only allowing sending certain transactions by type.
- Block header now stores the state root hash. Light clients will therefore be able to verify the state in a certain block rapidly.
- Nodes can store chain state in a RocksDB when configured. This is useful for networks with a large number of accounts, as it demands less memory from network nodes.
- Lock plugin has been divided into two (lock hash and lock secret).
- Minor crash and bug fixes detected during the Catapult Developer Preview.
0.1.0.1 - 14-May-2018
- Initial code release.