testnet.template 4.7 KB
Newer Older
1 2
#!/bin/bash

3
# set up a wallet just for holding the key used during blockchain ignition
4 5 6 7 8 9 10 11 12 13 14 15

bioshost=$BIOS_HOSTNAME
if [ -z "$bioshost" ]; then
   bioshost=localhost
fi

biosport=$BIOS_HTTP_PORT
if [ -z "$biosport" ]; then
    biosport=9776
fi

wddir=eosio-ignition-wd
P
Phil Mesnier 已提交
16 17
wdaddr=localhost:8899
wdurl=http://$wdaddr
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
# 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

P
Phil Mesnier 已提交
38
echo "http-server-address = $wdaddr" > $wddir/config.ini
39

40
programs/keosd/keosd --config-dir $wddir --data-dir $wddir 2> $wddir/wdlog.txt &
41
echo $$ > ignition_wallet.pid
42
echo keosd log in $wddir/wdlog.txt >> $logfile
43 44 45 46
sleep 1

ecmd () {
    echo ===== Start: $step ============ >> $logfile
P
Phil Mesnier 已提交
47
    echo executing: cleos --wallet-url $wdurl --url http://$bioshost:$biosport $* | tee -a $logfile
48
    echo ----------------------- >> $logfile
P
Phil Mesnier 已提交
49
    programs/cleos/cleos  --wallet-url $wdurl --url http://$bioshost:$biosport $* >> $logfile 2>&1
50 51 52 53 54 55 56 57 58
    echo ==== End: $step ============== >> $logfile
    step=$(($step + 1))
}

wcmd () {
    ecmd wallet $*
}

cacmd () {
59 60 61
    programs/cleos/cleos  --wallet-url $wdurl --url http://$bioshost:$biosport system newaccount --transfer --stake-net "10000000.0000 SYS" --stake-cpu "10000000.0000 SYS"  --buy-ram "10000000.0000 SYS" eosio $* >> $logfile 2>&1
    ecmd system regproducer $1 $2
    ecmd system voteproducer prods $1 $1
62 63 64 65 66 67
}

sleep 2
ecmd get info

wcmd create -n ignition
68

69
# Manual deployers, add a line below this block that looks like:
70 71
#    wcmd import -n ignition --private-key $PRODKEY[0]
#    wcmd import -n ignition --private-key $PRODKEY[1]
72
#    ...
73
#    wcmd import -n ignition --private-key $PRODKEY[20]
74 75
# where $BIOSKEY is replaced by the private key for the bios node
# ------ DO NOT ALTER THE NEXT LINE -------
76
###INSERT prodkeys
77

78
ecmd set contract eosio contracts/eosio.bios eosio.bios.wast eosio.bios.abi
79

80 81 82 83 84
# Create required system accounts
ecmd create key
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
85
wcmd import -n ignition --private-key $prisyskey
86 87 88 89 90 91 92 93 94
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
95
ecmd create account eosio eosio.sudo $pubsyskey $pubsyskey
96

97 98 99
ecmd set contract eosio.token contracts/eosio.token eosio.token.wast eosio.token.abi
ecmd set contract eosio.msig contracts/eosio.msig eosio.msig.wast eosio.msig.abi
ecmd set contract eosio.sudo contracts/eosio.sudo eosio.sudo.wast eosio.sudo.abi
100

101
echo ===== Start: $step ============ >> $logfile
102 103
echo executing: cleos --wallet-url $wdurl --url http://$bioshost:$biosport push action eosio.token create '[ "eosio", "10000000000.0000 SYS" ]' -p eosio.token | tee -a $logfile
echo executing: cleos --wallet-url $wdurl --url http://$bioshost:$biosport push action eosio.token issue '[ "eosio", "1000000000.0000 SYS", "memo" ]' -p eosio | tee -a $logfile
104
echo ----------------------- >> $logfile
105 106
programs/cleos/cleos --wallet-url $wdurl --url http://$bioshost:$biosport push action eosio.token create '[ "eosio", "10000000000.0000 SYS" ]' -p eosio.token >> $logfile 2>&1
programs/cleos/cleos --wallet-url $wdurl --url http://$bioshost:$biosport push action eosio.token issue '[ "eosio", "1000000000.0000 SYS", "memo" ]' -p eosio >> $logfile 2>&1
107 108 109
echo ==== End: $step ============== >> $logfile
step=$(($step + 1))

110
ecmd set contract eosio contracts/eosio.system eosio.system.wast eosio.system.abi
111

112 113 114 115 116 117 118 119 120
# 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
121

122
pkill -15 keosd