CarrIOTA Field: Node intel and balancing
Over the past few month we achieved tremendous advances with our CarrIOTA milestones by releasing Nelson and Bolero tools. Our release date for the final CarrIOTA product is being pushed back, because of the limited resources and the time involved to make those tools available not just for our product, but for the whole community. We believe that giving and helping the community is the most important thing that can be done at this point.
If the IOTA community and ecosystem profits from our work and research, we all will.
This standpoint has not changed a little. Hereby, we want to announce the next milestone, which is indirectly necessary and not so important for CarrIOTA, but will be a very useful addition to the community.
Meet CarrIOTA Field
Following our carrot tradition, this name was not hard to choose. The idea behind CarrIOTA Field is to tackle several issues:
- Provide anonymous node statistics to be able to visualise the whole IRI-Node network without compromising on security.
- Simplify node selection for light wallets.
- Optimise node performance and usage of the node resources for the benefit of the whole network.
- Hence, decrease the confirmation times and increase confirmations per second.
- Provide protection against DDoS attacks.
- Incentivise node owners.
- Add additional security through multiple confirmations for exchanges and critical applications.
Seems too much for a single solution? Read on!
CarrIOTA Field is a combination of a Client and a Server app.
The client will be a separate tiny tool, similar to Nelson, that can run alongside IRI. It does not require Nelson, though — only IRI.
The Field Client does three simple tasks:
- It sends regular statistics about the IRI and it’s neighbours to a Field Server.
- It sends additional node information freely chosen by the node owner like a name of the node and an IOTA address (more on that below).
- It serves as a tough proxy for the IRI, accepting connections only from the Field Server. Any other incoming request is dropped without discussions.
This means that the node owner could theoretically close direct API access to the IRI node. The Field would be the only way to access IRI over API.
The node owner can provide an IOTA address to the Field Client or a seed (in which case the IOTA Field will auto-generate an unused address automatically on each update to the server). This information is optional and will be used to incentivise the node owners as explained in the next section.
The Server app is a little more complicated. It will run as a service on an auto-scalable cloud with a failsafe infrastructure. The service has several jobs:
The Server collects all data provided by the Field Clients. With this data, it can anonymously visualise the node network in real-time. No IP addresses or info is shared, apart of the info that the node owner has allowed (like name or the IOTA address).
With this data, it is also possible to create a top-ranks table by the work completed by each node. The node’s donations address can be viewed and directly tipped.
Single wallet address
The Server provides an endpoint, where a light wallet can connect. His request is sent to one (or multiple) available nodes through the Field channel. The Field Client takes care to process the requests to the IRI and return the response.
This endpoint is load-balanced and DDoS-protected. It forms a shield for any full node that wants to offer its resources for public usage, without risking a DDoS attack.
This load balancer distributes the workload across the whole node network, solving the bottleneck issue we are having right now with the public nodes. Result? Quicker attachments and quicker confirmations as the network’s resources are used in the most optimal way.
In order to prevent misuse, the same request is sent to several nodes. An algorithm will detect bad actors and penalise/ban any misbehaving node. This adds additional layer of security against disruptions to the network and eclipsing to the already existing security provided by Nelson.
For critical applications (exchanges, for example), we are planing a paid service plan further down the road, where the same request is sent to even more nodes and the response is thoroughly checked. This service is paid per request and all funds are distributed across the participating nodes:
Incentivising node owners
Independently if you run vanilla IRI, Nelson or Bolero, we want to give the node owners a chance to break even and get something back from the community. If the node owner provided an IOTA address, she will automatically participate in this incentive plan.
The Field Server collects information about all valid processed requests to each Field Client. All funds collected by the Server are then distributed on a regular basis (daily/weekly) to the provided IOTA addresses according to the work that has been done by the given node. The Field Server collects the funds in two ways:
- Sponsorship and donations by the community. A leaderboard will be provided listing the top sponsors.
- Paid service for critical applications with additional confirmations and layers of security.
Our main business and the already released tools (Nelson and Bolero) require most of our time. However, we already achieved a significant progress in this area and will continue our development at the pace our time permits. The Field service will be rolled out in several steps as we progress in our development.
The Field does not require Nelson and poses a completely separate tool, but it will be integrated into Bolero, so that the Bolero owners can optionally participate.
As for CarrIOTA, we also plan to optionally integrate it into the final product so that the CarrIOTA owners can offer their resources and eventually even get paid for their service to the network.
Thanks for reading! Here’s a bag of carrots from the Field:
IOTA Donations welcome: