parent
027896adac
commit
82f40d5a32
@ -0,0 +1,70 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
set -e |
||||
|
||||
declare -a DBHashList |
||||
DBHashList=( |
||||
[22816574]=f5894991e83cff54b215cda93f18bc813bb9bf9a45643c8751f09891aad1f091 |
||||
) |
||||
|
||||
DB_FILES="CURRENT MANIFEST* *.log *.ldb" |
||||
|
||||
function dbFilesHash() { |
||||
sha256sum $DB_FILES |
||||
} |
||||
|
||||
function dbRootHash() { |
||||
echo -ne "$1" | tr -s [:space:] : | sha256sum | cut -d " " -f 1 |
||||
} |
||||
|
||||
function checkRootHash() { |
||||
rootHash=$1 |
||||
for height in "${!DBHashList[@]}" |
||||
do |
||||
dbhash=${DBHashList[$height]} |
||||
if [ $dbhash == $rootHash ];then |
||||
echo "Success! The hash matches the height $height." |
||||
exit 0 |
||||
fi |
||||
done |
||||
echo "check failed!" >&2 |
||||
exit 1 |
||||
} |
||||
|
||||
print_usage() { |
||||
progname="${0##*/}" |
||||
cat <<- ENDEND |
||||
|
||||
usage: ${progname} COMMAND DBDIR |
||||
|
||||
The COMMAND are: |
||||
hash calculate root hash for snapdb |
||||
check verify root hash of snpadb |
||||
DBDIR is path of db |
||||
|
||||
Ex: |
||||
${progname} hash ./harmony_db_0 |
||||
${progname} check ./harmony_db_0 |
||||
ENDEND |
||||
} |
||||
|
||||
CMD=$1 |
||||
DBDIR=$2 |
||||
if [ -z $DBDIR ];then |
||||
print_usage |
||||
exit 1 |
||||
fi |
||||
cd $DBDIR |
||||
|
||||
case "$CMD" in |
||||
check) |
||||
rootHash=`dbRootHash "$(dbFilesHash)"` |
||||
checkRootHash $rootHash |
||||
;; |
||||
hash) |
||||
dbRootHash "$(dbFilesHash)" |
||||
;; |
||||
*) |
||||
print_usage |
||||
;; |
||||
esac |
Loading…
Reference in new issue