Technical Release notes and Changelog for 0.7.7

Things you need to know:

  1. This release addresses the blocklisting issue at the networking layer.

Known Issues

  1. Nodes that go offline cause liveness faults. Before turning off your node, please ensure you unbond and wait for the unbonding wait period before shutting your node off. Help us to keep the network up!

  2. If your bids don’t go through, or you get a weird auction error, you need to update your contracts. Grab the contracts for release-0.7.x and compile them.

  3. There are a lot of deploys in the network, if you observe an error on the event stream like this, it is because the data is streaming faster than curl can process it. Simply restart the curl.

    curl: (18) transfer closed with outstanding read data remaining
  4. With heavy usage, disk grows. For production, we recommend 1TB of storage. We have planned work to reduce disk requirements.

Network Info

chain_name: "delta-10"

genesis_root_hash: "8fe7..4899"

github tag for compiling contracts: release-0.7.7

 

Install Dependencies

Instructions assume Ubuntu 18.04 or later system

https://github.com/CasperLabs/casper-node README has more information on dependencies.

sudo apt install gcc g++ pkg-config libssl-dev make wabt jq #install rust https://www.rust-lang.org/tools/install curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Contract Compilation instructions

git clone https://github.com/CasperLabs/casper-node.git cd casper-node git fetch git checkout release-0.7.7 make setup-rs && make build-client-contracts -j

Node Installation Instructions- Clean Installation

Node Installation Instructions- Upgrade

Detailed List of Changes


1048 - [Delta] NDRS-962: Stop syncing early.

This PR adds two new conditions for when to stop syncing and transition to an active node:

  1. When the most recently downloaded block was created less than the longest possible round ago.

  2. When the last downloaded block was a switch block of a currently active era.


1042 - NDRS-964: (backport to 0.7.7) Remove outdated assertion on failed bootstrap connection

Backport of https://github.com/CasperLabs/casper-node/pull/1041


1047 - NO-TICKET: avoid panicking on handling get responses

This PR removes a couple of todo!s which could allow a malformed or more likely malicious message to cause the node to panic.


1028 - Backport ulimit increase

This backports #1027 to the 0.7.7 release.


1024 - NO_TICK: syncing ci files with master 0.7.7


1021 - NO-TICKET: fix issue in gossip table

This PR fixes an issue in the gossip table whereby gossip items could avoid being moved to the finished or paused state, hence leaving the item in the current state indefinitely, blocking any further attempts to handle gossip for that item.

We have a termination condition of knowing about x peers which hold the data in question, x being configurable and set to 15 currently. We could reach this termination condition in a few different ways:

  1. by receiving a response from a peer we gossiped the item to

  2. by timing out a response we never got from a peer we gossiped the item to

  3. by receiving the item as a gossip request from a peer

The issue is that we currently only move an item from current to finished or paused when handling situation 1. Situation 2 was assumed to be unneeded as that should trigger a fresh attempt to gossip to a different peer, and that response would eventually be received or a different peer chosen, and so on.

However, if in the meantime we received enough gossip requests from peers to reach the termination condition (situation 3), then when the timeout was triggered, we would recognise that we should no longer gossip this item, and no further gossip request was sent. This broke the assumption that we would eventually handle a response from a peer.

To fix this, I have updated the logic to move an item to the finished state from current (or paused) when we reach the termination condition in all three of these scenarios.


1008 - NO-TICKET: revert handshake change

This PR reverts the recent relaxation of the network handshake process in order to allow v0.7.7 nodes to communicate with v0.7.6 nodes.


1007 - [Delta]: Backport peer blacklist and contract runtime metrics.


1003 - Backport the change to make handshake depend on network name.

Handshake cannot use the chainspec hash anymore since post-upgrade nodes
will be using different chainspec from the joining node (which hasn't
upgraded yet).


1004 - [Delta]: Backports passing RoundSuccessMeter between eras.


1000 - Backport perf improvements to LinearChainSync.