Skip to content

AlephNode Release 12.2

Compare
Choose a tag to compare
@kostekIV kostekIV released this 29 Nov 10:11
· 311 commits to main since this release
337ac41

Note: this page describes changes introduced cumulatively by releases 12.0 (the major release), 12.1 and 12.2.

This is a major release.

Testnet deployment

Status : deployed on 29.11.2023
Node upgrade priority: high

Mainnet deployment

Status : deployed on 25.01.2024
Node upgrade priority: high

Changelog

  • Separate controller accounts in staking are deprecated. Existing controller accounts will keep working as usual, but new users who join staking will be forced to use a single account for staking (in other words - their stash and controller accounts will be the same account)
  • New version of contracts pallet. Smart contracts written in ink! should be compiled with cargo contract version 3.2.0
  • Separate port for RPC requests is removed. Now both WebSocket and RPC traffic is handled on the same port
  • All Substrate dependencies (including all pallets!) upgraded from version polkadot-v0.9.38 to version polkadot-v1.0.0 (significant API changes! See below)
  • Native execution of runtime removed - all execution is handled by the on-chain WASM runtime now
  • Changes to internal block sync request mechanism
  • (added in 12.1) fixed a bug where the node would sometimes not finalize blocks during a major sync
  • (added in 12.1) made it possible to start a node with a DB that contains a lot of non-finalized blocks
  • (added in 12.2) To match the previous behavior the seal_balance call in pallet_contracts has been changed to output the balance free to spend instead of just free balance. In particular calling env().balance() on a freshly-instantiated ink! contract returns 0 instead of the existential deposit.

API changes

  • [BREAKING] The default port for RPC over HTTP is no longer 9933. The default RPC port (for both WS and HTTP) is now 9944
  • [BREAKING] Staking->bond extrinsic no longer accepts controller argument
  • [BREAKING] Staking->set_controller extrinsic no longer accepts controller argument
  • New RPC call alephNode_ready
  • New RPC call alephNode_getBlockAuthor
  • New runtime call AlephSessionApi -> predict_session_committee
  • Pallet Balances changes:
    • Extrinsics:
      • set_balance renamed to set_balance_deprecated
      • New: force_set_balance, transfer_allow_death
    • Storage:
      • Account return type changed
      • New: Freezes, Holds
    • Constants:
      • New: MaxFreezes, MaxHolds
  • Pallet NominationPools changes:
    • Extrinsics:
      • set_config extended with new argument global_max_commission
      • New: bond_extra_other, claim_commission, set_claim_permission, set_commission, set_commission_change_rate, set_commission_max, claim_payout_other
    • Storage:
      • BondedPools return type changed
      • RewardPools return type and argument changed
      • New: ClaimPermissions, GlobalMaxCommission
    • RuntimeApi:
      • New: points_to_balance, balance_to_points
  • Pallet Contracts changes:
    • Extrinsics:
      • New: migrate
    • Storage:
      • Removed: CodeStorage, OwnerInfoOf
      • ContractInfoOf return type changed
      • DeletionQueue return type and argument changed
      • New: CodeInfoOf, DeletionQueueCounter, MigrationInProgress
    • Constants:
      • Removed: DeletionQueueDepth, DeletionWeightLimit
      • New: DefaultDepositLimit
    • RuntimeAPI:
      • call and instantiate performed in dry-run mode now return a list of events that would be emitted
  • Pallet System storage query Account return type changed

CLI changes

  • [BREAKING] --ws-port replaced by --rpc-port
  • [BREAKING] --ws-max-connections replaced by --rpc-max-connections
  • [BREAKING] --ws-external replaced by --rpc-external
  • [BREAKING] --unsafe-ws-external replaced by --unsafe-rpc-external
  • [BREAKING] --rpc-http and --rpc-ws replaced by --rpc-addr
  • [BREAKING] --rpc-max-payload replaced by --rpc-max-request-size and --rpc-max-response-size
  • [BREAKING] --ws-max-out-buffer-capacity removed
  • [BREAKING] --ipc-path removed
  • The following arguments have no effect and are DEPRECATED: --execution-syncing, --execution-import-block, --execution-block-construction, --execution-offchain-worker, --execution-other, --execution

Docker image

public.ecr.aws/p6e8q1z1/aleph-node:r-12.0

Runtime migrations

  • Nomination pools: v3 -> v5
  • Contracts: v9 -> v12

Node upgrade instructions

aleph-node-runner

To accommodate for changes in the aleph-node, the Aleph Node Runner was also significantly changed and improved. To get the newest changes you will need to EITHER:

  • do a git pull
  • delete the whole repo and git clone it again

In either case, please make sure to back up any configuration changes you made to your setup.

The new node runner will automatically detect the aleph-node version to run, so every time you restart it from now on, it will be on the correct version for the network you're targeting (Testnet or Mainnet).

Building from source

In most cases, the only difference from the usual procedure will be that you will need to modify the environment variables:

  • remove WS_PORT and WS_MAX_CONNECTIONS
  • set RPC_PORT=9944 and RPC_MAX_CONNECTIONS=100
    See the changelog above if you're running any non-standard config: you might need to change some more variables accordingly.