github Concordium/concordium-node 1.1.3-1

latest releases: 7.0.6-3-alpha, 7.0.6-2-alpha, 7.0.6-1-alpha...
3 years ago

Changes in the node since release 1.0.1

  • Node improvements and new features

    • Update dependencies, code cleanup, and removal of the staging_net feature.
    • Fix a number of bugs that led to node crashes due to failed block lookup in some situations.
    • Fix a bug in average throughput calculation that was triggered in some cases
      of bad connectivity.
    • Add support for configuring the node and the collector via environment
      variables in addition to command line arguments. This is a breaking change in
      that flags now need to have an explicit argument.
    • Remove use of unbound for DNS resolution. This also removes the dnssec functionality, and the
      flag --no-dnssec is no longer supported. The command-line option --resolv-conf is also
      removed, as the system resolver will be used.
    • Introduce protocol P2 that supports transfers with memo.
    • Implement protocol updates, allowing migration to a new protocol. Two protocol updates are
      implemented. One which does not switch to a new protocol version, but allows for updating a number
      of genesis parameters that would otherwise be immutable, while retaining the
      state. A second protocol update updates from P1 to P2.
    • Reduced logging of certain events. Received blocks, finalization messages/records, and
      transactions are only logged at Trace level. GRPC queries are not logged.
    • Support log4rs logging, by specifying a configuration file
      (in toml or yaml format) with the --log-config argument or CONCORDIUM_NODE_LOG_CONFIG
      environment variable.
    • A Windows node runner service and installer.
      See service/windows/README.md.
    • Support custom path for genesis data via CONCORDIUM_NODE_CONSENSUS_GENESIS_DATA_FILE.
    • For macOS:
      • Added option to use the native mac logging system. To enable it, provide
        the new flag --use-mac-log <subsystem-name>. The flag is available on both
        the node and collector with corresponding, respective, environment variables
        CONCORDIUM_NODE_MACOS_USE_MAC_LOG and CONCORDIUM_NODE_COLLECTOR_USE_MAC_LOG.
      • When the flag is provided, you can view the logs with log show --predicate 'subsystem == "<subsystem-name>"', or by using Console.app.
  • Network API changes

    • Remove unused --bootstrap-server flag.
    • Support for a new wire-protocol version (version 1) that adds a genesis index to non-transaction
      messages, a version header to catch-up messages. Version 0 is still supported for communication
      with legacy nodes during migration.
    • Relax compatibility check so that the node only checks a lower bound on the
      peer major version, in contrast to requiring an exact major version match.
  • Database changes

    • Global state database now includes version metadata. The treestate directory and blockstate file
      names are suffixed with "-n" to indicate genesis index n.
      A legacy database will automatically be migrated by renaming and adding version metadata.
    • Change the automatically created indices on the transaction logging database.
      Instead of an index on the id column on ati and cti tables there are now
      multi-column indices that better support the intended use-cases. This only
      affects newly created databases.
    • The block export format has been revised to a new version (version 3) which allows for
      protocol updates. Version 2 is no longer supported.
  • GRPC API changes

    • In the GetRewardStatus GRPC call, the amounts that were previously represented as integers are now
      represented as strings in the JSON serialization. This is in line with how amounts are serialized
      elsewhere.
    • The behaviour of GetAccountList, GetInstances, and GetModuleList have changed in the case
      where the block hash is ill-formed. Instead of returning the JSON string "Invalid block hash.",
      these functions will now return the JSON null value.
    • GetConsensusStatus return value has additional fields to indicate the protocol
      version and effected protocol updates.
    • GetBlockInfo return value has additional fields indicating the genesis index and local height
      (relative to the genesis block at the genesis index) of the block. The block height reported
      is absolute. The reported parent of a re-genesis block will be the last final block of the
      preceding chain, so the absolute height indicates how many times the parent pointer should be
      followed to reach the initial genesis.
    • GetBlocksAtHeight supports specifying a genesis index, with the supplied height being treated as
      relative to the genesis block at that index. An additional flag allows restricting the query to
      just that index.

Don't miss a new concordium-node release

NewReleases is sending notifications on new releases.