Skip to content

Releases: deso-protocol/core

v3.4.2

15 May 19:57
Compare
Choose a tag to compare

Release 3.4.2 re-enables checksum verification when hypersyncing

What's Changed

Full Changelog: v3.4.1...v3.4.2

v3.4.1

01 May 18:41
2e89c1f
Compare
Choose a tag to compare

v3.4.1 addresses some issues related to postgres syncing.

What's Changed

Full Changelog: v3.3.1...v3.4.1

v3.4.0

24 Apr 21:36
Compare
Choose a tag to compare

v3.4.0 addresses a bug that causes nodes to crash loop when transitioning from utxo model to balance model

What's Changed

Full Changelog: v3.3.0...v3.4.0

v3.3.0

10 Apr 15:33
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 5pm PT Friday, April 21th, 2023. For testnet, please upgrade your node by 5pm PT Tuesday, April 11th, 2023.
    • Your node may pause for 10-30 minutes after reboot for re-indexing, but a resync is not required.
    • Please note that the fork is expected to hit on Monday April 24th, 2023 at 9am PT.
  • If you are constructing transaction outside of the DeSo API or the DeSo rosetta implementation or signing outside of DeSo Identity, please make sure to upgrade your construction and signing logic.
    • DeSo-JS has updated its transaction signing logic to support. If you are using it to support transaction signing, please upgrade to version 1.1.13
    • If you would like to implement your own, you may look at the logic in DeSo Identity here or in DeSo JS here.
    • If you are constructing transactions on your own, please see the code here for an example of computing the FeeNanos and TxnNonce.

Description

v3.3.0 migrates DeSo's underlying accounting model to an account balance model from a UTXO model.

After this fork, transactions will no longer specify inputs to pay for DESO spent in transactions. Instead, transactions will have the following new fields:

  1. TxnFeeNanos: a number (uint64) that specifies the amount of DESO (in nanos) that will be spent as fees.
  2. TxnNonce: a DeSo Nonce object that uniquely identifies this transactions and prevents replay attacks. a DeSo nonce is comprised of two numbers. The first is the ExpirationBlockHeight, which is a block height after which this nonce is no longer valid. The second is the partialID, which is a random number that, together with the ExpirationBlockHeight, uniquely identify this transaction. DeSo nonces are explained more in the Revolution PoS proposal. The main benefits of Deso nonces over existing nonce solutions are the ability to re-order transactions based on fee rates without dropping transactions with lower nonce values and limited storage size due to deletion of expired nonces.
  3. TxnVersion: This is a new attribute which tells you if a transaction is constructed for balance model or UTXO model. A value of 1 means a transaction is constructed for use with the balance model and a value of 0 means a transaction is constructed for use with the UTXO model.

End-users should not notice any differences after this fork other than reduced transaction fees. Transaction inputs make up about 20+ percent of transaction sizes for non-content storage transactions, such as sending DESO, creating associations, or following users. As a result of replacing transaction inputs with the fee nanos and DeSo Nonce, transacting on DeSo will cost even less.

The transition to an account balance model is one of the first implementation steps towards DeSo's Revolution PoS - you can read more about it here

Additionally, v3.3.0 addresses a bug that results in non-deterministic encoding of transaction spending limits for derived keys.

Finally, v3.3.0 upgrades the version of go from 1.18 to 1.20 and improves memory performance of the test suite.

Auto-generated Release Notes

What's Changed

Full Changelog: v3.2.0...v3.3.0

v3.2.0

07 Mar 01:40
Compare
Choose a tag to compare

Description

v3.2.0 addresses a bug related to derived key spending limits for Create Post association transactions as well as adds validations when creating spending limits for associations. v3.2.0 also exposes a getter method for the isDeleted field on BalanceEntry and FollowEntry.

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 5pm PT Wednesday, March 8th, 2023

Auto-generated Release Notes

What's Changed

Full Changelog: v3.1.2...v3.2.0

v3.1.2

07 Feb 17:52
Compare
Choose a tag to compare

Description

v3.1.2 addresses a bug in postgres syncing of associations as well as a bug in transaction construction for authorize derived keys when intending to sign transactions with the owner keys.

What's Changed

  • Fix duplicated pg association inserts. by @mattfoley8 in #472
  • Only verify access signature if signing with derived key by @lazynina in #470

Full Changelog: v3.1.1...v3.1.2

v3.1.1

27 Jan 22:29
Compare
Choose a tag to compare

Fork Preparation Checklist

In order to upgrade your MAINNET 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 5pm PT Friday, February 3rd, 2023
    • Your node may pause for 10-30 minutes after reboot for re-indexing, but a resync is not required.
    • Please note that the fork is expected to hit on Monday February 6th, 2023 at 9am PT.

Description

v3.1.1 introduces two new primitives to the DeSo blockchain to mainnet: Associations and Access Groups.

The introduction of associations comes in two forms: user associations and post associations. User associations allow users to create arbitrary links between themselves and other public key. Post associations allow users to create arbitrary links between themselves and any posts on-chain. Associations can be used to implement a wide variety of social features, including - but not limited to - reactions to posts, polls, endorsements, and user role permissioning. There are 4 new transaction types introduced to support associations - CREATE_USER_ASSOCIATION, DELETE_USER_ASSOCIATION, CREATE_POST_ASSOCIATION, and DELETE_POST_ASSOCIATION.

The introduction of access groups brings the ability to securely share private keys material with other users on chain. Access groups can be used to share encryption keys for group chats or for decrypting encrypted content. Along with access groups, a new transaction type for supporting messages is introduced to replace the old PRIVATE_MESSAGE transaction type. The NEW_MESSAGE transaction type adds support for better indexing of DM and group chats as well as migrating consensus fields from extra data into transaction metadata. Access Groups brings two new transactions types on top of NEW_MESSAGE: ACCESS_GROUP_CREATE and ACCESS_GROUP_MEMBERS. ACCESS_GROUP_CREATE creates a group and ACCESS_GROUP_MEMBERS adds members to the group.

v3.1.1 also includes the following minor changes:

  • Add onlyNFTs and onlyPosts filters to get posts UtxoView functions
  • Logging clean up
  • Bugfix for requesting an unknown prefix during hypersync
  • Bugfix for disconnecting from peer during hypersync
  • Improved comments
  • Extracting memo from extra data in AUTHORIZE_DERIVED_KEY transactions
  • Bugfix for missing isDeleted check when canceling DAO coin limit orders
  • Allow for editing of posts that are NFTs as well as freezing posts such that they are no longer editable

Auto-generated Release Notes

What's Changed since v3.1.0

Full Changelog: v3.1.0...v3.1.1

What's Changed (copied from v3.1.0)

  • Update Minor Error Message in blockchain.go by @davidjwriter in #415
  • update readme by @lazynina in #421
  • Add onlyNFTS and onlyPosts filter by @erwin-willems in #419
  • glog v(2) for non flushDAOCoinLimitOrderEntries and GetPostEntryReaderState by @lazynina in #431
  • Add additional logging to process block logic by @triplegreenshell in #436
  • Respond with empty chunk for unknown prefixes by @AeonSw4n in #395
  • Improve snapshot and hypersync comments by @diamondhands0 in #440
  • return if disconnecting from peer in HandleGetSnapshot by @lazynina in #445
  • Mf/add association txn types by @mattfoley8 in #420
  • add association class/scope type/operation string methods to support backend spending limit endpoints by @lazynina in #449
  • Require low-s for signature recovery purposes when recovering derived public key from signature by @lazynina in #452
  • Access Groups, Dm Messages, Group Chats by @AeonSw4n in #412
  • Update associations txn spending limit metamask str. by @mattfoley8 in #460
  • memo comes from DerivedKeyMemoKey, not DerivedPublicKey by @lazynina in #450
  • Add isDeleted check when canceling order by @lazynina in #363
  • NFTz node url update by @mvanhalen in #429
  • Set testnet fork height for AssociationsAndAccessGroupBlockHeight by @lazynina in #466

New Contributors

Full Changelog: v3.0.2...v3.1.0

v3.1.0

24 Jan 01:12
Compare
Choose a tag to compare

Fork Preparation Checklist

Please note that this version only creates a fork on testnet as mainnet block heights are not set in this release. Mainnet fork heights for the Associations and Access Groups fork will be set and announced in a separate release.

In order to upgrade your testnet 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 1pm PT Tuesday, January 24th, 2023
    • Your node may pause for 10-30 minutes after reboot for re-indexing, but a resync is not required.

Description

v3.1.0 introduces two new primitives to the DeSo blockchain on testnet: Associations and Access Groups.

The introduction of associations comes in two forms: user associations and post associations. User associations allow users to create arbitrary links between themselves and other public key. Post associations allow users to create arbitrary links between themselves and any posts on-chain. Associations can be used to implement a wide variety of social features, including - but not limited to - reactions to posts, polls, endorsements, and user role permissioning. There are 4 new transaction types introduced to support associations - CREATE_USER_ASSOCIATION, DELETE_USER_ASSOCIATION, CREATE_POST_ASSOCIATION, and DELETE_POST_ASSOCIATION.

The introduction of access groups brings the ability to securely share private keys material with other users on chain. Access groups can be used to share encryption keys for group chats or for decrypting encrypted content. Along with access groups, a new transaction type for supporting messages is introduced to replace the old PRIVATE_MESSAGE transaction type. The NEW_MESSAGE transaction type adds support for better indexing of DM and group chats as well as migrating consensus fields from extra data into transaction metadata. Access Groups brings two new transactions types on top of NEW_MESSAGE: ACCESS_GROUP_CREATE and ACCESS_GROUP_MEMBERS. ACCESS_GROUP_CREATE creates a group and ACCESS_GROUP_MEMBERS adds members to the group.

v3.1.0 also includes the following minor changes:

  • Add onlyNFTs and onlyPosts filters to get posts UtxoView functions
  • Logging clean up
  • Bugfix for requesting an unknown prefix during hypersync
  • Bugfix for disconnecting from peer during hypersync
  • Improved comments
  • Extracting memo from extra data in AUTHORIZE_DERIVED_KEY transactions
  • Bugfix for missing isDeleted check when canceling DAO coin limit orders

Auto-generated Release Notes

What's Changed

  • Update Minor Error Message in blockchain.go by @davidjwriter in #415
  • update readme by @lazynina in #421
  • Add onlyNFTS and onlyPosts filter by @erwin-willems in #419
  • glog v(2) for non flushDAOCoinLimitOrderEntries and GetPostEntryReaderState by @lazynina in #431
  • Add additional logging to process block logic by @triplegreenshell in #436
  • Respond with empty chunk for unknown prefixes by @AeonSw4n in #395
  • Improve snapshot and hypersync comments by @diamondhands0 in #440
  • return if disconnecting from peer in HandleGetSnapshot by @lazynina in #445
  • Mf/add association txn types by @mattfoley8 in #420
  • add association class/scope type/operation string methods to support backend spending limit endpoints by @lazynina in #449
  • Require low-s for signature recovery purposes when recovering derived public key from signature by @lazynina in #452
  • Access Groups, Dm Messages, Group Chats by @AeonSw4n in #412
  • Update associations txn spending limit metamask str. by @mattfoley8 in #460
  • memo comes from DerivedKeyMemoKey, not DerivedPublicKey by @lazynina in #450
  • Add isDeleted check when canceling order by @lazynina in #363
  • NFTz node url update by @mvanhalen in #429
  • Set testnet fork height for AssociationsAndAccessGroupBlockHeight by @lazynina in #466

New Contributors

Full Changelog: v3.0.2...v3.1.0

v3.0.2

27 Oct 22:15
Compare
Choose a tag to compare

Summary

This is a non-forking change to prevent an error in which the go native make function could panic

What's Changed

Full Changelog: v3.0.1...v3.0.2

v3.0.1

13 Sep 23:19
Compare
Choose a tag to compare

Fork Preparation Checklist

This is not a forking change from v3.0.0, so nodes running 3.0.0 will be compatible.

If you have not upgraded to v3.0.0, please follow the below instructions:

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 12pm PT Monday, September 19th, 2022
    • Your node may pause for 10-30 minutes after reboot for re-indexing, but a resync is not required.
    • If you are running a testnet node, you will need to reboot your node with the most recent stable release image by 10am PT Tuesday, September 13th, 2022

Description

v3.0.1 addresses a bug in which the state of encoder migrations were not being saved to the database. This is not a forking change, but prevents nodes from re-running migrations when a node is rebotted.

Auto-generated Release Notes

What's Changed

  • Additional persisting of state and migration checksums by @AeonSw4n in #402

Full Changelog: v3.0.0...v3.0.1