Versions Compared

Key

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

Video of the afternoon session: https://youtu.be/yhkGWWO_I7k

Participants

Goals

  • Using the Docker ‘hack’ - create a local network.

  • Install the client on their local machine

  • Compile the contracts - we will deploy counter-define and then counter-call

  • Deploy to your local network

  • Observe effects

  • We will record the session.

Pre-Requisites

  1. Clone the repository on your machine

...

Code Block
cd ~/CasperLabs/execution-engine
make setup
make build-example-contracts

Software Version (GitHash)

Docker tag: dev

What you need to know:

  • To simplify the process, we are deploying from the faucet account (we can skip funding an account to pay for the deployment)

Step by Step Plan

Title

Description

Notes

Verify pre-requisites

Check that everyone has managed to get through the setup.

See above

Set up a local 3 node network

Using the Docker hack, set up a local network

To remove old networks use:

Code Block
make clean

Deploy counter-define

Propose a block

Deploy counter-call

Propose a block

Here we will deploy a contract to the local network to install it. Then we will call the contract using a separate transaction.

Counter Define deployment & Proposal

Code Block
cd ~/CasperLabs/hack/docker

ACCOUNT_ID="$(cat keys/faucet-account/account-id-hex)"
casperlabs-client --host localhost --port 40401 deploy \
     --gas-price 1 \
     --from "$ACCOUNT_ID" \
     --session $PWD/../../execution-engine/target/wasm32-unknown-unknown/release/counter_define.wasm \
     --payment-amount 10000000 \
     --public-key keys/faucet-account/account-public.pem \
     --private-key keys/faucet-account/account-private.pem

casperlabs-client --host localhost --port-internal 40402 propose

Counter Call deployment

Code Block
cd ~/CasperLabs/hack/docker

ACCOUNT_ID="$(cat keys/faucet-account/account-id-hex)"
casperlabs-client --host localhost --port 40401 deploy \
     --gas-price 1 \
     --from "$ACCOUNT_ID" \
     --session $PWD/../../execution-engine/target/wasm32-unknown-unknown/release/counter_call.wasm \
     --payment-amount 10000000 \
     --public-key keys/faucet-account/account-public.pem \
     --private-key keys/faucet-account/account-private.pem

casperlabs-client --host localhost --port-internal 40402 propose

  • Keep track of the number of times counter-call is executed so we can verify the output of the query later.

Propose a block

Call the client to propose a block

Same as above.

Obtain the block hash

Obtain the block hash for use in the state query

Call the client to get the block hash (can also tail the logs and see the block in the network)

Code Block
casperlabs-client --host localhost --port 40401 show-blocks

Perform a state query

Using the gRPC

Code Block
casperlabs-client --host localhost --port 40401 query-state \
    -t address \
    -k $ACCOUNT_ID \
    -p "counter/count" \
    --block-hash <block-hash-of the latest block>

Outcome:

  • The export needs to happen again if a new terminal is opened.

  • Make sure that you don’t have any old Docker containers floating around from old nodes.

  • Do not make a mistake when creating node-0 (Medha did node-o and it was problematic)

  • To add CLarity and GraphQL to the Docker network run:

    • Code Block
      make up

...

Code Block
https://repo.casperlabs.io/casperlabs/repo/dev/casperlabs-client-0.10.0.tgz
tar -xvzf casperlabs-client-0.10.0.tgz
alias casperlabs-client=$PWD/casperlabs-client-0.10.0/bin/casperlabs-client

Action items

For Help - go to Discord: https://discord.gg/mpZ9AYD

Decisions