Scheduled Block Checker for Cardano Stakepool Operators

Overview

ScheduledBlocks

Scheduled Block Checker for Cardano Stakepool Operators

Lightweight and Portable Scheduled Blocks Checker for Current Epoch. No cardano-node Required, data is taken from blockfrost.io

Note: This is a reworking of old python script leaderLogs.py available on https://github.com/papacarp/pooltool.io.git

Prerequisites:

  • Python 3.8
  • pip (Python package installer)
  • libsodium library

Setup:

  • clone this repository using git: git clone https://github.com/adasnakepool/ScheduledBlocks.git
  • execute inside the newly cloned directory: pip install -r requirements.txt to install all needed python package requirements
  • get a project id on blockfrost.io
  • make sure you can access your vrf.skey file (you can copy in it a path of your choice) and remember to keep it as read only chmod 400 vrf.skey
  • copy the config.yaml.default into a new file and call it config.yaml (do not remove the default if you want to update the script via git pull in future)
  • open the newly created config.yaml and configure the settings accordingly:
    • timezone: your timezone (default: "Europe/Berlin")
    • blockfrost_id: project id from blockfrost
    • pool_id: your pool id. You can get it from adapools (it's the last part of the url)
    • pool_ticker: your pool ticker
    • vrf_key: "the path (relative or absolute) to the vrf.skey file

Usage:

python3 ScheduledBlocks.py

Output:

  • a console output with all the slots assigned for the latest available epoch
  • a SQLite database called: slotschedule.db which contains the slots assigned for every epoch the tool has been run.
Comments
  • Libsodium 1.0.18: Attribute Error for Libsodium library

    Libsodium 1.0.18: Attribute Error for Libsodium library

    Traceback for the error:

    Traceback (most recent call last):
      File "/home/ada/git-libs/ScheduledBlocks/ScheduledBlocks.py", line 324, in <module>
        slotLeader = isSlotLeader(slot, activeSlotCoeff, sigma, eta0, poolVrfSkey)
      File "/home/ada/git-libs/ScheduledBlocks/ScheduledBlocks.py", line 310, in isSlotLeader
        cert=vrfEvalCertified(seed,tpraosCanBeLeaderSignKeyVRFb)
      File "/home/ada/git-libs/ScheduledBlocks/ScheduledBlocks.py", line 286, in vrfEvalCertified
        proof = create_string_buffer(libsodium.crypto_vrf_ietfdraft03_proofbytes())
      File "/usr/lib/python3.9/ctypes/__init__.py", line 387, in __getattr__
        func = self.__getitem__(name)
      File "/usr/lib/python3.9/ctypes/__init__.py", line 392, in __getitem__
        func = self._FuncPtr((name_or_ordinal, self))
    AttributeError: /usr/local/lib/libsodium.so: undefined symbol: crypto_vrf_ietfdraft03_proofbytes
    
    opened by mohammadsaadraza 3
  • NameError: name 'epoch' is not defined

    NameError: name 'epoch' is not defined

    Hello again, I get this error when executing the script:

    Traceback (most recent call last):
      File "ScheduledBlocks.py", line 258, in <module>
        firstSlotOfEpoch = (firstSlot) + (epoch - 211)*epochLength
    NameError: name 'epoch' is not defined
    

    Hope you find some time - again, thx you for your efforts.

    BR, GETI

    opened by labor1983 2
  • false output when using next option

    false output when using next option

    Hi there, I use this fantastic tool as it's much lighter on my node, but recently when I use the next option it has given me false information. on 2 occasions the next option stated we had a block assigned but when I run it again during the epoch using the current option it states I dont have a block assigned.

    I'm not sure if this is updated anymore but id love if this tool could be maintained for the upcoming Vasil fork etc

    opened by ThePoolGuyRAFL 1
  • Some Python Modules missing

    Some Python Modules missing

    Hello Snake, first of all, thx you so much for your efforts of (re)writing this script. I run into the following issue:

    These modules need to be installed manually: pip install pytz pip install readchar

    BR, GETI

    opened by labor1983 1
  • New functionalities for ScheduledBlocks script

    New functionalities for ScheduledBlocks script

    Added:

    • a config file (config.yaml) to simplify setup of the tool
    • a SQLite database that is automatically generated and contains assigned slots per epoch, in a similar format to cncli.db database
    • gitignore file

    Extra changes:

    • some code refactoring
    • readme file modified

    Happy to contribute to further developments! Mik - ADATA pool

    opened by mik1893 1
Releases(v1.0.0)
Owner
SNAKE (Cardano Stakepool)
BI Technical Consultant
SNAKE (Cardano Stakepool)
A Twitter bot developed in Python using the Tweepy library and hosted in AWS.

Twitter Cameroon: @atangana_aron A Twitter bot developed in Python using the Tweepy library and hosted in AWS. https://twitter.com/atangana_aron Cost

1 Jan 30, 2022
Rust UserBot, Telegram istifadəsini asanlaşdıran bir proyektdir.

RUST USERBOT 🇦🇿 Rust UserBot, Telegram istifadəsini asanlaşdıran bir proyektdir. Qurulum Heroku Serverə qurulum git clone https://github.com/rustres

1 Oct 25, 2021
Automatic Video Library Manager for TV Shows

Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. Dependen

1.5k Dec 22, 2022
Yes, it's true :yellow_heart: This repository has 326 stars.

Yes, it's true! Inspired by a similar repository from @RealPeha, but implemented using a webhook on AWS Lambda and API Gateway, so it's serverless! If

510 Dec 28, 2022
Implementation of the paper 'Sentence Bottleneck Autoencoders from Transformer Language Models'

Introduction This repository contains the code for the paper Sentence Bottleneck Autoencoders from Transformer Language Models by Ivan Montero, Nikola

Ivan Montero 14 Dec 28, 2022
Use Node JS Keywords In Python!!!

Use Node JS Keywords In Python!!!

Sancho Godinho 1 Oct 23, 2021
Python 3 tools for interacting with Notion API

NotionDB Python 3 tools for interacting with Notion API: API client Relational database wrapper Installation pip install notiondb API client from noti

Viet Hoang 14 Nov 24, 2022
Library to manage your own custom RPC on your desktop

Info I don't recommend novices setting this up yourself. It requires Redis, a server to host the API on, and a bit of understanding of Windows & Pytho

Isaac K 1 Apr 16, 2022
Secure Tunnel Manager

Making life easy of those who are in need of OpenSource alternative of AWS Secure Tunnel.

Suyash Chavan 1 Sep 27, 2022
Archive tweets and make them searchable

Tweeter Archive and search your tweets and liked tweets using AWS Lambda, DynamoDB and Elasticsearch. Note: this project is primarily being used a tes

Kamil Sindi 8 Nov 18, 2022
Linky bot, A open-source discord bot that allows you to add links to ur website, youtube url, etc for the people all around discord to see!

LinkyBot Linky bot, An open-source discord bot that allows you to add links to ur website, youtube url, etc for the people all around discord to see!

AlexyDaCoder 1 Sep 20, 2022
❤️ DaisyX 2.0 ❤️ A Powerful, Smart And Simple Group Manager ... Written with AioGram , Pyrogram and Telethon...

❤️ DaisyX 2.0 ❤️ A Powerful, Smart And Simple Group Manager ... Written with AioGram , Pyrogram and Telethon... ⭐️ Thanks to everyone who starred Dais

TeamOfDaisyX 44 Oct 06, 2022
Pixoo-Awesome is a tool to get more out of your Pixoo Devices.

Pixoo-Awesome is a tool to get more out of your Pixoo Devices. It uses the Pixoo-Client to connect to your Pixoo devices and send data to them. I targ

Horo 10 Oct 27, 2022
Shows VRML team stats of all players in your pubs

VRML Team Stat Searcher Displays Team Name, Team Rank (Worldwide), and tier of all the players in your pubs. GUI WIP: Username search works & pub name

Hamish 2 Dec 22, 2022
Pixiv 爬虫,使用 Python 实现。支持批量下载、上传到图床。

用 Python 实现的 Pixiv 爬虫,支持批量下载和上传。 随机图片 API: https://loliapi.ml/ Deploy Github Action 集成部署 建议使用本方法部署,相较于本地部署,无需搭建环境,全程在线上完成。并且使用国外服务器下载、上传,网络更加通畅。 Fork

18 Feb 26, 2022
pokemon-colorscripts compatible for mac

Pokemon colorscripts some scripts to print out images of pokemons to terminal. Inspired by DT's colorscripts compilation Description Prints out colore

43 Jan 06, 2023
Collect links to profiles by username through search engines

Marple Summary Collect links to profiles by username through search engines (currently Google and DuckDuckGo). Quick Start ./marple.py soxoj Results:

125 Dec 19, 2022
quote is a python wrapper for the Goodreads Quote API, powered by gazpacho.

About quote is a python wrapper for the Goodreads Quote API, powered by gazpacho.

Max Humber 11 Nov 10, 2022
Slack bot to automatically delete yubisneeze / accidental yubikey presses

YubiSnooze Slack bot to automatically delete yubisneeze / accidental yubikey presses. It will search using the regex "[cbdefghijklnrtuv]{44}" and if t

Andrew MacPherson 3 Feb 09, 2022
Fetch fund data from avanza.se using Python and some web scraping with bs4

Py(A)vanza Fetch fund data from avanza.se using Python and some web scraping with bs4. The default way is to display the data in the terminal, apply -

dunderrrrrr 1 Jan 27, 2022