Guest User

Untitled

a guest
Oct 5th, 2018
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.89 KB | None | 0 0
  1. #!/bin/sh
  2. # Tmux script to create 2 dcrd nodes connected in series.
  3. # Network layout:
  4. # master <-> 1
  5. # 19555 19665
  6.  
  7. set -e
  8.  
  9. SESSION="dcrd-simnet-nodes"
  10. NODES_ROOT=~/dcrdsimnetnodes
  11. RPCUSER="USER"
  12. RPCPASS="PASS"
  13. WALLET_SEED="b280922d2cffda44648346412c5ec97f429938105003730414f10b01e1402eac"
  14. WALLET_MINING_ADDR="SsWKp7wtdTZYabYFYSc9cnxhwFEjA5g4pFc" # NOTE: This must be changed if the seed is changed.
  15. WALLET_XFER_ADDR="Sso52TPnorVkSaRYzHmi4FgU8F5BFEDZsiK" # same as above
  16.  
  17. if [ -d "${NODES_ROOT}" ] ; then
  18. rm -R "${NODES_ROOT}"
  19. fi
  20.  
  21. mkdir -p "${NODES_ROOT}/"{master,1,wallet}
  22.  
  23. cat > "${NODES_ROOT}/dcrd.conf" <<EOF
  24. rpcuser=${RPCUSER}
  25. rpcpass=${RPCPASS}
  26. simnet=1
  27. logdir=./log
  28. datadir=./data
  29. debuglevel=TXMP=TRACE,RPCS=trace
  30. txindex=1
  31. EOF
  32.  
  33. cat > "${NODES_ROOT}/dcrctl.conf" <<EOF
  34. rpcuser=${RPCUSER}
  35. rpcpass=${RPCPASS}
  36. simnet=1
  37. EOF
  38.  
  39. cat > "${NODES_ROOT}/wallet.conf" <<EOF
  40. username=${RPCUSER}
  41. password=${RPCPASS}
  42. simnet=1
  43. logdir=./log
  44. appdata=./data
  45. pass=123
  46. enablevoting=1
  47. enableticketbuyer=1
  48. ticketbuyer.nospreadticketpurchases=1
  49. ticketbuyer.maxperblock=5
  50. ticketbuyer.minfee=0.002
  51. EOF
  52.  
  53. cd ${NODES_ROOT} && tmux -2 new-session -d -s $SESSION
  54.  
  55. ################################################################################
  56. # Setup the master (mining) node
  57. ################################################################################
  58.  
  59. tmux rename-window -t $SESSION:0 'master'
  60. tmux split-window -v
  61. tmux select-pane -t 0
  62. tmux send-keys "cd ${NODES_ROOT}/master" C-m
  63. tmux send-keys "dcrd -C ../dcrd.conf --listen 127.0.0.1:19555 --miningaddr=${WALLET_MINING_ADDR}" C-m
  64. tmux resize-pane -D 15
  65. tmux select-pane -t 1
  66. tmux send-keys "cd ${NODES_ROOT}/master" C-m
  67.  
  68. cat > "${NODES_ROOT}/master/ctl" <<EOF
  69. #!/bin/sh
  70. dcrctl -C ../dcrctl.conf \$*
  71. EOF
  72. chmod +x "${NODES_ROOT}/master/ctl"
  73.  
  74. cat > "${NODES_ROOT}/master/mine" <<EOF
  75. #!/bin/sh
  76. NUM=1
  77. case \$1 in
  78. ''|*[!0-9]*) ;;
  79. *) NUM=\$1 ;;
  80. esac
  81.  
  82. for i in \$(seq \$NUM) ; do
  83. dcrctl -C ../dcrctl.conf generate 1
  84. sleep 0.3
  85. done
  86. EOF
  87. chmod +x "${NODES_ROOT}/master/mine"
  88. sleep 3
  89. tmux send-keys "./ctl generate 32" C-m
  90.  
  91. ################################################################################
  92. # Setup the wallet
  93. ################################################################################
  94.  
  95. tmux new-window -t $SESSION:1 -n 'wallet'
  96. tmux split-window -v
  97. tmux select-pane -t 0
  98. tmux resize-pane -D 15
  99. tmux send-keys "cd ${NODES_ROOT}/wallet" C-m
  100. tmux send-keys "dcrwallet -C ../wallet.conf --create" C-m
  101. sleep 2
  102. tmux send-keys "123" C-m "123" C-m "n" C-m "y" C-m
  103. sleep 1
  104. tmux send-keys "${WALLET_SEED}" C-m C-m
  105. tmux send-keys "dcrwallet -C ../wallet.conf" C-m
  106. tmux select-pane -t 1
  107. tmux send-keys "cd ${NODES_ROOT}/wallet" C-m
  108.  
  109. cat > "${NODES_ROOT}/wallet/ctl" <<EOF
  110. #!/bin/sh
  111. dcrctl -C ../dcrctl.conf --wallet -c ./data/rpc.cert \$*
  112. EOF
  113. chmod +x "${NODES_ROOT}/wallet/ctl"
  114.  
  115. cat > "${NODES_ROOT}/wallet/tickets" <<EOF
  116. #!/bin/sh
  117. NUM=1
  118. case \$1 in
  119. ''|*[!0-9]*) ;;
  120. *) NUM=\$1 ;;
  121. esac
  122.  
  123. ./ctl purchaseticket default 999999 1 \`./ctl getnewaddress\` \$NUM
  124. EOF
  125. chmod +x "${NODES_ROOT}/wallet/tickets"
  126. tmux send-keys "./tickets 300"
  127.  
  128. cat > "${NODES_ROOT}/wallet/xfer" <<EOF
  129. #!/bin/sh
  130. FEE=0.001
  131. case \$1 in
  132. ''|*[!0-9\.]*) FEE=\`python -c "import random ; print((1e5 + random.expovariate(0.00002)) / 1e8)"\` ;;
  133. *) FEE=\$1 ;;
  134. esac
  135. ./ctl settxfee \$FEE
  136. ./ctl sendtoaddress ${WALLET_XFER_ADDR} 0.1
  137. ./ctl settxfee 0.001
  138. EOF
  139. chmod +x "${NODES_ROOT}/wallet/xfer"
  140.  
  141.  
  142. ################################################################################
  143. # Setup the serially connected nodes
  144. ################################################################################
  145.  
  146. cat > "${NODES_ROOT}/1/ctl" <<EOF
  147. #!/bin/sh
  148. dcrctl -C ../dcrctl.conf -s 127.0.0.1:19566 \$*
  149. EOF
  150. chmod +x "${NODES_ROOT}/1/ctl"
  151.  
  152.  
  153. tmux new-window -t $SESSION:2 -n 'network'
  154. tmux send-keys "cd ${NODES_ROOT}/1" C-m
  155. tmux send-keys "dcrd -C ../dcrd.conf --listen 127.0.0.1:19565 --rpclisten :19566 --connect 127.0.0.1:19555 " C-m
  156.  
  157. tmux attach-session -t $SESSION
Add Comment
Please, Sign In to add comment