98 lines
2.7 KiB
Bash
98 lines
2.7 KiB
Bash
|
#! /bin/sh
|
||
|
|
||
|
data_dir="/var/run/tezos"
|
||
|
node_dir="${node_dir:=/var/run/tezos/node}"
|
||
|
client_dir="${client_dir:=/var/run/tezos/client}"
|
||
|
node="${node:=tezos-node}"
|
||
|
client="${client:=tezos-client -base-dir \"$client_dir\"}"
|
||
|
|
||
|
init() {
|
||
|
if [ -f "$data_dir/alphanet_version" ] && \
|
||
|
[ "$(cat $data_dir/alphanet_version)" \
|
||
|
!= "$(cat ~/scripts/alphanet_version)" ]; then
|
||
|
echo "\033[33mThe alphanet chain has been reset\033[0m"
|
||
|
mv "$node_dir/identity.json" /tmp
|
||
|
mv "$client_dir/public key hashs" /tmp
|
||
|
mv "$client_dir/public keys" /tmp
|
||
|
mv "$client_dir/secret keys" /tmp
|
||
|
rm -rf "$node_dir" "$client_dir"
|
||
|
mkdir -p "$node_dir" "$client_dir"
|
||
|
mv "/tmp/identity.json" "$node_dir/"
|
||
|
mv "/tmp/public key hashs" "$client_dir/"
|
||
|
mv "/tmp/public keys" "$client_dir/"
|
||
|
mv "/tmp/secret keys" "$client_dir/"
|
||
|
fi
|
||
|
if [ ! -f "$node_dir/config.json" ]; then
|
||
|
"$node" config init \
|
||
|
--data-dir "$node_dir" \
|
||
|
--rpc-addr "127.0.0.1:8732" \
|
||
|
--log-output "$node_dir/log" \
|
||
|
"$@"
|
||
|
else
|
||
|
"$node" config update \
|
||
|
--data-dir "$node_dir" \
|
||
|
"$@"
|
||
|
fi
|
||
|
if [ -f "$node_dir/identity.json" ]; then
|
||
|
if ! "$node" identity check \
|
||
|
--data-dir "$node_dir" 2> /dev/null; then
|
||
|
echo "Ignoring the current peer identity (not enough proof of work)."
|
||
|
rm "$node_dir/identity.json"
|
||
|
fi
|
||
|
fi
|
||
|
if [ ! -f "$node_dir/identity.json" ]; then
|
||
|
"$node" identity generate \
|
||
|
--data-dir "$node_dir"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
check_node() {
|
||
|
pgrep -x tezos-node > /dev/null 2>&1
|
||
|
}
|
||
|
|
||
|
run_node() {
|
||
|
TEZOS_LOG="${TEZOS_LOG:='* -> info'}"
|
||
|
if check_node; then
|
||
|
echo "Cannot run two node instances in the same container."
|
||
|
exit 1
|
||
|
fi
|
||
|
## Temporary hack until Pierre has debugged Lwt...
|
||
|
export LWT_ASYNC_METHOD=none
|
||
|
## END of temporary hack
|
||
|
exec "$node" run --data-dir "$node_dir" "$@"
|
||
|
}
|
||
|
|
||
|
stop_node() {
|
||
|
if ! check_node; then
|
||
|
echo "No tezos node to kill!"
|
||
|
exit 1 ;
|
||
|
fi
|
||
|
printf "Killing the tezos node..."
|
||
|
pkill -x tezos-node
|
||
|
sleep 1
|
||
|
while check_node; do
|
||
|
printf "."
|
||
|
sleep 1
|
||
|
done
|
||
|
echo " done."
|
||
|
}
|
||
|
|
||
|
log_node() {
|
||
|
if ! check_node ; then
|
||
|
echo
|
||
|
echo "#############################################"
|
||
|
echo "## ##"
|
||
|
echo "## Warning: The tezos node is not running! ##"
|
||
|
echo "## ##"
|
||
|
echo "#############################################"
|
||
|
echo
|
||
|
tail "$node_dir/log"
|
||
|
else
|
||
|
tail -f "$node_dir/log"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
run_client() {
|
||
|
exec $client "$@"
|
||
|
}
|