Code Monkey home page Code Monkey logo

grass's Introduction

Grass

An unofficial Docker Image for getgrass.io Available on Docker Hub

What's Grass?

Grass allows you to earn passive income by sharing your network bandwidth

How to get started?

  1. Register a Grass Account if you don't have one already: getgrass.io
  2. Either build this image from source, or download it from Docker Hub
  3. Set envriomental variables to their respective values: GRASS_USER and GRASS_PASS
  4. You're good to go! Once started, the docker exposes your current network status and lifetime earnings on port 80

Docker Run Command

docker run -d \
    --name Grass \
    -p 8080:80 \
    -e [email protected] \
    -e GRASS_PASS=mypass \
    -e ALLOW_DEBUG=False \
    camislav/grass

Please replace 8080 with the port you want to be able to access the status with, as well as GRASS_USER and GRASS_PASS

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

grass's People

Contributors

kgregor98 avatar autonomylab-xyz avatar

Stargazers

Alan Shi avatar EgoCode avatar  avatar  avatar uncle Sam avatar weiai avatar 苍南 avatar  avatar A avatar Alic Feng avatar  avatar sky91 avatar zhangcheng avatar  avatar S.Feng avatar Noodles avatar nofeetbird avatar maoring avatar Lia Batlle Figueras avatar Bailey Matthews avatar Nur Muhammad Luthfi avatar  avatar 马哈嘿 avatar  avatar Nick - Ngoc Pham avatar  avatar LiZhiCheng avatar  avatar  avatar  avatar REPUS avatar seandong avatar Phx avatar edram avatar Stake Machine avatar HB avatar BaDjinn avatar  avatar Junfan Zhang avatar Alejandro Castro avatar  avatar Minimumax avatar Dylan avatar Shaabi avatar  avatar Clarence Dan avatar 赖嘉伟Gary avatar Yoga Sakti avatar Prasetyo Iman Nugroho avatar  avatar miles avatar  avatar  avatar  avatar  avatar Jiabao Qu avatar  avatar  avatar sihai avatar littlehi avatar  avatar  avatar mixbee avatar  avatar Nathan Lloyd Ward avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

grass's Issues

Grass exited with code 1

Hello,

I have just tested the launch of the Grass image on Raspberry 3B arm64 1GB RAM

The debian image downloaded well but grass quit immediately on the first launch.

What do you suggest?

Grass  | Downloading extension...
Grass  | Downloaded! Installing extension and driver manager...
Grass  | Installed! Starting...
Grass  | Traceback (most recent call last):
Grass  |   File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/common/selenium_manager.py", line 134, in run
Grass  |     completed_proc = subprocess.run(args, capture_output=True)
Grass  |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Grass  |   File "/usr/local/lib/python3.12/subprocess.py", line 548, in run
Grass  |     with Popen(*popenargs, **kwargs) as process:
Grass  |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Grass  |   File "/usr/local/lib/python3.12/subprocess.py", line 1026, in __init__
Grass  |     self._execute_child(args, executable, preexec_fn, close_fds,
Grass  |   File "/usr/local/lib/python3.12/subprocess.py", line 1950, in _execute_child
Grass  |     raise child_exception_type(errno_num, err_msg, err_filename)
Grass  | OSError: [Errno 8] Exec format error: '/usr/local/lib/python3.12/site-packages/selenium/webdriver/common/linux/selenium-manager'
Grass  | 
Grass  | The above exception was the direct cause of the following exception:
Grass  | 
Grass  | Traceback (most recent call last):
Grass  |   File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/common/driver_finder.py", line 38, in get_path
Grass  |     path = SeleniumManager().driver_location(options) if path is None else path
Grass  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Grass  |   File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/common/selenium_manager.py", line 103, in driver_location
Grass  |     output = self.run(args)
Grass  |              ^^^^^^^^^^^^^^
Grass  |   File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/common/selenium_manager.py", line 140, in run
Grass  |     raise WebDriverException(f"Unsuccessful command executed: {command}") from err
Grass  | selenium.common.exceptions.WebDriverException: Message: Unsuccessful command executed: /usr/local/lib/python3.12/site-packages/selenium/webdriver/common/linux/selenium-manager --browser chrome --output json
Grass  | 
Grass  | 
Grass  | The above exception was the direct cause of the following exception:
Grass  | 
Grass  | Traceback (most recent call last):
Grass  |   File "/usr/src/app/./main.py", line 47, in <module>
Grass  |     driver = webdriver.Chrome(options=options)
Grass  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Grass  |   File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in __init__
Grass  |     super().__init__(
Grass  |   File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/chromium/webdriver.py", line 49, in __init__
Grass  |     self.service.path = DriverFinder.get_path(self.service, options)
Grass  |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Grass  |   File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/common/driver_finder.py", line 41, in get_path
Grass  |     raise NoSuchDriverException(msg) from err
Grass  | selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain driver for chrome using Selenium Manager.; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
Grass  | 
Grass exited with code 1

Proxy support [DEV]

Im trying use proxychains4 with socks4 and socks5 proxy.

┌──(kali㉿kali-raspberry-pi)-[~/grass/src]
└─$ proxychains4 python main.py
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/aarch64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16
Debugging is enabled! This will generate a screenshot and console logs on error!
Downloading extension...
[proxychains] Strict chain  ...  184.181.217.206:4145  ...  clients2.google.com:443  ...  OK
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 715, in urlopen
    httplib_response = self._make_request(
                       ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 404, in _make_request
    self._validate_conn(conn)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 1056, in _validate_conn
    conn.connect()
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 419, in connect
    self.sock = ssl_wrap_socket(
                ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/urllib3/util/ssl_.py", line 449, in ssl_wrap_socket
    ssl_sock = _ssl_wrap_socket_impl(
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/urllib3/util/ssl_.py", line 493, in _ssl_wrap_socket_impl
    return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 517, in wrap_socket
    return self.sslsocket_class._create(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/ssl.py", line 1075, in _create
    self.do_handshake()
  File "/usr/lib/python3.11/ssl.py", line 1346, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1002)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 486, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 799, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='clients2.google.com', port=443): Max retries exceeded with url: /service/update2/crx?response=redirect&prodversion=98.0.4758.102&acceptformat=crx2,crx3&x=id%3Dilehaonighjijnmpnagapkhpcdbhclfg%26uc&nacl_arch=x86-64 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1002)')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/kali/grass/src/main.py", line 81, in <module>
    download_extension(extensionId)
  File "/home/kali/grass/src/main.py", line 51, in download_extension
    r = requests.get(url, stream=True, headers=headers)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/requests/api.py", line 73, in get
    return request("get", url, params=params, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 517, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='clients2.google.com', port=443): Max retries exceeded with url: /service/update2/crx?response=redirect&prodversion=98.0.4758.102&acceptformat=crx2,crx3&x=id%3Dilehaonighjijnmpnagapkhpcdbhclfg%26uc&nacl_arch=x86-64 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1002)')))

wont connect

{"connected":false,"epoch_earnings":"18,833.75","network_quality":false}

The epoch_enardings is working however it has been over 24 hours and connect = no

iMac/Chrome working so the user name/password are correct

API reporting no connection

It looks like it is not connected:
{"connected":false,"epoch_earnings":"462.07K","network_quality":false}

Docker logs:

Downloading extension...
Downloaded! Installing extension and driver manager...
Installed! Starting...
Started! Logging in...
Logging in...
Logging in...
Logging in...
Logged in! Waiting for connection...
Loading connection...
Loading connection...
Loading connection...
Loading connection...
Loading connection...
Loading connection...
Loading connection...
Loading connection...
Connected! Starting API...
 * Serving Flask app 'main'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:80
 * Running on http://172.17.0.3:80
Press CTRL+C to quit

Loading connection...

I recieve "Loading connection..." and after exit 'Could not load connection! Exiting...'
But my connection work with official chrome extention

Failed install into Raspberry Pi3b with Raspbian lite 32bit version.

Thanks for your hardwork, I have run successfully on my RPI4b with Raspbian OS 64bit version, but...
I have another Rpi3b, after follow all step as your mention on README.

run command with checking container logs

docker logs grass

and wait few more minutes then output as below:-

Downloading extension...
Downloaded! Installing extension and driver manager...
Installed! Starting...
Could not start with Manager! Trying to default to manual path...
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/common/driver_finder.py", line 38, in get_path
path = SeleniumManager().driver_location(options) if path is None else path
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/common/selenium_manager.py", line 89, in driver_location
args = [str(self.get_binary()), "--browser", browser]
^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/common/selenium_manager.py", line 63, in get_binary
raise WebDriverException(f"Unsupported platform/architecture combination: {sys.platform}/{arch}")
selenium.common.exceptions.WebDriverException: Message: Unsupported platform/architecture combination: linux/armv7l

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/src/app/./main.py", line 88, in
driver = webdriver.Chrome(options=options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in init
super().init(
File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/chromium/webdriver.py", line 49, in init
self.service.path = DriverFinder.get_path(self.service, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/common/driver_finder.py", line 41, in get_path
raise NoSuchDriverException(msg) from err
selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain driver for chrome using Selenium Manager.; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/src/app/./main.py", line 92, in
driver_path = ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/webdriver_manager/chrome.py", line 40, in install
driver_path = self._get_driver_binary_path(self.driver)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/webdriver_manager/core/manager.py", line 40, in _get_driver_binary_path
file = self._download_manager.download_file(driver.get_driver_download_url(os_type))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/webdriver_manager/drivers/chrome.py", line 45, in get_driver_download_url
modern_version_url = self.get_url_for_version_and_platform(driver_version_to_download, os_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/webdriver_manager/drivers/chrome.py", line 97, in get_url_for_version_and_platform
raise Exception(f"No such driver version {browser_version} for {platform}")
Exception: No such driver version 120.0.6099.109 for linux32

uname

Linux raspberrypi 5.10.103-v7+ #1529 SMP Tue Mar 8 12:21:37 GMT 2022 armv7l GNU/Linux

Error when launched from Dockge on raspberry 3

Hello,

I've just run the command on Dockge (portainer equivalent) and as far as I can see it can't find the image.

My raspberry is a raspberry 3B 1GB RAM (arm64).

[+] Running 0/1
 ⠸ grass Pulling                                                                                    1.3s 
choosing an image from manifest list docker://camislav/grass:latest: no image found in image index for architecture arm64, variant "v8", OS linux

Installed but says connected "false"

[root@crankk-183cc92f ~]# docker logs 940f097726cf
Downloading extension...
Downloaded! Installing extension and driver manager...
Installed! Starting...
Could not start with Manager! Trying to default to manual path...
Started! Logging in...
Logging in...
Logging in...
Logging in...
Logging in...
Logging in...
Logging in...
Logging in...
Logging in...
Logged in! Waiting for connection...
Connected! Starting API...

  • Serving Flask app 'main'
  • Debug mode: off
    WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
  • Running on all addresses (0.0.0.0)
  • Running on http://127.x.x.x:80
  • Running on http://172.xx.xx.x:80
    Press CTRL+C to quit
    192.168.1.170 - - [08/Mar/2024 20:11:25] "GET / HTTP/1.1" 200 -
    192.168.1.170 - - [08/Mar/2024 20:11:25] "GET /favicon.ico HTTP/1.1" 404 -
    [root@crankk-183cc92f ~]#

This is what It says when I connect to the web browser with the port:
{"connected":false,"epoch_earnings":"37,946.67","network_quality":"100"}

Add Proxy Support

since grass didn't support ip from data center, is it possible add residential ip on that script?

HTTP 500 no such element

Hey,
I'm getting an error 500 when i try to access the / endpoint :

here are the logs :

Downloading extension...
Downloaded! Installing extension and driver manager...
Installed! Starting...
Started! Logging in...
Logging in...
Logging in...
Logged in! Waiting for connection...
Loading connection...
Connected! Starting API...
 * Serving Flask app 'main'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:80
 * Running on http://172.18.0.3:80
Press CTRL+C to quit
[2024-02-04 17:44:51,344] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/flask/app.py", line 872, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/flask/app.py", line 870, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/flask/app.py", line 855, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/./main.py", line 135, in get
    lifetime_earnings = driver.find_element('xpath', '//*[contains(text(), "Lifetime earnings")]')
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 741, in find_element
    return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 347, in execute
    self.error_handler.check_response(response)
  File "/usr/lib/python3.11/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[contains(text(), "Lifetime earnings")]"}
  (Session info: chrome=121.0.6167.85); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception

192.168.1.51 - - [04/Feb/2024 17:44:51] "GET / HTTP/1.1" 500 -

Thanks :)

Network 0%

Sorry, this may not be related, but how can I prevent my network score from 0%, I use a VPS from Contabo. I'm sure this installation was successful because on the web the status is connected but the score is 0%
SmartSelect_20240218_161740_Chrome
SmartSelect_20240218_161823_Termius

0% network score

image

Getting 0% network score although in the dashboard it says it is connected

WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:80
 * Running on http://172.17.0.2:80
Press CTRL+C to quit
Downloading extension...
Downloaded! Installing extension and driver manager...
Installed! Starting...
Started! Logging in...
Loading login form...
Logging in...
Logging in...
Logging in...
Logging in...
Logging in...
Logged in! Waiting for connection...
Loading connection...
Loading connection...
Connected! Starting API...
 * Serving Flask app 'main'
 * Debug mode: off

Permisssion denied

Hi,

I just deployed this app into Heroku, and got this error after initiating Flask app

What do you suggest?

2024-02-18T16:23:34.307507+00:00 heroku[web.1]: Starting process with command python ./main.py
2024-02-18T16:23:43.348509+00:00 app[web.1]: Debugging is enabled! This will generate a screenshot and console logs on error!
2024-02-18T16:23:43.348573+00:00 app[web.1]: Downloading extension...
2024-02-18T16:23:43.348574+00:00 app[web.1]: Extension MD5: fb1bba752f49b280f6c677b373fdf212
2024-02-18T16:23:43.348575+00:00 app[web.1]: Downloaded! Installing extension and driver manager...
2024-02-18T16:23:43.348577+00:00 app[web.1]: Installed! Starting...
2024-02-18T16:23:43.348577+00:00 app[web.1]: Started! Logging in...
2024-02-18T16:23:43.348577+00:00 app[web.1]: Logging in...
2024-02-18T16:23:43.348577+00:00 app[web.1]: Logging in...
2024-02-18T16:23:43.348577+00:00 app[web.1]: Logging in...
2024-02-18T16:23:43.348577+00:00 app[web.1]: Logged in! Waiting for connection...
2024-02-18T16:23:43.348577+00:00 app[web.1]: Loading connection...
2024-02-18T16:23:43.348577+00:00 app[web.1]: Connected! Starting API...
2024-02-18T16:23:43.348578+00:00 app[web.1]: * Serving Flask app 'main'
2024-02-18T16:23:43.348581+00:00 app[web.1]: * Debug mode: off
2024-02-18T16:23:43.348638+00:00 app[web.1]: Permission denied
2024-02-18T16:23:43.492068+00:00 heroku[web.1]: Process exited with status 1
2024-02-18T16:23:43.513348+00:00 heroku[web.1]: State changed from starting to crashed

TO ADD: External IP address to the connection status

Would it be possible to add external IP address to the Connection Status page? This will help to identify which network is or is not connected in the Grass dashboard.
{"connected":false,"epoch_earnings":"393.61K","network_quality":"75"}

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.