11-21-2019 Workshop

Participants

 

  • @Medha Parlikar

  • @Tom Vasile (Deactivated)

  • @Ashok Ranadive (Unlicensed)

  • @Rita Allen (Unlicensed)

  • @Former user (Deleted)

  • @Former user (Deleted)

  • @Former user (Deleted)

  • Chidindu Ojimadu

  • JLeonY

Pre-Requisites

Install Prerequisites described here: https://github.com/CasperLabs/CasperLabs/blob/dev/docs/BUILD.md#prerequisites

Pre-Compile Contract Examples: https://github.com/CasperLabs/contract-examples#casperlabs-smart-contract-examples

Connect to DevNet and sync your state on your node. Instructions are located below.

Goals

 

  • Help folks configure their nodes with Node 0.9.1

  • Connect to DevNet (Create the chainspec locally for DevNet)

  • Test what happens when a node has stale state & then sends a deploy & proposes a block on top of an old block. Tom’s node from the 8th testing session is still bonded with old state. He will start his node and immediately deploy and propose before his node is in sync.

 

Bootstrap Address

casperlabs://a605c8ddc4ed3dc9b881bfe006cc8175fb31e125@100.24.117.48?protocol=40400&discovery=40404

Software Version (GitHash)

Node 0.9.1 Githash: 3651e41e1c9194a662a69e2acfac9941b1e17862

Docker tag: latest

What you need to know:

  • Make sure you have a public / private key pair that you have generated via the explorer at https://clarity.casperlabs.io

  • Update your node to the latest version.

  • If you compile node locally, obtain the Mint and Token contracts from the release repository tarballs and place them in the chainspec/genesis folder.

  • Download accounts.csv from the 0.9.1 release page located at: https://github.com/CasperLabs/CasperLabs/releases/tag/v0.9.1 and place it in the

    $ yourdatadirectory/.casperlabs/chainspec/genesis
  • md5sum: 15c20435e7ef4928e6f844c1a749b32c
  • Delete the data directory if you have to upgrade the node software or restart your node.

    • global-state

    • blockstore

    • dagstore

    • sqlite.db

  • Run the Execution Engine first, before launching the node.

  • When generating Keys using Docker, use the wrapper script as documented in GitHub

Discussion topics

Title

Description

Notes

Title

Description

Notes

Attempt to run the node without deleting the state.

 

Leon didn’t delete his global-state directory, but his node did start syncing blocks from the beginning. We noticed problems with synching state, the node appeared to get stuck at the first 100 sync point. Upon deleting the global state, we observed that the sync happened much faster.

 

Connect to DevNet

Using the accounts.csv file, generate a genesis block that matches DevNet

 

Send transactions & blocks

Add transactions to the system

  • Medha ran counter-call multiple times.

  • Must specify --payment-amount of 10000000

  • Bonding amount should be less than a 1000000

Before state is caught up, Leon & Tom will send a deploy / propose from his node.

Other nodes send deploys / propose at the same time.

Observe the behavior of the other nodes, attempting to process the block.

Observe the justifications.

Observe DAG traversal.

  • The error ‘another propose is in progress’ while the machine is synching. No error when he attempted to deploy. Error showed up when he attempted to propose.

  • Leon’s machine is located in Singapore.

  • When Tom attempted to do so, he got a success message. Tom is on block 600, DevNet is at 750.

  • Tom’s block was added at rank 609 - Medha’s node saw the block and this message in the logs.

  • The block was ignored, along with all the transactions associated with the block were not finalized. The block was orphaned.

Perform a token transfer between accounts

Transfer tokens between accounts

  • Create accounts using the transfer function

  • Verify the balance

Outcome:

  • Leon is using ULTR VPS provider out of Singapore.

  • Leon experienced the ‘There is another propose in progress’ problem.

  • He didn’t delete the global state directory.

  • He has the right gitHash version.

Action items

  1.  

  2.  

Decisions

  •