[Dev] ブロックの経過時間を取得してみる

in japanese •  yesterday  (edited)
  • 最後に生成したブロックの番号を取得
    BLOCK=$(curl -s --data '{"jsonrpc":"2.0", "method":"database_api.find_witnesses", "params": {"owners":["yasu.witness"]}, "id":1}' https://api.steemit.com|jq ".result.witnesses[0].last_confirmed_block_num")

  • ブロックのタイムスタンプを取得
    TIMESTAMP=$(curl -s --data '{"jsonrpc":"2.0", "method":"condenser_api.get_block", "params":['$BLOCK'], "id":1}' https://api.steemit.com|jq -r ".result.timestamp")

  • 経過時間を取得
    DIFF=$(( $(date +%s) - $(date --utc --date $TIMESTAMP +%s) ))

  • 分を取得
    echo $DIFF | awk '{print $1 / 60 " min"}'

image.png

while true; do
BLOCK=$(curl -s --data '{"jsonrpc":"2.0", "method":"database_api.find_witnesses", "params": {"owners":["yasu.witness"]}, "id":1}' https://api.steememory.com|jq ".result.witnesses[0].last_confirmed_block_num")
TIMESTAMP=$(curl -s --data '{"jsonrpc":"2.0", "method":"condenser_api.get_block", "params":['$BLOCK'], "id":1}' https://api.steememory.com|jq -r  ".result.timestamp")
DIFF=$(( $(date +%s) - $(date --utc --date $TIMESTAMP +%s) ))
echo $DIFF | awk -v block=$BLOCK '{printf "%s Block Age %.1f min\n", block, $1 / 60}'
sleep 10
done

image.png

少し改善

while true; do
BLOCK=$(curl -s --data '{"jsonrpc":"2.0", "method":"database_api.find_witnesses", "params": {"owners":["yasu.witness"]}, "id":1}' https://api.steememory.com|jq ".result.witnesses[0].last_confirmed_block_num")
TIMESTAMP=$(curl -s --data '{"jsonrpc":"2.0", "method":"condenser_api.get_block", "params":['$BLOCK'], "id":1}' https://api.steememory.com|jq -r  ".result.timestamp")
DIFF=$(( $(date +%s) - $(date --utc --date $TIMESTAMP +%s) ))
echo $DIFF | awk -v block=$BLOCK -v sec=$(($DIFF%60)) -v min=$(($DIFF%3600/60)) -v hours=$(($DIFF/3600)) '{printf "%s Block Age %d:%02d:%02d\n", block, hours, min, sec}'
sleep 10
done
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!