GridShell
Welcome to an exciting and innovative approach to collaborative distributed computing, powered by IoT and ultra-low-power devices.
GridShell is an innovative distributed computing system that leverages the idle processing power of underutilized IoT devices. Despite the market's immense potential, many of the 15 billion connected devices today remain idle most of the time, excelling only at their primary functions and missing out on additional benefits like passive revenue and multipurpose use.
- Imagine your smart plugs at home, which only turn on and off, yet house a 240MHz CPU. Wouldn't it be beneficial if they could also generate passive income instead of just idling?
GridShell aims to connect these devices, sharing their processing power during idle periods. By enabling tokenomics, this system targets to allow everyone involved to earn passive income, unlocking the untapped computing power currently idling in billions of devices installed in homes worldwide.
In addition, the project also promotes green and eco-friendly computing by enabling certain tasks to be run on low-power nodes within the network.
While the IOT market excels at executing essential tasks, It frequently falls short in delivering additional advantages. Users are typically left without opportunities to generate income or leverage their devices potential.
https://www.gnd.io/some-thoughts-on-idle-iot-devices-and-rent-economies/
The Idea & Vision
Project aims to solve this problem by repurposing idle devices for distributed computing tasks, creating a collaborative network that maximizes their collective power for mutual benefit.
Furthermore, by focusing on eco-friendly computing, GridShell ensures that these tasks can be distributed to low-power nodes, contributing to a more sustainable and energy-efficient computing infrastructure.
Meet GridShell
GridShell is exclusively hosted on GitHub, making your first step as simple as visiting the repo.
If you're eager to delve into the intricate specifics, source codes, and comprehensive documentation, this is the place to be!
Join
Joining is made extremely easy, no registration - simply a string.
When generating the account, ensure to store the details given somewhere, remembering these numbers and words is hard.
Flash Your Node(s) With Vanilla Release
Simply upload the latest binary to your device to connect to the network.
Head on to the GitHub for the quick guide on how to do it.
https://github.com/invpe/GridShell/blob/main/Documentation/Tutorials/Release.md
Configure Your Node(s)
After you have uploaded the vanilla GridShell binary to your ESP32 or ESP8266 device it's time to configure it.
A super short animation renders the simplicity of doing it on your newly flashed vanilla node.
This step is also covered in the release notes. If you are interested in details head here: https://github.com/invpe/GridShell/blob/main/Documentation/Tutorials/Release.md.
Job Done!
Good job !
Your node is now part of the GridShell network, you will start earning rewards for executing network tasks which you can later burn for submitting your work, storing telemetry, or simply using the project. It is super important to remember that you can use the network to fuel up your DIY projects, instead of focusing on hosting / maintenance / costs - just use the GridShell to handle your calculations or telemetry.
This is not the end of the journey, if you feel like you want to build your own solutions and integrate with the project, they have a very simple way of doing that, definitely visit the GIT page.
But to answer your question, here is how to:
Submit a script to the network by using the PHP script :
php use.php HASH_HASH_HASH SUBMIT "OUTPUTPAYLOAD=\"TEST V010 CUSTOM SCRIPT\"" SOME_INPUT_PAYLOAD
Submit a script to the network from your Arduino Sketch:
#include <WiFi.h>
#include "CGridShell.h"
uint64_t uiLastTaskSubmitted = 0;
uint32_t uiLastTaskID = 0;
void setup() {
CGridShell::GetInstance().Init("Your Grid Hash Goes here", false);
WiFi.begin("YOUR_INTERNET", "YOUR_PASSWORD");
while (WiFi.status() != WL_CONNECTED) { delay(1000); }
}
void loop() {
CGridShell::GetInstance().Tick();
if (millis() - uiLastTaskSubmitted >= 60000) {
uiLastTaskID = CGridShell::GetInstance().AddTask("OUTPUTPAYLOAD=\"Hello From \"+INPUTPAYLOAD", "GridShell");
uiLastTaskSubmitted = millis();
}
}
Have a look at the FAQ | Read the WHITEPAPER | Join the DISCUSSION | This project is made with ❤️ to innovation