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 Python package that can be used to download post and comment data from Reddit.

Reddit Data Collector Reddit Data Collector is a Python package that allows a user to collect post and comment data from Reddit. It is built on top of

Nico Van den Hooff 3 Jul 26, 2022
Simple Python script that lets you upload image/video to imgur

Pymgur 🐍 Simple Python script that lets you upload image/video to imgur! Usage 🔨 Git Clone this repository install the requirements (pip install -r

3 Feb 20, 2022
Analog clock that shows the weather instead of the actual numerical hour it points to.

Eli's weatherClock An digital analog clock but instead of showing the hours, the clock shows the weather at that hour of the day. So instead of showin

Kovin 154 Dec 01, 2022
Software com interface gráfica para criar postagens anônimas no Telegra.ph do Telegram e compartilhar onde quiser...

Software com interface gráfica para criar postagens anônimas no Telegra.ph do Telegram e compartilhar onde quiser...

Elizeu Barbosa Abreu 4 Feb 05, 2022
Send automated wishes to your contacts at scheduled time through WhatsApp. Written for Raspberry pi.

Whatsapp Automated Wishes Helps to send automated wishes to your contacts in Whatsapp at scheduled time using pywhatkit . Written for Raspberry pi. Wi

Uthayamurthy 2 Dec 13, 2022
My Advent of Code solutions. I also upload videos of my solves: https://www.youtube.com/channel/UCuWLIm0l4sDpEe28t41WITA

My solutions to adventofcode.com puzzles. I post videos of me solving the puzzles in real-time at https://www.youtube.com/channel/UCuWLIm0l4sDpEe28t41

195 Jan 04, 2023
Instagram Bot posting earthquakes with magnitude greater than or equal to 3.5.

Instagram Bot posting earthquakes with magnitude greater than or equal to 3.5

Alican Yüksel 4 Aug 22, 2022
Telegram bot/scraper to get the latest NUS vacancy reports.

Telegram bot/scraper to get the latest NUS vacancy reports. Stay ahead of the curve and don't get modrekt.

Chee Hong 1 Jan 08, 2022
A discord bot with a leveling system (similar to mee6).

Discord.py A discord bot with a leveling system (like mee6) Pre-requisites Knowing how to get create an app/bot via discord's developer portal. Websit

26 Dec 11, 2022
Requests based multi-threaded script for increasing followers on Spotify

Proxyless Spotify Follow Bot Requests based multi-threaded script for increasing followers on Spotify. Click here to report bugs. Usage Download ZIP h

397 Jan 03, 2023
Install and manage Proton-GE and Luxtorpeda for Steam and Wine-GE for Lutris with this graphical user interface. Based on AUNaseef's ProtonUp, made with Python 3 and Qt 6.

ProtonUp-Qt Qt-based graphical user interface to install and manage Proton-GE installations for Steam and Wine-GE installations for Lutris. Based on A

638 Jan 02, 2023
An API or getting Optifine VersionsList/Version/Download-URL.

Optifine-API An API for getting Optifine VersionsList/Versions/Download-URL. Table of contents Get Versions List Get Specify Versions Download Optifin

2 Dec 04, 2022
A Telegram bot for Minecraft names

MCTelegramBot About this project This bot allows you to see data about minecraft names in Telegram, it has a few commands such as: /names - Show dropp

Kami 5 May 14, 2022
Some python code to make twitter bots ;)

How to set up a twitter bot using python's tweepy library Create a twitter developer account and project Make sure you are logged into your twitter ac

Wael 2 Jan 10, 2022
Example of a discord bot in Python

discordbot.py Example of a discord bot in Python Requirements Python 3.8 or higher Discord Bot Setting Up Clone this repo or download the files Rename

Debert Jamie 1 Oct 23, 2021
Some examples regarding how to use the Twitter APIs for academic research

Twitter Developer Platform: Using Twitter APIs for Academic Research All the scripts require a config.ini file in which the keys are put. There is a t

Federico Bianchi 6 Feb 13, 2022
A module to complement discord.py that has Music, Paginator and Levelling.

discord-super-utils A modern python module including many useful features that make discord bot programming extremely easy. Features Modern leveling m

Yash 106 Dec 19, 2022
Adds a new git subcommand named "ranch".

Git Ranch This script adds ranch, a new subcommand for git that makes it easier to order 1 Gallon of Kraft Ranch Salad Dressing from Amazon. Installat

Austin T Schaffer 8 Jul 06, 2022
Project developed as part of a selection process for the company Denox

📝 Tabela de conteúdos Sobre Requisitos para rodar o projeto Instalação Rotas da API Observações 🧐 Sobre Projeto desenvolvido como parte de um proces

Ícaro Sant'Ana 1 Mar 01, 2022
Huggingface transformers for discord

disformers Huggingface transformers for discord base source butyr/huggingface-transformer-chatbots install pip install -U disformers example see examp

SpaceDEVofficial 1 Nov 09, 2021