reorg-test.sh 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #!/bin/sh
  2. set -e
  3. # Path to used binaries
  4. XMRIG="xmrig"
  5. DARKFID="LOG_TARGETS='!sled' ../../../darkfid"
  6. # Dummy mining wallet addresses so mining daemons can start
  7. XMRIG_USER0="DZnsGMCvZU5CEzvpuExnxbvz6SEhE2rn89sMcuHsppFE6TjL4SBTrKkf"
  8. XMRIG_USER1="Dae4FtyzrnQ8JNuui5ibZL4jXUR786PbyjwBsq4aj6E1RPPYjtXLfnAf"
  9. # Path to `drk` binary
  10. DRK="../../../drk"
  11. DRK0="$DRK -c drk0.toml"
  12. DRK1="$DRK -c drk1.toml"
  13. # First run the darkfid nodes and the miners:
  14. #
  15. # ./clean.sh
  16. # ./init-wallets.sh
  17. # ./tmux_sessions.sh
  18. #
  19. # Wait for at least 20 blocks to be created.
  20. # Now you can run this script
  21. session=darkfid-small
  22. if [ "$1" = "-vv" ]; then
  23. verbose="-vv"
  24. shift
  25. else
  26. verbose=""
  27. fi
  28. wait_blocks() {
  29. while [ "$(sh ./sync-wallet.sh "$1" | grep 'Last confirmed block reported by darkfid:' | awk 'NR==1 {print $7}')" -lt "$2" ]; do
  30. sleep 5
  31. done
  32. }
  33. # Start test after 20 blocks are mined
  34. wait_blocks "$DRK0" 20
  35. echo "=========[Stopping Node1 and Node2]=========="
  36. # Stop node1 and mine only with node0
  37. tmux send-keys -t "$session:node1.0" C-c
  38. tmux send-keys -t "$session:node1.1" C-c
  39. tmux send-keys -t "$session:node2.0" C-c
  40. sleep 5
  41. # Create contract txs on node0
  42. sh ./run-contract-test.sh "$DRK0"
  43. # Stop node0 and mine only with node1
  44. echo "===========[Stopping Node0]=================="
  45. tmux send-keys -t "$session:node0.0" C-c
  46. tmux send-keys -t "$session:node0.1" C-c
  47. sleep 5
  48. echo "===========[Restarting Node1]================"
  49. sed -i -e "s|skip_sync =.*|skip_sync = true|g" darkfid1.toml
  50. tmux send-keys -t "$session:node1.1" "$DARKFID -c darkfid1.toml $verbose -l darkfid1/darkfid.log" Enter
  51. tmux send-keys -t "$session:node1.0" "$XMRIG -u x+1 -r 1000 -R 20 -o 127.0.0.1:48447 -t 2 -u $XMRIG_USER1" Enter
  52. sleep 2
  53. # Create contract txs on node1
  54. sh ./run-contract-test.sh "$DRK1"
  55. # Restart node0 and see reorg happening
  56. echo "=========[Restarting Node0 and Node2]========"
  57. tmux send-keys -t "$session:node0.1" "$DARKFID -c darkfid0.toml $verbose -l darkfid0/darkfid.log" Enter
  58. tmux send-keys -t "$session:node0.0" "$XMRIG -u x+1 -r 1000 -R 20 -o 127.0.0.1:48347 -t 2 -u $XMRIG_USER0" Enter
  59. tmux send-keys -t "$session:node2.0" "$DARKFID -c darkfid2.toml $verbose -l darkfid2/darkfid.log" Enter
  60. sleep 2
  61. # Test to check everything is working fine
  62. sh ./run-contract-test.sh "$DRK0"
  63. sh ./run-contract-test.sh "$DRK1"