Git Product home page Git Product logo

ictinder's Introduction

IcTinder

About

IcTinder is a service maintaining your Ict neighbors. It will add and remove neighbors automatically depending on their reliability to ensure that you are always well-connected. Sign up and worry less.

Getting Started

1) Sign up

  1. Visit the official IOTA Discord
  2. Use the !ictinder command to start a dialog with the IcTinder bot
  3. In the dialog, use !register to sign up
  4. Keep your Discord ID and Password for later.

2) Install the IXI

  1. Open your Ict Web GUI (hosted on port 2187 by default).
  2. Navigate to IXI Modules > Manage Modules
  3. Click on the Install Third Party Module button.
  4. Enter mikrohash/ictinder and click on Install.
  5. Refresh the page.
  6. Navigate to IXI Modules > IcTinder
  7. Configure IcTinder:
    • static_neighbors: In case you have static neighbors you want to keep all the time, put them here
    • ict_gui_port and ict_gui_password: Part of your Ict configuration.
    • node_address: The address your peers can use to connect to your node (format: HOST:PORT). The host should never be localhost or similar.
    • discord_id and ictinder_password: You received these values when you signed up with the IcTinder bot.
  8. Press the Save button.

IcTinder should now be started. Give it a few minutes to find your first neighbor.

FAQ

How does it work?

How it works:

  • IcTinder.ixi (installed on the Ict node) publishes stats about neighbors to the central API.
  • The central API decides how to connect nodes based on the stats reported by their neighbors.
  • IcTinder.ixi downloads the neighbors recommended by the central API and connects to them. Rinse repeat.

Why is it centralized?

In the Internet-of-Things, auto-peering will be limited to devices nearby. IcTinder is only a temporary measure to simplify the peering process while Ict is running over the cloud-based Internet. Therefore it does not make any sense to spend too much resources on developing a decentralized peering layer which would not make it into the final version. IcTinder can be considered an extension of the previous peer-finder bot with the difference that the whole process is automatized and no manual neighbor adding/removing is required. Additionally, stats reported by neighbors are utilized to improve the network.

I'm getting an SSLHandShakeException

10:57:40.500 ERROR [org.iota.ictinder.IcTinder/IcTinder]   Unexpected issue occurred during syncing. - java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
	at org.iota.ict.api.HttpGateway.sendRequest(HttpGateway.java:39)

If you encounter this message in your Ict log, your JRE or JDK is not supporting the encryption used by our central API. This can be fixed by installing the Java Cryptography Extension. Please report if you encountered this issue and whether you were able to fix it.

Disclaimer

Run this software at your own cost. We are not liable for any damage caused by running this software. In order to use IcTinder, you will have to sign up at the central IcTinder API. We are not responsible for data breaches. However, we will give you a custom password instead of asking you for one to minimize any risks. We will only store a bcrypt hash of your password in our database. Your node address will be exposed to your peers in order to allow them to connect.

ictinder's People

Stargazers

 avatar  avatar

ictinder's Issues

[Feature request] Option to ask for ipv6 neighbors only

Some people are forced to use ipv6 neighbors due to their ISP restrictions.
IcTinder could have a configuration option to ask for only ipv6 neighbors. This would avoid peering with ipv4 and ending up with no traffic between nodes.

Static Neighbors Missing 1.5 hours after ict restart

-Two nodes using the same discord credentials. Both nodes listed as expected by !listnodes
-Each node has two static neighbors. Static neighbor listing format in each node's ictinder GUI page is: neighbor1IP:port,neighbor2IP:port
-Manual restart each node's ict from terminal
-After 90 minutes, node #1 has 2 neighbors= 1 static and 1 dynamic
node #2 has 2 neighbors= 1 static and 1 dynamic
-Each node shares a dynamic DNS address, but use different ICT ports web GUI ports

-Error messages on both nodes, which only occur one time, at ICT restart.
Logged error messages:
~Registering external static files folder [web/dist/] as [/home/ict/omega-ict/web/dist]
~IXI module 'Report.ixi' does not specify your Ict's version '0.6.1' as supported in module.json
~IXI module 'IcTinder' does not specify your Ict's version '0.6.1' as supported in module.json
~IXI module 'CHAT.ixi' does not specify your Ict's version '0.6.1' as supported in module.json

-Error message on one node, which occurred two times on node #2 after ICT restart, but not since:
~Unexpected issue occurred during syncing

Avoid adding more then 3 neighbors

Several times ictinder left more then 3 neighbors in ict.cfg causing a startup loop.

Apr 08 09:31:19 ict-4 java[19348]: 09:31:19.403 INFO  [main/Main]   Starting new Ict 'ict' (version: 0.6-SNAPSHOT)
Apr 08 09:31:20 ict-4 java[19348]: 09:31:20.358 ERROR [main/Main]   Could not start Ict. - java.lang.IllegalStateException: Already reached maximum amount of neighbors.
Apr 08 09:31:20 ict-4 java[19348]:         at org.iota.ict.network.Node.neighbor(Node.java:120)
Apr 08 09:31:20 ict-4 systemd[1]: ict.service: Service hold-off time over, scheduling restart.
Apr 08 09:31:20 ict-4 systemd[1]: Stopped IOTA ICT.```

Add IP/hostname checks

Check if format of IP:Port or hostname.tld:port is correct and not missing an octet or tld.

Can't remove node from registered nodes

!delnode 88.78.128.63:1337

IctinderBOTheute um 16:45 Uhr
Something went wrong while removing this node: POST parameter 'address' does not match pattern '/^[a-zA-Z0-9.-:]*:\d{1,5}$/'.

At first start it removes all the neighbors and add dynamic ones

When IcTinder is configured for the first time, it will replace all the existing neighbors if they are not manually inserted in the static neighbors field. I was expecting it to pull my two existing neighbors from Ict as the other IXI do and then proceed to find a third one.

The simplest solution would be to add a extra confirmation step when IcTinder is configured to warn the users if the static neighbor field is empty. Or have a thickbox or something to "activate it", so users can parameter the IXI, it will pull the information from Ict as expected, and then user turn on the thickbox to activate the IXI.

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.