SHARE
TWEET

Untitled

a guest Jun 26th, 2017 1,573 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. blocks_count=`ls | sort -n | grep -o '[0-9]*' | wc -l` # посчитать количество "блоков" с транзакциями
  2. errors=0 # задать переменную, считающую несоответствия
  3.  
  4. for ((file=1;file<=$blocks_count;file++)) # пройдёмся по всем файлам подряд
  5. do
  6.     if [ $file != 1 ]; then # первый не трогаем
  7.         hash_written=`tail -1 "$file.txt"` # читаем последнюю строку текущего файла
  8.         hash_calculated=`sha256sum $(($file-1)).txt | awk '{print $1}'` # считаем хэш предыдущего
  9.         if [ "$hash_written" != "$hash_calculated" ]; then # сравниваем
  10.             ((errors++)) # если хэши не равны, инкрементим переменную
  11.         fi
  12.     fi
  13. done
  14.  
  15. if [ $errors == 0 ]; then
  16.     final_hash=`tail -1 final.txt` # читаем финальный хэш
  17.     hash_calculated=`sha256sum $(($blocks_count)).txt | awk '{print $1}'` # считаем хэш последнего файла
  18.     if [ "$final_hash" == "$hash_calculated" ]; then # сравниваем, и если всё в порядке, рапортуем в stdout
  19.         echo "$blocks_count blocks"
  20.         echo "chain is flawless"
  21.         echo "final hash = $final_hash"
  22.     fi
  23. else
  24.     echo "chain is corrupted" # или ругаемся, если в цепи есть ошибки
  25. fi
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top