Technical Release notes and Changelog for 0.7.7
Things you need to know:
This release addresses the blocklisting issue at the networking layer.
Known Issues
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!
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.
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
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:
When the most recently downloaded block was created less than the longest possible round ago.
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:
by receiving a response from a peer we gossiped the item to
by timing out a response we never got from a peer we gossiped the item to
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
.