Skip to content

v4.0.0

Compare
Choose a tag to compare
@lazynina lazynina released this 17 Jun 19:46
· 54 commits to main since this release

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. For more details on the protocol-level enhancements, please see the core v4.0.0 release notes.

New Flags

  • max-optional-preceding-transactions - If set, enables certain transaction construction endpoints to accept transactions that should be connected before constructing the transaction requested in the request body. Setting this flag can aid in workflows that deal with atomic transaction construction.

New Endpoints - all prefixed by /api/v0

  • get-committed-tip-block-info - GET endpoint used to fetch a node's tip height, tip hash, and latest view for use in checkpoint syncing.
  • submit-atomic-transaction - POST endpoint used to assemble and submit an atomic transaction given the hex of an incomplete atomic transaction (only missing the signatures of the inner transactions) and an array of hexes for each signed inner transactions.
  • txn-construction-params - POST endpoint used to get the current parameters necessary to construct a transaction locally. Takes a MinFeeRateNanosPerKB as a lower bound on the fee rate. Returns the fee rate and current block height.
  • token-balances-for-public-key - POST endpoint to get a map of public key to a simple balance response (holder public key, creator public key, and balance in base units). This endpoint is useful to get the balance of a bunch of different creators' DeSo tokens (and DESO) for a given holder. This endpoint supports passing in a TxnStatus - either InMempool or Committed to control whether to fetch uncommitted or committed state.
  • get-dao-coin-limit-orders-by-id - GET endpoint to fetch a series of DAO Coin Limit Orders by IDs. This endpoint supports passing in a TxnStatus - either InMempool or Committed to control whether to fetch uncommitted or committed state.
  • validators
    • validators/register - POST endpoint to construct a REGISTER_AS_VALIDATOR transaction.
    • validators/unregister - POST endpoint to construct an UNREGISTER_AS_VALIDATOR transaction.
    • validators/unjail - POST endpoint to construct an UNJAIL_VALIDATOR transaction.
    • validators/{publicKeyBase58Check} - GET endpoint to fetch a ValidatorEntryResponse for a given public key.
  • check-node-status - POST endpoint used to test if a provided domain is accepting TCP connections. This is used to help validators test their node configuration when registering as a validator.
  • current-epoch-progress - GET endpoint used to fetch details about the current epoch including its epoch number, start height and view, final height, initial leader index offset, created timestamp, the leader schedule, the current view number, and the current tip height.
  • stake
    • stake - POST endpoint to construct a STAKE transaction
    • stake/{validatorPublicKey}/{stakerPublicKey} - GET endpoint to fetch stake details for a given validator and staker.
    • stake/validator/{validatorPublicKey} - GET endpoint to fetch stake details for all stake with a given validator.
  • unstake - POST endpoint to construct an UNSTAKE transaction.
  • unlock-stake - POST endpoint to construct an UNLOCK_STAKE transaction.
  • locked-stake/{validatorPublicKey}/{stakerPublicKey} - GET endpoint to fetch locked stake details for a given validator and staker.
  • coin-lockup - POST endpoint to construct a COIN_LOCKUP transaction.
  • update-coin-lockup-params - POST endpoint to construct an UPDATE_COIN_LOCKUP_PARAMS transaction.
  • coin-lockup-transfer - POST endpoint to construct a COIN_LOCKUP_TRANSFER transaction.
  • coin-unlock - POST endpoint to construct a COIN_UNLOCK transaction.
  • lockup-yield-curve-points/{publicKey} - GET endpoint to fetch the locked yield curve points for a given public key.
  • locked-balance-entries/{publicKey} - GET endpoint to fetch locked balance entries for a given public key.
  • create-atomic-txns-wrapper - POST endpoint to construct an ATOMIC_TXNS_WRAPPER transaction.

Updated endpoints

  • get-dao-coin-limit-orders - accepts a new parameter TxnStatus (either InMempool or Committed) to control whether to fetch uncommitted or committed state.

What's Changed

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