v4.0.0
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 aMinFeeRateNanosPerKB
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 - eitherInMempool
orCommitted
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 - eitherInMempool
orCommitted
to control whether to fetch uncommitted or committed state.validators
validators/register
- POST endpoint to construct aREGISTER_AS_VALIDATOR
transaction.validators/unregister
- POST endpoint to construct anUNREGISTER_AS_VALIDATOR
transaction.validators/unjail
- POST endpoint to construct anUNJAIL_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 aSTAKE
transactionstake/{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 anUNSTAKE
transaction.unlock-stake
- POST endpoint to construct anUNLOCK_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 aCOIN_LOCKUP
transaction.update-coin-lockup-params
- POST endpoint to construct anUPDATE_COIN_LOCKUP_PARAMS
transaction.coin-lockup-transfer
- POST endpoint to construct aCOIN_LOCKUP_TRANSFER
transaction.coin-unlock
- POST endpoint to construct aCOIN_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 anATOMIC_TXNS_WRAPPER
transaction.
Updated endpoints
get-dao-coin-limit-orders
- accepts a new parameter TxnStatus (eitherInMempool
orCommitted
) to control whether to fetch uncommitted or committed state.
What's Changed
- Validate image dimensions by @lazynina in #534
- Z/handle external global state req errors by @superzordon in #545
- Fix webp image validation and add better global state error handling by @lazynina in #551
- Patch Access group nil pointer by @lazynina in #564
- Fix minor issues to speed up block processing logic by @diamondhands0 in #565
- Make dlv --continue rather than waiting for a debugger in Dockerfile by @diamondhands0 in #601
- feature/proof-of-stake by @lazynina in #530
Full Changelog: v3.4.6...v4.0.0