Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Things you need to know:

  1. Accounts.csv is now accounts.toml (allowing for genesis delegation)

  2. Nodes that are offline will removed from the auction at the end of an Era and ejected after the auction delay period.

  3. In Delta-11

    1. Genesis is at 2021-03-15T17:00:00Z

      1. Blocks will not be produced until after genesis

      2. You do not need a trusted_hash if your node is started prior to genesis

    2. Era length is 120 minutes. Before it was 30 minutes.

    3. The auction delay period is 1 Era (120 minutes). Before it was 3 Eras (90 minutes).

    4. The token bonded in at genesis will have bid locked in the auction contract. Rewards will be locked also.

    5. The faucet will dispense about 1000 CSPR, and the total starting supply is set to 10 Billion CSPR.

  4. The status endpoint on port 8888 includes

    1. “round_length” for validating nodes returns a time value, for non-validating nodes returns null

    2. the validator public key as "our_public_signing_key"

    3. “genesis_hash” renamed to "starting_state_root_hash"

  5. The data type for delegation rate in add_bid.wasm deploy has changed from u64 to u8. Please re-build add_bid..

  6. Rewards are now automatically re-staked to bids when they are distributed by the protocol.

  7. Transfers have a minimum transfer amount of 2_500_000_000 motes.

Known Issues

  1. Genesis staked keys will have their bids locked! This is how mainnet will work. If a genesis node goes offline, it will be evicted from the validator set & have to send in a special transaction to resume their bid.

  2. Joining issue - due to the faster block speed, synchronizing the protocol state is an issue. The team has reproduced the issue and is working on a fix. In the meantime - an upgrade has been staged to reduce the rate of block production.

Network Info

chain_name: "delta-11"

starting_state_root_hash: "01ed..56b0"

github tag for compiling contracts: v0.9.3

Install Dependencies

Instructions assume Ubuntu 18.04 or later system

...

Code Block
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

Code Block
git clone https://github.com/CasperLabs/casper-node.git

cd casper-node

git fetch

git checkout release-0.9.3

make setup-rs && make build-client-contracts -j

Node Installation Instructions- Clean Installation

Code Block
breakoutModefull-width
#### delta 11 ####
# clean up previous version nodes
sudo systemctl stop casper-node-launcher.service

sudo rm -rf /etc/casper/1_0_0
sudo rm -rf /var/lib/casper/bin/1_0_0
sudo rm -rf /var/lib/casper/casper-node
sudo rm /etc/casper/casper-node-launcher-state.toml

sudo apt remove -y casper-client casper-node-launcher

cd ~
curl -JLO https://bintray.com/casperlabs/debian/download_file?file_path=casper-client_0.9.3-0_amd64.deb
curl -JLO https://bintray.com/casperlabs/debian/download_file?file_path=casper-node-launcher_0.3.1-0_amd64.deb

sudo apt install -y ./casper-client_0.9.3-0_amd64.deb ./casper-node-launcher_0.3.1-0_amd64.deb

sudo -u casper /etc/casper/pull_casper_node_version.sh 1_0_0 delta-11
sudo -u casper /etc/casper/config_from_example.sh 1_0_0

# After genesis a trusted hash is needed in config.toml.  This retrieves and loads it.  Please verify by looking at the top of /etc/casper/1_0_0/config.toml
sudo sed -i "/trusted_hash =/c\trusted_hash = '$(curl -s 18.144.176.168:8888/status | jq -r .last_added_block_info.hash | tr -d '\n')'" /etc/casper/1_0_0/config.toml

# If you DO NOT have keys yet, you can create them with this.  KEEP YOUR KEYS.
sudo -u casper casper-client keygen /etc/casper/validator_keys

sudo logrotate -f /etc/logrotate.d/casper-node
sudo systemctl start casper-node-launcher; sleep 2
systemctl status casper-node-launcher

Upgrade your node to 0.9.4

Stage the Upgrade on your node. Do NOT shut down or restart your node. This upgrade will take place at Era 34.

Code Block
sudo -u casper /etc/casper/pull_casper_node_version.sh 1_0_1 delta-11
sudo -u casper /etc/casper/config_from_example.sh 1_0_1

If you have anything custom in your config.toml, you need to modify the new config in /etc/casper/1_0_1.


Verify this returns activation_point = 34
cat /etc/casper/1_0_1/chainspec.toml | grep activation_point


Verify this returns casper-node 0.9.3-897b1b5f
/var/lib/casper/bin/1_0_1/casper-node --version


You will also see that you are ready for the upgrade when your status endpoint changes from "next_upgrade":null to "next_upgrade":{"activation_point":34,"protocol_version":"1.0.1"}

Detailed List of Changes

1263 - NO-TICKET: Include chainspec version in handshake

------------------------------------------
This introduces a protocol version field into the handshake, which is ignored by the V1.0.0 node. At the same time, if absent, V1.0.0 is filled in.
As a result, every version of the release node software has a correct protocol version field.

-----------------------------------------

1258 - NO-TICKET: limit deploy size to 1MiB

-----------------------------------------
This PR limits the deploy size, both when accepting one in the node, and when creating one in the client.

-----------------------------------------

1256 - NO-TICKET: Limit message size in chainspec

----------------------------------------

This ensures that nodes are in agreement about what the maximum message size is through the chainspec.

-----------------------------------------

1221 - EE-1207: make definition of system account AccountHash consistent

----------------------------------------
This change will change the AccountHash bytes of the system account to: blake2b(b"system0") (as defined by AccountHash::from_public_key)

----------------------------------------

1218 - NDRS-1053: Introducing Protection Against Replay Attacks

----------------------------------------

If the block validator receives a block with a deploy that was already included in the parent block, it does not detect and reject that replay attack

---------------------------------------

1216 - NDRS-1052: Reconstruct BlockProposerDeploySets state from the block storage.

-----------------------------------------

Instead of persisting the BlockProposerDeploySets to LMDB and loading in on startup, we recreate that state from the collection of finalized deploys

-----------------------------------------

1211 - NO-TICKET: Bugfix for Block Proposer

----------------------------------------

It was possible that handling an old finalized block would rewind the next_finalized value. This PR removes that possibility.

----------------------------------------

1208 - NDRS-1051: Use highest block as an init state for components when no syncing is performed.

-----------------------------------------

All components use LinearChainSync's last known block as an initial state. In the case when there's was syncing performed they failed to initialize properly. We need to return the highest block

------------------------------------------

1206 - NDRS-{1050,1051}: Delta-11 fixes

---------------------------------------

https://casperlabs.atlassian.net/browse/NDRS-1051 https://casperlabs.atlassian.net/browse/NDRS-1050 LinearChainSync does no longer consider State::None as a trigger for finishing syncing. When downloading.

----------------------------------------

1193 - NO-TICKET: Add more logging to track block proposals.

----------------------------------------

This adds INFO-level logs for receiving and validating proposed blocks, and whenever we send a witness unit in a round where we didn't receive a block. Backport of #1191 to 0.9.5.

---------------------------------------

1188 - NO-TICKET: fix issue for deploy validation in deploy acceptor.

----------------------------------------

This PR fixes an issue introduced when the Source enum was extended to hold a third variant.

-----------------------------------------

1180 - OP-1919: Renaming contract_as from @casper/contract to casper-contract.

-----------------------------------------

This PR fixes assemby script publishing.

-----------------------------------------

1187 - OP-1913: new apt repo.

-----------------------------------------

This PR adds new prod apt repo on tag.

-----------------------------------------

1173 - HWY-272: Log oldest seen panorama when syncing.

-----------------------------------------

This PR https://casperlabs.atlassian.net/browse/HWY-272 adds logging of the oldest (lowest sequence number) unit seen per validator while syncing.
Shows the progress of synchronization per validator.

-----------------------------------------

1172 - HWY-271: Log synchronizer queue size.

----------------------------------------

This PR https://casperlabs.atlassian.net/browse/HWY-271 Adds a new timer TIMER_ID_SYNCHRONIZER_QUEUE that is recreated every 5 seconds for every unfinalized era.
Upon handling the timer, lengths of synchronizer

-----------------------------------------

1169 - EE-1204: add activate-bid client contract

-----------------------------------------

This PR adds an activate-bid client contract, that: - compiles to activate_bid.wasm, - takes a single argument named validator_public_key,
and must be deployed using the validator keys in question.

-----------------------------------------

1167 - NO-TICKET: avoid exiting if overwriting execution results with different ones.

-----------------------------------------

This PR changes the behaviour of the storage component to avoid returning an error in the case where we overwrite execution results with a different value.
There is no requirement for repeated executions.

----------------------------------------

1166 - NO-TICKET: Only hard-reset blocks with old protocol versions.

-----------------------------------------

The idea behind hard-reset is to ignore blocks that might have been created in to-be-upgraded eras before an upgrade.
If blocks were legitimately created after an upgrade, we shouldn't be trying to forget them.

-----------------------------------------

1152 - NDRS-1028: Optimize handling of finality signatures in the linear chain component.

-----------------------------------------

This PR makes a couple of changes that optimize how finality signatures are being handled by the node: - we gossip finality signatures created only by our node
-we validate the cryptographic signature at the end (as it's the most expensive test)validator reactor will inform LinearChain when a already-exected block is finalized,
so that LinearChain can update its view about the tip of the chain and handle IsBonded queries properly.

-----------------------------------------

1149 - EE-1203: Validate delegated amount backport.

-----------------------------------------

This PR is a Ref: https://casperlabs.atlassian.net/browse/EE-1203 Backport of #1147 into a release branch

----------------------------------------

1146 - NDRS-1029: Restore block proposer state correctly backport.

-----------------------------------------

This is a backport of #1145.

-----------------------------------------

...