├── __init__.py ├── .gitignore ├── examples ├── write-to-csv-analyze-with-R │ ├── logs │ │ └── errors-hive-watcher-write-to-csv.log │ ├── stats │ │ ├── image-timestamp_delay.png │ │ ├── image-timestamp_delay_hist.png │ │ ├── podping_posts_per_minute.png │ │ ├── Not_podping_posts_per_minute.png │ │ ├── image-timestamp_delay-non-podping.png │ │ ├── image-timestamp_delay_hist-non-podping.png │ │ └── summaryStats.ndjson │ ├── README.md │ ├── hive-watcher-write-to-csv.py │ └── visualize-data.R └── php │ └── podping_watcher.php ├── pew.mp3 ├── hive-rc-watcher.py ├── test.sh ├── watch-and-publish-to-ipfs.sh ├── pyproject.toml ├── monitor-accounts.py ├── LICENSE ├── README.md ├── async-watcher.py ├── simple-watcher.py ├── logs ├── readme.md ├── original-filtered-without-disconnects.log ├── verification-history.log ├── fifteen-minutes.log ├── hour.log ├── very-first-trans.log └── oringal-with-disconnects.log ├── config └── __init__.py └── hive-watcher.py /__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | 3 | __pycache__ 4 | -------------------------------------------------------------------------------- /examples/write-to-csv-analyze-with-R/logs/errors-hive-watcher-write-to-csv.log: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pew.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Podcastindex-org/podping-hivewatcher/HEAD/pew.mp3 -------------------------------------------------------------------------------- /examples/write-to-csv-analyze-with-R/stats/image-timestamp_delay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Podcastindex-org/podping-hivewatcher/HEAD/examples/write-to-csv-analyze-with-R/stats/image-timestamp_delay.png -------------------------------------------------------------------------------- /examples/write-to-csv-analyze-with-R/stats/image-timestamp_delay_hist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Podcastindex-org/podping-hivewatcher/HEAD/examples/write-to-csv-analyze-with-R/stats/image-timestamp_delay_hist.png -------------------------------------------------------------------------------- /examples/write-to-csv-analyze-with-R/stats/podping_posts_per_minute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Podcastindex-org/podping-hivewatcher/HEAD/examples/write-to-csv-analyze-with-R/stats/podping_posts_per_minute.png -------------------------------------------------------------------------------- /examples/write-to-csv-analyze-with-R/stats/Not_podping_posts_per_minute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Podcastindex-org/podping-hivewatcher/HEAD/examples/write-to-csv-analyze-with-R/stats/Not_podping_posts_per_minute.png -------------------------------------------------------------------------------- /examples/write-to-csv-analyze-with-R/stats/image-timestamp_delay-non-podping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Podcastindex-org/podping-hivewatcher/HEAD/examples/write-to-csv-analyze-with-R/stats/image-timestamp_delay-non-podping.png -------------------------------------------------------------------------------- /examples/write-to-csv-analyze-with-R/stats/image-timestamp_delay_hist-non-podping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Podcastindex-org/podping-hivewatcher/HEAD/examples/write-to-csv-analyze-with-R/stats/image-timestamp_delay_hist-non-podping.png -------------------------------------------------------------------------------- /hive-rc-watcher.py: -------------------------------------------------------------------------------- 1 | # Code to watch an account's RC level 2 | 3 | from beem import Hive 4 | from beem.account import Account 5 | 6 | 7 | hive = Hive() 8 | 9 | account = Account('hivehydra',blockchain_instance=hive,full=True) 10 | 11 | print(account) -------------------------------------------------------------------------------- /test.sh: -------------------------------------------------------------------------------- 1 | docker run \ 2 | --env MEESEEKER_PUBLISH_OP_CUSTOM_ID=true \ 3 | --env MEESEEKER_EXPIRE_KEYS=300 \ 4 | --name customjsons \ 5 | --env MEESEEKER_STREAM_MODE=head \ 6 | -d -p 6380:6379 inertia/meeseeker:latest meeseeker sync hive:op:custom_json:podping -------------------------------------------------------------------------------- /watch-and-publish-to-ipfs.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | while read -r line; do 4 | echo "${line}" 5 | if jq -e . >/dev/null 2>&1 <<<"${line}" 6 | then 7 | echo "${line}" | ipfs pubsub pub -- "org.podcastindex.podping.Podping.json" 8 | fi 9 | done < <(poetry run python3 -u hive-watcher.py --json --old 1) 10 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "hive-watcher" 3 | version = "0.3.1" 4 | description = "" 5 | authors = ["Your Name "] 6 | license = "MIT" 7 | 8 | [tool.poetry.dependencies] 9 | lighthive = "0.4.2" 10 | python = "^3.8" 11 | pyzmq = "^24.0.0" 12 | pendulum = "^2.1.2" 13 | beem = "^0.24.26" 14 | 15 | [tool.poetry.dev-dependencies] 16 | black = "^22.0.0" 17 | isort = "^5.8.0" 18 | 19 | [build-system] 20 | requires = ["poetry-core>=1.0.0"] 21 | build-backend = "poetry.core.masonry.api" 22 | 23 | [tool.black] 24 | target-version = ['py37', 'py38', 'py39', 'py310', 'py311'] 25 | 26 | [tool.isort] 27 | profile = "black" 28 | multi_line_output = 3 29 | -------------------------------------------------------------------------------- /monitor-accounts.py: -------------------------------------------------------------------------------- 1 | # Simple code to loop through accounts of interest and report their 2 | # Resources 3 | 4 | 5 | from beem import Hive 6 | from beem.account import Account 7 | import time 8 | 9 | accs = [ 10 | "podping", 11 | "podping.aaa", 12 | "podping.bbb", 13 | "podping.ccc", 14 | "podping.spk", 15 | "podping.test", 16 | "podping.gittest", 17 | "podping.bol", 18 | "brianoflondon", 19 | "v4vapp", 20 | ] 21 | 22 | 23 | def main(): 24 | 25 | last_result = [] 26 | new_result = [] 27 | for acc in accs: 28 | mana_bar = Account(acc).get_rc_manabar() 29 | print(f"{acc:<16} {mana_bar['current_pct']:>5.1f}") 30 | time.sleep(5*60) 31 | 32 | 33 | if __name__ == "__main__": 34 | main() 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021-2023 Podcastindex.org 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /examples/php/podping_watcher.php: -------------------------------------------------------------------------------- 1 | [podping-stats](https://github.com/seakintruth/podping-stats) for (planned) further development of these scripts into a mastodon toot bot about these statistics, and/or visualization dashboards on websites. 61 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # podping-hivewatcher 2 | A watcher script for the hive backed podping network. 3 | 4 | ## Blockchain Watcher (hive-watcher.py) 5 | 6 | The stream of *podpings* can be watched with the ```hive-watcher.py``` code. 7 | 8 | ``` 9 | usage: hive-watcher [options] 10 | 11 | PodPing - Watch the Hive Blockchain for notifications of new Podcast Episodes This code will run until terminated 12 | reporting every notification of a new Podcast Episode sent to the Hive blockchain by any PodPing servers. 13 | 14 | With default arguments it will print to the StdOut a log of each new URL that has updated interspersed with 15 | summary lines every 5 minutes that list the number of PodPings and the number of other 'custom_json' operations 16 | seen on the blockchain. This interval can be set with the --reports command line. 17 | 18 | optional arguments: 19 | -h, --help show this help message and exit 20 | -H, --history-only Report history only and exit 21 | -d, --diagnostic Show diagnostic posts written to the blockchain 22 | -r , --reports Time in MINUTES between periodic status reports, use 0 for no periodic reports 23 | -s , --socket : Socket to send each new url to 24 | -t, --test Use a test net API 25 | -q, --quiet Minimal output 26 | -v, --verbose Lots of output 27 | 28 | -b , --block Hive Block number to start replay at or use: 29 | -o , --old Time in HOURS to look back up the chain for old pings (default is 0) 30 | -y , --startdate <%Y-%m-%d %H:%M:%S> Date/Time to start the history 31 | ``` 32 | 33 | 34 | ## Podping Watcher (hive-watcher.py) 35 | 36 | The watcher script is how you see which podcast feed urls have signaled an update. 37 | 38 | This is the easiest way to watch the blockchain for feed updates. Simply do the following: 39 | 40 | 1. Clone this repo. 41 | 2. Switch to the `hive-watcher` sub-directory. 42 | 3. Make sure python3, pip3 and [poetry](https://python-poetry.org/docs/#installation) are installed. 43 | 4. Run `poetry install`. 44 | 5. Launch the watcher script like this: `poetry run python3 -u ./hive-watcher.py --json` 45 | 46 | Each time a feed update notification is detected on the blockchain, the full json payload of the feed update is printed to STDOUT on a new line. Each 47 | FQDN that is output represents a new episode that has been published, or some other significant update to that podcast feed. 48 | 49 | You can watch this output as a way to signal your system to re-parse a podcast feed. Or you can use it as a starting template to 50 | develop a more customized script for your environment. It's dead simple! 51 | 52 | There is an example PHP script [here](examples/php/podping_watcher.php) that you can pipe this output to as a way to update your system every 53 | time a new podping url comes through. You would do that like this: 54 | 55 | ```bash 56 | poetry run python3 -u ./hive-watcher.py --json --unix_epoch=$((`date +'%s'` - 30)) | php ../examples/podping_watcher.php 57 | ``` 58 | 59 | The `--unix_epoch` argument above tells the hive-watcher script to look back 30 seconds in the past and start watching from that point in time. You 60 | can adjust that argument value to look back to any arbitrary point in time and start catching up from there. -------------------------------------------------------------------------------- /async-watcher.py: -------------------------------------------------------------------------------- 1 | import asyncio 2 | import json 3 | import logging 4 | 5 | from datetime import datetime, timedelta 6 | from ssl import OP_SINGLE_DH_USE 7 | from timeit import default_timer as timer 8 | from typing import Any, List, Optional 9 | 10 | from privex.steem import SteemAsync 11 | from privex.steem.objects import Block, Operation 12 | from pydantic import BaseModel 13 | from pydantic.fields import Field 14 | 15 | 16 | # Experimental Async version of the podping-watcher 17 | # Brian of London 18 | 19 | 20 | log = logging.getLogger("privex.steem") 21 | log.level = logging.ERROR 22 | log.setLevel(logging.ERROR) 23 | 24 | 25 | class PodpingJson(BaseModel): 26 | version: str 27 | num_urls: int 28 | reason: str 29 | urls: List[str] 30 | 31 | 32 | class PodpingData(BaseModel): 33 | required_auths: List[str] 34 | required_posting_auths: List[str] 35 | id: str 36 | payload: PodpingJson = Field(alias="json") 37 | 38 | 39 | class PodpingOp(BaseModel): 40 | op_txid: str 41 | op_type: str 42 | op_block_num: int 43 | timestamp: Optional[datetime] 44 | age: Optional[timedelta] 45 | data: PodpingData 46 | 47 | def __init__(__pydantic_self__, **data: Any) -> None: 48 | if type(data["data"]["json"]) == str: 49 | data["data"]["json"] = PodpingJson.parse_raw(data["data"]["json"]) 50 | # if type(data["timestamp"]) == str: 51 | # data["timestamp"] = datetime.strptime(data["timestamp"], "%Y-%m-%dT%H:%M:%S") 52 | super().__init__(**data) 53 | 54 | 55 | class OpFiltered(BaseModel, Operation): 56 | pass 57 | 58 | 59 | rpc_nodes = [ 60 | "https://api.deathwing.me", 61 | "https://hive-api.3speak.tv", 62 | "https://hived.emre.sh", 63 | "https://rpc.ausbit.dev", 64 | "https://hive-api.arcange.eu", 65 | "https://api.hive.blog", 66 | "https://api.openhive.network", 67 | "https://anyx.io", 68 | "https://hive-api.3speak.tv", 69 | ] 70 | 71 | 72 | async def main(): 73 | tasks = [] 74 | try: 75 | s = SteemAsync(rpc_nodes=rpc_nodes) 76 | stream = s.stream_blocks(before=100, end_after=0, wait_block=2) 77 | while True: 78 | try: 79 | async for b in stream: 80 | asyncio.create_task(find_all_podpings(b)) 81 | 82 | except KeyboardInterrupt: 83 | raise KeyboardInterrupt 84 | except asyncio.CancelledError: 85 | raise asyncio.CancelledError 86 | 87 | except KeyboardInterrupt as ex: 88 | s.stop_streaming() 89 | return 90 | 91 | except asyncio.CancelledError as ex: 92 | s.stop_streaming() 93 | return 94 | 95 | 96 | async def find_all_podpings(b: Block): 97 | for post in b.transactions: 98 | for op in post.operations: 99 | my_op = OpFiltered.parse_obj(op) 100 | if op.op_type == "custom_json": 101 | id = op.data.get("id") 102 | # print(id) 103 | 104 | if id.startswith("podping"): 105 | pp = PodpingOp.parse_obj(op) 106 | pp.timestamp = datetime.strptime(b.timestamp, "%Y-%m-%dT%H:%M:%S") 107 | pp.age = datetime.utcnow() - pp.timestamp 108 | print(f"{pp.age} | {pp.op_txid}") 109 | for url in pp.data.payload.urls: 110 | print(f"--> {url}") 111 | 112 | 113 | asyncio.run(main()) 114 | -------------------------------------------------------------------------------- /simple-watcher.py: -------------------------------------------------------------------------------- 1 | # simple-watcher.py 2 | # 3 | # Simple version of Hive Podping watcher - no options, just runs 4 | # The only external library needed is "beem" - pip install beem 5 | # Beem is the official Hive accessing library for Python. 6 | # 7 | # Version 1.1 8 | 9 | from datetime import datetime, timedelta 10 | from typing import Set 11 | import json 12 | 13 | import beem 14 | from beem.account import Account 15 | from beem.blockchain import Blockchain 16 | 17 | 18 | WATCHED_OPERATION_IDS = ["podping", "pp_"] 19 | LIVETEST_WATCHED_OPERATION_IDS = ["podping-livetest", "pplt_"] 20 | 21 | 22 | def get_allowed_accounts(acc_name="podping") -> Set[str]: 23 | """get a list of all accounts allowed to post by acc_name (podping) 24 | and only react to these accounts""" 25 | 26 | # This is giving an error if I don't specify api server exactly. 27 | # TODO reported as Issue on Beem library https://github.com/holgern/beem/issues/301 28 | h = beem.Hive(node="https://api.hive.blog") 29 | 30 | master_account = Account(acc_name, blockchain_instance=h, lazy=True) 31 | 32 | return set(master_account.get_following()) 33 | 34 | 35 | def allowed_op_id(operation_id: str) -> bool: 36 | """Checks if the operation_id is in the allowed list""" 37 | for id in WATCHED_OPERATION_IDS: 38 | if operation_id.startswith(id): 39 | return True 40 | 41 | 42 | def block_num_back_in_minutes(blockchain: Blockchain, m: int) -> int: 43 | """Takes in a time in minutes and returns a block_number to start watching from""" 44 | back_time = datetime.utcnow() - timedelta(minutes=m) 45 | block_num = blockchain.get_estimated_block_num(back_time) 46 | return block_num 47 | 48 | 49 | def main(): 50 | """Outputs URLs one by one as they appear on the Hive Podping stream""" 51 | allowed_accounts = get_allowed_accounts() 52 | hive = beem.Hive() 53 | blockchain = Blockchain(mode="head", blockchain_instance=hive) 54 | 55 | # Look back 15 minutes 56 | start_block = block_num_back_in_minutes(blockchain, 15) 57 | 58 | # If you want instant confirmation, you need to instantiate 59 | # class:beem.blockchain.Blockchain with mode="head", 60 | # otherwise, the call will wait until confirmed in an irreversible block. 61 | # noinspection PyTypeChecker 62 | # Filter only for "custom_json" operations on Hive. 63 | stream = blockchain.stream( 64 | opNames=["custom_json"], raw_ops=False, threading=False, start=start_block 65 | ) 66 | 67 | for post in stream: 68 | # Filter only on post ID from the list above. 69 | if allowed_op_id(post["id"]): 70 | # Filter by the accounts we have authorised to podping 71 | if set(post["required_posting_auths"]) & allowed_accounts: 72 | data = json.loads(post.get("json")) 73 | if data.get("iris"): 74 | for iri in data.get("iris"): 75 | print(iri) 76 | elif data.get("urls"): 77 | for url in data.get("urls"): 78 | print(url) 79 | elif data.get("url"): 80 | print(data.get("url")) 81 | 82 | 83 | if __name__ == "__main__": 84 | # Runs until terminated with Ctrl-C 85 | # The main readers is reliable however sometimes the Hive network temporarily gives transient 86 | # errors while fetching blocks. These almost always clear up. 87 | while True: 88 | try: 89 | main() 90 | except Exception as ex: 91 | print(ex) 92 | main() 93 | -------------------------------------------------------------------------------- /logs/readme.md: -------------------------------------------------------------------------------- 1 | # Temporary API Disconnects 2 | 3 | Sometimes, while watching the Hive blockchain live, the watcher may experience issues with an API (RPC) server. When that happens, the ```hive-watcher.py``` output may look like this: 4 | 5 | ``` 6 | 2021-05-18T16:06:44+0300 - INFO root MainThread : - 2021-05-18 12:40:45+00:00 - Podpings: 10 / 733 - Count: 676 - BlockNum: 53997996 7 | 2021-05-18T16:06:48+0300 - INFO root MainThread : - 2021-05-18 12:41:48+00:00 - Podpings: 4 / 737 - Count: 692 - BlockNum: 53997997 8 | 2021-05-18T16:06:49+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 9 | 2021-05-18T16:06:49+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 10 | 11 | 2021-05-18T16:06:49+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 12 | 13 | 2021-05-18T16:06:50+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 14 | 2021-05-18T16:06:50+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 15 | 16 | 2021-05-18T16:06:50+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 17 | 18 | 2021-05-18T16:06:51+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 19 | 2021-05-18T16:06:51+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 20 | 21 | 2021-05-18T16:06:51+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 22 | 23 | 2021-05-18T16:06:53+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 24 | 2021-05-18T16:06:53+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 25 | 26 | 2021-05-18T16:06:53+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 27 | 28 | 2021-05-18T16:06:54+0300 - INFO root MainThread : - 2021-05-18 12:42:51+00:00 - Podpings: 4 / 741 - Count: 624 - BlockNum: 53998000 29 | 2021-05-18T16:06:55+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 30 | ``` 31 | 32 | This is nothing to worry about. In this folder are three files: 33 | 34 | - [Original log with disconnects](https://github.com/Podcastindex-org/podping.cloud/blob/simple-watcher/hive-watcher/logs/oringal-with-disconnects.log) 35 | - [Original log filtered showing only 1 minute reports](https://github.com/Podcastindex-org/podping.cloud/blob/simple-watcher/hive-watcher/logs/original-filtered-without-disconnects.log) 36 | 37 | - [Output run later with a replay of the chain](https://github.com/Podcastindex-org/podping.cloud/blob/simple-watcher/hive-watcher/logs/verification-history.log) 38 | 39 | It is easy to verify that the reported output live, despite temporary network interference and drop outs, matches the report from a replay of the blockchain later. No pings were missed in the live example. Whilst the logs aren't identical because aligning the minute by minute boundary is had to do on replay, however the totals are within a few pings arrising from a slightly different replay time window. 40 | 41 | ## Live filterd: 42 | ``` 43 | 2021-05-18 13:14:21+00:00 - Podpings: 5 / 989 - Count: 574 - BlockNum: 53998149 44 | 2021-05-18 13:15:24+00:00 - Podpings: 12 / 1001 - Count: 599 - BlockNum: 53998170 45 | 2021-05-18 13:16:27+00:00 - Podpings: 7 / 1008 - Count: 612 - BlockNum: 53998191 46 | 2021-05-18 13:17:30+00:00 - Podpings: 10 / 1018 - Count: 610 - BlockNum: 53998212 47 | 2021-05-18 13:18:33+00:00 - Podpings: 10 / 1028 - Count: 659 - BlockNum: 53998233 48 | 49 | 1 Hour total: 461 50 | ``` 51 | 52 | ## Replay: 53 | ``` 54 | 2021-05-18 13:14:15+00:00 - Podpings: 7 / 426 - Count: 583 - BlockNum: 53998147 - Time Delta: 0:03:29.226417 55 | 2021-05-18 13:15:18+00:00 - Podpings: 11 / 437 - Count: 569 - BlockNum: 53998168 - Time Delta: 0:02:26.651736 56 | 2021-05-18 13:16:21+00:00 - Podpings: 9 / 446 - Count: 599 - BlockNum: 53998189 - Time Delta: 0:01:23.672277 57 | 2021-05-18 13:17:24+00:00 - Podpings: 9 / 455 - Count: 637 - BlockNum: 53998210 - Time Delta: 0:00:20.696488 58 | 2021-05-18 13:17:51+00:00 - Podpings: 2 / 457 - Count: 272 - BlockNum: 53998219 - Time Delta: 0:00:01.657393 59 | block_num: 53998219 60 | Finished catching up at block_num: 53998219 in 0:00:18.011789 61 | 62 | 1 Hour total: 457 63 | ``` -------------------------------------------------------------------------------- /examples/write-to-csv-analyze-with-R/hive-watcher-write-to-csv.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Modeled after the simple-watcher.py V1.0 3 | # modified to write to csv file 'Data.csv' 4 | # 5 | # Simple version of Hive Podping watcher - no options, just runs 6 | # The only external library needed is "beem" - pip install beem 7 | # Beem is the official Hive accessing library for Python. 8 | # 9 | # Version 1.0 10 | 11 | from typing import Set 12 | import json 13 | import os 14 | import logging 15 | import sys 16 | import time 17 | import datetime 18 | import csv 19 | 20 | import beem 21 | from beem.account import Account 22 | from beem.blockchain import Blockchain 23 | 24 | WATCHED_OPERATION_IDS = ["podping", "hive-hydra"] 25 | 26 | def get_allowed_accounts(acc_name="podping") -> Set[str]: 27 | """get a list of all accounts allowed to post by acc_name (podping) 28 | and only react to these accounts""" 29 | 30 | # This is giving an error if I don't specify api server exactly. 31 | # TODO reported as Issue on Beem library https://github.com/holgern/beem/issues/301 32 | h = beem.Hive(node="https://api.hive.blog") 33 | master_account = Account(acc_name, blockchain_instance=h, lazy=True) 34 | return set(master_account.get_following()) 35 | 36 | def allowed_op_id(operation_id) -> bool: 37 | """Checks if the operation_id is in the allowed list""" 38 | if operation_id in WATCHED_OPERATION_IDS: 39 | return True 40 | else: 41 | return False 42 | 43 | def configure_logging(): 44 | try: # logging errors should never throw errors so: 45 | log_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)),"logs") 46 | log_name = os.path.splitext(os.path.basename(os.path.abspath(__file__)))[0] + ".log" 47 | if not os.path.exists(log_dir): 48 | os.mkdir(log_dir) 49 | logging.basicConfig(filename=os.path.join(log_dir,"errors-"+log_name), encoding='utf-8', level=logging.ERROR) 50 | except: 51 | try: 52 | logging.basicConfig(filename="errors-"+log_name, encoding='utf-8', level=logging.ERROR) 53 | except: 54 | logging.basicConfig(filename="errors.log", encoding='utf-8', level=logging.ERROR) 55 | 56 | def write_post_to_csv(post,filepath_data): 57 | fieldnames = [ 58 | 'timestamp_seen','timestamp_post', 59 | 'id','type','trx_id','trx_num','block_num', 60 | 'required_auths','required_posting_auths','json' 61 | ] 62 | # build a new custom dictionary from the post 63 | post_row={ 64 | 'timestamp_seen':repr(time.time()), 65 | 'timestamp_post':repr(post.get("timestamp").timestamp()), 66 | 'id':str(post.get("id")), 67 | 'type':str(post.get("type")), 68 | 'trx_id':str(post.get("trx_id")), 69 | 'trx_num':repr(post.get("trx_num")), 70 | 'block_num':repr(post.get("block_num")), 71 | 'required_auths':repr(post.get("required_auths")), 72 | 'required_posting_auths':repr(post.get("required_posting_auths")), 73 | 'json':repr(json.dumps(json.loads(post.get("json")), indent=4)) 74 | } 75 | # csv writer, see: https://docs.python.org/3/library/csv.html 76 | if os.path.isfile(filepath_data) : 77 | with open(filepath_data,'a', newline='') as csvfile: 78 | writer = csv.DictWriter(csvfile, fieldnames=fieldnames) 79 | writer.writerow(post_row) 80 | csvfile.close 81 | else : 82 | with open(filepath_data,'w', newline='') as csvfile: 83 | writer = csv.DictWriter(csvfile, fieldnames=fieldnames) 84 | writer.writeheader() 85 | writer.writerow(post_row) 86 | csvfile.close 87 | 88 | def main(): 89 | # setup file output 90 | configure_logging() 91 | """ Outputs URLs one by one as they appear on the Hive Podping stream """ 92 | allowed_accounts = get_allowed_accounts() 93 | hive = beem.Hive() 94 | blockchain = Blockchain(mode="head", blockchain_instance=hive) 95 | # If you want instant confirmation, you need to instantiate 96 | # class:beem.blockchain.Blockchain with mode="head", 97 | # otherwise, the call will wait until confirmed in an irreversible block. 98 | # noinspection PyTypeChecker 99 | # Filter only for "custom_json" operations on Hive. 100 | stream = blockchain.stream( 101 | opNames=["custom_json"], raw_ops=False, threading=False, thread_num=4 102 | ) 103 | for post in stream: 104 | try: 105 | # Filter only on post ID from the list above. 106 | if allowed_op_id(post["id"]): 107 | # Filter by the accounts we have authorised to podping 108 | if set(post["required_posting_auths"]) & allowed_accounts: 109 | write_post_to_csv(post,'data.csv') 110 | else : # Write out the same data to the data-unauthorized.csv file... 111 | write_post_to_csv(post,'data-unauthorized.csv') 112 | else : # the firehose - all other hive 'custom json' posts to data-not-podping_firehose.csv 113 | write_post_to_csv(post,'data-not-podping_firehose.csv') 114 | except: # catch *all* errors 115 | logging.error(sys.exc_info()[0]) 116 | 117 | if __name__ == "__main__": 118 | # Runs until terminated with Ctrl-C 119 | main() 120 | -------------------------------------------------------------------------------- /examples/write-to-csv-analyze-with-R/visualize-data.R: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env Rscript 2 | # Requires installation of R, at a minimum for apt use: 3 | # $sudo apt install r-base r-base-core r-recommended 4 | # Version 0.1 5 | if (!require("pacman")) install.packages("pacman") 6 | pacman::p_load( 7 | psych, ggplot2, table1, patchwork, 8 | data.table, dplyr,tidyverse, anytime, 9 | rjson, stringr, loggit, tidygraph 10 | ) 11 | if (file.exists("data.csv")) { 12 | podping_data <- fread(file="data.csv") 13 | } 14 | if (file.exists("data-unauthorized.csv")) { 15 | podping_unathorized_data <- fread(file="data-unauthorized.csv") 16 | } 17 | if (file.exists("data-not-podping_firehose.csv")) { 18 | not_podping_data <- fread(file="data-not-podping_firehose.csv") 19 | } 20 | if (exists("podping_unathorized_data")) { 21 | # For now not enough to bother analyzing seperetly 22 | not_podping_data <- rbind(not_podping_data,podping_unathorized_data) 23 | } 24 | count_not_podping_data_unique <- data.table::uniqueN(not_podping_data) 25 | count_podping_data_unique <- data.table::uniqueN(podping_data) 26 | 27 | minutes_watching <- 28 | (max(podping_data$timestamp_seen)-min(podping_data$timestamp_seen)) / 60 29 | # for a vector image could use: postscript(file="image-timestamp_delay.ps") 30 | time_stamp_delays <- podping_data$timestamp_seen-podping_data$timestamp_post 31 | png(file="stats/image-timestamp_delay.png", 32 | width=900, height=600) 33 | plot( 34 | x=podping_data$timestamp_post, 35 | y=time_stamp_delays, 36 | main="Scatter plot of watcher delay in seconds" 37 | ) 38 | dev.off() 39 | png(file="stats/image-timestamp_delay_hist.png", 40 | width=900, height=600) 41 | hist( 42 | time_stamp_delays, 43 | main="Histogram of watcher delay in seconds" 44 | ) 45 | dev.off() 46 | 47 | time_stamp_delays <- not_podping_data$timestamp_seen-not_podping_data$timestamp_post 48 | png(file="stats/image-timestamp_delay-non-podping.png", 49 | width=900, height=600) 50 | plot( 51 | x=not_podping_data$timestamp_post, 52 | y=time_stamp_delays, 53 | main="Scatter plot of watcher delay in seconds - non-podping posts" 54 | ) 55 | dev.off() 56 | png(file="stats/image-timestamp_delay_hist-non-podping.png", 57 | width=900, height=600) 58 | hist( 59 | time_stamp_delays, 60 | main="Histogram of watcher delay in seconds - non-podping posts" 61 | ) 62 | dev.off() 63 | 64 | # Posts per minute # 65 | #################### 66 | write_plot_posts_per_min <- function(data_vals, chart_title) { 67 | data_vals$posix_time_post <- data_vals$timestamp_post %>% 68 | anytime() %>% 69 | as.POSIXct() 70 | # create bins 71 | by_mins_podpings <- cut.POSIXt(data_vals$posix_time_post,"1 mins") 72 | podping_data_mins <- split(data_vals$block_num, by_mins_podpings) 73 | per_min_chart_data <- lapply(podping_data_mins,FUN=length) 74 | per_min_chart_data_frame <- cbind( 75 | as.data.frame(anytime(names(per_min_chart_data))), 76 | as.data.frame(unlist(per_min_chart_data)) 77 | ) 78 | names(per_min_chart_data_frame) <- c("time_bin","frequency") 79 | png(file=paste0("stats/",chart_title,".png"), 80 | width=900, height=600) 81 | plot( 82 | x=per_min_chart_data_frame$time_bin, 83 | y=per_min_chart_data_frame$frequency, 84 | type = "l", 85 | xlab="Time", 86 | ylab="Posts / Minute", 87 | main=paste0(chart_title, "Post Frequency") 88 | ) 89 | dev.off() 90 | } 91 | # could filter data to specific time frames... 92 | write_plot_posts_per_min(podping_data,"podping_posts_per_minute") 93 | write_plot_posts_per_min(not_podping_data,"Not_podping_posts_per_minute") 94 | 95 | # podping_data 96 | ###################### 97 | # get the URLs from the json objects 98 | # starting descriptive stats with 99 | # https://bookdown.org/wadetroberts/bookdown-demo/descriptive-statistics-and-data-visualization.html 100 | 101 | str(podping_data$json) 102 | # json_str = stringr::str_replace_all(podping_data$json[1],"\\\\n",""), 103 | # need to de-prettify the json 104 | podping_data$json <- podping_data$json %>% 105 | stringr::str_replace_all("\\\\n","") %>% 106 | stringr::str_replace_all("'","") %>% 107 | stringr::str_replace_all('\\"\\"','\\"') 108 | 109 | .getUrlFromPostJson <- function(x) { 110 | rjson::fromJSON( 111 | x, 112 | unexpected.escape = "skip", 113 | simplify = TRUE 114 | )$urls 115 | } 116 | 117 | head(not_podping_data$timestamp_post,2000 118 | ) 119 | 120 | podping_data$json_url <- lapply(podping_data$json,.getUrlFromPostJson) 121 | podcastUrls <- unlist(podping_data$json_url) 122 | length(podcastUrls) 123 | length(unique(podcastUrls)) 124 | # Display stuff # 125 | ################# 126 | .get_pretty_timestamp_diff <- function( 127 | start_timestamp, 128 | end_timestamp, 129 | seconds_decimal=2 130 | ){ 131 | .seconds <- 132 | (end_timestamp-start_timestamp) 133 | .years <- as.integer(.seconds / (365.24*24*60*60)) 134 | .days <- as.integer((.seconds / (365.24*24*60*60)-.years)*365.24) 135 | .days_decimal <-(.seconds / (365.24*24*60*60)-.years)*365.24-.days 136 | .hours <- as.integer(.days_decimal*24) 137 | .hours_decimal <- .days_decimal*24 - .hours 138 | .minutes <- as.integer(.hours_decimal*60) 139 | .minutes_decimal <- .hours_decimal*60 - .minutes 140 | .seconds_display <- round(.minutes_decimal*60,seconds_decimal) 141 | .time_statement_list <- c( 142 | ifelse(as.integer(.years), 143 | paste0(.years, 144 | ifelse((.years == 1)," year "," years ") 145 | ), 146 | NA 147 | ), 148 | ifelse(as.integer(.days), 149 | paste0(.days, 150 | ifelse((.days == 1)," day "," days ") 151 | ), 152 | NA 153 | ), 154 | ifelse(as.integer(.hours), 155 | paste0(.hours, 156 | ifelse((.hours == 1)," hour "," hours ") 157 | ), 158 | NA 159 | ), 160 | ifelse(as.integer(.minutes), 161 | paste0(.minutes, 162 | ifelse((.minutes == 1)," minute "," minutes ") 163 | ), 164 | NA 165 | ), 166 | ifelse(as.integer(.seconds_display), 167 | paste0(.seconds_display, 168 | ifelse((.seconds_display == 1)," second "," seconds ") 169 | ), 170 | NA 171 | ) 172 | ) 173 | .time_statement_list <- na.omit(.time_statement_list) 174 | paste0( 175 | paste0( 176 | .time_statement_list[1:(length(.time_statement_list)-1)], 177 | collapse="" 178 | ), 179 | "and ", 180 | .time_statement_list[length(.time_statement_list)] 181 | ) 182 | } 183 | time_length_display <- .get_pretty_timestamp_diff( 184 | min(podping_data$timestamp_seen), 185 | max(podping_data$timestamp_seen) 186 | ) 187 | 188 | # Summary Statistics to Log # 189 | ############################# 190 | loggit::set_logfile("stats/summaryStats.ndjson") 191 | message( 192 | 'Podping hive "custom json" post summary:\n\t', 193 | "Post count is ", 194 | count_podping_data_unique, 195 | " (", round(count_podping_data_unique/minutes_watching,2), 196 | " posts/min)\n\t", 197 | "Total urls posted is ", 198 | length(podcastUrls), 199 | " of wich ", 200 | length(unique(podcastUrls)), 201 | " are unique\n\t", 202 | "\t(average of ", 203 | round(length(podcastUrls)/count_podping_data_unique,2), 204 | " urls/post)\n\t", 205 | "All 'other' hive post count is ", 206 | count_not_podping_data_unique, 207 | " (", round(count_not_podping_data_unique/minutes_watching,2), 208 | " posts/min)\n\t", 209 | "Podping portion of all 'custom json' posts on hive is ", 210 | round( 211 | 100 * count_podping_data_unique / 212 | (count_podping_data_unique+count_not_podping_data_unique), 213 | 5 214 | ),"%", "\n", 215 | "From ", 216 | as.character(anytime(min(podping_data$timestamp_seen),asUTC = TRUE)), 217 | " UTC to ", 218 | as.character(anytime(max(podping_data$timestamp_seen),asUTC = TRUE)), 219 | " UTC \n\t Watched for ", 220 | time_length_display, 221 | "\n#podping #Stats" 222 | ) 223 | -------------------------------------------------------------------------------- /logs/original-filtered-without-disconnects.log: -------------------------------------------------------------------------------- 1 | 2021-05-18T15:19:22+0300 - INFO root MainThread : - 2021-05-18 12:18:42+00:00 - Podpings: 4 / 567 - Count: 572 - BlockNum: 53997049 2 | 2021-05-18T15:19:50+0300 - INFO root MainThread : - 2021-05-18 12:19:45+00:00 - Podpings: 5 / 572 - Count: 557 - BlockNum: 53997058 3 | 2021-05-18T15:20:51+0300 - INFO root MainThread : - 2021-05-18 12:20:48+00:00 - Podpings: 6 / 578 - Count: 653 - BlockNum: 53997078 4 | 2021-05-18T15:21:54+0300 - INFO root MainThread : - 2021-05-18 12:21:51+00:00 - Podpings: 9 / 587 - Count: 584 - BlockNum: 53997100 5 | 2021-05-18T15:22:55+0300 - INFO root MainThread : - 2021-05-18 12:22:54+00:00 - Podpings: 4 / 591 - Count: 590 - BlockNum: 53997120 6 | 2021-05-18T15:23:58+0300 - INFO root MainThread : - 2021-05-18 12:23:57+00:00 - Podpings: 6 / 597 - Count: 628 - BlockNum: 53997141 7 | 2021-05-18T15:25:02+0300 - INFO root MainThread : - 2021-05-18 12:25:00+00:00 - Podpings: 9 / 606 - Count: 605 - BlockNum: 53997162 8 | 2021-05-18T15:26:08+0300 - INFO root MainThread : - 2021-05-18 12:26:03+00:00 - Podpings: 0 / 606 - Count: 608 - BlockNum: 53997185 9 | 2021-05-18T15:27:08+0300 - INFO root MainThread : - 2021-05-18 12:27:06+00:00 - Podpings: 3 / 609 - Count: 611 - BlockNum: 53997204 10 | 2021-05-18T15:28:12+0300 - INFO root MainThread : - 2021-05-18 12:28:09+00:00 - Podpings: 18 / 627 - Count: 618 - BlockNum: 53997225 11 | 2021-05-18T15:29:15+0300 - INFO root MainThread : - 2021-05-18 12:29:12+00:00 - Podpings: 7 / 634 - Count: 642 - BlockNum: 53997247 12 | 2021-05-18T15:30:19+0300 - INFO root MainThread : - 2021-05-18 12:30:15+00:00 - Podpings: 10 / 644 - Count: 666 - BlockNum: 53997267 13 | 2021-05-18T15:31:22+0300 - INFO root MainThread : - 2021-05-18 12:31:18+00:00 - Podpings: 10 / 654 - Count: 704 - BlockNum: 53997288 14 | 2021-05-18T15:32:23+0300 - INFO root MainThread : - 2021-05-18 12:32:21+00:00 - Podpings: 9 / 663 - Count: 667 - BlockNum: 53997309 15 | 2021-05-18T15:33:26+0300 - INFO root MainThread : - 2021-05-18 12:33:24+00:00 - Podpings: 11 / 674 - Count: 666 - BlockNum: 53997330 16 | 2021-05-18T15:34:33+0300 - INFO root MainThread : - 2021-05-18 12:34:27+00:00 - Podpings: 5 / 679 - Count: 660 - BlockNum: 53997352 17 | 2021-05-18T15:35:35+0300 - INFO root MainThread : - 2021-05-18 12:35:30+00:00 - Podpings: 8 / 687 - Count: 630 - BlockNum: 53997373 18 | 2021-05-18T16:06:29+0300 - INFO root MainThread : - 2021-05-18 12:36:33+00:00 - Podpings: 14 / 701 - Count: 625 - BlockNum: 53997991 19 | 2021-05-18T16:06:33+0300 - INFO root MainThread : - 2021-05-18 12:37:36+00:00 - Podpings: 7 / 708 - Count: 625 - BlockNum: 53997992 20 | 2021-05-18T16:06:37+0300 - INFO root MainThread : - 2021-05-18 12:38:39+00:00 - Podpings: 9 / 717 - Count: 622 - BlockNum: 53997994 21 | 2021-05-18T16:06:41+0300 - INFO root MainThread : - 2021-05-18 12:39:42+00:00 - Podpings: 6 / 723 - Count: 582 - BlockNum: 53997995 22 | 2021-05-18T16:06:44+0300 - INFO root MainThread : - 2021-05-18 12:40:45+00:00 - Podpings: 10 / 733 - Count: 676 - BlockNum: 53997996 23 | 2021-05-18T16:06:48+0300 - INFO root MainThread : - 2021-05-18 12:41:48+00:00 - Podpings: 4 / 737 - Count: 692 - BlockNum: 53997997 24 | 2021-05-18T16:06:54+0300 - INFO root MainThread : - 2021-05-18 12:42:51+00:00 - Podpings: 4 / 741 - Count: 624 - BlockNum: 53998000 25 | 2021-05-18T16:07:01+0300 - INFO root MainThread : - 2021-05-18 12:43:54+00:00 - Podpings: 8 / 749 - Count: 602 - BlockNum: 53998002 26 | 2021-05-18T16:07:07+0300 - INFO root MainThread : - 2021-05-18 12:44:57+00:00 - Podpings: 6 / 755 - Count: 654 - BlockNum: 53998004 27 | 2021-05-18T16:07:14+0300 - INFO root MainThread : - 2021-05-18 12:46:00+00:00 - Podpings: 4 / 759 - Count: 669 - BlockNum: 53998006 28 | 2021-05-18T16:07:21+0300 - INFO root MainThread : - 2021-05-18 12:47:03+00:00 - Podpings: 3 / 762 - Count: 606 - BlockNum: 53998008 29 | 2021-05-18T16:07:27+0300 - INFO root MainThread : - 2021-05-18 12:48:06+00:00 - Podpings: 4 / 766 - Count: 638 - BlockNum: 53998011 30 | 2021-05-18T16:07:34+0300 - INFO root MainThread : - 2021-05-18 12:49:09+00:00 - Podpings: 10 / 776 - Count: 585 - BlockNum: 53998013 31 | 2021-05-18T16:07:41+0300 - INFO root MainThread : - 2021-05-18 12:50:12+00:00 - Podpings: 6 / 782 - Count: 628 - BlockNum: 53998015 32 | 2021-05-18T16:07:47+0300 - INFO root MainThread : - 2021-05-18 12:51:15+00:00 - Podpings: 8 / 790 - Count: 603 - BlockNum: 53998017 33 | 2021-05-18T16:07:54+0300 - INFO root MainThread : - 2021-05-18 12:52:18+00:00 - Podpings: 10 / 800 - Count: 568 - BlockNum: 53998019 34 | 2021-05-18T16:08:01+0300 - INFO root MainThread : - 2021-05-18 12:53:21+00:00 - Podpings: 6 / 806 - Count: 597 - BlockNum: 53998022 35 | 2021-05-18T16:08:07+0300 - INFO root MainThread : - 2021-05-18 12:54:24+00:00 - Podpings: 7 / 813 - Count: 667 - BlockNum: 53998024 36 | 2021-05-18T16:08:15+0300 - INFO root MainThread : - 2021-05-18 12:55:27+00:00 - Podpings: 1 / 814 - Count: 610 - BlockNum: 53998026 37 | 2021-05-18T16:08:20+0300 - INFO root MainThread : - 2021-05-18 12:56:30+00:00 - Podpings: 8 / 822 - Count: 607 - BlockNum: 53998028 38 | 2021-05-18T16:08:27+0300 - INFO root MainThread : - 2021-05-18 12:57:33+00:00 - Podpings: 10 / 832 - Count: 627 - BlockNum: 53998030 39 | 2021-05-18T16:08:34+0300 - INFO root MainThread : - 2021-05-18 12:58:36+00:00 - Podpings: 7 / 839 - Count: 647 - BlockNum: 53998033 40 | 2021-05-18T16:08:40+0300 - INFO root MainThread : - 2021-05-18 12:59:39+00:00 - Podpings: 5 / 844 - Count: 614 - BlockNum: 53998035 41 | 2021-05-18T16:08:47+0300 - INFO root MainThread : - 2021-05-18 13:00:42+00:00 - Podpings: 17 / 861 - Count: 640 - BlockNum: 53998037 42 | 2021-05-18T16:08:53+0300 - INFO root MainThread : - 2021-05-18 13:01:45+00:00 - Podpings: 31 / 892 - Count: 620 - BlockNum: 53998039 43 | 2021-05-18T16:09:00+0300 - INFO root MainThread : - 2021-05-18 13:02:48+00:00 - Podpings: 5 / 897 - Count: 651 - BlockNum: 53998042 44 | 2021-05-18T16:09:07+0300 - INFO root MainThread : - 2021-05-18 13:03:51+00:00 - Podpings: 7 / 904 - Count: 622 - BlockNum: 53998044 45 | 2021-05-18T16:09:19+0300 - INFO root MainThread : - 2021-05-18 13:04:54+00:00 - Podpings: 5 / 909 - Count: 649 - BlockNum: 53998048 46 | 2021-05-18T16:09:32+0300 - INFO root MainThread : - 2021-05-18 13:05:57+00:00 - Podpings: 8 / 917 - Count: 659 - BlockNum: 53998052 47 | 2021-05-18T16:09:43+0300 - INFO root MainThread : - 2021-05-18 13:07:00+00:00 - Podpings: 12 / 929 - Count: 686 - BlockNum: 53998056 48 | 2021-05-18T16:09:54+0300 - INFO root MainThread : - 2021-05-18 13:08:03+00:00 - Podpings: 8 / 937 - Count: 586 - BlockNum: 53998060 49 | 2021-05-18T16:10:07+0300 - INFO root MainThread : - 2021-05-18 13:09:06+00:00 - Podpings: 8 / 945 - Count: 606 - BlockNum: 53998064 50 | 2021-05-18T16:10:25+0300 - INFO root MainThread : - 2021-05-18 13:10:09+00:00 - Podpings: 12 / 957 - Count: 580 - BlockNum: 53998070 51 | 2021-05-18T16:11:15+0300 - INFO root MainThread : - 2021-05-18 13:11:12+00:00 - Podpings: 3 / 960 - Count: 575 - BlockNum: 53998086 52 | 2021-05-18T16:12:15+0300 - INFO root MainThread : - 2021-05-18 13:12:15+00:00 - Podpings: 11 / 971 - Count: 602 - BlockNum: 53998107 53 | 2021-05-18T16:13:19+0300 - INFO root MainThread : - 2021-05-18 13:13:18+00:00 - Podpings: 13 / 984 - Count: 612 - BlockNum: 53998128 54 | 2021-05-18T16:14:23+0300 - INFO root MainThread : - 2021-05-18 13:14:21+00:00 - Podpings: 5 / 989 - Count: 574 - BlockNum: 53998149 55 | 2021-05-18T16:15:26+0300 - INFO root MainThread : - 2021-05-18 13:15:24+00:00 - Podpings: 12 / 1001 - Count: 599 - BlockNum: 53998170 56 | 2021-05-18T16:16:29+0300 - INFO root MainThread : - 2021-05-18 13:16:27+00:00 - Podpings: 7 / 1008 - Count: 612 - BlockNum: 53998191 57 | 2021-05-18T16:17:33+0300 - INFO root MainThread : - 2021-05-18 13:17:30+00:00 - Podpings: 10 / 1018 - Count: 610 - BlockNum: 53998212 58 | 2021-05-18T16:18:33+0300 - INFO root MainThread : - 2021-05-18 13:18:33+00:00 - Podpings: 10 / 1028 - Count: 659 - BlockNum: 53998233 59 | -------------------------------------------------------------------------------- /logs/verification-history.log: -------------------------------------------------------------------------------- 1 | 2021-05-18T16:17:34+0300 - INFO root MainThread : - ---------------> Using Main Hive Chain 2 | 2021-05-18T16:17:36+0300 - INFO root MainThread : - Started catching up 3 | 2021-05-18T16:17:37+0300 - INFO root MainThread : - 2021-05-18 12:18:36+00:00 - Podpings: 5 / 5 - Count: 580 - BlockNum: 53997034 - Time Delta: 0:59:01.423870 4 | 2021-05-18T16:17:37+0300 - INFO root MainThread : - 2021-05-18 12:19:39+00:00 - Podpings: 5 / 10 - Count: 546 - BlockNum: 53997055 - Time Delta: 0:57:58.447055 5 | 2021-05-18T16:17:37+0300 - INFO root MainThread : - 2021-05-18 12:20:42+00:00 - Podpings: 4 / 14 - Count: 656 - BlockNum: 53997076 - Time Delta: 0:56:55.838998 6 | 2021-05-18T16:17:37+0300 - INFO root MainThread : - 2021-05-18 12:21:45+00:00 - Podpings: 9 / 23 - Count: 561 - BlockNum: 53997097 - Time Delta: 0:55:52.862856 7 | 2021-05-18T16:17:38+0300 - INFO root MainThread : - 2021-05-18 12:22:48+00:00 - Podpings: 5 / 28 - Count: 608 - BlockNum: 53997118 - Time Delta: 0:54:50.177506 8 | 2021-05-18T16:17:38+0300 - INFO root MainThread : - 2021-05-18 12:23:51+00:00 - Podpings: 7 / 35 - Count: 621 - BlockNum: 53997139 - Time Delta: 0:53:47.198555 9 | 2021-05-18T16:17:38+0300 - INFO root MainThread : - 2021-05-18 12:24:54+00:00 - Podpings: 9 / 44 - Count: 614 - BlockNum: 53997160 - Time Delta: 0:52:44.220757 10 | 2021-05-18T16:17:38+0300 - INFO root MainThread : - 2021-05-18 12:25:57+00:00 - Podpings: 0 / 44 - Count: 601 - BlockNum: 53997181 - Time Delta: 0:51:41.528156 11 | 2021-05-18T16:17:38+0300 - INFO root MainThread : - 2021-05-18 12:27:00+00:00 - Podpings: 3 / 47 - Count: 613 - BlockNum: 53997202 - Time Delta: 0:50:38.549940 12 | 2021-05-18T16:17:38+0300 - INFO root MainThread : - 2021-05-18 12:28:03+00:00 - Podpings: 17 / 64 - Count: 620 - BlockNum: 53997223 - Time Delta: 0:49:35.785207 13 | 2021-05-18T16:17:38+0300 - INFO root MainThread : - 2021-05-18 12:29:06+00:00 - Podpings: 7 / 71 - Count: 631 - BlockNum: 53997244 - Time Delta: 0:48:32.806041 14 | 2021-05-18T16:17:39+0300 - INFO root MainThread : - 2021-05-18 12:30:09+00:00 - Podpings: 10 / 81 - Count: 661 - BlockNum: 53997265 - Time Delta: 0:47:30.069022 15 | 2021-05-18T16:17:39+0300 - INFO root MainThread : - 2021-05-18 12:31:12+00:00 - Podpings: 9 / 90 - Count: 711 - BlockNum: 53997286 - Time Delta: 0:46:27.096447 16 | 2021-05-18T16:17:39+0300 - INFO root MainThread : - 2021-05-18 12:32:15+00:00 - Podpings: 11 / 101 - Count: 652 - BlockNum: 53997307 - Time Delta: 0:45:24.124941 17 | 2021-05-18T16:17:39+0300 - INFO root MainThread : - 2021-05-18 12:33:18+00:00 - Podpings: 11 / 112 - Count: 672 - BlockNum: 53997328 - Time Delta: 0:44:21.369574 18 | 2021-05-18T16:17:39+0300 - INFO root MainThread : - 2021-05-18 12:34:21+00:00 - Podpings: 5 / 117 - Count: 676 - BlockNum: 53997349 - Time Delta: 0:43:18.391640 19 | 2021-05-18T16:17:39+0300 - INFO root MainThread : - 2021-05-18 12:35:24+00:00 - Podpings: 7 / 124 - Count: 624 - BlockNum: 53997370 - Time Delta: 0:42:15.644589 20 | 2021-05-18T16:17:39+0300 - INFO root MainThread : - 2021-05-18 12:36:27+00:00 - Podpings: 14 / 138 - Count: 631 - BlockNum: 53997391 - Time Delta: 0:41:12.664516 21 | 2021-05-18T16:17:39+0300 - INFO root MainThread : - 2021-05-18 12:37:30+00:00 - Podpings: 6 / 144 - Count: 632 - BlockNum: 53997412 - Time Delta: 0:40:09.692223 22 | 2021-05-18T16:17:39+0300 - INFO root MainThread : - 2021-05-18 12:38:33+00:00 - Podpings: 10 / 154 - Count: 630 - BlockNum: 53997433 - Time Delta: 0:39:06.949828 23 | 2021-05-18T16:17:39+0300 - INFO root MainThread : - 2021-05-18 12:39:36+00:00 - Podpings: 7 / 161 - Count: 570 - BlockNum: 53997454 - Time Delta: 0:38:03.969432 24 | 2021-05-18T16:17:40+0300 - INFO root MainThread : - 2021-05-18 12:40:39+00:00 - Podpings: 7 / 168 - Count: 674 - BlockNum: 53997475 - Time Delta: 0:37:01.236821 25 | 2021-05-18T16:17:40+0300 - INFO root MainThread : - 2021-05-18 12:41:42+00:00 - Podpings: 7 / 175 - Count: 687 - BlockNum: 53997496 - Time Delta: 0:35:58.261705 26 | 2021-05-18T16:17:40+0300 - INFO root MainThread : - 2021-05-18 12:42:45+00:00 - Podpings: 4 / 179 - Count: 637 - BlockNum: 53997517 - Time Delta: 0:34:55.500904 27 | 2021-05-18T16:17:40+0300 - INFO root MainThread : - 2021-05-18 12:43:48+00:00 - Podpings: 8 / 187 - Count: 603 - BlockNum: 53997538 - Time Delta: 0:33:52.521344 28 | 2021-05-18T16:17:40+0300 - INFO root MainThread : - 2021-05-18 12:44:51+00:00 - Podpings: 6 / 193 - Count: 636 - BlockNum: 53997559 - Time Delta: 0:32:49.545426 29 | 2021-05-18T16:17:40+0300 - INFO root MainThread : - 2021-05-18 12:45:54+00:00 - Podpings: 4 / 197 - Count: 664 - BlockNum: 53997580 - Time Delta: 0:31:46.811800 30 | 2021-05-18T16:17:40+0300 - INFO root MainThread : - 2021-05-18 12:46:57+00:00 - Podpings: 3 / 200 - Count: 613 - BlockNum: 53997601 - Time Delta: 0:30:43.833985 31 | 2021-05-18T16:17:41+0300 - INFO root MainThread : - 2021-05-18 12:48:00+00:00 - Podpings: 4 / 204 - Count: 635 - BlockNum: 53997622 - Time Delta: 0:29:41.113059 32 | 2021-05-18T16:17:41+0300 - INFO root MainThread : - 2021-05-18 12:49:03+00:00 - Podpings: 10 / 214 - Count: 596 - BlockNum: 53997643 - Time Delta: 0:28:38.135902 33 | 2021-05-18T16:17:41+0300 - INFO root MainThread : - 2021-05-18 12:50:06+00:00 - Podpings: 5 / 219 - Count: 621 - BlockNum: 53997664 - Time Delta: 0:27:35.393164 34 | 2021-05-18T16:17:41+0300 - INFO root MainThread : - 2021-05-18 12:51:09+00:00 - Podpings: 8 / 227 - Count: 616 - BlockNum: 53997685 - Time Delta: 0:26:32.417091 35 | 2021-05-18T16:17:41+0300 - INFO root MainThread : - 2021-05-18 12:52:12+00:00 - Podpings: 10 / 237 - Count: 563 - BlockNum: 53997706 - Time Delta: 0:25:29.439304 36 | 2021-05-18T16:17:41+0300 - INFO root MainThread : - 2021-05-18 12:53:15+00:00 - Podpings: 7 / 244 - Count: 597 - BlockNum: 53997727 - Time Delta: 0:24:26.789154 37 | 2021-05-18T16:17:41+0300 - INFO root MainThread : - 2021-05-18 12:54:18+00:00 - Podpings: 7 / 251 - Count: 645 - BlockNum: 53997748 - Time Delta: 0:23:23.816933 38 | 2021-05-18T16:17:42+0300 - INFO root MainThread : - 2021-05-18 12:55:21+00:00 - Podpings: 1 / 252 - Count: 626 - BlockNum: 53997769 - Time Delta: 0:22:21.059093 39 | 2021-05-18T16:17:42+0300 - INFO root MainThread : - 2021-05-18 12:56:24+00:00 - Podpings: 7 / 259 - Count: 618 - BlockNum: 53997790 - Time Delta: 0:21:18.081059 40 | 2021-05-18T16:17:42+0300 - INFO root MainThread : - 2021-05-18 12:57:27+00:00 - Podpings: 11 / 270 - Count: 607 - BlockNum: 53997811 - Time Delta: 0:20:15.108301 41 | 2021-05-18T16:17:42+0300 - INFO root MainThread : - 2021-05-18 12:58:30+00:00 - Podpings: 7 / 277 - Count: 656 - BlockNum: 53997832 - Time Delta: 0:19:12.371957 42 | 2021-05-18T16:17:42+0300 - INFO root MainThread : - 2021-05-18 12:59:33+00:00 - Podpings: 5 / 282 - Count: 595 - BlockNum: 53997853 - Time Delta: 0:18:09.402436 43 | 2021-05-18T16:17:42+0300 - INFO root MainThread : - 2021-05-18 13:00:36+00:00 - Podpings: 12 / 294 - Count: 668 - BlockNum: 53997874 - Time Delta: 0:17:06.692102 44 | 2021-05-18T16:17:42+0300 - INFO root MainThread : - 2021-05-18 13:01:39+00:00 - Podpings: 34 / 328 - Count: 604 - BlockNum: 53997895 - Time Delta: 0:16:03.714087 45 | 2021-05-18T16:17:42+0300 - INFO root MainThread : - 2021-05-18 13:02:42+00:00 - Podpings: 6 / 334 - Count: 653 - BlockNum: 53997916 - Time Delta: 0:15:00.964672 46 | 2021-05-18T16:17:42+0300 - INFO root MainThread : - 2021-05-18 13:03:45+00:00 - Podpings: 7 / 341 - Count: 625 - BlockNum: 53997937 - Time Delta: 0:13:57.989756 47 | 2021-05-18T16:17:43+0300 - INFO root MainThread : - 2021-05-18 13:04:48+00:00 - Podpings: 5 / 346 - Count: 657 - BlockNum: 53997958 - Time Delta: 0:12:55.015648 48 | 2021-05-18T16:17:43+0300 - INFO root MainThread : - 2021-05-18 13:05:51+00:00 - Podpings: 8 / 354 - Count: 658 - BlockNum: 53997979 - Time Delta: 0:11:52.273146 49 | 2021-05-18T16:17:43+0300 - INFO root MainThread : - 2021-05-18 13:06:54+00:00 - Podpings: 13 / 367 - Count: 681 - BlockNum: 53998000 - Time Delta: 0:10:49.298646 50 | 2021-05-18T16:17:43+0300 - INFO root MainThread : - 2021-05-18 13:07:57+00:00 - Podpings: 5 / 372 - Count: 591 - BlockNum: 53998021 - Time Delta: 0:09:46.608356 51 | 2021-05-18T16:17:43+0300 - INFO root MainThread : - 2021-05-18 13:09:00+00:00 - Podpings: 10 / 382 - Count: 608 - BlockNum: 53998042 - Time Delta: 0:08:43.630241 52 | 2021-05-18T16:17:43+0300 - INFO root MainThread : - 2021-05-18 13:10:03+00:00 - Podpings: 12 / 394 - Count: 574 - BlockNum: 53998063 - Time Delta: 0:07:40.654186 53 | 2021-05-18T16:17:43+0300 - INFO root MainThread : - 2021-05-18 13:11:06+00:00 - Podpings: 4 / 398 - Count: 569 - BlockNum: 53998084 - Time Delta: 0:06:37.927567 54 | 2021-05-18T16:17:43+0300 - INFO root MainThread : - 2021-05-18 13:12:09+00:00 - Podpings: 11 / 409 - Count: 584 - BlockNum: 53998105 - Time Delta: 0:05:34.949103 55 | 2021-05-18T16:17:44+0300 - INFO root MainThread : - 2021-05-18 13:13:12+00:00 - Podpings: 10 / 419 - Count: 650 - BlockNum: 53998126 - Time Delta: 0:04:32.202209 56 | 2021-05-18T16:17:44+0300 - INFO root MainThread : - 2021-05-18 13:14:15+00:00 - Podpings: 7 / 426 - Count: 583 - BlockNum: 53998147 - Time Delta: 0:03:29.226417 57 | 2021-05-18T16:17:44+0300 - INFO root MainThread : - 2021-05-18 13:15:18+00:00 - Podpings: 11 / 437 - Count: 569 - BlockNum: 53998168 - Time Delta: 0:02:26.651736 58 | 2021-05-18T16:17:44+0300 - INFO root MainThread : - 2021-05-18 13:16:21+00:00 - Podpings: 9 / 446 - Count: 599 - BlockNum: 53998189 - Time Delta: 0:01:23.672277 59 | 2021-05-18T16:17:44+0300 - INFO root MainThread : - 2021-05-18 13:17:24+00:00 - Podpings: 9 / 455 - Count: 637 - BlockNum: 53998210 - Time Delta: 0:00:20.696488 60 | 2021-05-18T16:17:52+0300 - INFO root MainThread : - 2021-05-18 13:17:51+00:00 - Podpings: 2 / 457 - Count: 272 - BlockNum: 53998219 - Time Delta: 0:00:01.657393 61 | 2021-05-18T16:17:52+0300 - INFO root MainThread : - block_num: 53998219 62 | 2021-05-18T16:17:52+0300 - INFO root MainThread : - Finished catching up at block_num: 53998219 in 0:00:18.011789 63 | 2021-05-18T16:17:53+0300 - INFO root MainThread : - Watching live from block_num: 53998219 64 | -------------------------------------------------------------------------------- /logs/fifteen-minutes.log: -------------------------------------------------------------------------------- 1 | 2021-05-10 14:03:23,304 INFO root MainThread : ---------------> Using Main Hive Chain 2 | 2021-05-10 14:03:24,912 INFO root MainThread : Started catching up 3 | 2021-05-10 14:03:29,540 INFO root MainThread : 2021-05-07 21:18:27+00:00 Podpings: 91 / 91- Count: 8653 - Time Delta: 2 days, 13:45:02.540411 4 | 2021-05-10 14:03:31,939 INFO root MainThread : 2021-05-07 21:33:30+00:00 Podpings: 75 / 166- Count: 8543 - Time Delta: 2 days, 13:30:01.939630 5 | 2021-05-10 14:03:34,718 INFO root MainThread : 2021-05-07 21:48:33+00:00 Podpings: 77 / 243- Count: 8324 - Time Delta: 2 days, 13:15:01.718347 6 | 2021-05-10 14:03:37,662 INFO root MainThread : 2021-05-07 22:03:36+00:00 Podpings: 76 / 319- Count: 8948 - Time Delta: 2 days, 13:00:01.662022 7 | 2021-05-10 14:03:40,416 INFO root MainThread : 2021-05-07 22:18:39+00:00 Podpings: 109 / 428- Count: 8836 - Time Delta: 2 days, 12:45:01.416917 8 | 2021-05-10 14:03:43,065 INFO root MainThread : 2021-05-07 22:33:42+00:00 Podpings: 66 / 494- Count: 8676 - Time Delta: 2 days, 12:30:01.065598 9 | 2021-05-10 14:03:46,071 INFO root MainThread : 2021-05-07 22:48:45+00:00 Podpings: 94 / 588- Count: 8817 - Time Delta: 2 days, 12:15:01.071258 10 | 2021-05-10 14:03:49,092 INFO root MainThread : 2021-05-07 23:03:48+00:00 Podpings: 58 / 646- Count: 8715 - Time Delta: 2 days, 12:00:01.092798 11 | 2021-05-10 14:03:52,175 INFO root MainThread : 2021-05-07 23:18:51+00:00 Podpings: 49 / 695- Count: 8276 - Time Delta: 2 days, 11:45:01.175767 12 | 2021-05-10 14:03:54,910 INFO root MainThread : 2021-05-07 23:33:54+00:00 Podpings: 106 / 801- Count: 8488 - Time Delta: 2 days, 11:30:00.910570 13 | 2021-05-10 14:03:57,975 INFO root MainThread : 2021-05-07 23:48:57+00:00 Podpings: 78 / 879- Count: 8560 - Time Delta: 2 days, 11:15:00.975287 14 | 2021-05-10 14:04:00,864 INFO root MainThread : 2021-05-08 00:04:00+00:00 Podpings: 81 / 960- Count: 8599 - Time Delta: 2 days, 11:00:00.864096 15 | 2021-05-10 14:04:04,147 INFO root MainThread : 2021-05-08 00:19:03+00:00 Podpings: 63 / 1,023- Count: 8606 - Time Delta: 2 days, 10:45:01.147417 16 | 2021-05-10 14:04:08,956 INFO root MainThread : 2021-05-08 00:34:06+00:00 Podpings: 62 / 1,085- Count: 8233 - Time Delta: 2 days, 10:30:02.956285 17 | 2021-05-10 14:04:14,212 INFO root MainThread : 2021-05-08 00:49:09+00:00 Podpings: 64 / 1,149- Count: 7508 - Time Delta: 2 days, 10:15:05.212667 18 | 2021-05-10 14:04:16,561 INFO root MainThread : 2021-05-08 01:04:12+00:00 Podpings: 93 / 1,242- Count: 7802 - Time Delta: 2 days, 10:00:04.561571 19 | 2021-05-10 14:04:19,099 INFO root MainThread : 2021-05-08 01:19:15+00:00 Podpings: 58 / 1,300- Count: 7278 - Time Delta: 2 days, 9:45:04.099400 20 | 2021-05-10 14:04:21,537 INFO root MainThread : 2021-05-08 01:34:18+00:00 Podpings: 54 / 1,354- Count: 7551 - Time Delta: 2 days, 9:30:03.537566 21 | 2021-05-10 14:04:23,647 INFO root MainThread : 2021-05-08 01:49:21+00:00 Podpings: 81 / 1,435- Count: 6131 - Time Delta: 2 days, 9:15:02.647853 22 | 2021-05-10 14:04:26,093 INFO root MainThread : 2021-05-08 02:04:24+00:00 Podpings: 50 / 1,485- Count: 6149 - Time Delta: 2 days, 9:00:02.093459 23 | 2021-05-10 14:04:28,439 INFO root MainThread : 2021-05-08 02:19:27+00:00 Podpings: 67 / 1,552- Count: 6372 - Time Delta: 2 days, 8:45:01.439644 24 | 2021-05-10 14:04:30,615 INFO root MainThread : 2021-05-08 02:34:33+00:00 Podpings: 45 / 1,597- Count: 6977 - Time Delta: 2 days, 8:29:57.615707 25 | 2021-05-10 14:04:32,793 INFO root MainThread : 2021-05-08 02:49:36+00:00 Podpings: 80 / 1,677- Count: 7231 - Time Delta: 2 days, 8:14:56.793508 26 | 2021-05-10 14:04:35,338 INFO root MainThread : 2021-05-08 03:04:39+00:00 Podpings: 56 / 1,733- Count: 7043 - Time Delta: 2 days, 7:59:56.338288 27 | 2021-05-10 14:04:37,236 INFO root MainThread : 2021-05-08 03:19:42+00:00 Podpings: 69 / 1,802- Count: 6400 - Time Delta: 2 days, 7:44:55.236132 28 | 2021-05-10 14:04:39,507 INFO root MainThread : 2021-05-08 03:34:45+00:00 Podpings: 53 / 1,855- Count: 7001 - Time Delta: 2 days, 7:29:54.507028 29 | 2021-05-10 14:04:41,621 INFO root MainThread : 2021-05-08 03:49:48+00:00 Podpings: 45 / 1,900- Count: 6722 - Time Delta: 2 days, 7:14:53.621180 30 | 2021-05-10 14:04:43,949 INFO root MainThread : 2021-05-08 04:04:51+00:00 Podpings: 49 / 1,949- Count: 6643 - Time Delta: 2 days, 6:59:52.949601 31 | 2021-05-10 14:04:48,735 INFO root MainThread : 2021-05-08 04:19:54+00:00 Podpings: 64 / 2,013- Count: 6791 - Time Delta: 2 days, 6:44:54.735172 32 | 2021-05-10 14:04:51,610 INFO root MainThread : 2021-05-08 04:34:57+00:00 Podpings: 55 / 2,068- Count: 6901 - Time Delta: 2 days, 6:29:54.610694 33 | 2021-05-10 14:04:54,259 INFO root MainThread : 2021-05-08 04:50:00+00:00 Podpings: 38 / 2,106- Count: 6794 - Time Delta: 2 days, 6:14:54.259530 34 | 2021-05-10 14:04:56,560 INFO root MainThread : 2021-05-08 05:05:03+00:00 Podpings: 46 / 2,152- Count: 5980 - Time Delta: 2 days, 5:59:53.560479 35 | 2021-05-10 14:04:59,096 INFO root MainThread : 2021-05-08 05:20:06+00:00 Podpings: 27 / 2,179- Count: 6410 - Time Delta: 2 days, 5:44:53.096692 36 | 2021-05-10 14:05:01,711 INFO root MainThread : 2021-05-08 05:35:09+00:00 Podpings: 44 / 2,223- Count: 6684 - Time Delta: 2 days, 5:29:52.711121 37 | 2021-05-10 14:05:03,954 INFO root MainThread : 2021-05-08 05:50:12+00:00 Podpings: 34 / 2,257- Count: 6724 - Time Delta: 2 days, 5:14:51.954644 38 | 2021-05-10 14:05:06,577 INFO root MainThread : 2021-05-08 06:05:15+00:00 Podpings: 63 / 2,320- Count: 6513 - Time Delta: 2 days, 4:59:51.577046 39 | 2021-05-10 14:05:08,967 INFO root MainThread : 2021-05-08 06:20:18+00:00 Podpings: 37 / 2,357- Count: 6881 - Time Delta: 2 days, 4:44:50.967347 40 | 2021-05-10 14:05:11,330 INFO root MainThread : 2021-05-08 06:35:21+00:00 Podpings: 25 / 2,382- Count: 6653 - Time Delta: 2 days, 4:29:50.330156 41 | 2021-05-10 14:05:13,516 INFO root MainThread : 2021-05-08 06:50:24+00:00 Podpings: 30 / 2,412- Count: 6520 - Time Delta: 2 days, 4:14:49.516267 42 | 2021-05-10 14:05:16,378 INFO root MainThread : 2021-05-08 07:05:27+00:00 Podpings: 39 / 2,451- Count: 6782 - Time Delta: 2 days, 3:59:49.378571 43 | 2021-05-10 14:05:19,375 INFO root MainThread : 2021-05-08 07:20:30+00:00 Podpings: 29 / 2,480- Count: 6544 - Time Delta: 2 days, 3:44:49.375243 44 | 2021-05-10 14:05:22,661 INFO root MainThread : 2021-05-08 07:35:33+00:00 Podpings: 30 / 2,510- Count: 7196 - Time Delta: 2 days, 3:29:49.661711 45 | 2021-05-10 14:05:26,235 INFO root MainThread : 2021-05-08 07:50:36+00:00 Podpings: 57 / 2,567- Count: 7019 - Time Delta: 2 days, 3:14:50.235716 46 | 2021-05-10 14:05:29,081 INFO root MainThread : 2021-05-08 08:05:39+00:00 Podpings: 18 / 2,585- Count: 6646 - Time Delta: 2 days, 2:59:50.081042 47 | 2021-05-10 14:05:31,138 INFO root MainThread : 2021-05-08 08:20:42+00:00 Podpings: 40 / 2,625- Count: 6729 - Time Delta: 2 days, 2:44:49.138160 48 | 2021-05-10 14:05:33,600 INFO root MainThread : 2021-05-08 08:35:45+00:00 Podpings: 30 / 2,655- Count: 6623 - Time Delta: 2 days, 2:29:48.600775 49 | 2021-05-10 14:05:35,775 INFO root MainThread : 2021-05-08 08:50:48+00:00 Podpings: 29 / 2,684- Count: 6484 - Time Delta: 2 days, 2:14:47.775092 50 | 2021-05-10 14:05:38,302 INFO root MainThread : 2021-05-08 09:05:51+00:00 Podpings: 43 / 2,727- Count: 6506 - Time Delta: 2 days, 1:59:47.302122 51 | 2021-05-10 14:05:40,607 INFO root MainThread : 2021-05-08 09:20:54+00:00 Podpings: 34 / 2,761- Count: 6779 - Time Delta: 2 days, 1:44:46.607626 52 | 2021-05-10 14:05:42,937 INFO root MainThread : 2021-05-08 09:35:57+00:00 Podpings: 51 / 2,812- Count: 6477 - Time Delta: 2 days, 1:29:45.937000 53 | 2021-05-10 14:05:45,826 INFO root MainThread : 2021-05-08 09:51:00+00:00 Podpings: 38 / 2,850- Count: 6911 - Time Delta: 2 days, 1:14:45.826881 54 | 2021-05-10 14:05:48,122 INFO root MainThread : 2021-05-08 10:06:03+00:00 Podpings: 48 / 2,898- Count: 6497 - Time Delta: 2 days, 0:59:45.122182 55 | 2021-05-10 14:05:50,421 INFO root MainThread : 2021-05-08 10:21:06+00:00 Podpings: 41 / 2,939- Count: 6349 - Time Delta: 2 days, 0:44:44.421115 56 | 2021-05-10 14:05:54,183 INFO root MainThread : 2021-05-08 10:36:09+00:00 Podpings: 33 / 2,972- Count: 6492 - Time Delta: 2 days, 0:29:45.183042 57 | 2021-05-10 14:05:56,927 INFO root MainThread : 2021-05-08 10:51:12+00:00 Podpings: 21 / 2,993- Count: 7247 - Time Delta: 2 days, 0:14:44.927882 58 | 2021-05-10 14:05:59,577 INFO root MainThread : 2021-05-08 11:06:15+00:00 Podpings: 25 / 3,018- Count: 8002 - Time Delta: 1 day, 23:59:44.577501 59 | 2021-05-10 14:06:02,337 INFO root MainThread : 2021-05-08 11:21:18+00:00 Podpings: 56 / 3,074- Count: 8267 - Time Delta: 1 day, 23:44:44.337897 60 | 2021-05-10 14:06:04,895 INFO root MainThread : 2021-05-08 11:36:21+00:00 Podpings: 41 / 3,115- Count: 8301 - Time Delta: 1 day, 23:29:43.895136 61 | 2021-05-10 14:06:07,600 INFO root MainThread : 2021-05-08 11:51:24+00:00 Podpings: 27 / 3,142- Count: 8684 - Time Delta: 1 day, 23:14:43.600212 62 | 2021-05-10 14:06:11,114 INFO root MainThread : 2021-05-08 12:06:27+00:00 Podpings: 50 / 3,192- Count: 8670 - Time Delta: 1 day, 22:59:44.114702 63 | 2021-05-10 14:06:14,244 INFO root MainThread : 2021-05-08 12:21:30+00:00 Podpings: 29 / 3,221- Count: 8775 - Time Delta: 1 day, 22:44:44.244167 64 | 2021-05-10 14:06:17,346 INFO root MainThread : 2021-05-08 12:36:33+00:00 Podpings: 36 / 3,257- Count: 8445 - Time Delta: 1 day, 22:29:44.346365 65 | 2021-05-10 14:06:20,219 INFO root MainThread : 2021-05-08 12:51:36+00:00 Podpings: 34 / 3,291- Count: 8452 - Time Delta: 1 day, 22:14:44.219331 66 | 2021-05-10 14:06:23,714 INFO root MainThread : 2021-05-08 13:06:39+00:00 Podpings: 68 / 3,359- Count: 8792 - Time Delta: 1 day, 21:59:44.714904 67 | 2021-05-10 14:06:26,386 INFO root MainThread : 2021-05-08 13:21:42+00:00 Podpings: 71 / 3,430- Count: 6930 - Time Delta: 1 day, 21:44:44.386382 68 | 2021-05-10 14:06:28,898 INFO root MainThread : 2021-05-08 13:36:45+00:00 Podpings: 59 / 3,489- Count: 6855 - Time Delta: 1 day, 21:29:43.898644 69 | 2021-05-10 14:06:31,362 INFO root MainThread : 2021-05-08 13:51:48+00:00 Podpings: 53 / 3,542- Count: 6333 - Time Delta: 1 day, 21:14:43.362700 70 | 2021-05-10 14:06:33,502 INFO root MainThread : 2021-05-08 14:06:51+00:00 Podpings: 47 / 3,589- Count: 7171 - Time Delta: 1 day, 20:59:42.502408 71 | 2021-05-10 14:06:36,071 INFO root MainThread : 2021-05-08 14:21:54+00:00 Podpings: 48 / 3,637- Count: 7604 - Time Delta: 1 day, 20:44:42.071501 72 | 2021-05-10 14:06:39,173 INFO root MainThread : 2021-05-08 14:36:57+00:00 Podpings: 49 / 3,686- Count: 7757 - Time Delta: 1 day, 20:29:42.173199 73 | 2021-05-10 14:06:41,828 INFO root MainThread : 2021-05-08 14:52:00+00:00 Podpings: 63 / 3,749- Count: 8182 - Time Delta: 1 day, 20:14:41.827968 74 | 2021-05-10 14:06:45,447 INFO root MainThread : 2021-05-08 15:07:03+00:00 Podpings: 39 / 3,788- Count: 8733 - Time Delta: 1 day, 19:59:42.447670 -------------------------------------------------------------------------------- /logs/hour.log: -------------------------------------------------------------------------------- 1 | 2021-05-10 14:21:05,331 INFO root MainThread : ---------------> Using Main Hive Chain 2 | 2021-05-10 14:21:06,973 INFO root MainThread : Started catching up 3 | 2021-05-10 14:21:19,690 INFO root MainThread : 2021-05-07 20:21:09+00:00 Podpings: 0 / 0 - Count: 35609 - BlockNum: 53690259 - Time Delta: 2 days, 15:00:10.690314 4 | 2021-05-10 14:21:30,968 INFO root MainThread : 2021-05-07 21:21:12+00:00 Podpings: 144 / 144 - Count: 33426 - BlockNum: 53691457 - Time Delta: 2 days, 14:00:18.968239 5 | 2021-05-10 14:21:42,855 INFO root MainThread : 2021-05-07 22:21:15+00:00 Podpings: 333 / 477 - Count: 34453 - BlockNum: 53692658 - Time Delta: 2 days, 13:00:27.855358 6 | 2021-05-10 14:22:00,655 INFO root MainThread : 2021-05-07 23:21:18+00:00 Podpings: 261 / 738 - Count: 34319 - BlockNum: 53693858 - Time Delta: 2 days, 12:00:42.655663 7 | 2021-05-10 14:22:13,743 INFO root MainThread : 2021-05-08 00:21:21+00:00 Podpings: 331 / 1,069 - Count: 34347 - BlockNum: 53695059 - Time Delta: 2 days, 11:00:52.742970 8 | 2021-05-10 14:22:24,503 INFO root MainThread : 2021-05-08 01:21:24+00:00 Podpings: 279 / 1,348 - Count: 30559 - BlockNum: 53696259 - Time Delta: 2 days, 10:01:00.503563 9 | 2021-05-10 14:22:34,195 INFO root MainThread : 2021-05-08 02:21:27+00:00 Podpings: 250 / 1,598 - Count: 25905 - BlockNum: 53697459 - Time Delta: 2 days, 9:01:07.195748 10 | 2021-05-10 14:22:46,207 INFO root MainThread : 2021-05-08 03:21:30+00:00 Podpings: 252 / 1,850 - Count: 27628 - BlockNum: 53698658 - Time Delta: 2 days, 8:01:16.207141 11 | 2021-05-10 14:22:55,849 INFO root MainThread : 2021-05-08 04:21:33+00:00 Podpings: 213 / 2,063 - Count: 27128 - BlockNum: 53699855 - Time Delta: 2 days, 7:01:22.849945 12 | 2021-05-10 14:23:06,327 INFO root MainThread : 2021-05-08 05:21:36+00:00 Podpings: 160 / 2,223 - Count: 25938 - BlockNum: 53701055 - Time Delta: 2 days, 6:01:30.327767 13 | 2021-05-10 14:23:16,064 INFO root MainThread : 2021-05-08 06:21:39+00:00 Podpings: 176 / 2,399 - Count: 26791 - BlockNum: 53702256 - Time Delta: 2 days, 5:01:37.064547 14 | 2021-05-10 14:23:28,011 INFO root MainThread : 2021-05-08 07:21:42+00:00 Podpings: 122 / 2,521 - Count: 26471 - BlockNum: 53703455 - Time Delta: 2 days, 4:01:46.011340 15 | 2021-05-10 14:23:38,989 INFO root MainThread : 2021-05-08 08:21:45+00:00 Podpings: 144 / 2,665 - Count: 27372 - BlockNum: 53704655 - Time Delta: 2 days, 3:01:53.989360 16 | 2021-05-10 14:23:49,139 INFO root MainThread : 2021-05-08 09:21:48+00:00 Podpings: 136 / 2,801 - Count: 26339 - BlockNum: 53705855 - Time Delta: 2 days, 2:02:01.139313 17 | 2021-05-10 14:24:01,390 INFO root MainThread : 2021-05-08 10:21:51+00:00 Podpings: 180 / 2,981 - Count: 26191 - BlockNum: 53707054 - Time Delta: 2 days, 1:02:10.390755 18 | 2021-05-10 14:24:11,401 INFO root MainThread : 2021-05-08 11:21:54+00:00 Podpings: 134 / 3,115 - Count: 30031 - BlockNum: 53708252 - Time Delta: 2 days, 0:02:17.401477 19 | 2021-05-10 14:24:26,441 INFO root MainThread : 2021-05-08 12:21:57+00:00 Podpings: 146 / 3,261 - Count: 34370 - BlockNum: 53709451 - Time Delta: 1 day, 23:02:29.441880 20 | 2021-05-10 14:24:37,922 INFO root MainThread : 2021-05-08 13:22:00+00:00 Podpings: 209 / 3,470 - Count: 32476 - BlockNum: 53710651 - Time Delta: 1 day, 22:02:37.921998 21 | 2021-05-10 14:24:47,935 INFO root MainThread : 2021-05-08 14:22:03+00:00 Podpings: 208 / 3,678 - Count: 27893 - BlockNum: 53711852 - Time Delta: 1 day, 21:02:44.935848 22 | 2021-05-10 14:25:00,766 INFO root MainThread : 2021-05-08 15:22:06+00:00 Podpings: 202 / 3,880 - Count: 33209 - BlockNum: 53713052 - Time Delta: 1 day, 20:02:54.766135 23 | 2021-05-10 14:25:14,855 INFO root MainThread : 2021-05-08 16:22:09+00:00 Podpings: 256 / 4,136 - Count: 34883 - BlockNum: 53714251 - Time Delta: 1 day, 19:03:05.855761 24 | 2021-05-10 14:25:28,366 INFO root MainThread : 2021-05-08 17:22:12+00:00 Podpings: 258 / 4,394 - Count: 33187 - BlockNum: 53715451 - Time Delta: 1 day, 18:03:16.366507 25 | 2021-05-10 14:25:42,711 INFO root MainThread : 2021-05-08 18:22:15+00:00 Podpings: 181 / 4,575 - Count: 33364 - BlockNum: 53716650 - Time Delta: 1 day, 17:03:27.711543 26 | 2021-05-10 14:26:01,218 INFO root MainThread : 2021-05-08 19:22:18+00:00 Podpings: 243 / 4,818 - Count: 32554 - BlockNum: 53717851 - Time Delta: 1 day, 16:03:43.218190 27 | 2021-05-10 14:26:15,328 INFO root MainThread : 2021-05-08 20:22:21+00:00 Podpings: 191 / 5,009 - Count: 34186 - BlockNum: 53719052 - Time Delta: 1 day, 15:03:54.328229 28 | 2021-05-10 14:26:28,701 INFO root MainThread : 2021-05-08 21:22:24+00:00 Podpings: 206 / 5,215 - Count: 33296 - BlockNum: 53720250 - Time Delta: 1 day, 14:04:04.701902 29 | 2021-05-10 14:26:41,369 INFO root MainThread : 2021-05-08 22:22:27+00:00 Podpings: 221 / 5,436 - Count: 32757 - BlockNum: 53721448 - Time Delta: 1 day, 13:04:14.369869 30 | 2021-05-10 14:26:53,612 INFO root MainThread : 2021-05-08 23:22:30+00:00 Podpings: 207 / 5,643 - Count: 35759 - BlockNum: 53722647 - Time Delta: 1 day, 12:04:23.612931 31 | 2021-05-10 14:27:07,854 INFO root MainThread : 2021-05-09 00:22:33+00:00 Podpings: 167 / 5,810 - Count: 35854 - BlockNum: 53723847 - Time Delta: 1 day, 11:04:34.854273 32 | 2021-05-10 14:27:23,343 INFO root MainThread : 2021-05-09 01:22:36+00:00 Podpings: 188 / 5,998 - Count: 33811 - BlockNum: 53725046 - Time Delta: 1 day, 10:04:47.343065 33 | 2021-05-10 14:27:35,378 INFO root MainThread : 2021-05-09 02:22:39+00:00 Podpings: 202 / 6,200 - Count: 33286 - BlockNum: 53726246 - Time Delta: 1 day, 9:04:56.378313 34 | 2021-05-10 14:27:47,578 INFO root MainThread : 2021-05-09 03:22:42+00:00 Podpings: 192 / 6,392 - Count: 33315 - BlockNum: 53727444 - Time Delta: 1 day, 8:05:05.578539 35 | 2021-05-10 14:27:58,640 INFO root MainThread : 2021-05-09 04:22:45+00:00 Podpings: 172 / 6,564 - Count: 30410 - BlockNum: 53728644 - Time Delta: 1 day, 7:05:13.640752 36 | 2021-05-10 14:28:09,222 INFO root MainThread : 2021-05-09 05:22:48+00:00 Podpings: 165 / 6,729 - Count: 30703 - BlockNum: 53729844 - Time Delta: 1 day, 6:05:21.222775 37 | 2021-05-10 14:28:21,075 INFO root MainThread : 2021-05-09 06:22:51+00:00 Podpings: 178 / 6,907 - Count: 30984 - BlockNum: 53731045 - Time Delta: 1 day, 5:05:30.075788 38 | 2021-05-10 14:28:32,299 INFO root MainThread : 2021-05-09 07:22:54+00:00 Podpings: 212 / 7,119 - Count: 30113 - BlockNum: 53732246 - Time Delta: 1 day, 4:05:38.299067 39 | 2021-05-10 14:28:43,838 INFO root MainThread : 2021-05-09 08:22:57+00:00 Podpings: 142 / 7,261 - Count: 29428 - BlockNum: 53733443 - Time Delta: 1 day, 3:05:46.838723 40 | 2021-05-10 14:28:56,421 INFO root MainThread : 2021-05-09 09:23:00+00:00 Podpings: 158 / 7,419 - Count: 29823 - BlockNum: 53734642 - Time Delta: 1 day, 2:05:56.421091 41 | 2021-05-10 14:29:06,323 INFO root MainThread : 2021-05-09 10:23:03+00:00 Podpings: 178 / 7,597 - Count: 26167 - BlockNum: 53735842 - Time Delta: 1 day, 1:06:03.323927 42 | 2021-05-10 14:29:16,252 INFO root MainThread : 2021-05-09 11:23:06+00:00 Podpings: 183 / 7,780 - Count: 26335 - BlockNum: 53737043 - Time Delta: 1 day, 0:06:10.252032 43 | 2021-05-10 14:29:27,984 INFO root MainThread : 2021-05-09 12:23:09+00:00 Podpings: 206 / 7,986 - Count: 28697 - BlockNum: 53738244 - Time Delta: 23:06:18.984185 44 | 2021-05-10 14:29:38,759 INFO root MainThread : 2021-05-09 13:23:12+00:00 Podpings: 214 / 8,200 - Count: 30871 - BlockNum: 53739442 - Time Delta: 22:06:26.759210 45 | 2021-05-10 14:29:50,309 INFO root MainThread : 2021-05-09 14:23:15+00:00 Podpings: 223 / 8,423 - Count: 31570 - BlockNum: 53740641 - Time Delta: 21:06:35.309532 46 | 2021-05-10 14:30:04,134 INFO root MainThread : 2021-05-09 15:23:18+00:00 Podpings: 240 / 8,663 - Count: 34348 - BlockNum: 53741842 - Time Delta: 20:06:46.134563 47 | 2021-05-10 14:30:18,164 INFO root MainThread : 2021-05-09 16:23:21+00:00 Podpings: 301 / 8,964 - Count: 33229 - BlockNum: 53743043 - Time Delta: 19:06:57.164588 48 | 2021-05-10 14:30:31,167 INFO root MainThread : 2021-05-09 17:23:24+00:00 Podpings: 330 / 9,294 - Count: 33704 - BlockNum: 53744243 - Time Delta: 18:07:07.167139 49 | 2021-05-10 14:30:45,316 INFO root MainThread : 2021-05-09 18:23:27+00:00 Podpings: 305 / 9,599 - Count: 34089 - BlockNum: 53745443 - Time Delta: 17:07:18.316856 50 | 2021-05-10 14:30:59,533 INFO root MainThread : 2021-05-09 19:23:30+00:00 Podpings: 327 / 9,926 - Count: 36229 - BlockNum: 53746641 - Time Delta: 16:07:29.532981 51 | 2021-05-10 14:31:13,775 INFO root MainThread : 2021-05-09 20:23:33+00:00 Podpings: 316 / 10,242 - Count: 35997 - BlockNum: 53747840 - Time Delta: 15:07:40.775290 52 | 2021-05-10 14:31:27,221 INFO root MainThread : 2021-05-09 21:23:36+00:00 Podpings: 324 / 10,566 - Count: 34769 - BlockNum: 53749041 - Time Delta: 14:07:51.221843 53 | 2021-05-10 14:31:39,917 INFO root MainThread : 2021-05-09 22:23:39+00:00 Podpings: 285 / 10,851 - Count: 32842 - BlockNum: 53750241 - Time Delta: 13:08:00.917255 54 | 2021-05-10 14:31:53,170 INFO root MainThread : 2021-05-09 23:23:42+00:00 Podpings: 360 / 11,211 - Count: 35065 - BlockNum: 53751441 - Time Delta: 12:08:11.170186 55 | 2021-05-10 14:32:05,696 INFO root MainThread : 2021-05-10 00:23:45+00:00 Podpings: 348 / 11,559 - Count: 34704 - BlockNum: 53752641 - Time Delta: 11:08:20.696407 56 | 2021-05-10 14:32:17,390 INFO root MainThread : 2021-05-10 01:23:48+00:00 Podpings: 312 / 11,871 - Count: 32549 - BlockNum: 53753839 - Time Delta: 10:08:29.390720 57 | 2021-05-10 14:32:29,859 INFO root MainThread : 2021-05-10 02:23:51+00:00 Podpings: 354 / 12,225 - Count: 29317 - BlockNum: 53755040 - Time Delta: 9:08:38.859189 58 | 2021-05-10 14:32:42,174 INFO root MainThread : 2021-05-10 03:23:54+00:00 Podpings: 355 / 12,580 - Count: 26610 - BlockNum: 53756239 - Time Delta: 8:08:48.174102 59 | 2021-05-10 14:32:54,541 INFO root MainThread : 2021-05-10 04:23:57+00:00 Podpings: 422 / 13,002 - Count: 28518 - BlockNum: 53757438 - Time Delta: 7:08:57.541220 60 | 2021-05-10 14:33:06,340 INFO root MainThread : 2021-05-10 05:24:00+00:00 Podpings: 340 / 13,342 - Count: 29592 - BlockNum: 53758637 - Time Delta: 6:09:06.340544 61 | 2021-05-10 14:33:17,520 INFO root MainThread : 2021-05-10 06:24:03+00:00 Podpings: 304 / 13,646 - Count: 27562 - BlockNum: 53759836 - Time Delta: 5:09:14.520591 62 | 2021-05-10 14:33:29,985 INFO root MainThread : 2021-05-10 07:24:06+00:00 Podpings: 288 / 13,934 - Count: 27263 - BlockNum: 53761037 - Time Delta: 4:09:23.985483 63 | 2021-05-10 14:33:40,432 INFO root MainThread : 2021-05-10 08:24:09+00:00 Podpings: 282 / 14,216 - Count: 27954 - BlockNum: 53762238 - Time Delta: 3:09:31.432686 64 | 2021-05-10 14:33:49,905 INFO root MainThread : 2021-05-10 09:24:12+00:00 Podpings: 349 / 14,565 - Count: 27283 - BlockNum: 53763437 - Time Delta: 2:09:37.905867 65 | 2021-05-10 14:34:00,585 INFO root MainThread : 2021-05-10 10:24:15+00:00 Podpings: 349 / 14,914 - Count: 28561 - BlockNum: 53764638 - Time Delta: 1:09:45.585404 66 | 2021-05-10 14:34:23,996 INFO root MainThread : 2021-05-10 11:24:18+00:00 Podpings: 357 / 15,271 - Count: 28646 - BlockNum: 53765839 - Time Delta: 0:10:05.996486 67 | 2021-05-10 14:35:19,726 INFO root MainThread : block_num: 53766058 68 | 2021-05-10 14:35:19,726 INFO root MainThread : Finished catching up at block_num: 53766058 in 0:14:14.395339 -------------------------------------------------------------------------------- /config/__init__.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import math 3 | import os 4 | import re 5 | from socket import AF_INET, SOCK_STREAM, socket 6 | from ipaddress import IPv4Address, IPv6Address, AddressValueError 7 | 8 | import zmq 9 | from lighthive.client import Client 10 | import pendulum 11 | from lighthive.exceptions import RPCNodeException 12 | 13 | BLOCK_INTERVAL = 3 14 | 15 | 16 | # Adapted from beem under the MIT license 17 | # https://github.com/holgern/beem/blob/master/beem/blockchain.py#L307-L364 18 | def get_estimated_block_num(client: Client, date, accurate=True): 19 | 20 | last_block_num = client.get_dynamic_global_properties()["head_block_number"] 21 | while True: 22 | try: 23 | last_block = client.get_block(last_block_num) 24 | break 25 | except RPCNodeException: 26 | pass 27 | time_diff = pendulum.parse(last_block['timestamp']) - date 28 | block_number = math.floor(last_block_num - time_diff.total_seconds() / BLOCK_INTERVAL) 29 | if block_number < 1: 30 | block_number = 1 31 | 32 | if accurate: 33 | if block_number > last_block_num: 34 | block_number = last_block_num 35 | block_time_diff = pendulum.duration(seconds=10) 36 | 37 | last_block_time_diff_seconds = 10 38 | second_last_block_time_diff_seconds = 10 39 | 40 | while block_time_diff.total_seconds() > BLOCK_INTERVAL or block_time_diff.total_seconds() < -BLOCK_INTERVAL: 41 | while True: 42 | try: 43 | block = client.get_block(block_number) 44 | break 45 | except RPCNodeException: 46 | pass 47 | second_last_block_time_diff_seconds = last_block_time_diff_seconds 48 | last_block_time_diff_seconds = block_time_diff.total_seconds() 49 | block_time_diff = date - pendulum.parse(block['timestamp']) 50 | if second_last_block_time_diff_seconds == block_time_diff.total_seconds() and second_last_block_time_diff_seconds < 10: 51 | return int(block_number) 52 | delta = block_time_diff.total_seconds() // BLOCK_INTERVAL 53 | if delta == 0 and block_time_diff.total_seconds() < 0: 54 | delta = -1 55 | elif delta == 0 and block_time_diff.total_seconds() > 0: 56 | delta = 1 57 | block_number += delta 58 | if block_number < 1: 59 | break 60 | if block_number > last_block_num: 61 | break 62 | 63 | return int(block_number) 64 | 65 | 66 | TEST_NODE = ["https://testnet.openhive.network"] 67 | 68 | app_description = """PodPing - Watch the Hive Blockchain for notifications of new 69 | Podcast Episodes 70 | 71 | 72 | This code will run until terminated reporting every 73 | notification of a new Podcast Episode sent to the Hive blockchain by any PodPing 74 | servers. 75 | 76 | With default arguments it will print to the StdOut a log of each new URL that has 77 | updated interspersed with summary lines every 5 minutes that list the number of 78 | PodPings and the number of other 'custom_json' operations seen on the blockchain. 79 | This interval can be set with the --reports command line. 80 | """ 81 | 82 | my_parser = argparse.ArgumentParser( 83 | prog="hive-watcher", 84 | usage="%(prog)s [options]", 85 | description=app_description, 86 | epilog="", 87 | ) 88 | 89 | block_history_argument_group = my_parser.add_argument_group() 90 | block_history_argument_group.add_argument( 91 | "-b", 92 | "--block", 93 | action="store", 94 | type=int, 95 | required=False, 96 | metavar="", 97 | help="Hive Block number to start replay at or use:", 98 | ) 99 | 100 | block_history_argument_group.add_argument( 101 | "-e", 102 | "--unix_epoch", 103 | action="store", 104 | type=int, 105 | required=False, 106 | metavar="", 107 | help="Unix timestamp to start the history", 108 | ) 109 | 110 | block_history_argument_group.add_argument( 111 | "-o", 112 | "--old", 113 | action="store", 114 | type=int, 115 | required=False, 116 | metavar="", 117 | default=0, 118 | help="Time in HOURS to look back up the chain for old pings (default is 0)", 119 | ) 120 | 121 | 122 | block_history_argument_group.add_argument( 123 | "-a", 124 | "--stop_after", 125 | action="store", 126 | type=int, 127 | required=False, 128 | metavar="", 129 | default=0, 130 | help=("Time in hours to replay for from the start point"), 131 | ) 132 | 133 | block_history_argument_group.add_argument( 134 | "-y", 135 | "--start_date", 136 | action="store", 137 | type=str, 138 | required=False, 139 | metavar="", 140 | default=0, 141 | help=("ISO 8601/RFC 3339 Date/Time to start the history: See https://pendulum.eustace.io/docs/#parsing"), 142 | ) 143 | 144 | 145 | my_parser.add_argument( 146 | "-H", 147 | "--history_only", 148 | action="store_true", 149 | required=False, 150 | help="Report history only and exit", 151 | ) 152 | 153 | my_parser.add_argument( 154 | "-d", 155 | "--diagnostic", 156 | action="store_true", 157 | required=False, 158 | help=("Show diagnostic posts written to the blockchain"), 159 | ) 160 | 161 | my_parser.add_argument( 162 | "-u", 163 | "--urls_only", 164 | action="store_true", 165 | required=False, 166 | help=("Just output the urls on a single line, nothing else"), 167 | ) 168 | 169 | my_parser.add_argument( 170 | "-j", 171 | "--json", 172 | action="store_true", 173 | required=False, 174 | help=("Just output the urls on a single line as json, nothing else"), 175 | ) 176 | 177 | my_parser.add_argument( 178 | "-p", 179 | "--hive-properties", 180 | action="store_true", 181 | required=False, 182 | help=("Include Hive attribues in JSON output"), 183 | ) 184 | 185 | my_parser.add_argument( 186 | "-r", 187 | "--reports", 188 | action="store", 189 | type=int, 190 | required=False, 191 | metavar="", 192 | default=5, 193 | help=( 194 | "Time in MINUTES between periodic status reports, use 0 for no periodic reports" 195 | ), 196 | ) 197 | 198 | group_zmq_socket = my_parser.add_mutually_exclusive_group() 199 | group_zmq_socket.add_argument( 200 | "-s", 201 | "--socket", 202 | action="store", 203 | type=str, 204 | required=False, 205 | metavar="", 206 | default=None, 207 | help=": Socket to send each new url to", 208 | ) 209 | 210 | group_zmq_socket.add_argument( 211 | "-z", 212 | "--zmq", 213 | action="store", 214 | type=str, 215 | required=False, 216 | metavar="", 217 | default=None, 218 | help=": for ZMQ to send each new url to (if no IP given, defaults to 127.0.0.1)", 219 | ) 220 | 221 | my_parser.add_argument( 222 | "-t", "--test", action="store_true", required=False, help="Use a test net API" 223 | ) 224 | 225 | my_parser.add_argument( 226 | "-l", 227 | "--livetest", 228 | action="store_true", 229 | required=False, 230 | help="Watch live Hive chain but looking for id=podping-livetest", 231 | ) 232 | 233 | 234 | my_parser.set_defaults(history_only=False) 235 | 236 | group = my_parser.add_mutually_exclusive_group() 237 | group.add_argument("-q", "--quiet", action="store_true", help="Minimal output") 238 | group.add_argument("-v", "--verbose", action="store_true", help="Lots of output") 239 | 240 | 241 | args = my_parser.parse_args() 242 | my_args = vars(args) 243 | 244 | 245 | class Config: 246 | 247 | WATCHED_OPERATION_IDS = ["pp_", "podping"] 248 | OPERATION_REGEX = re.compile(r"^pp_(.*)_(.*)|podping$") 249 | DIAGNOSTIC_OPERATION_IDS = ["podping-startup", "pp_startup"] 250 | TEST_NODE = ["https://testnet.openhive.network"] 251 | 252 | test = my_args["test"] 253 | quiet = my_args["quiet"] 254 | reports = my_args["reports"] 255 | block_num = my_args["block"] 256 | unix_epoch = my_args["unix_epoch"] 257 | start_date = my_args["start_date"] 258 | history_only = my_args["history_only"] 259 | old = my_args["old"] 260 | diagnostic = my_args["diagnostic"] 261 | urls_only = my_args["urls_only"] 262 | json = my_args["json"] 263 | hive_properties = my_args["hive_properties"] 264 | stop_after = my_args["stop_after"] 265 | use_socket = my_args["socket"] 266 | use_zmq = my_args["zmq"] 267 | livetest = my_args["livetest"] 268 | 269 | @classmethod 270 | def socket_connect(cls): 271 | """Connect to a socket""" 272 | cls.client_socket = socket(AF_INET, SOCK_STREAM) 273 | try: 274 | cls.client_socket.connect((cls.ip_address.compressed, cls.port)) 275 | except Exception as ex: 276 | error_message = f"{ex} occurred {ex.__class__}" 277 | print(error_message) 278 | 279 | @classmethod 280 | def socket_send(cls, url): 281 | """Send a single URL to the socket specifie in startup""" 282 | if cls.client_socket: 283 | cls.socket_connect() 284 | cls.client_socket.send(url.encode()) 285 | cls.client_socket.close 286 | 287 | @classmethod 288 | def zsocket_send(cls, url): 289 | """Send a single URL to the zsocket specified in startup""" 290 | if cls.zsocket: 291 | # cls.zsocket.RCV = 1000 # in milliseconds 292 | try: 293 | cls.zsocket.send_string(url, flags=zmq.NOBLOCK) 294 | msg = cls.zsocket.recv_string() 295 | except Exception as ex: 296 | print(f"Exception: {ex}") 297 | 298 | @classmethod 299 | def setup(cls, client: Client): 300 | """Setup the config""" 301 | if cls.test: 302 | cls.use_test_node = True 303 | else: 304 | cls.use_test_node: bool = os.getenv("USE_TEST_NODE", "False").lower() in { 305 | "true", 306 | "1", 307 | "t", 308 | } 309 | 310 | # If reports is 0 no reports otherwise reports is report_minutes frequency 311 | if cls.reports == 0: 312 | cls.show_reports = False 313 | cls.report_minutes = 0 314 | else: 315 | cls.show_reports = True 316 | cls.report_minutes = cls.reports 317 | 318 | # If we have --old = use that or if --start_date calculate 319 | # how many hours_ago that is 320 | if cls.start_date: 321 | start_date = pendulum.parse(cls.start_date) 322 | cls.hours_ago = pendulum.now() - start_date 323 | elif cls.unix_epoch: 324 | start_date = pendulum.from_timestamp(cls.unix_epoch) 325 | cls.hours_ago = pendulum.now() - start_date 326 | else: 327 | cls.hours_ago = pendulum.duration(hours=cls.old) 328 | 329 | # We are looking for some kind of history 330 | if cls.old or cls.block_num or cls.unix_epoch or cls.start_date: 331 | cls.history = True 332 | if cls.block_num: 333 | while True: 334 | try: 335 | cls.start_time = pendulum.parse(client.get_block(cls.block_num)["timestamp"]) 336 | break 337 | except RPCNodeException: 338 | pass 339 | elif cls.hours_ago: 340 | cls.start_time = pendulum.now() - cls.hours_ago 341 | cls.block_num = get_estimated_block_num(client, cls.start_time) 342 | else: 343 | raise ValueError( 344 | "scan_history: --old= required to scan history" 345 | ) 346 | 347 | if cls.stop_after > 0: 348 | cls.stop_at = cls.start_time + pendulum.duration(hours=cls.stop_after) 349 | else: 350 | cls.stop_at = pendulum.datetime(year=3333, month=1, day=1) 351 | else: 352 | cls.history = False 353 | cls.start_time = pendulum.now() 354 | 355 | cls.client_socket = None 356 | if cls.use_socket: 357 | # TODO: Socket needs testing or conversion to zmq 358 | ip_port_params = cls.use_socket.split(":") 359 | try: 360 | cls.ip_address = IPv4Address(ip_port_params[0]) 361 | except AddressValueError: 362 | cls.ip_address = IPv6Address(ip_port_params[0]) 363 | cls.port = int(ip_port_params[1]) 364 | 365 | cls.zsocket = None 366 | if cls.use_zmq: 367 | context = zmq.Context() 368 | ip_port_params = cls.use_zmq.split(":") 369 | if len(ip_port_params) == 1: 370 | cls.ip_address = IPv4Address("127.0.0.1") 371 | cls.ip_port = ip_port_params[0] 372 | else: 373 | cls.ip_port = ip_port_params[1] 374 | try: 375 | cls.ip_address = IPv4Address(ip_port_params[0]) 376 | except AddressValueError: 377 | cls.ip_address = IPv6Address(cls.ip_port) 378 | 379 | cls.zsocket = context.socket(zmq.REQ) 380 | print(f"tcp://{cls.ip_address}:{cls.ip_port}") 381 | cls.zsocket.connect(f"tcp://{cls.ip_address}:{cls.ip_port}") 382 | 383 | if cls.livetest: 384 | cls.WATCHED_OPERATION_IDS = ["podping-livetest", "pplt_"] 385 | cls.OPERATION_REGEX = re.compile(r"^pplt_(.*)_(.*)|podping-livetest$") 386 | 387 | if cls.json: 388 | cls.urls_only = True 389 | 390 | if cls.urls_only: 391 | cls.show_reports = False 392 | cls.reports = 0 393 | -------------------------------------------------------------------------------- /examples/write-to-csv-analyze-with-R/stats/summaryStats.ndjson: -------------------------------------------------------------------------------- 1 | {"timestamp": "2021-05-20T02:18:27-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 1621457468.80012 to 1621480386.32648__LF__ Podping post count = 1141 (2.99 posts/min)__LF__ Total urls posted = 5060 of wich 2655 are unique__LF__ All other post count = 197914 (518.16 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.57321%"} 2 | {"timestamp": "2021-05-20T02:21:16-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 06:18:16 UTC__LF__ Podping post count = 445 (2.93 posts/min)__LF__ Total urls posted = 1797 of wich 1171 are unique__LF__ All other post count = 67383 (444.28 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.65607%"} 3 | {"timestamp": "2021-05-20T02:23:13-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 06:23:08 UTC__LF__ Podping post count = 458 (2.93 posts/min)__LF__ Total urls posted = 1832 of wich 1188 are unique__LF__ All other post count = 69438 (443.62 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.65526%"} 4 | {"timestamp": "2021-05-20T02:39:01-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 06:38:55 UTC__LF__ Podping post count = 500 (2.9 posts/min)__LF__ Total urls posted = 1921 of wich 1233 are unique__LF__ All other post count = 76112 (441.72 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.65264%"} 5 | {"timestamp": "2021-05-20T03:08:13-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 07:07:58 UTC__LF__ Podping post count = 583 (2.9 posts/min)__LF__ Total urls posted = 2256 of wich 1420 are unique__LF__ All other post count = 88930 (441.65 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.6513%"} 6 | {"timestamp": "2021-05-20T03:38:35-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 07:38:14 UTC__LF__ Podping post count = 687 (2.97 posts/min)__LF__ Total urls posted = 2910 of wich 2013 are unique__LF__ All other post count = 102467 (442.37 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.66599%"} 7 | {"timestamp": "2021-05-20T03:39:02-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 07:38:54 UTC__LF__ Podping post count = 689 (2.97 posts/min)__LF__ Total urls posted = 2913 of wich 2016 are unique__LF__ All other post count = 102683 (442.03 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.66652%"} 8 | {"timestamp": "2021-05-20T04:01:30-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 08:01:01 UTC__LF__ Podping post count = 760 (2.99 posts/min)__LF__ Total urls posted = 3262 of wich 2232 are unique__LF__ All other post count = 112414 (441.86 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.67153%"} 9 | {"timestamp": "2021-05-20T04:02:18-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 08:02:04 UTC__LF__ Podping post count = 762 (2.98 posts/min)__LF__ Total urls posted = 3267 of wich 2235 are unique__LF__ All other post count = 112782 (441.49 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.67111%"} 10 | {"timestamp": "2021-05-20T04:04:46-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 08:03:47 UTC__LF__ Podping post count = 766 (2.98 posts/min)__LF__ Total urls posted = 3275 of wich 2241 are unique__LF__ All other post count = 113784 (442.43 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.6687%"} 11 | {"timestamp": "2021-05-20T04:05:44-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 08:05:28 UTC__LF__ Podping post count = 769 (2.97 posts/min)__LF__ Total urls posted = 3281 of wich 2245 are unique__LF__ All other post count = 114156 (441 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.66913%"} 12 | {"timestamp": "2021-05-20T11:14:22-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 15:14:06 UTC__LF__ Podping post count = 2002 (2.91 posts/min)__LF__ Total urls posted = 8217 of wich 4699 are unique__LF__ All other post count = 332120 (483.08 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.59918%"} 13 | {"timestamp": "2021-05-20T12:52:15-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 16:51:47 UTC__LF__ Podping post count = 2292 (2.92 posts/min)__LF__ Total urls posted = 9792 of wich 5417 are unique__LF__ All other post count = 384924 (490.24 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.59192%"} 14 | {"timestamp": "2021-05-20T12:54:26-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 16:51:47 UTC__LF__ Podping post count = 2292 (2.92 posts/min)__LF__ Total urls posted = 9792 of wich 5417 are unique__LF__ Thats an average of 4.272urls per post__LF__ All other post count = 384924 (490.24 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.59192%"} 15 | {"timestamp": "2021-05-20T12:54:45-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 16:51:47 UTC__LF__ Podping post count = 2292 (2.92 posts/min)__LF__ Total urls posted = 9792 of wich 5417 are unique__LF__ Thats an average of 4.27 urls per post__LF__ All other post count = 384924 (490.24 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.59192%"} 16 | {"timestamp": "2021-05-20T12:55:51-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 16:51:47 UTC__LF__ Podping post count = 2292 (2.92 posts/min)__LF__ Total urls posted = 9792 of wich 5417 are unique__LF__ There is an average of 4.27 urls per post__LF__ All other post count = 384924 (490.24 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.59192%"} 17 | {"timestamp": "2021-05-20T13:01:03-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts for the past hours: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 16:51:47 UTC__LF__ Podping post count = 2292 (2.92 posts/min)__LF__ Total urls posted = 9792 of wich 5417 are unique__LF__ There is an average of 4.27 urls per post__LF__ All other post count = 384924 (490.24 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.59192%__LF__ "} 18 | {"timestamp": "2021-05-20T13:23:30-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts for the past 13.0862722321351 hours: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 16:51:47 UTC__LF__ Podping post count = 2292 (2.92 posts/min)__LF__ Total urls posted = 9792 of wich 5417 are unique__LF__ There is an average of 4.27 urls per post__LF__ All other post count = 384924 (490.24 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.59192%__LF__ "} 19 | {"timestamp": "2021-05-20T13:23:53-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts for the past 13.1 hours: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 16:51:47 UTC__LF__ Podping post count = 2292 (2.92 posts/min)__LF__ Total urls posted = 9792 of wich 5417 are unique__LF__ There is an average of 4.27 urls per post__LF__ All other post count = 384924 (490.24 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.59192%__LF__ "} 20 | {"timestamp": "2021-05-20T13:24:42-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts for the past 13.1 hours: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 16:51:47 UTC__LF__ Podping post count is 2292 (2.92 posts/min)__LF__ Total urls posted is 9792 of wich 5417 are unique__LF__ There is an average of 4.27 urls per post__LF__ All other post count is 384924 (490.24 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.59192%__LF__ "} 21 | {"timestamp": "2021-05-20T13:25:25-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts for the past 13.1 hours: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 16:51:47 UTC__LF__ Podping post count is 2292 (2.92 posts/min)__LF__ Total urls posted is 9792 of wich 5417 are unique__LF__ There is an average of 4.27 urls per post__LF__ All 'other' hive post count is 384924 (490.24 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.59192%__LF__ "} 22 | {"timestamp": "2021-05-20T13:26:25-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post counts for a period of 13.1 hours: __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 16:51:47 UTC__LF__ Podping post count is 2292 (2.92 posts/min)__LF__ Total urls posted is 9792 of wich 5417 are unique__LF__ There is an average of 4.27 urls per post__LF__ All 'other' hive post count is 384924 (490.24 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.59192%__LF__ "} 23 | {"timestamp": "2021-05-20T14:57:28-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post summary for a period of 15 hour 10 minute and 38.37 second __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 18:57:15 UTC__LF__ Podping post count is 2675 (2.94 posts/min)__LF__ Total urls posted is 11855 of wich 6218 are unique__LF__ There is an average of 4.43 urls per post__LF__ All 'other' hive post count is 454864 (499.5 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.58465%__LF__ "} 24 | {"timestamp": "2021-05-20T14:58:55-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post summary for a period of 15 hours and 12 minutes __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 18:58:36 UTC__LF__ Podping post count is 2679 (2.94 posts/min)__LF__ Total urls posted is 11871 of wich 6226 are unique__LF__ There is an average of 4.43 urls per post__LF__ All 'other' hive post count is 455699 (499.67 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.58445%__LF__ "} 25 | {"timestamp": "2021-05-20T14:59:19-0400", "log_lvl": "INFO", "log_msg": "Hive watchers 'custom json' post summary for a period of 15 hours 12 minutes and 21.93 seconds __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 18:58:58 UTC__LF__ Podping post count is 2680 (2.94 posts/min)__LF__ Total urls posted is 11873 of wich 6227 are unique__LF__ There is an average of 4.43 urls per post__LF__ All 'other' hive post count is 455871 (499.66 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.58445%__LF__ "} 26 | {"timestamp": "2021-05-20T15:00:45-0400", "log_lvl": "INFO", "log_msg": "Podping hive watcher's __DBLQUOTE__custom json__DBLQUOTE____DBLQUOTE__ post summary for 15 hours 12 minutes and 21.93 seconds __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 18:58:58 UTC__LF__ Podping post count is 2680 (2.94 posts/min)__LF__ Total urls posted is 11873 of wich 6227 are unique__LF__ There is an average of 4.43 urls per post__LF__ All 'other' hive post count is 455871 (499.66 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.58445%__LF__ "} 27 | {"timestamp": "2021-05-20T15:01:21-0400", "log_lvl": "INFO", "log_msg": "Podping hive __DBLQUOTE__custom json__DBLQUOTE__ post summary__COMMA__ watching for 15 hours 12 minutes and 21.93 seconds __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 18:58:58 UTC__LF__ Podping post count is 2680 (2.94 posts/min)__LF__ Total urls posted is 11873 of wich 6227 are unique__LF__ There is an average of 4.43 urls per post__LF__ All 'other' hive post count is 455871 (499.66 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.58445%__LF__ "} 28 | {"timestamp": "2021-05-20T15:02:17-0400", "log_lvl": "INFO", "log_msg": "Podping hive __DBLQUOTE__custom json__DBLQUOTE__ post summary__LF__ Watching for 15 hours 12 minutes and 21.93 seconds __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 18:58:58 UTC__LF__ Podping post count is 2680 (2.94 posts/min)__LF__ Total urls posted is 11873 of wich 6227 are unique__LF__ There is an average of 4.43 urls per post__LF__ All 'other' hive post count is 455871 (499.66 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.58445%__LF__ "} 29 | {"timestamp": "2021-05-20T15:03:25-0400", "log_lvl": "INFO", "log_msg": "Podping hive __DBLQUOTE__custom json__DBLQUOTE__ post summary:__LF__ Watching for 15 hours 12 minutes and 21.93 seconds __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 18:58:58 UTC__LF__ Podping post count is 2680 (2.94 posts/min)__LF__ Total urls posted is 11873 of wich 6227 are unique__LF__ (average of 4.43 urls/post__LF__ All 'other' hive post count is 455871 (499.66 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.58445%__LF__ "} 30 | {"timestamp": "2021-05-20T15:03:54-0400", "log_lvl": "INFO", "log_msg": "Podping hive __DBLQUOTE__custom json__DBLQUOTE__ post summary:__LF__ Watching for 15 hours 12 minutes and 21.93 seconds __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 18:58:58 UTC__LF__ Podping post count is 2680 (2.94 posts/min)__LF__ Total urls posted is 11873 of wich 6227 are unique__LF__ (average of 4.43 urls/post)__LF__ All 'other' hive post count is 455871 (499.66 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.58445%__LF__ "} 31 | {"timestamp": "2021-05-20T15:04:13-0400", "log_lvl": "INFO", "log_msg": "Podping hive __DBLQUOTE__custom json__DBLQUOTE__ post summary:__LF__ Watching for 15 hours 17 minutes and 20.15 seconds __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 19:03:56 UTC__LF__ Podping post count is 2710 (2.95 posts/min)__LF__ Total urls posted is 12128 of wich 6258 are unique__LF__ (average of 4.48 urls/post)__LF__ All 'other' hive post count is 458672 (500 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.58737%__LF__ "} 32 | {"timestamp": "2021-05-20T15:24:41-0400", "log_lvl": "INFO", "log_msg": "Podping hive __DBLQUOTE__custom json__DBLQUOTE__ post summary:__LF__ __LF__ Podping post count is 2710 (2.95 posts/min)__LF__ Total urls posted is 12128 of wich 6258 are unique__LF__ (average of 4.48 urls/post)__LF__ All 'other' hive post count is 458672 (500 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.58737%__LF__ Watching for 15 hours 17 minutes and 20.15 seconds __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 19:03:56 UTC"} 33 | {"timestamp": "2021-05-20T15:24:57-0400", "log_lvl": "INFO", "log_msg": "Podping hive __DBLQUOTE__custom json__DBLQUOTE__ post summary:__LF__ Podping post count is 2710 (2.95 posts/min)__LF__ Total urls posted is 12128 of wich 6258 are unique__LF__ (average of 4.48 urls/post)__LF__ All 'other' hive post count is 458672 (500 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.58737%__LF__ Watching for 15 hours 17 minutes and 20.15 seconds __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 19:03:56 UTC"} 34 | {"timestamp": "2021-05-20T15:26:00-0400", "log_lvl": "INFO", "log_msg": "Podping hive __DBLQUOTE__custom json__DBLQUOTE__ post summary:__LF__ Post count is 2710 (2.95 posts/min)__LF__ Total urls posted is 12128 of wich 6258 are unique__LF__ (average of 4.48 urls/post)__LF__All 'other' hive post count is 458672 (500 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.58737%__LF__ Watching for 15 hours 17 minutes and 20.15 seconds __LF__ From 2021-05-20 03:46:36 UTC to 2021-05-20 19:03:56 UTC"} 35 | {"timestamp": "2021-05-20T17:02:55-0400", "log_lvl": "INFO", "log_msg": "Podping hive __DBLQUOTE__custom json__DBLQUOTE__ post summary:__LF__ Post count is 2710 (2.95 posts/min)__LF__ Total urls posted is 12128 of wich 6258 are unique__LF__ (average of 4.48 urls/post)__LF__ All 'other' hive post count is 458672 (500 posts/min)__LF__ Podping portion of all 'custom json' posts on hive is 0.58737%__LF__From 2021-05-20 03:46:36 UTC to 2021-05-20 19:03:56 UTc __LF__ Watched for 15 hours 17 minutes and 20.15 seconds __LF__#podping #Stats"} 36 | -------------------------------------------------------------------------------- /logs/very-first-trans.log: -------------------------------------------------------------------------------- 1 | 2021-05-10 13:51:52,678 INFO root MainThread : 2021-05-07 20:32:24+00:00 PodPings: 0 - Count: 2982 - Time Delta: 2 days, 14:19:28.678274 2 | 2021-05-10 13:51:53,827 INFO root MainThread : 2021-05-07 20:37:27+00:00 PodPings: 0 - Count: 2445 - Time Delta: 2 days, 14:14:26.827599 3 | 2021-05-10 13:51:54,716 INFO root MainThread : 2021-05-07 20:42:30+00:00 PodPings: 0 - Count: 2729 - Time Delta: 2 days, 14:09:24.716069 4 | 2021-05-10 13:51:55,581 INFO root MainThread : 2021-05-07 20:47:33+00:00 PodPings: 0 - Count: 2609 - Time Delta: 2 days, 14:04:22.580982 5 | 2021-05-10 13:51:56,763 INFO root MainThread : 2021-05-07 20:52:36+00:00 PodPings: 0 - Count: 2657 - Time Delta: 2 days, 13:59:20.763163 6 | 2021-05-10 13:51:57,806 INFO root MainThread : 2021-05-07 20:57:39+00:00 PodPings: 0 - Count: 2815 - Time Delta: 2 days, 13:54:18.806399 7 | 2021-05-10 13:51:58,353 INFO root MainThread : Feed Updated - 2021-05-07 20:58:33+00:00 - f0affd194524a6e0171d65d29d5c501865f0bd72 - https://feeds.transistor.fm/retail-remix 8 | 2021-05-10 13:51:58,359 INFO root MainThread : Feed Updated - 2021-05-07 20:58:42+00:00 - 618c98ab838c1b0662057ab5445db5a924f23871 - https://feeds.buzzsprout.com/901954.rss 9 | 2021-05-10 13:51:58,371 INFO root MainThread : Feed Updated - 2021-05-07 20:58:54+00:00 - b3b25fb4eef3f22786a6bda35ec72ddbae04fbe2 - https://feeds.buzzsprout.com/673345.rss 10 | 2021-05-10 13:51:58,376 INFO root MainThread : Feed Updated - 2021-05-07 20:59:00+00:00 - 5fdbacaa1599221727a93e4d5a24c99586653d18 - https://feeds.buzzsprout.com/1386325.rss 11 | 2021-05-10 13:51:58,379 INFO root MainThread : Feed Updated - 2021-05-07 20:59:03+00:00 - eb256e2aeef1d2eef0603195095ffca238833a47 - https://feeds.buzzsprout.com/193311.rss 12 | 2021-05-10 13:51:58,382 INFO root MainThread : Feed Updated - 2021-05-07 20:59:06+00:00 - 0075b7fcbd7a547a2305ac4c99e03b4fef6b2d1f - https://feeds.simplecast.com/WPKRbMz6 13 | 2021-05-10 13:51:58,405 INFO root MainThread : Feed Updated - 2021-05-07 20:59:24+00:00 - 8a5ee3e184b0e0eab496445de36b3716ce20fabf - https://feeds.transistor.fm/humans-of-martech 14 | 2021-05-10 13:51:58,426 INFO root MainThread : Feed Updated - 2021-05-07 20:59:33+00:00 - 117276b8519ff79e7a97f6dccedf1a55b5d52a42 - https://feeds.transistor.fm/anstice-acast-candid-conversations-on-modern-marketing 15 | 2021-05-10 13:51:58,449 INFO root MainThread : Feed Updated - 2021-05-07 20:59:45+00:00 - e5f54f486d8203200b0e0ce549b68ea8a837139f - https://feeds.captivate.fm/ubcnewsworld/ 16 | 2021-05-10 13:51:58,454 INFO root MainThread : Feed Updated - 2021-05-07 20:59:48+00:00 - 5cac96bcf1dd3c856f9e55af730973a40c5c1d0d - https://feeds.buzzsprout.com/1537951.rss 17 | 2021-05-10 13:51:58,461 INFO root MainThread : Feed Updated - 2021-05-07 20:59:51+00:00 - c64cc0a4c842479fbb537a97f774b7018987ffcb - https://feeds.podcastmirror.com/mom-hour 18 | 2021-05-10 13:51:58,506 INFO root MainThread : Feed Updated - 2021-05-07 21:00:12+00:00 - e9801496fb0d67478bdc481384e0484f7fb895fb - https://feeds.captivate.fm/sichosspanish/ 19 | 2021-05-10 13:51:58,507 INFO root MainThread : Feed Updated - 2021-05-07 21:00:12+00:00 - 2e4cd1bbdf0676673be0463262e58c7f2b16fcc7 - https://1045espn.com/category/after-further-review-demand/feed/ 20 | 2021-05-10 13:51:58,516 INFO root MainThread : Feed Updated - 2021-05-07 21:00:15+00:00 - f61a4f5f395f98b50ddd2546bc45c20a8b8590ff - https://www.wsjm.com/feed/podcast/ 21 | 2021-05-10 13:51:58,937 INFO root MainThread : Feed Updated - 2021-05-07 21:00:24+00:00 - 7299d7b0bea97691efea084b724d24551efcf764 - https://feeds.transistor.fm/evacast 22 | 2021-05-10 13:51:58,947 INFO root MainThread : Feed Updated - 2021-05-07 21:00:33+00:00 - 71c5c39901cfdeced544b9c64e0260aaf21f1a3f - https://rnd-update.podigee.io/feed/mp3 23 | 2021-05-10 13:51:58,966 INFO root MainThread : Feed Updated - 2021-05-07 21:01:00+00:00 - ae2b7b72811737cd0be4ce0d4580fe32ed218df6 - https://rss.whooshkaa.com/rss/podcast/id/1820 24 | 2021-05-10 13:51:58,977 INFO root MainThread : Feed Updated - 2021-05-07 21:01:09+00:00 - d8d40be0d3b676bba650ff8c0f6bd4aaea487354 - https://feeds.transistor.fm/foco 25 | 2021-05-10 13:51:58,983 INFO root MainThread : Feed Updated - 2021-05-07 21:01:15+00:00 - 5cb3a211f1216ee378ea1606350457e79e09a9e5 - https://feeds.buzzsprout.com/218790.rss 26 | 2021-05-10 13:51:58,985 INFO root MainThread : Feed Updated - 2021-05-07 21:01:18+00:00 - a9ead713f103f20e051c56961a272b4897b8f4b4 - https://www.wmfe.org/feed 27 | 2021-05-10 13:51:58,988 INFO root MainThread : Feed Updated - 2021-05-07 21:01:21+00:00 - b3bc1094778ec7b47588806fcccdb269c8b1ff4a - https://anchor.fm/s/4312b270/podcast/rss 28 | 2021-05-10 13:51:58,991 INFO root MainThread : Feed Updated - 2021-05-07 21:01:24+00:00 - 47bf6703cd1e54d6da46d7b14c04f2cb94edc73e - https://www.omnycontent.com/d/playlist/0009b167-0e82-414e-91eb-aae8011fc66d/dff2021c-3003-4e2a-8fe1-ac8700e6caa2/f31de8bb-0e94-42c1-9915-ac8700e6e535/podcast.rss 29 | 2021-05-10 13:51:59,002 INFO root MainThread : Feed Updated - 2021-05-07 21:01:36+00:00 - 3c39a88415a9c876afcc6c8c338d5da66b375aaf - https://feeds.simplecast.com/xjpdm5C9 30 | 2021-05-10 13:51:59,015 INFO root MainThread : Feed Updated - 2021-05-07 21:01:48+00:00 - 8989e9ff6895cc07987dc8caace23b59ade8db2a - https://feeds.simplecast.com/67A7XZ6C 31 | 2021-05-10 13:51:59,026 INFO root MainThread : Feed Updated - 2021-05-07 21:02:00+00:00 - e0f29fadc4c774c6331c4b262ed6d59be7678be2 - https://feeds.buzzsprout.com/1756288.rss 32 | 2021-05-10 13:51:59,029 INFO root MainThread : Feed Updated - 2021-05-07 21:02:03+00:00 - 136134e740b202ef9b23d87144d99fc6e7144bc3 - https://feeds.buzzsprout.com/1188380.rss 33 | 2021-05-10 13:51:59,038 INFO root MainThread : Feed Updated - 2021-05-07 21:02:12+00:00 - 26d758ad04f95f3e236aba17d5a90efcbc0f1c54 - https://anchor.fm/s/3d58f268/podcast/rss 34 | 2021-05-10 13:51:59,041 INFO root MainThread : Feed Updated - 2021-05-07 21:02:15+00:00 - 0e426c7ede2887dfd8813d016d984d8cf35742ce - https://feeds.buzzsprout.com/1733440.rss 35 | 2021-05-10 13:51:59,043 INFO root MainThread : Feed Updated - 2021-05-07 21:02:18+00:00 - a1b695e667f74b55efc01d57538aff4233841b44 - https://gupscorner.com/feed/podcast/ 36 | 2021-05-10 13:51:59,052 INFO root MainThread : Feed Updated - 2021-05-07 21:02:30+00:00 - 844206ad66a79b47d70b88fa36e53f12f84c38ef - https://feeds.buzzsprout.com/600307.rss 37 | 2021-05-10 13:51:59,055 INFO root MainThread : Feed Updated - 2021-05-07 21:02:33+00:00 - db7b95ee8d12f930587cb92634315f25c58dde47 - https://feeds.simplecast.com/LIxXm9_w 38 | 2021-05-10 13:51:59,058 INFO root MainThread : Feed Updated - 2021-05-07 21:02:36+00:00 - 691bd0aac29ebcc3b594c58b088d03901954c477 - https://feeds.simplecast.com/ipHraFwx 39 | 2021-05-10 13:51:59,061 INFO root MainThread : Feed Updated - 2021-05-07 21:02:39+00:00 - 23400564cab3e0bcb93e5ceb9cba80081bb7cc3d - https://feeds.simplecast.com/Ofm5lAJZ 40 | 2021-05-10 13:51:59,063 INFO root MainThread : 2021-05-07 21:02:42+00:00 PodPings: 33 - Count: 2829 - Time Delta: 2 days, 13:49:17.063194 41 | 2021-05-10 13:51:59,066 INFO root MainThread : Feed Updated - 2021-05-07 21:02:45+00:00 - 634220c489fa6b47be870b20341ec7fff4016d6f - http://audioboom.com/channels/5023446.rss 42 | 2021-05-10 13:51:59,582 INFO root MainThread : Feed Updated - 2021-05-07 21:03:00+00:00 - bfd9692abb96648e7bff190aa29ff512886d7f7a - https://rss.whooshkaa.com/rss/podcast/id/1820 43 | 2021-05-10 13:51:59,586 INFO root MainThread : Feed Updated - 2021-05-07 21:03:03+00:00 - 210de811425410af74634fb045fc05d3df93f243 - https://feeds.buzzsprout.com/1636294.rss 44 | 2021-05-10 13:51:59,594 INFO root MainThread : Feed Updated - 2021-05-07 21:03:06+00:00 - c634e39171356f7321ee69964ff1708b7712a586 - https://feeds.buzzsprout.com/938884.rss 45 | 2021-05-10 13:51:59,618 INFO root MainThread : Feed Updated - 2021-05-07 21:03:21+00:00 - e7f64c56f8d17d69a255466479ba13dd67840bb4 - https://feeds.transistor.fm/friendshipping 46 | 2021-05-10 13:51:59,627 INFO root MainThread : Feed Updated - 2021-05-07 21:03:30+00:00 - 4520623721a90ac974396e2b0204ad449c9cfa09 - https://feeds.buzzsprout.com/921037.rss 47 | 2021-05-10 13:51:59,629 INFO root MainThread : Feed Updated - 2021-05-07 21:03:33+00:00 - 15c21a8280640d8a4a5de93724d4a41419780463 - https://feeds.buzzsprout.com/1721581.rss 48 | 2021-05-10 13:51:59,633 INFO root MainThread : Feed Updated - 2021-05-07 21:03:36+00:00 - 44d8061f7d91998fbe40f346e7f5fadc1f37473f - https://feeds.buzzsprout.com/921037.rss 49 | 2021-05-10 13:51:59,634 INFO root MainThread : Feed Updated - 2021-05-07 21:03:36+00:00 - e69d28cfb35c0289761267c561bd157cdc9027ce - https://feeds.transistor.fm/friendshipping 50 | 2021-05-10 13:51:59,637 INFO root MainThread : Feed Updated - 2021-05-07 21:03:39+00:00 - 54e963375f55813cefeaa94914dcf6961c0d30a0 - https://feeds.simplecast.com/bCQnsJ6z 51 | 2021-05-10 13:51:59,672 INFO root MainThread : Feed Updated - 2021-05-07 21:04:06+00:00 - 73c3ecf926d3e4c813c178afc529e0a20325e8fb - https://feeds.simplecast.com/rnfjjbza 52 | 2021-05-10 13:51:59,687 INFO root MainThread : Feed Updated - 2021-05-07 21:04:21+00:00 - 92bd183fd91ae4f3f3171321ef050a3e66938d24 - https://feeds.buzzsprout.com/1186787.rss 53 | 2021-05-10 13:51:59,699 INFO root MainThread : Feed Updated - 2021-05-07 21:04:30+00:00 - a9c6653ad5c71b97602cf17af83a19c00249f76c - https://mimcast.pl/feed/podcast/ 54 | 2021-05-10 13:51:59,734 INFO root MainThread : Feed Updated - 2021-05-07 21:04:54+00:00 - fdc8b99b87aa040bfe187fcbc4dbcb8006defb05 - https://feeds.buzzsprout.com/1108187.rss 55 | 2021-05-10 13:51:59,748 INFO root MainThread : Feed Updated - 2021-05-07 21:05:06+00:00 - 239ae467825f56a5a89265823190d328122c0624 - https://feeds.captivate.fm/rabbi-e-in-3/ 56 | 2021-05-10 13:52:00,201 INFO root MainThread : Feed Updated - 2021-05-07 21:05:45+00:00 - 71336967f602a917e0f0cab4142bcfa1e7bc51bb - https://feeds.transistor.fm/deliverability-defined 57 | 2021-05-10 13:52:00,209 INFO root MainThread : Feed Updated - 2021-05-07 21:05:51+00:00 - 90c468d694e91f5439704ca838ba5f68656c7d15 - https://feeds.buzzsprout.com/1163144.rss 58 | 2021-05-10 13:52:00,214 INFO root MainThread : Feed Updated - 2021-05-07 21:05:57+00:00 - 0b25bb43c539fe7d4a08fa7770245bdfcf568cf0 - https://feeds.buzzsprout.com/1437373.rss 59 | 2021-05-10 13:52:00,222 INFO root MainThread : Feed Updated - 2021-05-07 21:06:06+00:00 - 30db57639b3fd34721cd8365a880ea90118cd693 - https://feeds.simplecast.com/OzDH_At2 60 | 2021-05-10 13:52:00,225 INFO root MainThread : Feed Updated - 2021-05-07 21:06:09+00:00 - 544732d95c1e99836bd02854f2fc0c9d44405c46 - https://feeds.buzzsprout.com/952438.rss 61 | 2021-05-10 13:52:00,228 INFO root MainThread : Feed Updated - 2021-05-07 21:06:12+00:00 - a1a459b8d0557d628c000e9efdc862b2b44cf610 - https://feeds.buzzsprout.com/952438.rss 62 | 2021-05-10 13:52:00,230 INFO root MainThread : Feed Updated - 2021-05-07 21:06:15+00:00 - 3f8d97205db34da88ec9085bd156ee2182c096bd - https://feeds.buzzsprout.com/1740368.rss 63 | 2021-05-10 13:52:00,237 INFO root MainThread : Feed Updated - 2021-05-07 21:06:24+00:00 - 5de960391f8b518d3407556a2e8ef86ec7ad8a6d - https://feeds.buzzsprout.com/908677.rss 64 | 2021-05-10 13:52:00,249 INFO root MainThread : Feed Updated - 2021-05-07 21:06:36+00:00 - da9f0da9d16b353997a55846d06836bd064709e9 - https://feeds.captivate.fm/3yfuera_nfl/ 65 | 2021-05-10 13:52:00,252 INFO root MainThread : Feed Updated - 2021-05-07 21:06:39+00:00 - d564ca26d0bbc2b3f6ffab0afd2c05eff9d386a5 - https://feeds.buzzsprout.com/88569.rss 66 | 2021-05-10 13:52:00,264 INFO root MainThread : Feed Updated - 2021-05-07 21:06:54+00:00 - 39e4e99f131aa6b91357c86cd0bd8a8027f3af00 - https://feeds.buzzsprout.com/552559.rss 67 | 2021-05-10 13:52:00,267 INFO root MainThread : Feed Updated - 2021-05-07 21:06:57+00:00 - bba63fa6e6a94397db0b54428fe6adc25b05455a - https://rss.whooshkaa.com/rss/podcast/id/1820 68 | 2021-05-10 13:52:00,271 INFO root MainThread : Feed Updated - 2021-05-07 21:07:00+00:00 - 89f1d909147b08f7c491405041c7b8f0f18c4693 - https://feeds.transistor.fm/sem-precedentes 69 | 2021-05-10 13:52:00,288 INFO root MainThread : Feed Updated - 2021-05-07 21:07:18+00:00 - fd3c24f740ecb47572f6ddc98041e942a2950f1c - https://feeds.transistor.fm/sem-precedentes 70 | 2021-05-10 13:52:00,291 INFO root MainThread : Feed Updated - 2021-05-07 21:07:21+00:00 - ac3aace65010594d986be9e03001769316ddbf2d - https://feeds.transistor.fm/flix-and-a-six 71 | 2021-05-10 13:52:00,294 INFO root MainThread : Feed Updated - 2021-05-07 21:07:24+00:00 - 50decb852e08c8d7cde890cd7f52248d90677cc2 - https://thematakt.podigee.io/feed/mp3 72 | 2021-05-10 13:52:00,303 INFO root MainThread : Feed Updated - 2021-05-07 21:07:33+00:00 - 23fb1535ad140ba570e1ee423066ed338e574a7d - https://audioboom.com/channels/5041524.rss 73 | 2021-05-10 13:52:00,315 INFO root MainThread : 2021-05-07 21:07:45+00:00 PodPings: 32 - Count: 2775 - Time Delta: 2 days, 13:44:15.315499 74 | 2021-05-10 13:52:00,316 INFO root MainThread : Feed Updated - 2021-05-07 21:07:45+00:00 - f16639a3d7ce93bdbd7d5070b63d8bddc31687d8 - https://feeds.transistor.fm/flix-and-a-six 75 | 2021-05-10 13:52:00,776 INFO root MainThread : Feed Updated - 2021-05-07 21:07:54+00:00 - 12f288e3b5a7722ab165c7bb58458a2785910d4e - https://feeds.buzzsprout.com/1566737.rss 76 | 2021-05-10 13:52:00,785 INFO root MainThread : Feed Updated - 2021-05-07 21:08:06+00:00 - c32e95ad956f2d033a29b0c11ffdeb75ef727071 - https://feeds.simplecast.com/GA0IrJQO 77 | 2021-05-10 13:52:00,791 INFO root MainThread : Feed Updated - 2021-05-07 21:08:12+00:00 - 8fb914c0853a51e2f273a0a33cf160ad21bff25b - https://audioboom.com/channels/3270305.rss 78 | 2021-05-10 13:52:00,807 INFO root MainThread : Feed Updated - 2021-05-07 21:08:30+00:00 - 95f79ce7454b89043ddedecf26c42b84effd260a - https://feeds.buzzsprout.com/202128.rss 79 | 2021-05-10 13:52:00,812 INFO root MainThread : Feed Updated - 2021-05-07 21:08:36+00:00 - f7b243b0c71d817f08b552ea0b64608a0d355d5b - https://feeds.simplecast.com/ZwbnTdFP 80 | 2021-05-10 13:52:00,820 INFO root MainThread : Feed Updated - 2021-05-07 21:08:45+00:00 - f47bfd0b76d5ec8f2c5614e257fcf51684e5e4d1 - https://feeds.podcastmirror.com/mccarthy-report 81 | 2021-05-10 13:52:00,827 INFO root MainThread : Feed Updated - 2021-05-07 21:08:51+00:00 - c6b9ed6ca147792393b8d228b16f012303d83e30 - https://feeds.captivate.fm/cover-fire-podcast/ 82 | 2021-05-10 13:52:00,837 INFO root MainThread : Feed Updated - 2021-05-07 21:08:57+00:00 - 030090dd40e9f6851a8111710141b5cb4cd83687 - https://rss.whooshkaa.com/rss/podcast/id/8209 83 | 2021-05-10 13:52:00,847 INFO root MainThread : Feed Updated - 2021-05-07 21:09:06+00:00 - ed397040823938194b816d81198a52be6fbdd608 - https://feeds.simplecast.com/WPKRbMz6 84 | 2021-05-10 13:52:00,852 INFO root MainThread : Feed Updated - 2021-05-07 21:09:12+00:00 - 2d0177fc1f2d029f5dbc4aa9f2ff97c7f821ad2a - https://feeds.buzzsprout.com/921037.rss 85 | 2021-05-10 13:52:00,859 INFO root MainThread : Feed Updated - 2021-05-07 21:09:21+00:00 - af827f7a01f863e0122a512b50fb9fec13f3cd85 - https://feeds.buzzsprout.com/924406.rss 86 | 2021-05-10 13:52:00,876 INFO root MainThread : Feed Updated - 2021-05-07 21:09:42+00:00 - 4644faf3919e56da74e85cea7b24786004b966a0 - https://podcast.sportsnet.ca/shows/scott-rintoul/feed/podcast/ 87 | 2021-05-10 13:52:00,882 INFO root MainThread : Feed Updated - 2021-05-07 21:09:48+00:00 - 2479ae8406944df7b780c4ede10fbcc288808a7c - https://anchor.fm/s/3c7b177c/podcast/rss 88 | 2021-05-10 13:52:00,891 INFO root MainThread : Feed Updated - 2021-05-07 21:09:57+00:00 - 87ef8f5125b517212f051cce9da3953edf1de674 - https://feeds.buzzsprout.com/1181729.rss 89 | 2021-05-10 13:52:00,892 INFO root MainThread : Feed Updated - 2021-05-07 21:09:57+00:00 - c3bf93ddd19a6f51783c71397cd614e0e82c8c22 - https://feeds.transistor.fm/mode-fm-podcasts 90 | 2021-05-10 13:52:01,326 INFO root MainThread : Feed Updated - 2021-05-07 21:10:21+00:00 - a053d481cf5219dd4e0c402716a64ac48b0c61e2 - https://feeds.buzzsprout.com/1389943.rss 91 | 2021-05-10 13:52:01,335 INFO root MainThread : Feed Updated - 2021-05-07 21:10:30+00:00 - 5f042f1710f65be3c0200d57f1c9cbf241c9918a - https://feeds.transistor.fm/korean-american-parenting-podcast 92 | 2021-05-10 13:52:01,338 INFO root MainThread : Feed Updated - 2021-05-07 21:10:33+00:00 - 782727fed302b72bb4cf8ee5a935bd5a7d75f45d - https://feeds.buzzsprout.com/1174889.rss 93 | 2021-05-10 13:52:01,345 INFO root MainThread : Feed Updated - 2021-05-07 21:10:36+00:00 - 544177f0d595c93493a1aac9aa173b033b769a8b - https://feeds.simplecast.com/_HNyyKLA 94 | 2021-05-10 13:52:01,360 INFO root MainThread : Feed Updated - 2021-05-07 21:10:48+00:00 - f6c0171b802904a29596134e3953ac1e14a6e21f - https://www.peoplespharmacy.com/feed/podcast 95 | 2021-05-10 13:52:01,387 INFO root MainThread : Feed Updated - 2021-05-07 21:11:09+00:00 - 485f9bad2057ffd2f50f44bdcc326dfada4948d6 - https://feeds.buzzsprout.com/1663318.rss 96 | 2021-05-10 13:52:01,394 INFO root MainThread : Feed Updated - 2021-05-07 21:11:15+00:00 - d0662404d961ce5b98b775e5a20f9d08c7d8bbc3 - https://feeds.buzzsprout.com/782174.rss 97 | 2021-05-10 13:52:01,412 INFO root MainThread : Feed Updated - 2021-05-07 21:11:33+00:00 - 6b0db79d72a3c1c7df18a304bbd9a496ae88c274 - https://feeds.simplecast.com/S2TGBmR8 98 | 2021-05-10 13:52:01,415 INFO root MainThread : Feed Updated - 2021-05-07 21:11:36+00:00 - 84b6e2757aa5f97b5028c6241221e5e4bb1a5a04 - https://www.republicbroadcastingarchives.org/category/michael-rivero/feed/podcast/ 99 | 2021-05-10 13:52:01,457 INFO root MainThread : Feed Updated - 2021-05-07 21:12:15+00:00 - 32008dc81fd8dce6b41757a4ceca3193e34309ad - https://feeds.transistor.fm/nostalgia-entertainment-system 100 | -------------------------------------------------------------------------------- /hive-watcher.py: -------------------------------------------------------------------------------- 1 | import itertools 2 | import json 3 | import logging 4 | import sys 5 | import time 6 | from collections import deque 7 | from datetime import timedelta 8 | from timeit import default_timer as timer 9 | from typing import Set 10 | 11 | import backoff 12 | import pendulum 13 | from lighthive.client import Client 14 | from lighthive.exceptions import RPCNodeException 15 | 16 | from config import Config 17 | 18 | 19 | class Pings: 20 | total_pings = 0 21 | 22 | 23 | class UnspecifiedHiveException(Exception): 24 | pass 25 | 26 | 27 | NODES_FOR_HISTORY_GENERATION = frozenset({ 28 | "https://api.hive.blog", 29 | "https://api.openhive.network", 30 | "https://hived.emre.sh", 31 | "https://hive-api.arcange.eu", 32 | "https://rpc.mahdiyari.info", 33 | }) 34 | NODES_WITHOUT_HISTORY_GENERATION = frozenset({ 35 | "https://rpc.podping.org", 36 | "https://rpc.ecency.com", 37 | }) 38 | 39 | 40 | def get_client( 41 | connect_timeout=3, 42 | read_timeout=30, 43 | loglevel=logging.WARN, 44 | automatic_node_selection=False, 45 | api_type="condenser_api", 46 | ) -> Client: 47 | try: 48 | nodes = NODES_FOR_HISTORY_GENERATION 49 | 50 | if api_type == "block_api": 51 | nodes |= NODES_WITHOUT_HISTORY_GENERATION 52 | 53 | client = Client( 54 | connect_timeout=connect_timeout, 55 | nodes=nodes, 56 | read_timeout=read_timeout, 57 | loglevel=loglevel, 58 | automatic_node_selection=automatic_node_selection, 59 | backoff_mode=backoff.fibo, 60 | backoff_max_tries=3, 61 | load_balance_nodes=True, 62 | circuit_breaker=True, 63 | ) 64 | return client(api_type) 65 | except Exception as ex: 66 | raise ex 67 | 68 | 69 | def get_allowed_accounts( 70 | client: Client = None, account_name: str = "podping", num_retires = 3 71 | ) -> Set[str]: 72 | """get a list of all accounts allowed to post by acc_name (podping) 73 | and only react to these accounts""" 74 | 75 | if not client: 76 | client = get_client(connect_timeout=3, read_timeout=3) 77 | 78 | for _ in range(num_retires): 79 | try: 80 | master_account = client.account(account_name) 81 | return set(master_account.following()) 82 | except (KeyError, RPCNodeException): 83 | logging.warning(f"Unable to get account followers - retrying") 84 | except Exception as e: 85 | logging.warning(f"Unable to get account followers: {e} - retrying") 86 | finally: 87 | client.next_node() 88 | 89 | 90 | def allowed_op_id(operation_id: str) -> bool: 91 | """Checks if the operation_id is in the allowed list""" 92 | return Config.OPERATION_REGEX.match(operation_id) is not None 93 | 94 | 95 | def output(post) -> int: 96 | """Prints out the post and extracts the custom_json""" 97 | 98 | data = json.loads(post["op"][1]['json']) 99 | 100 | if Config.json: 101 | if Config.hive_properties: 102 | data["hiveTxId"] = post["trx_id"] 103 | data["hiveBlockNum"] = post["block"] 104 | print(json.dumps(data)) 105 | if "iris" in data: 106 | return len(data["iris"]) 107 | if "urls" in data: 108 | return data["num_urls"] 109 | if "url" in data: 110 | return 1 111 | return -1 112 | 113 | data["medium_reason"] = "podcast update" 114 | 115 | # Check version of Podping and : 116 | if data.get("version") in {"1.0", "1.1"}: 117 | if data.get("iris"): 118 | data["urls"] = data.get("iris") 119 | data["num_urls"] = len(data["iris"]) 120 | data["medium_reason"] = f"{data.get('medium')} {data.get('reason')}" 121 | 122 | if Config.quiet: 123 | if data.get("num_urls"): 124 | return data.get("num_urls") 125 | else: 126 | return 1 127 | 128 | if Config.urls_only or Config.json: 129 | if data.get("url"): 130 | print(data.get("url")) 131 | # These calls do nothing if sockets are not open 132 | # ZMQ Socket will block until it receives acknowledgement 133 | Config.socket_send(data.get("url")) 134 | Config.zsocket_send(data.get("url")) 135 | return 1 136 | elif data.get("urls"): 137 | for url in data.get("urls"): 138 | print(url) 139 | Config.socket_send(url) 140 | Config.zsocket_send(url) 141 | return data.get("num_urls") 142 | 143 | if Config.use_socket: 144 | if data.get("url"): 145 | Config.socket_send(data.get("url")) 146 | elif data.get("urls"): 147 | for url in data.get("urls"): 148 | Config.socket_send(url) 149 | 150 | if Config.use_zmq: 151 | if data.get("url"): 152 | Config.zsocket_send(data.get("url")) 153 | elif data.get("urls"): 154 | for url in data.get("urls"): 155 | Config.zsocket_send(url) 156 | 157 | data["trx_id"] = post["trx_id"] 158 | data["timestamp"] = post["timestamp"] 159 | 160 | count = 0 161 | if Config.use_test_node: 162 | data["test_node"] = True 163 | 164 | if data.get("url"): 165 | logging.info( 166 | f"Feed Updated | {data['timestamp']} | {data['trx_id']} " 167 | f"| {data.get('url')} | {post['op'][1]['required_posting_auths']}" 168 | f" | {data['medium_reason']}" 169 | ) 170 | count = 1 171 | elif data.get("urls"): 172 | for url in data.get("urls"): 173 | count += 1 174 | logging.info( 175 | f"Feed Updated | {data['timestamp']} | {data['trx_id']}" 176 | f" | {url} | {post['op'][1]['required_posting_auths']}" 177 | f" | {data['medium_reason']}" 178 | ) 179 | return count 180 | 181 | 182 | def output_diagnostic(post: dict) -> None: 183 | """Just output Diagnostic messages recorded on the chain""" 184 | data = json.loads(post.get("json")) 185 | if Config.diagnostic: 186 | logging.info( 187 | f"Diagnostic | {post['timestamp']} " 188 | f"| {data.get('server_account')} | {post['trx_id']} | {data.get('message')}" 189 | ) 190 | logging.info(json.dumps(data, indent=2)) 191 | 192 | 193 | def output_status( 194 | timestamp: str, 195 | pings: int, 196 | count_posts: int, 197 | time_to_now: timedelta = None, 198 | current_block_num: int = "", 199 | ) -> None: 200 | """Writes out a status update at with some count data""" 201 | if not Config.reports and Config.quiet: 202 | return None 203 | if time_to_now: 204 | logging.info( 205 | f"{timestamp} | Podpings: {pings:7} / {Pings.total_pings:10} | Count:" 206 | f" {count_posts:12} | BlockNum: {current_block_num} | Time Delta:" 207 | f" {time_to_now}" 208 | ) 209 | else: 210 | logging.info( 211 | f"{timestamp} | Podpings: {pings:7} / {Pings.total_pings:10} | Count:" 212 | f" {count_posts:12} | BlockNum: {current_block_num}" 213 | ) 214 | 215 | 216 | def historical_block_stream_generator(client, start_block, end_block): 217 | batch_size = 50 218 | num_in_batch = 0 219 | 220 | current_batch = deque() 221 | for block_num in range(start_block, end_block): 222 | client.get_ops_in_block(block_num, batch=True) 223 | current_batch.append(block_num) 224 | num_in_batch += 1 225 | if num_in_batch == batch_size or block_num == end_block: 226 | while True: 227 | try: 228 | batch = client.process_batch() 229 | current_batch.clear() 230 | break 231 | except RPCNodeException: 232 | for b in current_batch: 233 | client.get_ops_in_block(b, batch=True) 234 | for ops in batch: 235 | for post in ops: 236 | if post['op'][0] == 'custom_json': 237 | yield post 238 | num_in_batch = 0 239 | 240 | 241 | def listen_for_custom_json_operations(condenser_api_client, start_block): 242 | current_block = start_block 243 | if not current_block: 244 | current_block = condenser_api_client.get_dynamic_global_properties()["head_block_number"] 245 | block_client = get_client(connect_timeout=3, read_timeout=3, api_type="block_api") 246 | while True: 247 | start_time = timer() 248 | while True: 249 | try: 250 | head_block = condenser_api_client.get_dynamic_global_properties()["head_block_number"] 251 | break 252 | except (KeyError, RPCNodeException): 253 | pass 254 | while (head_block - current_block) > 0: 255 | while True: 256 | try: 257 | block = block_client.get_block({"block_num": current_block}) 258 | break 259 | except RPCNodeException: 260 | pass 261 | try: 262 | for op in [(trx_id, op) for trx_id, transaction in enumerate(block['block']['transactions']) for op in transaction['operations']]: 263 | if op[1]['type'] == 'custom_json_operation': 264 | yield { 265 | "block": current_block, 266 | "timestamp": block['block']['timestamp'], 267 | "trx_id": block['block']['transaction_ids'][op[0]], 268 | "op": [ 269 | 'custom_json', 270 | op[1]['value'], 271 | ] 272 | } 273 | except KeyError: 274 | logging.warning(f"Block {current_block} is invalid") 275 | current_block += 1 276 | while True: 277 | try: 278 | head_block = condenser_api_client.get_dynamic_global_properties()["head_block_number"] 279 | break 280 | except (KeyError, RPCNodeException): 281 | pass 282 | end_time = timer() 283 | sleep_time = 3 - (end_time - start_time) 284 | if sleep_time > 0 and (head_block - current_block) <= 0: 285 | time.sleep(sleep_time) 286 | 287 | 288 | 289 | def scan_chain(client: Client, history: bool, start_block=None): 290 | """Either scans the old chain (history == True) or watches the live blockchain""" 291 | 292 | # Very first transaction from Dave Testing: 293 | """2021-05-10 13:51:58,353 INFO root MainThread 294 | : Feed Updated - 2021-05-07 20:58:33+00:00 295 | - f0affd194524a6e0171d65d29d5c501865f0bd72 296 | - https://feeds.transistor.fm/retail-remix""" 297 | 298 | scan_start_time = pendulum.now() 299 | report_timedelta = pendulum.duration(minutes=Config.report_minutes) 300 | 301 | #allowed_accounts = get_allowed_accounts(client) 302 | #allowed_accounts_start_time = pendulum.now() 303 | 304 | count_posts = 0 305 | pings = 0 306 | 307 | if history: 308 | report_period_start_time = Config.start_time 309 | end_block = client.get_dynamic_global_properties()["head_block_number"] 310 | stream = historical_block_stream_generator(client, start_block, end_block + 1) 311 | if Config.reports: 312 | logging.info(f"Started catching up from block_num: {start_block}") 313 | 314 | else: 315 | report_period_start_time = pendulum.now() 316 | #event_listener = EventListener(client, "head", start_block=start_block) 317 | #stream = event_listener.on("custom_json") 318 | stream = listen_for_custom_json_operations(client, start_block) 319 | if Config.reports: 320 | logging.info(f"Watching live from block_num: {start_block}") 321 | 322 | post = None 323 | try: 324 | for post in stream: 325 | post_time = pendulum.parse(post["timestamp"]) 326 | time_dif = post_time - report_period_start_time 327 | time_to_now = pendulum.now() - post_time 328 | count_posts += 1 329 | if Config.reports: 330 | if time_dif > report_timedelta: 331 | timestamp = post["timestamp"] 332 | current_block_num = post["block"] 333 | if time_to_now.seconds < 1: 334 | time_to_now = pendulum.duration(seconds=1) 335 | output_status( 336 | timestamp, pings, count_posts, time_to_now, current_block_num 337 | ) 338 | report_period_start_time = pendulum.parse(post["timestamp"]) 339 | count_posts = 0 340 | pings = 0 341 | 342 | if allowed_op_id(post["op"][1]["id"]): 343 | #if set(post["op"][1]["required_posting_auths"]) & allowed_accounts: 344 | count = output(post) 345 | pings += count 346 | Pings.total_pings += count 347 | 348 | if Config.diagnostic: 349 | if post["op"][1]["id"] in list(Config.DIAGNOSTIC_OPERATION_IDS): 350 | output_diagnostic(post) 351 | 352 | if history: 353 | if time_to_now < pendulum.duration(seconds=2) or post_time > Config.stop_at: 354 | timestamp = post["timestamp"] 355 | current_block_num = post["block"] 356 | if Config.show_reports and not Config.urls_only: 357 | output_status( 358 | timestamp, 359 | pings, 360 | count_posts, 361 | time_to_now, 362 | current_block_num, 363 | ) 364 | 365 | if not (Config.urls_only): 366 | logging.info(f"block_num: {post['block']}") 367 | # Break out of the for loop we've caught up. 368 | break 369 | #else: 370 | # allowed_accounts_time_diff = pendulum.now() - allowed_accounts_start_time 371 | # if allowed_accounts_time_diff > pendulum.duration(hours=1): 372 | # # Re-fetch the allowed_accounts every hour in case we add one. 373 | # allowed_accounts = get_allowed_accounts() 374 | # allowed_accounts_start_time = pendulum.now() 375 | 376 | 377 | except Exception as ex: 378 | logging.exception(ex) 379 | logging.error(f"Exception: {ex}") 380 | logging.error(f"Error with node {client.current_node}") 381 | logging.warning("Exception being handled | restarting") 382 | raise UnspecifiedHiveException(ex) 383 | 384 | if post and (not (Config.urls_only)): 385 | scan_time = pendulum.now() - scan_start_time 386 | logging.info( 387 | f"Finished catching up at block_num: {post['block']} in {scan_time}" 388 | ) 389 | 390 | if post: 391 | return post['block'] 392 | 393 | 394 | def main() -> None: 395 | logging.getLogger("lighthive.client").setLevel(logging.INFO) 396 | logging.basicConfig( 397 | level=logging.INFO, 398 | format=f"%(asctime)s | %(levelname)s %(name)s %(threadName)s : | %(message)s", 399 | datefmt="%Y-%m-%dT%H:%M:%S%z", 400 | ) 401 | 402 | client = get_client(connect_timeout=3, read_timeout=3, automatic_node_selection=False) 403 | Config.setup(client) 404 | 405 | """ do we want periodic reports? """ 406 | if Config.show_reports: 407 | if Config.use_test_node: 408 | logging.info("---------------> Using Test Node " + Config.TEST_NODE[0]) 409 | else: 410 | logging.info("---------------> Using Main Hive Chain ") 411 | 412 | start_block = None 413 | 414 | # scan_history will look back over the last 1 hour reporting every 15 minute chunk 415 | if Config.history: 416 | start_block = scan_chain(client, history=True, start_block=Config.block_num) 417 | 418 | if start_block is None: 419 | while True: 420 | try: 421 | start_block = client.get_dynamic_global_properties()["head_block_number"] 422 | break 423 | except RPCNodeException: 424 | pass 425 | else: 426 | start_block += 1 427 | 428 | if not Config.history_only or Config.stop_after: 429 | # scan_live will resume live scanning the chain and report every 5 minutes or 430 | # when a notification 431 | # 432 | scan_chain(client, history=False, start_block=start_block) 433 | else: 434 | logging.info("history_only is set. exiting") 435 | sys.exit(0) 436 | 437 | 438 | if __name__ == "__main__": 439 | while True: 440 | try: 441 | main() 442 | except KeyboardInterrupt: 443 | logging.info("Terminated with Ctrl-C") 444 | sys.exit(1) 445 | except Exception as ex: 446 | logging.error(f"Error: {ex}", exc_info=True) 447 | logging.error("Restarting the watcher") 448 | Config.old = 1 449 | main() 450 | -------------------------------------------------------------------------------- /logs/oringal-with-disconnects.log: -------------------------------------------------------------------------------- 1 | 2021-05-18T15:19:22+0300 - INFO root MainThread : - 2021-05-18 12:18:42+00:00 - Podpings: 4 / 567 - Count: 572 - BlockNum: 53997049 2 | 2021-05-18T15:19:50+0300 - INFO root MainThread : - 2021-05-18 12:19:45+00:00 - Podpings: 5 / 572 - Count: 557 - BlockNum: 53997058 3 | 2021-05-18T15:20:51+0300 - INFO root MainThread : - 2021-05-18 12:20:48+00:00 - Podpings: 6 / 578 - Count: 653 - BlockNum: 53997078 4 | 2021-05-18T15:21:54+0300 - INFO root MainThread : - 2021-05-18 12:21:51+00:00 - Podpings: 9 / 587 - Count: 584 - BlockNum: 53997100 5 | 2021-05-18T15:22:55+0300 - INFO root MainThread : - 2021-05-18 12:22:54+00:00 - Podpings: 4 / 591 - Count: 590 - BlockNum: 53997120 6 | 2021-05-18T15:23:58+0300 - INFO root MainThread : - 2021-05-18 12:23:57+00:00 - Podpings: 6 / 597 - Count: 628 - BlockNum: 53997141 7 | 2021-05-18T15:25:02+0300 - INFO root MainThread : - 2021-05-18 12:25:00+00:00 - Podpings: 9 / 606 - Count: 605 - BlockNum: 53997162 8 | 2021-05-18T15:26:08+0300 - INFO root MainThread : - 2021-05-18 12:26:03+00:00 - Podpings: 0 / 606 - Count: 608 - BlockNum: 53997185 9 | 2021-05-18T15:27:08+0300 - INFO root MainThread : - 2021-05-18 12:27:06+00:00 - Podpings: 3 / 609 - Count: 611 - BlockNum: 53997204 10 | 2021-05-18T15:28:12+0300 - INFO root MainThread : - 2021-05-18 12:28:09+00:00 - Podpings: 18 / 627 - Count: 618 - BlockNum: 53997225 11 | 2021-05-18T15:29:15+0300 - INFO root MainThread : - 2021-05-18 12:29:12+00:00 - Podpings: 7 / 634 - Count: 642 - BlockNum: 53997247 12 | 2021-05-18T15:30:19+0300 - INFO root MainThread : - 2021-05-18 12:30:15+00:00 - Podpings: 10 / 644 - Count: 666 - BlockNum: 53997267 13 | 2021-05-18T15:31:22+0300 - INFO root MainThread : - 2021-05-18 12:31:18+00:00 - Podpings: 10 / 654 - Count: 704 - BlockNum: 53997288 14 | 2021-05-18T15:32:23+0300 - INFO root MainThread : - 2021-05-18 12:32:21+00:00 - Podpings: 9 / 663 - Count: 667 - BlockNum: 53997309 15 | 2021-05-18T15:33:26+0300 - INFO root MainThread : - 2021-05-18 12:33:24+00:00 - Podpings: 11 / 674 - Count: 666 - BlockNum: 53997330 16 | 2021-05-18T15:34:33+0300 - INFO root MainThread : - 2021-05-18 12:34:27+00:00 - Podpings: 5 / 679 - Count: 660 - BlockNum: 53997352 17 | 2021-05-18T15:35:35+0300 - INFO root MainThread : - 2021-05-18 12:35:30+00:00 - Podpings: 8 / 687 - Count: 630 - BlockNum: 53997373 18 | 2021-05-18T16:06:24+0300 - WARNING beemapi.node MainThread : - Error: ('Connection aborted.', OSError(50, 'Network is down')) 19 | 2021-05-18T16:06:24+0300 - WARNING beemapi.node MainThread : - Lost connection or internal error on node: https://api.hivekings.com (1/100) 20 | 21 | 2021-05-18T16:06:29+0300 - INFO root MainThread : - 2021-05-18 12:36:33+00:00 - Podpings: 14 / 701 - Count: 625 - BlockNum: 53997991 22 | 2021-05-18T16:06:33+0300 - INFO root MainThread : - 2021-05-18 12:37:36+00:00 - Podpings: 7 / 708 - Count: 625 - BlockNum: 53997992 23 | 2021-05-18T16:06:37+0300 - INFO root MainThread : - 2021-05-18 12:38:39+00:00 - Podpings: 9 / 717 - Count: 622 - BlockNum: 53997994 24 | 2021-05-18T16:06:41+0300 - INFO root MainThread : - 2021-05-18 12:39:42+00:00 - Podpings: 6 / 723 - Count: 582 - BlockNum: 53997995 25 | 2021-05-18T16:06:44+0300 - INFO root MainThread : - 2021-05-18 12:40:45+00:00 - Podpings: 10 / 733 - Count: 676 - BlockNum: 53997996 26 | 2021-05-18T16:06:48+0300 - INFO root MainThread : - 2021-05-18 12:41:48+00:00 - Podpings: 4 / 737 - Count: 692 - BlockNum: 53997997 27 | 2021-05-18T16:06:49+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 28 | 2021-05-18T16:06:49+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 29 | 30 | 2021-05-18T16:06:49+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 31 | 32 | 2021-05-18T16:06:50+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 33 | 2021-05-18T16:06:50+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 34 | 35 | 2021-05-18T16:06:50+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 36 | 37 | 2021-05-18T16:06:51+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 38 | 2021-05-18T16:06:51+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 39 | 40 | 2021-05-18T16:06:51+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 41 | 42 | 2021-05-18T16:06:53+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 43 | 2021-05-18T16:06:53+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 44 | 45 | 2021-05-18T16:06:53+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 46 | 47 | 2021-05-18T16:06:54+0300 - INFO root MainThread : - 2021-05-18 12:42:51+00:00 - Podpings: 4 / 741 - Count: 624 - BlockNum: 53998000 48 | 2021-05-18T16:06:55+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 49 | 2021-05-18T16:06:55+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 50 | 51 | 2021-05-18T16:06:55+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 52 | 53 | 2021-05-18T16:06:56+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 54 | 2021-05-18T16:06:56+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 55 | 56 | 2021-05-18T16:06:56+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 57 | 58 | 2021-05-18T16:06:57+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 59 | 2021-05-18T16:06:57+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 60 | 61 | 2021-05-18T16:06:57+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 62 | 63 | 2021-05-18T16:06:59+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 64 | 2021-05-18T16:06:59+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 65 | 66 | 2021-05-18T16:06:59+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 67 | 68 | 2021-05-18T16:07:00+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 69 | 2021-05-18T16:07:00+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 70 | 71 | 2021-05-18T16:07:00+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 72 | 73 | 2021-05-18T16:07:01+0300 - INFO root MainThread : - 2021-05-18 12:43:54+00:00 - Podpings: 8 / 749 - Count: 602 - BlockNum: 53998002 74 | 2021-05-18T16:07:02+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 75 | 2021-05-18T16:07:02+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 76 | 77 | 2021-05-18T16:07:02+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 78 | 79 | 2021-05-18T16:07:03+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 80 | 2021-05-18T16:07:03+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 81 | 82 | 2021-05-18T16:07:03+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 83 | 84 | 2021-05-18T16:07:05+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 85 | 2021-05-18T16:07:05+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 86 | 87 | 2021-05-18T16:07:05+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 88 | 89 | 2021-05-18T16:07:06+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 90 | 2021-05-18T16:07:06+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 91 | 92 | 2021-05-18T16:07:06+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 93 | 94 | 2021-05-18T16:07:07+0300 - INFO root MainThread : - 2021-05-18 12:44:57+00:00 - Podpings: 6 / 755 - Count: 654 - BlockNum: 53998004 95 | 2021-05-18T16:07:08+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 96 | 2021-05-18T16:07:08+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 97 | 98 | 2021-05-18T16:07:08+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 99 | 100 | 2021-05-18T16:07:09+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 101 | 2021-05-18T16:07:09+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 102 | 103 | 2021-05-18T16:07:09+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 104 | 105 | 2021-05-18T16:07:11+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 106 | 2021-05-18T16:07:11+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 107 | 108 | 2021-05-18T16:07:11+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 109 | 110 | 2021-05-18T16:07:12+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 111 | 2021-05-18T16:07:12+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 112 | 113 | 2021-05-18T16:07:12+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 114 | 115 | 2021-05-18T16:07:14+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 116 | 2021-05-18T16:07:14+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 117 | 118 | 2021-05-18T16:07:14+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 119 | 120 | 2021-05-18T16:07:14+0300 - INFO root MainThread : - 2021-05-18 12:46:00+00:00 - Podpings: 4 / 759 - Count: 669 - BlockNum: 53998006 121 | 2021-05-18T16:07:15+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 122 | 2021-05-18T16:07:15+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 123 | 124 | 2021-05-18T16:07:15+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 125 | 126 | 2021-05-18T16:07:16+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 127 | 2021-05-18T16:07:16+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 128 | 129 | 2021-05-18T16:07:16+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 130 | 131 | 2021-05-18T16:07:18+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 132 | 2021-05-18T16:07:18+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 133 | 134 | 2021-05-18T16:07:18+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 135 | 136 | 2021-05-18T16:07:19+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 137 | 2021-05-18T16:07:19+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 138 | 139 | 2021-05-18T16:07:19+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 140 | 141 | 2021-05-18T16:07:20+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 142 | 2021-05-18T16:07:20+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 143 | 144 | 2021-05-18T16:07:20+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 145 | 146 | 2021-05-18T16:07:21+0300 - INFO root MainThread : - 2021-05-18 12:47:03+00:00 - Podpings: 3 / 762 - Count: 606 - BlockNum: 53998008 147 | 2021-05-18T16:07:22+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 148 | 2021-05-18T16:07:22+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 149 | 150 | 2021-05-18T16:07:22+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 151 | 152 | 2021-05-18T16:07:23+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 153 | 2021-05-18T16:07:23+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 154 | 155 | 2021-05-18T16:07:23+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 156 | 157 | 2021-05-18T16:07:25+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 158 | 2021-05-18T16:07:25+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 159 | 160 | 2021-05-18T16:07:25+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 161 | 162 | 2021-05-18T16:07:26+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 163 | 2021-05-18T16:07:26+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 164 | 165 | 2021-05-18T16:07:26+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 166 | 167 | 2021-05-18T16:07:27+0300 - INFO root MainThread : - 2021-05-18 12:48:06+00:00 - Podpings: 4 / 766 - Count: 638 - BlockNum: 53998011 168 | 2021-05-18T16:07:27+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 169 | 2021-05-18T16:07:27+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 170 | 171 | 2021-05-18T16:07:27+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 172 | 173 | 2021-05-18T16:07:29+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 174 | 2021-05-18T16:07:29+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 175 | 176 | 2021-05-18T16:07:29+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 177 | 178 | 2021-05-18T16:07:30+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 179 | 2021-05-18T16:07:30+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 180 | 181 | 2021-05-18T16:07:30+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 182 | 183 | 2021-05-18T16:07:32+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 184 | 2021-05-18T16:07:32+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 185 | 186 | 2021-05-18T16:07:32+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 187 | 188 | 2021-05-18T16:07:33+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 189 | 2021-05-18T16:07:33+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 190 | 191 | 2021-05-18T16:07:33+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 192 | 193 | 2021-05-18T16:07:34+0300 - INFO root MainThread : - 2021-05-18 12:49:09+00:00 - Podpings: 10 / 776 - Count: 585 - BlockNum: 53998013 194 | 2021-05-18T16:07:35+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 195 | 2021-05-18T16:07:35+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 196 | 197 | 2021-05-18T16:07:35+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 198 | 199 | 2021-05-18T16:07:36+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 200 | 2021-05-18T16:07:36+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 201 | 202 | 2021-05-18T16:07:36+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 203 | 204 | 2021-05-18T16:07:38+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 205 | 2021-05-18T16:07:38+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 206 | 207 | 2021-05-18T16:07:38+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 208 | 209 | 2021-05-18T16:07:39+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 210 | 2021-05-18T16:07:39+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 211 | 212 | 2021-05-18T16:07:39+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 213 | 214 | 2021-05-18T16:07:41+0300 - INFO root MainThread : - 2021-05-18 12:50:12+00:00 - Podpings: 6 / 782 - Count: 628 - BlockNum: 53998015 215 | 2021-05-18T16:07:41+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 216 | 2021-05-18T16:07:41+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 217 | 218 | 2021-05-18T16:07:41+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 219 | 220 | 2021-05-18T16:07:42+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 221 | 2021-05-18T16:07:42+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 222 | 223 | 2021-05-18T16:07:42+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 224 | 225 | 2021-05-18T16:07:44+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 226 | 2021-05-18T16:07:44+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 227 | 228 | 2021-05-18T16:07:44+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 229 | 230 | 2021-05-18T16:07:45+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 231 | 2021-05-18T16:07:45+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 232 | 233 | 2021-05-18T16:07:45+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 234 | 235 | 2021-05-18T16:07:46+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 236 | 2021-05-18T16:07:46+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 237 | 238 | 2021-05-18T16:07:46+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 239 | 240 | 2021-05-18T16:07:47+0300 - INFO root MainThread : - 2021-05-18 12:51:15+00:00 - Podpings: 8 / 790 - Count: 603 - BlockNum: 53998017 241 | 2021-05-18T16:07:48+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 242 | 2021-05-18T16:07:48+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 243 | 244 | 2021-05-18T16:07:48+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 245 | 246 | 2021-05-18T16:07:49+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 247 | 2021-05-18T16:07:49+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 248 | 249 | 2021-05-18T16:07:49+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 250 | 251 | 2021-05-18T16:07:51+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 252 | 2021-05-18T16:07:51+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 253 | 254 | 2021-05-18T16:07:51+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 255 | 256 | 2021-05-18T16:07:52+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 257 | 2021-05-18T16:07:52+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 258 | 259 | 2021-05-18T16:07:52+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 260 | 261 | 2021-05-18T16:07:54+0300 - INFO root MainThread : - 2021-05-18 12:52:18+00:00 - Podpings: 10 / 800 - Count: 568 - BlockNum: 53998019 262 | 2021-05-18T16:07:54+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 263 | 2021-05-18T16:07:54+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 264 | 265 | 2021-05-18T16:07:54+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 266 | 267 | 2021-05-18T16:07:55+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 268 | 2021-05-18T16:07:55+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 269 | 270 | 2021-05-18T16:07:55+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 271 | 272 | 2021-05-18T16:07:57+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 273 | 2021-05-18T16:07:57+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 274 | 275 | 2021-05-18T16:07:57+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 276 | 277 | 2021-05-18T16:07:59+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 278 | 2021-05-18T16:07:59+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 279 | 280 | 2021-05-18T16:07:59+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 281 | 282 | 2021-05-18T16:08:00+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 283 | 2021-05-18T16:08:00+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 284 | 285 | 2021-05-18T16:08:00+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 286 | 287 | 2021-05-18T16:08:01+0300 - INFO root MainThread : - 2021-05-18 12:53:21+00:00 - Podpings: 6 / 806 - Count: 597 - BlockNum: 53998022 288 | 2021-05-18T16:08:02+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 289 | 2021-05-18T16:08:02+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 290 | 291 | 2021-05-18T16:08:02+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 292 | 293 | 2021-05-18T16:08:03+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 294 | 2021-05-18T16:08:03+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 295 | 296 | 2021-05-18T16:08:03+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 297 | 298 | 2021-05-18T16:08:04+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 299 | 2021-05-18T16:08:04+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 300 | 301 | 2021-05-18T16:08:04+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 302 | 303 | 2021-05-18T16:08:06+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 304 | 2021-05-18T16:08:06+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 305 | 306 | 2021-05-18T16:08:06+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 307 | 308 | 2021-05-18T16:08:07+0300 - INFO root MainThread : - 2021-05-18 12:54:24+00:00 - Podpings: 7 / 813 - Count: 667 - BlockNum: 53998024 309 | 2021-05-18T16:08:07+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 310 | 2021-05-18T16:08:07+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 311 | 312 | 2021-05-18T16:08:07+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 313 | 314 | 2021-05-18T16:08:09+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 315 | 2021-05-18T16:08:09+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 316 | 317 | 2021-05-18T16:08:09+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 318 | 319 | 2021-05-18T16:08:10+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 320 | 2021-05-18T16:08:10+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 321 | 322 | 2021-05-18T16:08:10+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 323 | 324 | 2021-05-18T16:08:12+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 325 | 2021-05-18T16:08:12+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 326 | 327 | 2021-05-18T16:08:12+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 328 | 329 | 2021-05-18T16:08:15+0300 - INFO root MainThread : - 2021-05-18 12:55:27+00:00 - Podpings: 1 / 814 - Count: 610 - BlockNum: 53998026 330 | 2021-05-18T16:08:17+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 331 | 2021-05-18T16:08:17+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 332 | 333 | 2021-05-18T16:08:17+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 334 | 335 | 2021-05-18T16:08:19+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 336 | 2021-05-18T16:08:19+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 337 | 338 | 2021-05-18T16:08:19+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 339 | 340 | 2021-05-18T16:08:20+0300 - INFO root MainThread : - 2021-05-18 12:56:30+00:00 - Podpings: 8 / 822 - Count: 607 - BlockNum: 53998028 341 | 2021-05-18T16:08:20+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 342 | 2021-05-18T16:08:20+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 343 | 344 | 2021-05-18T16:08:20+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 345 | 346 | 2021-05-18T16:08:22+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 347 | 2021-05-18T16:08:22+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 348 | 349 | 2021-05-18T16:08:22+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 350 | 351 | 2021-05-18T16:08:23+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 352 | 2021-05-18T16:08:23+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 353 | 354 | 2021-05-18T16:08:23+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 355 | 356 | 2021-05-18T16:08:25+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 357 | 2021-05-18T16:08:25+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 358 | 359 | 2021-05-18T16:08:25+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 360 | 361 | 2021-05-18T16:08:26+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 362 | 2021-05-18T16:08:26+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 363 | 364 | 2021-05-18T16:08:26+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 365 | 366 | 2021-05-18T16:08:27+0300 - INFO root MainThread : - 2021-05-18 12:57:33+00:00 - Podpings: 10 / 832 - Count: 627 - BlockNum: 53998030 367 | 2021-05-18T16:08:27+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 368 | 2021-05-18T16:08:27+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 369 | 370 | 2021-05-18T16:08:27+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 371 | 372 | 2021-05-18T16:08:29+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 373 | 2021-05-18T16:08:29+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 374 | 375 | 2021-05-18T16:08:29+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 376 | 377 | 2021-05-18T16:08:30+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 378 | 2021-05-18T16:08:30+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 379 | 380 | 2021-05-18T16:08:30+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 381 | 382 | 2021-05-18T16:08:32+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 383 | 2021-05-18T16:08:32+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 384 | 385 | 2021-05-18T16:08:32+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 386 | 387 | 2021-05-18T16:08:33+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 388 | 2021-05-18T16:08:33+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 389 | 390 | 2021-05-18T16:08:33+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 391 | 392 | 2021-05-18T16:08:34+0300 - INFO root MainThread : - 2021-05-18 12:58:36+00:00 - Podpings: 7 / 839 - Count: 647 - BlockNum: 53998033 393 | 2021-05-18T16:08:35+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 394 | 2021-05-18T16:08:35+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 395 | 396 | 2021-05-18T16:08:35+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 397 | 398 | 2021-05-18T16:08:36+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 399 | 2021-05-18T16:08:36+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 400 | 401 | 2021-05-18T16:08:36+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 402 | 403 | 2021-05-18T16:08:38+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 404 | 2021-05-18T16:08:38+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 405 | 406 | 2021-05-18T16:08:38+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 407 | 408 | 2021-05-18T16:08:39+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 409 | 2021-05-18T16:08:39+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 410 | 411 | 2021-05-18T16:08:39+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 412 | 413 | 2021-05-18T16:08:40+0300 - INFO root MainThread : - 2021-05-18 12:59:39+00:00 - Podpings: 5 / 844 - Count: 614 - BlockNum: 53998035 414 | 2021-05-18T16:08:41+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 415 | 2021-05-18T16:08:41+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 416 | 417 | 2021-05-18T16:08:41+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 418 | 419 | 2021-05-18T16:08:42+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 420 | 2021-05-18T16:08:42+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 421 | 422 | 2021-05-18T16:08:42+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 423 | 424 | 2021-05-18T16:08:44+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 425 | 2021-05-18T16:08:44+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 426 | 427 | 2021-05-18T16:08:44+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 428 | 429 | 2021-05-18T16:08:45+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 430 | 2021-05-18T16:08:45+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 431 | 432 | 2021-05-18T16:08:45+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 433 | 434 | 2021-05-18T16:08:47+0300 - INFO root MainThread : - 2021-05-18 13:00:42+00:00 - Podpings: 17 / 861 - Count: 640 - BlockNum: 53998037 435 | 2021-05-18T16:08:47+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 436 | 2021-05-18T16:08:47+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 437 | 438 | 2021-05-18T16:08:47+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 439 | 440 | 2021-05-18T16:08:48+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 441 | 2021-05-18T16:08:48+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 442 | 443 | 2021-05-18T16:08:48+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 444 | 445 | 2021-05-18T16:08:49+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 446 | 2021-05-18T16:08:49+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 447 | 448 | 2021-05-18T16:08:49+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 449 | 450 | 2021-05-18T16:08:51+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 451 | 2021-05-18T16:08:51+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 452 | 453 | 2021-05-18T16:08:51+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 454 | 455 | 2021-05-18T16:08:52+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 456 | 2021-05-18T16:08:52+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 457 | 458 | 2021-05-18T16:08:52+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 459 | 460 | 2021-05-18T16:08:53+0300 - INFO root MainThread : - 2021-05-18 13:01:45+00:00 - Podpings: 31 / 892 - Count: 620 - BlockNum: 53998039 461 | 2021-05-18T16:08:54+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 462 | 2021-05-18T16:08:54+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 463 | 464 | 2021-05-18T16:08:54+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 465 | 466 | 2021-05-18T16:08:55+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 467 | 2021-05-18T16:08:55+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 468 | 469 | 2021-05-18T16:08:55+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 470 | 471 | 2021-05-18T16:08:57+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 472 | 2021-05-18T16:08:57+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 473 | 474 | 2021-05-18T16:08:57+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 475 | 476 | 2021-05-18T16:08:59+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 477 | 2021-05-18T16:08:59+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 478 | 479 | 2021-05-18T16:08:59+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 480 | 481 | 2021-05-18T16:09:00+0300 - INFO root MainThread : - 2021-05-18 13:02:48+00:00 - Podpings: 5 / 897 - Count: 651 - BlockNum: 53998042 482 | 2021-05-18T16:09:00+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 483 | 2021-05-18T16:09:00+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 484 | 485 | 2021-05-18T16:09:00+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 486 | 487 | 2021-05-18T16:09:01+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 488 | 2021-05-18T16:09:01+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 489 | 490 | 2021-05-18T16:09:01+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 491 | 492 | 2021-05-18T16:09:03+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 493 | 2021-05-18T16:09:03+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 494 | 495 | 2021-05-18T16:09:03+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 496 | 497 | 2021-05-18T16:09:04+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 498 | 2021-05-18T16:09:04+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 499 | 500 | 2021-05-18T16:09:04+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 501 | 502 | 2021-05-18T16:09:06+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 503 | 2021-05-18T16:09:06+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 504 | 505 | 2021-05-18T16:09:06+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 506 | 507 | 2021-05-18T16:09:07+0300 - INFO root MainThread : - 2021-05-18 13:03:51+00:00 - Podpings: 7 / 904 - Count: 622 - BlockNum: 53998044 508 | 2021-05-18T16:09:07+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 509 | 2021-05-18T16:09:07+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 510 | 511 | 2021-05-18T16:09:07+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 512 | 513 | 2021-05-18T16:09:08+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 514 | 2021-05-18T16:09:08+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 515 | 516 | 2021-05-18T16:09:08+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 517 | 518 | 2021-05-18T16:09:10+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 519 | 2021-05-18T16:09:10+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 520 | 521 | 2021-05-18T16:09:10+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 522 | 523 | 2021-05-18T16:09:11+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 524 | 2021-05-18T16:09:11+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 525 | 526 | 2021-05-18T16:09:11+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 527 | 528 | 2021-05-18T16:09:12+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 529 | 2021-05-18T16:09:12+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 530 | 531 | 2021-05-18T16:09:12+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 532 | 533 | 2021-05-18T16:09:14+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 534 | 2021-05-18T16:09:14+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 535 | 536 | 2021-05-18T16:09:14+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 537 | 538 | 2021-05-18T16:09:15+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 539 | 2021-05-18T16:09:15+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 540 | 541 | 2021-05-18T16:09:15+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 542 | 543 | 2021-05-18T16:09:16+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 544 | 2021-05-18T16:09:16+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 545 | 546 | 2021-05-18T16:09:16+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 547 | 548 | 2021-05-18T16:09:18+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 549 | 2021-05-18T16:09:18+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 550 | 551 | 2021-05-18T16:09:18+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 552 | 553 | 2021-05-18T16:09:19+0300 - INFO root MainThread : - 2021-05-18 13:04:54+00:00 - Podpings: 5 / 909 - Count: 649 - BlockNum: 53998048 554 | 2021-05-18T16:09:19+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 555 | 2021-05-18T16:09:19+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 556 | 557 | 2021-05-18T16:09:19+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 558 | 559 | 2021-05-18T16:09:20+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 560 | 2021-05-18T16:09:20+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 561 | 562 | 2021-05-18T16:09:20+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 563 | 564 | 2021-05-18T16:09:21+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 565 | 2021-05-18T16:09:21+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 566 | 567 | 2021-05-18T16:09:21+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 568 | 569 | 2021-05-18T16:09:22+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 570 | 2021-05-18T16:09:22+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 571 | 572 | 2021-05-18T16:09:22+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 573 | 574 | 2021-05-18T16:09:24+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 575 | 2021-05-18T16:09:24+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 576 | 577 | 2021-05-18T16:09:24+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 578 | 579 | 2021-05-18T16:09:25+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 580 | 2021-05-18T16:09:25+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 581 | 582 | 2021-05-18T16:09:25+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 583 | 584 | 2021-05-18T16:09:27+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 585 | 2021-05-18T16:09:27+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 586 | 587 | 2021-05-18T16:09:27+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 588 | 589 | 2021-05-18T16:09:28+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 590 | 2021-05-18T16:09:28+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 591 | 592 | 2021-05-18T16:09:28+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 593 | 594 | 2021-05-18T16:09:29+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 595 | 2021-05-18T16:09:29+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 596 | 597 | 2021-05-18T16:09:29+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 598 | 599 | 2021-05-18T16:09:30+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 600 | 2021-05-18T16:09:30+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 601 | 602 | 2021-05-18T16:09:30+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 603 | 604 | 2021-05-18T16:09:31+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 605 | 2021-05-18T16:09:31+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 606 | 607 | 2021-05-18T16:09:31+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 608 | 609 | 2021-05-18T16:09:32+0300 - INFO root MainThread : - 2021-05-18 13:05:57+00:00 - Podpings: 8 / 917 - Count: 659 - BlockNum: 53998052 610 | 2021-05-18T16:09:32+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 611 | 2021-05-18T16:09:32+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 612 | 613 | 2021-05-18T16:09:32+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 614 | 615 | 2021-05-18T16:09:34+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 616 | 2021-05-18T16:09:34+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 617 | 618 | 2021-05-18T16:09:34+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 619 | 620 | 2021-05-18T16:09:35+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 621 | 2021-05-18T16:09:35+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 622 | 623 | 2021-05-18T16:09:35+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 624 | 625 | 2021-05-18T16:09:36+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 626 | 2021-05-18T16:09:36+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 627 | 628 | 2021-05-18T16:09:36+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 629 | 630 | 2021-05-18T16:09:43+0300 - INFO root MainThread : - 2021-05-18 13:07:00+00:00 - Podpings: 12 / 929 - Count: 686 - BlockNum: 53998056 631 | 2021-05-18T16:09:44+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 632 | 2021-05-18T16:09:44+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 633 | 634 | 2021-05-18T16:09:44+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 635 | 636 | 2021-05-18T16:09:45+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 637 | 2021-05-18T16:09:45+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 638 | 639 | 2021-05-18T16:09:45+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 640 | 641 | 2021-05-18T16:09:47+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 642 | 2021-05-18T16:09:47+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 643 | 644 | 2021-05-18T16:09:47+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 645 | 646 | 2021-05-18T16:09:48+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 647 | 2021-05-18T16:09:48+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 648 | 649 | 2021-05-18T16:09:48+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 650 | 651 | 2021-05-18T16:09:49+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 652 | 2021-05-18T16:09:49+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 653 | 654 | 2021-05-18T16:09:49+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 655 | 656 | 2021-05-18T16:09:51+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 657 | 2021-05-18T16:09:51+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 658 | 659 | 2021-05-18T16:09:51+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 660 | 661 | 2021-05-18T16:09:52+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 662 | 2021-05-18T16:09:52+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 663 | 664 | 2021-05-18T16:09:52+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 665 | 666 | 2021-05-18T16:09:53+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 667 | 2021-05-18T16:09:53+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 668 | 669 | 2021-05-18T16:09:53+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 670 | 671 | 2021-05-18T16:09:54+0300 - INFO root MainThread : - 2021-05-18 13:08:03+00:00 - Podpings: 8 / 937 - Count: 586 - BlockNum: 53998060 672 | 2021-05-18T16:09:54+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 673 | 2021-05-18T16:09:54+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 674 | 675 | 2021-05-18T16:09:54+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 676 | 677 | 2021-05-18T16:09:56+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 678 | 2021-05-18T16:09:56+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 679 | 680 | 2021-05-18T16:09:56+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 681 | 682 | 2021-05-18T16:09:57+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 683 | 2021-05-18T16:09:57+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 684 | 685 | 2021-05-18T16:09:57+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 686 | 687 | 2021-05-18T16:09:58+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 688 | 2021-05-18T16:09:58+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 689 | 690 | 2021-05-18T16:09:58+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 691 | 692 | 2021-05-18T16:10:00+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 693 | 2021-05-18T16:10:00+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 694 | 695 | 2021-05-18T16:10:00+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 696 | 697 | 2021-05-18T16:10:01+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 698 | 2021-05-18T16:10:01+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 699 | 700 | 2021-05-18T16:10:01+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 701 | 702 | 2021-05-18T16:10:02+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 703 | 2021-05-18T16:10:02+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 704 | 705 | 2021-05-18T16:10:02+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 706 | 707 | 2021-05-18T16:10:03+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 708 | 2021-05-18T16:10:03+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 709 | 710 | 2021-05-18T16:10:03+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 711 | 712 | 2021-05-18T16:10:05+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 713 | 2021-05-18T16:10:05+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 714 | 715 | 2021-05-18T16:10:05+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 716 | 717 | 2021-05-18T16:10:06+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 718 | 2021-05-18T16:10:06+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 719 | 720 | 2021-05-18T16:10:06+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 721 | 722 | 2021-05-18T16:10:07+0300 - INFO root MainThread : - 2021-05-18 13:09:06+00:00 - Podpings: 8 / 945 - Count: 606 - BlockNum: 53998064 723 | 2021-05-18T16:10:07+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 724 | 2021-05-18T16:10:07+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 725 | 726 | 2021-05-18T16:10:07+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 727 | 728 | 2021-05-18T16:10:09+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 729 | 2021-05-18T16:10:09+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 730 | 731 | 2021-05-18T16:10:09+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 732 | 733 | 2021-05-18T16:10:10+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 734 | 2021-05-18T16:10:10+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 735 | 736 | 2021-05-18T16:10:10+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 737 | 738 | 2021-05-18T16:10:11+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 739 | 2021-05-18T16:10:11+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 740 | 741 | 2021-05-18T16:10:11+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 742 | 743 | 2021-05-18T16:10:12+0300 - WARNING beemapi.node MainThread : - Error: Service Temporarily Unavailable 744 | 2021-05-18T16:10:12+0300 - WARNING beemapi.node MainThread : - Retry RPC Call on node: https://api.openhive.network (1/5) 745 | 746 | 2021-05-18T16:10:12+0300 - WARNING beemapi.node MainThread : - Retrying in 0 seconds 747 | 748 | 2021-05-18T16:10:25+0300 - INFO root MainThread : - 2021-05-18 13:10:09+00:00 - Podpings: 12 / 957 - Count: 580 - BlockNum: 53998070 749 | 2021-05-18T16:11:15+0300 - INFO root MainThread : - 2021-05-18 13:11:12+00:00 - Podpings: 3 / 960 - Count: 575 - BlockNum: 53998086 750 | 2021-05-18T16:12:15+0300 - INFO root MainThread : - 2021-05-18 13:12:15+00:00 - Podpings: 11 / 971 - Count: 602 - BlockNum: 53998107 751 | 2021-05-18T16:13:19+0300 - INFO root MainThread : - 2021-05-18 13:13:18+00:00 - Podpings: 13 / 984 - Count: 612 - BlockNum: 53998128 752 | 2021-05-18T16:14:23+0300 - INFO root MainThread : - 2021-05-18 13:14:21+00:00 - Podpings: 5 / 989 - Count: 574 - BlockNum: 53998149 753 | 2021-05-18T16:15:26+0300 - INFO root MainThread : - 2021-05-18 13:15:24+00:00 - Podpings: 12 / 1001 - Count: 599 - BlockNum: 53998170 754 | 2021-05-18T16:16:29+0300 - INFO root MainThread : - 2021-05-18 13:16:27+00:00 - Podpings: 7 / 1008 - Count: 612 - BlockNum: 53998191 755 | 2021-05-18T16:17:33+0300 - INFO root MainThread : - 2021-05-18 13:17:30+00:00 - Podpings: 10 / 1018 - Count: 610 - BlockNum: 53998212 756 | 2021-05-18T16:18:33+0300 - INFO root MainThread : - 2021-05-18 13:18:33+00:00 - Podpings: 10 / 1028 - Count: 659 - BlockNum: 53998233 757 | 2021-05-18T16:19:40+0300 - INFO root MainThread : - 2021-05-18 13:19:36+00:00 - Podpings: 6 / 1034 - Count: 585 - BlockNum: 53998255 758 | 2021-05-18T16:20:43+0300 - INFO root MainThread : - 2021-05-18 13:20:39+00:00 - Podpings: 12 / 1046 - Count: 642 - BlockNum: 53998276 759 | 2021-05-18T16:21:44+0300 - INFO root MainThread : - 2021-05-18 13:21:42+00:00 - Podpings: 5 / 1051 - Count: 650 - BlockNum: 53998296 760 | 2021-05-18T16:22:47+0300 - INFO root MainThread : - 2021-05-18 13:22:45+00:00 - Podpings: 9 / 1060 - Count: 589 - BlockNum: 53998317 761 | 2021-05-18T16:23:51+0300 - INFO root MainThread : - 2021-05-18 13:23:48+00:00 - Podpings: 6 / 1066 - Count: 616 - BlockNum: 53998338 762 | 2021-05-18T16:24:54+0300 - INFO root MainThread : - 2021-05-18 13:24:51+00:00 - Podpings: 6 / 1072 - Count: 572 - BlockNum: 53998359 763 | 2021-05-18T16:25:57+0300 - INFO root MainThread : - 2021-05-18 13:25:54+00:00 - Podpings: 4 / 1076 - Count: 596 - BlockNum: 53998381 764 | 2021-05-18T16:27:01+0300 - INFO root MainThread : - 2021-05-18 13:26:57+00:00 - Podpings: 8 / 1084 - Count: 656 - BlockNum: 53998402 765 | 2021-05-18T16:28:02+0300 - INFO root MainThread : - 2021-05-18 13:28:00+00:00 - Podpings: 7 / 1091 - Count: 553 - BlockNum: 53998422 766 | 2021-05-18T16:29:06+0300 - INFO root MainThread : - 2021-05-18 13:29:03+00:00 - Podpings: 13 / 1104 - Count: 623 - BlockNum: 53998443 767 | 2021-05-18T16:30:09+0300 - INFO root MainThread : - 2021-05-18 13:30:06+00:00 - Podpings: 7 / 1111 - Count: 681 - BlockNum: 53998465 768 | 2021-05-18T16:31:12+0300 - INFO root MainThread : - 2021-05-18 13:31:09+00:00 - Podpings: 11 / 1122 - Count: 656 - BlockNum: 53998486 769 | 2021-05-18T16:32:13+0300 - INFO root MainThread : - 2021-05-18 13:32:12+00:00 - Podpings: 5 / 1127 - Count: 615 - BlockNum: 53998506 770 | 2021-05-18T16:33:19+0300 - INFO root MainThread : - 2021-05-18 13:33:15+00:00 - Podpings: 3 / 1130 - Count: 618 - BlockNum: 53998528 771 | 2021-05-18T16:34:22+0300 - INFO root MainThread : - 2021-05-18 13:34:18+00:00 - Podpings: 10 / 1140 - Count: 591 - BlockNum: 53998548 772 | 2021-05-18T16:35:23+0300 - INFO root MainThread : - 2021-05-18 13:35:21+00:00 - Podpings: 11 / 1151 - Count: 642 - BlockNum: 53998569 773 | 2021-05-18T16:36:27+0300 - INFO root MainThread : - 2021-05-18 13:36:24+00:00 - Podpings: 7 / 1158 - Count: 667 - BlockNum: 53998590 774 | 2021-05-18T16:37:31+0300 - INFO root MainThread : - 2021-05-18 13:37:27+00:00 - Podpings: 10 / 1168 - Count: 697 - BlockNum: 53998612 775 | --------------------------------------------------------------------------------