Skip to content

Releases: deso-protocol/core

v4.0.3

27 Aug 18:24
Compare
Choose a tag to compare

Description

The v4.0.3 release is a minor non-forking upgrade. The only change included in this release is updating the logic of the GetBlockNodeWithHash function to use the BestChainMap for better performance. Most notably, this function is used in rosetta.

What's Changed

Full Changelog: v4.0.2...v4.0.3

v4.0.2

02 Aug 14:38
Compare
Choose a tag to compare

Description

The v4.0.2 release is a minor non-forking upgrade the provides enhancements and small bug fixes to Revolution Proof-of-Stake.

Notable changes include:

  1. Update fee estimation logic to return global min fee rate if the size of transactions is less than 50% of the computed congestion threshold
  2. Networking bug fixes to address issues with the network manager's index of persistent peers
  3. State syncer enhancements to better manage uncommitted state.
  4. Include a disconnect reason when disconnect peers to make debugging of networking issues easier.
  5. Small hypersync fixes to save the state of encoder migrations more proactively to avoid unnecessarily running encoder migrations and to fix the hypersync start condition around the transition from PoW to PoS.
  6. Accelerated regtest mode for a faster transition to PoS

What's Changed

  • Add signature validation for PoW txns by @diamondhands0 in #1375
  • Save migrations at the end of StartMigrations by @lazynina in #1379
  • Add disconnect reason to peer disconnect logic by @lazynina in #1378
  • Pass disconnectReason through CloseConnection by @lazynina in #1380
  • Resolve decode issues with block height by @superzordon in #1381
  • Fix isHyperSyncCondition to account for transition from PoW snapshot epoch period to PoS snapshot epoch period by @lazynina in #1383
  • Conditionally queue block bundles in expected responses and dequeue them in _handleInExpectedResponse. don't queue msg in _cleanupDonePeerState if there are no transactions. also exit early if peer can't accept inv messages by @lazynina in #1384
  • Fix Persistent IP Indexing Edge Cases in NetworkManager by @tholonious in #1386
  • Add panic-recover to safe utxo view connect txn by @lazynina in #1388
  • Add support for trading fees as extradata by @diamondhands0 in #1377
  • accelerated regtest mode by @lazynina in #1391
  • Ln/max tip age bug fix by @lazynina in #1392
  • Update uncommitted block sync ID by @superzordon in #1382
  • If less than 50% of congestion threshold, return min fee rate by @lazynina in #1393

Full Changelog: v4.0.1...v4.0.2

v4.0.1

20 Jun 04:11
Compare
Choose a tag to compare

This is a mandatory upgrade and all nodes need to upgrade by the existing deadline specified in the v4.0.0 release.

This release will not incur additional downtime if you’ve already upgraded to v4.0.0. If you haven’t already upgraded, you’ll experience the same amount of downtime as if you upgraded to v4.0.0 - about 20-30 minutes.

What's Changed

This release addresses an issue where locked stake could not be unlocked if a validator unregistered. See release v4.0.0 for full details on all PoS upgrades.

Full Changelog: v4.0.0...v4.0.1

v4.0.0

17 Jun 19:14
Compare
Choose a tag to compare

Fork Preparation Checklist

In order to upgrade your node to be compatible with this new version, please complete all steps of the checklist below.

  • Reboot your node with the most recent stable release image from docker before noon PT on July 1st, 2024.
    • Your node may pause for 10-20 minutes after reboot for re-indexing, but a resync is not required.
    • Please note that the fork is expected to hit on Tuesday July 2nd, 2024 at noon PT.

Description

The v4.0.0 release is a major version upgrade that brings Revolution Proof-of-Stake to DeSo mainnet. Upgrading your mainnet node is required as mentioned above.

The transition to proof-of-stake brings many new features to the DeSo blockchain. Below is a list of some of the highlights.

  1. Network is secured by validators instead of miners and transaction finalization is lowered to ~three seconds, with one second block confirmations.
  2. Throughput can safely reach 500 posts per second (~10% of Twitter scale), and even higher TPS for storage-light transactions, such as transfers or DeFi transactions.
  3. Ability to earn staking rewards, initially 20% APY, for staking your DESO with a validator.
  4. State-of-the-art dynamic fee-time ordering of transactions in block construction to minimize congestion.
  5. Burn-maximizing fee algorithm to maximize value for coin-holders as traffic increases.

There are two blocks heights of importance with this release.

  1. Proof-of-Stake setup height (349167, ETA Tuesday July 2nd, 2024 at noon PT) - after this height, all next transaction types described below are accepted. The chain is still running Proof-of-Work until the next fork height hits.
  2. Proof-of-Stake cutover height (351153, ETA Tuesday July 9th, 2024 at noon PT) - The chain transitions from Proof-of-Work to Proof-of-Stake.

New Transaction Types

  • REGISTER_AS_VALIDATOR - allows for a public key to register themselves as a validator on the network and configure/update their validator settings. Once registered as a validator with stake, one can participate in securing the network as a validator. You may register as a validator at explorer.deso.com
  • UNREGISTER_AS_VALIDATOR - allows a public key to unregister itself as a validator and removes it from the validator set.
  • UNJAIL_VALIDATOR - allows a public key to unjail itself if it has been jailed for not voting within the allotted time.
  • STAKE - allows a public key to stake to a validator and earn staking rewards for helping secure the network. This transaction type is also used to update the Reward Method (PAY_TO_BALANCE or RESTAKE).
  • UNSTAKE - allows a public key to unstake from a validator. This removes an amount of stake (or all of its stake) from a validator. This stake is "locked" for two epochs.
  • UNLOCK_STAKE - allows a public key to unlock "locked" stake.
  • COIN_LOCKUP - allows a public key to "lock" DeSo tokens and earn yield on locked tokens (depending on configuration of the profile that created the tokens).
  • UPDATE_COIN_LOCKUP_PARAMS - allows the owner of a DeSo Token (like an ERC-20 on the DeSo network) to adjust the configuration of the parameters for locking up tokens they issue. This allows for the creation of yield curves, among other benefits.
  • COIN_LOCKUP_TRANSFER - allows for the transferring of "locked" DeSo tokens.
  • COIN_UNLOCK - allows for the "unlocking" of DeSo tokens after the lock up period has passed.
  • ATOMIC_TXNS_WRAPPER - allows for the bundling of multiple transactions in a single transaction to ensure a series of transactions are executed in an all-or-nothing fashion.

New Flags

  • pos-validator-seed - a bip 39 seed phrase or seed hex used to generate the private key of the proof of stake validator that is running on this node.
  • mempool-backup-time-millis - the frequency in milliseconds with which the mempool will persist its state to disk. Default value is 30000 (30 seconds).
  • mempool-max-vlalidation-view-connects - The maximum number of connects that the PoS mempool transaction validation routine will perform. Default value is 10000.
  • transaction-validation-refresh-interval - The frequency in milliseconds with which the transaction validation routine is run in the mempool. Default value is 10 milliseconds.
  • peer-connections-refresh-interval-millis - The frequency in milliseconds with which the node will refresh its peer connections. This applies to both outbound validators and outbound persistent non-validators.
  • state-syncer-mempool-txn-sync-limit - The maximum number of transactions to process in the mempool tx state syncer at a time. Default value is 10000.
  • checkpoint-syncing-providers - A comma-separated list of URLs that support the committed tip block info endpoint to be used for checkpoint syncing. If unset, the field will default to node.deso.org on mainnet and test.deso.org on testnet.

What's Changed

  • If data dir exists already, just use performance options. If not, use sync type (instead of config.Hypersync) by @lazynina in #934
  • Update when state syncer starts the mempool sync routine. by @superzordon in #1064
  • Fix minor issues to speed up block processing logic by @diamondhands0 in #1145
  • Check Z sign before calling BigFloatPow in CalculateDeSoToReturn by @lazynina in #1223
  • feature/proof-of-stake by @tholonious in #964

Full Changelog: v3.4.6...v4.0.0

v4.0.0-beta.1

26 Apr 15:14
f348398
Compare
Choose a tag to compare
v4.0.0-beta.1 Pre-release
Pre-release

Description

The v4.0.0-beta.1 release addresses a few issues related to networking and fee estimation.

For more details on the changes introduced with the PoS upgrade, please see release v4.0.0-beta.0.

For more details on DeSo's move to proof-of-stake, please visit https://revolution.deso.com/.

If you need a docker image for the build of core with this release, please use this tag

What's Changed

Full Changelog: v4.0.0-beta.0...v4.0.0-beta.1

v4.0.0-beta.0

23 Apr 13:49
67bbacf
Compare
Choose a tag to compare
v4.0.0-beta.0 Pre-release
Pre-release

UPDATE

Please upgrade to the new pre-release v4.0.0-beta.1 as a few issues were uncovered in the v4.0.0-beta.0 release.

Description

v4.0.0-beta.0 is a pre-release for the upcoming Proof-of-stake fork. Please note that v4.0.0-beta.0 only sets fork heights for testnet and only testnet nodes should upgrade at this time. Upgrading mainnet nodes is not required and will NOT transition a mainnet node to use proof-of-stake as the consensus mechanism.

There are two fork heights set for testnet with this release.

With the first fork (set to occur around Wednesday May 1 at 12pm PT), the network will first accept new transaction types required to set up the network for the transition to PoS (REGISTER_AS_VALIDATOR, UNREGISTER_AS_VALIDATOR, UNJAIL_VALIDATOR, STAKE, UNSTAKE, UNLOCK_STAKE) as well as new non-proof-of-stake transaction types (COIN_LOCKUP, UPDATE_COIN_LOCKUP_PARAMS, COIN_LOCKUP_TRANSFER, COIN_UNLOCK, ATOMIC_TXNS_WRAPPER). At this point, nodes can register as validators and users may stake to the validators. The network requires at least a single validators with a non-zero amount of stake in order to run the proof of stake consensus.

With the second fork (set to occur around Monday May 6 at 12pm PT), the network will transition from proof-of-work to proof-of-stake.

For more details on DeSo's move to proof-of-stake, please visit https://revolution.deso.com/.

If you need a docker image for the build of core with this release, please use this tag

What's Changed

Read more

v3.4.6

18 Jan 22:04
6292b83
Compare
Choose a tag to compare

Description

v3.4.6 most notably includes updates to optimize memory usage during hypersync and introduces the state syncer functionality, allowing nodes to track state changes to a log file and then process that file into a data store of their choosing. Other minor updates include a small update to the dao coin limit order transaction construction logic, including extra data in max spend and diamond transaction construction, adding transactor as an affected public key for all transactions if not already included, and small readme updates.

More documentation for state syncer will be available in the future.

What's Changed

  • Update badger sync settings to optimize memory usage during hypersync by @superzordon in #636
  • ln/add-transactor-as-affected-pub-key by @lazynina in #675
  • WIP: State indexer by @superzordon in #488
  • Add extra data to max spend and diamond txn construction by @lazynina in #883
  • Only encode state change metadata if flag is set by @lazynina in #884
  • Don't add to the queue in snapshot.Run for the SnapshotOperationProcessChunk, we already added to the channel GetSnapshot by @lazynina in #890
  • Fix small bug in dao coin limit order txn construction by @lazynina in #910
  • Update README.md - fix links to docs.deso.org by @lazynina in #914
  • Z/hypersync db settings fix by @superzordon in #900
  • [stable] Release 3.4.5 by @lazynina in #921
  • [stable] Release 3.4.6 by @lazynina in #922

Full Changelog: v3.4.5...v3.4.6

v3.4.5

27 Jul 20:47
Compare
Choose a tag to compare

Description

v3.4.5 reduces memory requirements to run hypersync by limiting the number of chunks to be processed during the hypersync phase. Additionally, v3.4.5 reduces memory requirements to run tests by using default badger options for the db.

What's Changed

New Contributors

Full Changelog: v3.4.4...v3.4.5

v3.4.4

13 Jun 14:22
Compare
Choose a tag to compare

Description

v3.4.4 addresses a bug in how postgres nodes process the genesis block and addresses an issue in how miner code computes the block reward amount

What's Changed

  • Block Reward Patch - prevent free tx fees for recipient of block reward output by @lazynina in #537
  • update miner to recompute block reward properly by @lazynina in #549
  • fix pg genesis block by @lazynina in #554

Full Changelog: v3.4.3...v3.4.4

v3.4.3

19 May 16:46
Compare
Choose a tag to compare

Description

Release 3.4.3 addresses a bug in syncing a postgres node where the computation of immature block rewards differed from badger.

What's Changed

  • Make Postgres behave the same as badger for immature block rewards by @lazynina in #532

Full Changelog: v3.4.2...v3.4.3