Coder Social home page Coder Social logo

krunch3r76 / gc__listoffers Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 8.82 MB

a gui to see providers on the Golem network

License: GNU General Public License v3.0

Python 64.43% Tcl 35.57%
golem python gui golem-application golem-apps golem-network

gc__listoffers's Introduction

gc__listoffers

a gui frontend to offer listings on the Golem network

the desktop is back! what? you like the pretty js stuff? then go back to stats.golem.network then! for the rest of us that have no aesthetic sense whatsoever, I present you with gc__listoffers. that said, expect this interface to be klunky for awhile as it needs much work.

the problem gc__listoffers solves is 1) for providers to see at a cursory glance how competitive they are on mainnet given prices they have set for cpu and environment, 2) for requestors to tweak a market strategy on a run-per-run basis in an informed way

PEACE OF MIND: THIS IS A COMPLETELY FREE SERVICE. it does not spend any glm. the app-key may be necessary, however, to get information about providers

NOTE: you won't see yourself listed among the results unless the probe for offers was made over stats (disabled feature)

quick install

head over to releases and download the zip or tar file from the latest release. extract and double click gc__listoffers.py

video

gclo_0_5_8.mp4

this video demos basic functionality

check for new / latest release tag

(gc_listoffers)$ git fetch
From github.com:krunch3r76/gc__listoffers
   d87b579..01f72be  master     -> origin/master
 * [new tag]         v0.10.2     -> v0.10.2

upgrade installation to latest tag, wiping current installation

(gc__listoffers)$ git checkout main
(gc__listoffers)$ git reset --hard HEAD
(gc__listoffers)$ git pull
(gc__listoffers)$ git clean -dfx
(gc__listoffers)$ git checkout v0.10.2

usage

ensure python3-tk is installed

(ubuntu) $ sudo apt-get install python3-tk

clone, setup python environment, and run

$ git clone https://github.com/krunch3r76/gc__listoffers.git
$ cd gc__listoffers
./gc__listoffers$ git checkout v0.10.2
./gc__listoffers$ python3 gc__listoffers.py

On Windows:

REM clone as above (or double click from explorer)
.\gc__listoffers> python gc__listoffers.py

how to interpet the interface

if name or address headings are clicked on, sorting is strictly on either of these. however, if you click any of the other columns, sorting occurs from left to right, first sorting on the far left, then next level on the right, and so on.

requirements

yagna or golemsp version v0.12.0++ (beginning with Marble Castle)

$ curl -sSf https://join.golem.network/as-requestor | bash -

yapapi

$ pip install -U yapapi

either yagna or golemsp must be running

$ yagna service run

the app-key should be in the environment (see section on app-key for details)

python should have been compiled with Tcl support. this is the default on Windows. this is available as a package on ubuntu. see below.

usage tips

touch the radio button pertaining to the subnet of interest

offer scanning can take up to a few minutes, please be patient, maybe try your hand at a picasso replica

check the boxes to set upper limits on cpu time and env time. go to https://stats.golem.network and use the median values for cpu and env time as a starting point

it is not necessary to refresh when tweaking values!

the total number of offers is listed in large digits near the right

see offer details via the contextual menu system!

red nodes are nodes on the tglm payment network (testing payment network)

what is an app key?

an app key is what requestors use to run requests. to find and set your app key before running gc__listoffers and looking up the pertinent name:

$ yagna app-key list --json
[
  {
    "created": "2022-11-29T07:31:46.995858851",
    "id": "0x19ca46449dd7a8a4acf91313c8641981ca65b6f0",
    "key": "66f80425db2b48fabe8cf11e27377dc4",
    "name": "golem-cli",
    "role": "manager"
  }
]
$ export YAGNA_APPKEY=66f80425db2b48fabe8cf11e27377dc4# use your key not mine
$ python3 ./gc__listoffers.py

follow a similar logic for Windows

troubleshooting

if the console helper reports not understanding why it got no results, your yapapi library is most likely not up to date. please run pip install yapapi -U

advanced (TEMPORARILY NON-APPLICABLE)

starting for remote interaction (for systems without internet connectivity besides containerized golem)

REMOTE INTERACTION IS BROKEN, IT WILL BE FIXED SOON

# on the machine running yagna/golemsp, e.g. in docker, wsl, vmware
$ export YAGNA_APPKEY=<appkey> # if not already done. see section "what is an app key?" below on getting it 
(server) ./gc__listoffers (myvenv) $ python3 gc__listoffers.py serve localhost 8000

# on the remote machine (Windows okay)
(client) ./gc__listoffers $ python3 gc__listoffers.py client <ip-address-of-server> 8000

TODO

this is a very long list but i will start it with:

  • provide more features to interop with gc__filterms (https://github.com/krunch3r76/gc__filterms)
  • provide view/column customization
  • add more graphics and sound! hey this is python not python GS (obscure reference to Steve Woz)

gc__listoffers's People

Contributors

krunch3r76 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

gc__listoffers's Issues

providers on mainnet vs testnet are indistinguishable on a given subnet

the payment network is not tied to a subnet so that providers that are accepting payment in tglm can still appear on any subnet such as the one where mainnet providers reside: public-beta.
proposed solution(s): filter testnet nodes from public-beta; list payment info in table; make filter optional

interrupt manual probing +feedback

manual probing occurs in the background and may not yield results close to the actual number of unique offers. it would be helpful to one: see the progress, and two: interrupt.

earnings in last 24 hours feature

alex517#2224 of discord suggested adding a column for earnings in the last 24 hours by examining the polygon chain. excellent suggestion. will start on this once i implement column customization probably.

remote server emits async error

on python 11 (only version tested) server is broken. will need to confirm but seems related to the python version and associated changes. low priority, does not affect most users as client-server model is considered an "extension"

potential issue: maxworkers > 20

a max workers of 50 stopped at 20 until task timeout, task proceeded but offers maybe missed to maximize entropy. under investigation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.