Skip to content

6.0.4

Compare
Choose a tag to compare
@abizjak abizjak released this 11 Sep 13:24
· 542 commits to main since this release
0152a89

Node version 6 adds support for protocol version 6.

Protocol 6 is a major protocol update that implements the new consensus algorithm, Concordium BFT.
In addition to the new consensus, protocol 6 adds new functionality to smart contracts. In particular it makes it easier to support sponsored transactions.

Additionally, node version 6 will not start V1 GRPC server by default. This is in preparation for the removal of the V1 API in a release in November. Please migrate services to V2 API.

Changes

  • Support the new ConcordiumBFT consensus (protocol version 6).
  • Fix a bug that causes bakers in genesis to restake their earnings when they should not. This affects genesis data at protocol version P5; P1-P4 genesis data are not affected. This breaks compatibility with chains started with P5 genesis data, where some genesis bakers are not set to restake earnings. Other chains (including mainnet and testnet) are not affected.
  • Changes to the GetConsensusStatus endpoint:
    • Slot duration only returned in protocol versions 0-5.
    • Endpoint extended to return current timeout duration, current round, current epoch and trigger block time in protocol version 6.
  • Changes to the GetBlockInfo endpoint:
    • Block slot only returned in protocol versions 0-5.
    • In protocol version 6, the returned finalized block is the last finalized block until itself is finalized. Then it is itself.
    • Endpoint extended to return block round and epoch in protocol version 6.
  • Changes to the ElectionInfo endpoint:
    • Election difficulty only returned in protocol versions 0-5.
  • Remove configuration option no-rpc-server and environment variable
    CONCORDIUM_NODE_DISABLE_RPC_SERVER, as well as default values of
    rpc-server-port (CONCORDIUM_NODE_RPC_SERVER_PORT) and rpc-server-addr
    (CONCORDIUM_NODE_RPC_SERVER_ADDR). The V1 gRPC server is only started if
    both of these options are supplied.
  • Fix a network layer bug where initial messages after the handshake could be dropped in some circumstances.
  • Fix a bug that caused an incorrect reporting of total stake in the first payday just after genesis when the node started from genesis at protocols 4 or 5.
  • Smart contract changes and bugfixes
    • Revise the behaviour of rollbacks in P6.
    • Changes in Wasm validation and execution in P6
      • Disallow globals in initialization sections for V1 contracts in P6.
      • Support sign extension instructions in Wasm in P6.
      • Do not count custom sections towards module size when executing contracts.
      • Support new invoke operations for retrieving account keys and checking signatures.