Catapult Server Versions Save

The official C++ client for the Symbol blockchain.

v1.0.3.1

2 years ago

Summary:

Catapult client v1.0.3.1 is minor update which reverts Cyprus fork-specific changes.

Added:

  • update addressgen to generate mnemonics too

Changed:

  • revert Cyprus fork-specific changes

As with our previous releases, you can find:

v1.0.3.0

2 years ago

Summary:

Catapult V1.0.3.0 introduces the Cyprus hardfork that will execute at block height 689,761.

This hardfork burns the current reserved funds for Symbol's protocol development and the post opt-in program currently under control of the NEM Group, NEM Trading, NEM Ventures NEM Holdings, and NEM Group Trust, and mints new funds from the Genesis block that are placed into a new multisig account under management of Valkyrie and the Symbol core team.

This hardfork is intended to explicitly signal support for the direction forward outlined in the vision paper.

Further information can be found here.

Bugs Fixed:

  • Removed some points of centralization.

Changes Made:

  • Introduces a new MosaicSupplyRevocationTransaction.
  • Introduces a new MosaicFlag called Revokable. Inspired by this idea.
  • Adds a fork height at block 689,761 that executes the Cyprus hardfork.
  • Appends the V1 suffix to harvestNetworkFeeSinkAddress, mosaicSinkFeeAddress and namespaceSinkFeeAddress.
  • Removes the voting power of addresses listed in treasury_reissuance_epoch_ineligible_voter_addresses to explicitly enable community signaling.

As with our previous releases, you can find:

v1.0.2.0

2 years ago

Summary:

Catapult v1.0.2.0 is a pre-announced hotfix release to patch a bug in Symbol's finalization gadget. All users should update their nodes immediately. You can see our post-mortem here.

Besides this fix, we've also merged in a few enhancements.

Bugs Fixed:

  • Fixes a bug in FinalizationContext around voting weight. Accounts that did not have voting keys in a current epoch (but did in the previous one) were included in the calculation of m_weight. Now they're correctly ignored.
  • Fixes a bug that would cause nodes to crash when they ran out of voting keys.

Changes Made:

  • Adds a fork height at block 528,000 for correct TotalVotingBalance calculation.
  • Adjusts finalization threshold from 70% to 67% to be inline with the BFT specification.
  • Stores preCommit and preVote messages for potential relay in voting_status.dat.
  • Transaction fees are now collected after a custom transaction notification has been processed by network. This enables a cosigner account with0 balance to craft a custom transaction where the multisig pays the transaction fee.
  • Added support for Apple M1 builds.
  • Better logging for preCommit messages.

You can see the full details here. For a full rundown of the changes, please consult the commit log.


As with our previous releases, you can find:

v1.0.1.0

2 years ago

Fixed

  • recover delegated harvesters on resync, #173
  • reapply transactions oldest first when resolving fork
  • fix reentrancy failures in diagnostics build
  • server should make files writeable when copying seed, #168
  • rollback bug leading to crashes in testnet

Changed

  • add Failure_Link_Start_Epoch_Invalid when voting link is attempted with zero StartEpoch, #170
  • upgrade dependencies to latest versions
  • gcc 11 support

v1.0.0.0

3 years ago

v0.10.0.7

3 years ago

Added

  • tool: importer to populate database from block files
  • tool: verify to check the validity of blocks before import

Fixed

  • breaking: fix overflow in CalculateTransactionFee, #151
  • recovery process needs to drop orphaned documents associated with previous block, #155
  • check linked public key (remote) instead of main public key, #142
  • minor issues: #153, #158, #159

Changed

  • allow storing multiple payloads per file in FileDatabase to reduce inode usage, #152

v0.10.0.6

3 years ago

Added

  • mongo: new config-database settings writeTimeout and maxDropBatchSize
  • new config-node setting: maxTimeBehindPullTransactionsStart - delay transaction pulls and processing of pushes until node is close to being synced
  • allow remote links in linker tool

Fixed

  • local remote harvesting account should not require node link #142
  • bypass MaxTransactionValidator for nemesis block
  • prevent resolution statements from being created during chain undo #148

Changed

  • breaking: split address tool into two separate tools: catapult.tool.addressgen (vanity generator) and catapult.tool.address (converter)

v0.10.0.5

3 years ago

This release is return to main branch and requires testnet network restart

Fixed

  • deep rollback
    • insert gaps into AccountState stacks to fix deep rollback bug, #121
    • prune newer account histories during rollback, #120
    • write importance files to importance/wip and add commit step, #119
  • importance block processing
    • guarantee HighValueAccountCommitObserver is executed AFTER all other state-changing observers, #118
    • fix calculation of VotingEligibleAccountsCount to only include currently eligible accounts
    • fix potential deadlock when harvesting importance block, #137
  • fix infinite loop in CompareChains when remote returns less than configured hashes, #126

Changed

  • update boost to version 75
  • pull finalization proofs more aggressively when unfinalizedBlocksDuration is 0
  • UT and PT handling
    • add MinDeadline filter to PT and UT requests
    • only propagate valid PTs and UTs
    • punish stateful transaction failures
    • add configuration to ban nodes that send a lot of bad transactions
  • memory enhancements
    • change PT and UT limits from count to size
    • add memory limits on dispatcher queues
    • (mongo) cap size of transactionStatuses collection, #135

v0.10.0.4

3 years ago

This release is from testnet branch. It's role is to test upgrade. Upgrade logic is not described here, as it will be removed prior to mainnet release.

Added

  • ipv6 support #63
  • versions to all state primary documents in mongo #113 #115
  • clang 11.0.1 support
  • gcc 10.2.0 support

Fixed

  • finalization fork resolution #102
  • add ListenInterface #55
  • resolve confirmed transaction addresses #82
  • recovery finalization support (EnableRevoteOnBoot), #90
  • check node version when adding to node container #97
  • allow non-voting nodes to pull finalization proofs more aggressively #99
  • fix mongo indexes
  • non-voting node with higher importances does not get rolled back when a fork is resolved #108
  • reduce allocations
    • in PatriciaTree
    • using custom memory pool with OpenSSL
  • Trail-of-Bits: cosmetic changes
  • minor issues: #93, #96, #98, #100, #101, #104, #105, #116

Changed

  • change voting key tree into key list
  • change voting key link transaction, to use shorter keys
  • mongo namespace meta.active -> meta.latest
  • upgrade dependencies to latest versions
  • drop use of boost::filesystem and boost::thread_group
  • add extended importance blocks to allow trustless verification of finalization proofs #103
  • only serialize non-empty AccountRestrictions #114

v0.10.0.3

3 years ago

0.10.0.1 - 0.10.0.3 changes

Added

  • deterministic finalization extension based on GRANDPA!

Changed

  • #85, validate nemesis block on server boot
  • tie voting keys to finalization epochs instead of finalization points
  • spool importance information to disk when finalization is enabled in order to allow deep rollbacks
  • make all state { lock hash, lock secret, namespace } independent of maxRollbackBlocks setting
  • change chain comparision to allow syncing when finalization has stalled
  • change "chain info" references to "chain statistics" everywhere
  • refactor crypto code to allow different types of signature schemes for transaction processing and voting
  • generalize one-time signatures tree into a tree that supports reusable (short-term) keys
  • removed phantom message.type from transfer transaction mongo mapping
  • apply maxTransactionsPerBlock against embedded transactions in addition to top-level transactions
  • Trail-of-Bits: set and check directory permissions
  • Trail-of-Bits: strip RPATHs from built modules by default

Fixed

  • bugfix: #84, fix block generation in maximize-fee mode
  • bugfix: validation of nemesis block containing transactions dependent on DynamicFeeMultiplier
  • bugfix: fix rollback when importance information is spooled to disk
  • bugfix: importance files should not be spooled to disk when delta is detached
  • optimize compare chains logic to do binary search of remote hashes