forked from mixbytes/haya
-
Notifications
You must be signed in to change notification settings - Fork 7
/
testnet.template
168 lines (139 loc) · 5.12 KB
/
testnet.template
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#!/bin/bash
set -eu
readonly core_symbol=BET
readonly project=daobet
readonly prog_cli="programs/cli/$project-cli"
readonly prog_wallet="programs/wallet/$project-wallet"
# set up a wallet just for holding the key used during blockchain ignition
bioshost=${BIOS_HOSTNAME:-}
if [ -z "$bioshost" ]; then
bioshost=localhost
fi
biosport=${BIOS_HTTP_PORT:-}
if [ -z "$biosport" ]; then
biosport=9776
fi
bioscontractpath=$BIOS_CONTRACT_PATH
if [ -z "$bioscontractpath" ]; then
bioscontractpath="unittests/contracts/eosio.bios"
fi
wddir=eosio-ignition-wd
wdaddr=localhost:8899
wdurl=http://$wdaddr
# Manual deployers, add a line below this block that looks like:
# bioshost=$BIOS_HOSTNAME
# biosport=$BIOS_HTTP_PORT
# cnt_dir=$CONTRACT_DIR
# sys=$SYS_CONTRACT
# where $BIOS_HOSTNAME is replaced by the hostname portion of the http-server-address configured
# for the nodeos instance running to bios producer
# ------ DO NOT ALTER THE NEXT LINE -------
###INSERT envars
logfile=$wddir/bootlog.txt
if [ -e $wddir ]; then
rm -rf $wddir
fi
mkdir $wddir
step=1
echo "Initializing ignition sequence at $(date)" | tee $logfile
echo "FEATURE_DIGESTS: $FEATURE_DIGESTS" >> $logfile
echo "http-server-address = $wdaddr" > $wddir/config.ini
"$prog_wallet" --config-dir $wddir --data-dir $wddir 2> $wddir/wdlog.txt &
echo $$ > ignition_wallet.pid
echo keosd log in $wddir/wdlog.txt >> $logfile
sleep 1
ecmd () {
echo ===== Start: $step ============ >> $logfile
set -x
"programs/cli/$project-cli" --wallet-url $wdurl --url http://$bioshost:$biosport $* >> $logfile 2>&1
set +x
echo ==== End: $step ============== >> $logfile
step=$(($step + 1))
}
wcmd () {
ecmd wallet $*
}
cacmd () {
"$prog_cli" \
--wallet-url $wdurl \
--url http://$bioshost:$biosport \
system newaccount \
--transfer \
--stake-net "10000000.0000 $core_symbol" \
--stake-cpu "10000000.0000 $core_symbol" \
--stake-vote "1.0000 $core_symbol" \
--buy-ram "10000000.0000 $core_symbol" eosio $* \
>> $logfile 2>&1
ecmd system regproducer $1 $2
ecmd system voteproducer prods $1 $1
}
sleep 2
ecmd get info
wcmd create --to-console -n ignition
# Manual deployers, add a line below this block that looks like:
# wcmd import -n ignition --private-key $PRODKEY[0]
# wcmd import -n ignition --private-key $PRODKEY[1]
# ...
# wcmd import -n ignition --private-key $PRODKEY[20]
# where $BIOSKEY is replaced by the private key for the bios node
# ------ DO NOT ALTER THE NEXT LINE -------
###INSERT prodkeys
ecmd set contract eosio $bioscontractpath eosio.bios.wasm eosio.bios.abi
# Preactivate all digests
for digest in $FEATURE_DIGESTS;
do
ecmd push action eosio activate "{\"feature_digest\":\"$digest\"}" -p eosio
done
# Create required system accounts
ecmd create key --to-console
pubsyskey=`grep "^Public key:" $logfile | tail -1 | sed "s/^Public key://"`
prisyskey=`grep "^Private key:" $logfile | tail -1 | sed "s/^Private key://"`
echo eosio.* keys: $prisyskey $pubsyskey >> $logfile
wcmd import -n ignition --private-key $prisyskey
ecmd create account eosio eosio.bpay $pubsyskey $pubsyskey
ecmd create account eosio eosio.msig $pubsyskey $pubsyskey
ecmd create account eosio eosio.names $pubsyskey $pubsyskey
ecmd create account eosio eosio.ram $pubsyskey $pubsyskey
ecmd create account eosio eosio.ramfee $pubsyskey $pubsyskey
ecmd create account eosio eosio.saving $pubsyskey $pubsyskey
ecmd create account eosio eosio.stake $pubsyskey $pubsyskey
ecmd create account eosio eosio.token $pubsyskey $pubsyskey
ecmd create account eosio eosio.vpay $pubsyskey $pubsyskey
ecmd create account eosio eosio.wrap $pubsyskey $pubsyskey
ecmd set contract eosio.token unittests/contracts/eosio.token eosio.token.wasm eosio.token.abi
ecmd set contract eosio.msig unittests/contracts/eosio.msig eosio.msig.wasm eosio.msig.abi
ecmd set contract eosio.wrap unittests/contracts/eosio.wrap eosio.wrap.wasm eosio.wrap.abi
echo "===== Start: $step ============" >> $logfile
set -x
"$prog_cli" \
--wallet-url $wdurl \
--url http://$bioshost:$biosport \
push action eosio.token create "[ \"eosio\", \"10000000000.0000 $core_symbol\" ]" \
-p eosio.token \
>> $logfile 2>&1
"$prog_cli" \
--wallet-url $wdurl \
--url http://$bioshost:$biosport \
push action eosio.token issue "[ \"eosio\", \"1000000000.0000 $core_symbol\", \"memo\" ]" \
-p eosio \
>> $logfile 2>&1
set +x
echo ==== End: $step ============== >> $logfile
step=$(($step + 1))
ecmd set contract eosio unittests/contracts/eosio.system eosio.system.wasm eosio.system.abi
"$prog_cli" \
--wallet-url $wdurl \
--url http://$bioshost:$biosport \
push action eosio init "[0, \"4,$core_symbol\"]" \
-p eosio \
>> $logfile 2>&1
# Manual deployers, add a series of lines below this block that looks like:
# cacmd $PRODNAME[0] $OWNERKEY[0] $ACTIVEKEY[0]
# cacmd $PRODNAME[1] $OWNERKEY[1] $ACTiVEKEY[1]
# ...
# cacmd $PRODNAME[20] $OWNERKEY[20] $ACTIVEKEY[20]
# where $PRODNAME is the producer account name and $OWNERKEY and $ACTIVEKEY are both the producer's
# public key
# ------ DO NOT ALTER THE NEXT LINE -------
###INSERT cacmd
pkill -15 "$project-wallet"