0.9.0
- libevm dependency updated to 1.0.0.
- Added support for EVM and native smart contracts interoperability.
- Sparkz dependency updated to 2.2.0.
- Improved storage versioning (fullsynch time reduced by 5x)
- Minor fixes:
- [eth RPC endpoint] debug_traceCall now returns a more accurate error response for reverted transactions
- [eth RPC endpoint] debug_traceCall and debug_traceTransaction now return a correct value for the gasUsed field when topmost call is a call to a Solidity Smart Contract function.
- Certificates older than 4 epochs are now deleted from the storage only if more recent certificates appeared.
0.8.1
- Improved precision of eth_gasPrice RPC call
0.8.0
- ZenDao native smart contracts
- Added support for consensus parameter change (epoch lenght, slottime, active slot coefficient) using an hardfork
- Added support for delayed mainchain block inclusion
- Sparkz dependency updated to 2.1.0
0.7.2
- Sparkz dependency updated to 2.0.3
0.7.1
- Seeder nodes support
- PeerToPeer and API rate limiting - tx rebroadcast feature
- Sparkz dependency updated to 2.0.2
- Minor fixes:
- expose app version in node/info rest api
- account model: fixes in debug_traceTransaction and eth_feeHistory rpc commands
- improved logs in certificate submission process
- fixed HTTP Header on SecureEnclaveApiClient
- fix on syncing mechanism to prevent issue that caused nodes being unable to sync indefinitely
- fixed default gasLimit in createKeyRotationTransaction
- signaturesFromEnclave timeout handling improvements
0.7.0
- Account model introduced. EvmApp application example added.
- Base package renamed from
com.horizen
toio.horizen
- Packages overall refactoring, in particular UTXO specific classed moved to
io.horizen.utxo
, Account toio.horizen.account
. - Change in the consensus protocol: forger eligibility rule.
- zendoo-sc-cryptolib updated: certificate and CSW circuits were modified (backward incompatible to previous version).
- Sparkz dependency updated from 2.0.0-RC9 to 2.0.1
- Deterministic key generation mechanism changed: all secret keys now deterministic. Ed25519 key generation algorithm modified.
- PeerToPeer and API rate limiting
0.6.1
- Update zendoo-sc-cryptolib to final 0.6.0
0.6.0
- Sidechain version 2 support with the new circuit type - threshold signature circuit with key rotation.
- Certificate key rotation API endpoints added.
- Non ceasing sidechain support.
- Bootstrapping tool: virtualWithdrawalEpochLength parameter added to
genesisinfo
command. - Bootstrapping tool:
generateCertWithKeyRotationProofInfo
command added for certificate circuit with key rotation. - Remote keys manager added to the CertificateSubmitter: submitter is able to sign certificates using the Secure Enclave hosted keys.
- Config file structure updated: remote keys manager configuration section added
sparkz.remoteKeysManager
. - Signing tool introduced.
- MC2SCAggregatedTransaction max size limit fixed to fit max FT allowed by the mainchain.
0.5.0
- Scorex dependency has been updated from Scorex 2.0.0-RC6 to Sparkz 2.0.0-RC9 (package name has been changed to sparkz).
- Bootstrapping tool interface changed: cert proof info was separated from signers key generation.
- Fork manager introduced to be able to implement new backward incompatible functionality.
- Coin boxes dust check added in the Fork 1.
- Forward transfer minimum amount limit defined in the Fork 1.
- Numerous consensus improvements introduced in the Fork 1.
- OpenStakeTransaction - new core transaction type added to allow the majority of forgers to open staking for everyone. Introduced in the Fork 1.
- Backward Transfers limit introduced in the Fork 1. The total limit of 3999 BTs per withdrawal epoch, using the "slots" opening strategy per mainchain block reference. Introduced in the Fork 1.
- Forger block generation fixes: no transactions allowed in case of ommers.
- Network data checks improved.
- Network API: connected peers info updated.
- Numerous library dependencies were updated.
0.4.3
- Blocks network propagation fixed: allow to send blocks greater than 1 Mb.
0.4.2
- Explorer synchronization issue solved: history.chainAfter method was optimized.
- Certificate commitment tree calculation issue solved: fixed an inconsistency between SC and MC implementations.
0.4.1
- CCTP: other sidechains with version 2+ are supported.
- API authentication behavior updated: can be disabled now.
- Swagger API schema fixed.
- DBTool: custom storages support added.
0.4.0
- Memory pool improvement: upper bound size limit introduced (default 300Mb) altogether with cleanup strategy (the lowest fee rate transaction removed first).
- Memory pool improvement: minimum fee rate check added for incoming transactions. By default, is disabled.
- CSW is optional. Sidechains without CSW support are available now. Note: keep using CSW feature in real environment to have a possibility to withdraw coins in case of ceasing.
- API Authorization added to the coin critical endpoints, like keys management, transaction creation and submission, csw creation, etc.
- API freezing during node synchronization resolved.
- New API endpoints added for importing/exporting keys to/from the wallet.
- Forger sorts transactions by fee rate instead of fee.
- Wallet: max fee check added for locally generated transactions to prevent absurdly high fees. Max fee value is set in zennies. Default value is 10000000 (0.1 Zen).
- Custom propositions wallet management improved: complex multi-key propositions are now recognized.
- Peers spam detection mechanism improved: "trash" data detection in the end of the block/transaction added.
- Bootstrapping tool: dlog keys multiple initialization prevented.
- Extra verbosity added to the API responses.
- Logging system improved. Application specific configs are allowed.
- FeePayments visibility bug fixed: wrongly added fee payments to the block info when there were no payment at all.
0.3.5
- Snark keys generation fixed: circuit specific segment size added.
0.3.4
- Added the possibility to perform a backup of a sidechain non coin-boxes and restore these boxes into a new bootstrapped sidechain of the same type.
- log4j version updated.
0.3.3
- Mainchain block deserialization fix: CompactSize usage issue.
- Bootstrapping tool improvement: scgenesisinfo data parsing.
- Added logic for checking storages consistency at node startup, and trying to recover the situation for instance if a crash happened during update procedure.
- CertificateSubmitter on active sync improvement in
getMessageToSign
method. - Added HTTP API for stopping the SC node and a hook for calling custom application stop procedure.
0.3.2
- CertificateSubmitter and CertificateSignaturesManager actors restart strategy and failures processing improvement.
0.3.1
- Withdrawal epoch validator: fix wrongly rejected sidechain block containing McBlockRef with MC2SCAggTx leading to the end of the withdrawal epoch.
Blaze changes (0.3.0)
- New proving system for certificates verification: Coboundary Marlin.
- PGD: decentralized certificates signing.
- API updated and improved: in particular certificate submitter, signer, csw and forging.
- Transaction and Block versioning added for future forks.
- Timestamp field removed from Transactions.
- Forgers fee payments mechanism.
- SidechainCoreTransaction become final. In general transactions structure was improved. Transactions class hierarchy changes.
- LevelDB key-value storage is used now instead of IODB implementation. IODB was completely removed.
- Sidechain Test Framework: python version updated from 2 to 3. Multiple improvements.
- Ceased sidechain withdrawals support.
- Better logging mechanism. Logging options introduced in the configuration file.
- Objects serialization improved. New stream-based serialization schema introduced.
- Sidechain creation versioning support.
Beta changes
- Mainchain synchronization: added backward transfer support with Withdrawal certificate with threshold signature zero-knowledge proof by using zendoo-sc-cryptolib
- Added Latus Proof-of-Stake consensus protocol for sidechain based on Ouroboros Praos consensus protocol which supporting forks in Sidechain and Mainchain. Autoforging for Sidechain node is added as well.
- Reworked Transactions structure: introduced SidechainCoreTransaction, Boxes structure was improved/changed now three types of boxes are present by default: zen box, withdrawal request box and forger box. Forger box is used for consensus forger selection.
Alpha features
- Multiple sidechain nodes network.
- Mainchain synchronization: Cross-chain Transfer Protocol support for sidechain declaration and forward transfers.
- Basic Consensus (anyone can forge).
- Built-in coins transferring operations inside sidechain.
- HTTP API for basic node operations.
- Possibility to declare custom Transactions/Boxes/Secrets/etc.
- Possibility to extend/manage basic API.
- Web interface and command line tool for interaction with the Node.
- Sidechain Bootstrapping Tool to configure sidechain network according to the mainchain network.