aboutsummaryrefslogtreecommitdiffstats
path: root/p2p/simulations/examples/ping-pong.sh
blob: 47936bd9a0717b2129750f9a9f2889c3e7e464ee (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
#
# Boot a ping-pong network simulation using the HTTP API started by ping-pong.go

set -e

main() {
  if ! which p2psim &>/dev/null; then
    fail "missing p2psim binary (you need to build cmd/p2psim and put it in \$PATH)"
  fi

  info "creating 10 nodes"
  for i in $(seq 1 10); do
    p2psim node create --name "$(node_name $i)"
    p2psim node start "$(node_name $i)"
  done

  info "connecting node01 to all other nodes"
  for i in $(seq 2 10); do
    p2psim node connect "node01" "$(node_name $i)"
  done

  info "done"
}

node_name() {
  local num=$1
  echo "node$(printf '%02d' $num)"
}

info() {
  echo -e "\033[1;32m---> $(date +%H:%M:%S) ${@}\033[0m"
}

fail() {
  echo -e "\033[1;31mERROR: ${@}\033[0m" >&2
  exit 1
}

main "$@"