From 56c0598d6baca409310dc010e43b2d9cd5de0d45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20F=C3=BCrderer?= Date: Wed, 20 Mar 2024 23:00:11 +0100 Subject: [PATCH] Add a script to show all block messages --- list-block-messages.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 list-block-messages.py diff --git a/list-block-messages.py b/list-block-messages.py new file mode 100755 index 0000000..e4674c5 --- /dev/null +++ b/list-block-messages.py @@ -0,0 +1,34 @@ +#! /usr/bin/env python3 + +import sys, time + +def prepare_message(bin_message): + length = 32 + while length > 0 and bin_message[length-1] == 0: + length -= 1 + bin_message = bin_message[0:length] + for byte in bin_message: + if byte < 32: + return "" + try: + return bin_message.decode() + except UnicodeDecodeError: + return "" + +def main(): + try: + with open("blockchain", "rb") as f: + while True: + block = f.read(292) + if len(block) != 292: + break + timestamp = int.from_bytes(block[244:252], "big") + time_info = time.strftime("%d.%m.%Y %H:%M.%S", time.localtime(timestamp)) + message = prepare_message(block[148:180]) + print(f"[{time_info}] {message}") + except FileNotFoundError: + print("Found no blockchain file", file=sys.stderr) + exit(1) + +if __name__ == '__main__': + main()