Giter Club home page Giter Club logo

chat.ixi's Introduction

CHAT.IXI

About

CHAT.ixi is an IXI (IOTA eXtension Interface) module for the Iota Controlled agenT (Ict). It extends the functionality of the core Ict client with a chat application which allows users in the Ict network to exchange messages on a permissionless, distributed data-integrity protocol - the Tangle.

CHAT.ixi is described in more detail in this official IOTA blog post.

Installation

Step 1: Install Ict

Please find instructions on iotaledger/ict.

Make sure you are connected to the main network and not to an island, otherwise you won't be able to message anyone in the main network.

Step 2: Get CHAT.ixi

There are two ways to do this:

Simple Method

Go to releases and download the chat.ixi-{VERSION}.jar from the most recent release.

Advanced Method

You can also build the .jar file from the source code yourself. You will need Git and Gradle.

# download the source code from github to your local machine
git clone https://github.com/iotaledger/chat.ixi
# if you don't have git, you can also do this instead:
#   wget https://github.com/iotaledger/chat.ixi/archive/master.zip
#   unzip master.zip

# change into the just created local copy of the repository
cd chat.ixi

# build the chat.ixi-{VERSION}.jar file
gradle ixi

Step 3: Install CHAT.ixi

Move chat.ixi-{VERSION}.jar to the modules/ directory of your Ict:

mv chat.ixi-{VERSION}.jar ict/modules

Step 4: Run Ict

Switch to Ict directory and run:

java -jar ict-{VERSION}.jar

Step 5: Configure CHAT.ixi (Optional)

CHAT.ixi is automatically configured at the first start, so no further action is required.

For manual configuration, open ict/modules/chat-config/chat.cfg and change following parameters accordingly:

username={USERNAME}
password={PASSWORD}

Replace {USERNAME} with the username you want to appear with in the chat. Replace {PASSWORD} with any password to protect your CHAT.ixi from unauthorized access.

Step 6: Open the Web GUI

Open Ict Web GUI http://{HOST}:2187 in your web browser, where {HOST} is the IP address of your Ict. In the IXI MODULES tab, you should now find CHAT.ixi. Simply click on the open button to access the chat.

Disclaimer

While having the CHAT.ixi web GUI open, your username and user id will be submitted to the network in regular time intervals, so that other users can see that you are online.

We are not responsible for any damage caused by running this software. Please use it at your own risk.

chat.ixi's People

Contributors

7h7 avatar bilde2910 avatar samuel-rufi avatar svenger87 avatar vuapo-eth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chat.ixi's Issues

Failed to connect to Ict: java.rmi.NotBoundException: ict

I followed the instructions on a clean Windows 10 x64 machine, I built both the IOTA ICT and Chat.ixi from source. Checked that ports were also open.

Locally running IOTA ICT

Output from Chat.ixi

C:\Users\lismore\Documents\GitHub\chat.ixi>java -jar chat.ixi-1.1.jar ict lismore areallylongstring

Failed to connect to Ict: java.rmi.NotBoundException: ict

Please make sure that:
 - your Ict is running
 - the name of your Ict is 'ict'
 - you set ixi_enabled=true in your ict.cfg
 - CHAT.ixi runs on the same device as your Ict

java.lang.RuntimeException: java.rmi.NotBoundException: ict
    at org.iota.ict.ixi.IxiModule.<init>(IxiModule.java:42)
    at org.iota.ixi.ChatIxi.<init>(ChatIxi.java:90)
    at org.iota.ixi.ChatIxi.main(ChatIxi.java:73)
Caused by: java.rmi.NotBoundException: ict
    at sun.rmi.registry.RegistryImpl.lookup(Unknown Source)
    at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
    at sun.rmi.server.UnicastServerRef.oldDispatch(Unknown Source)
    at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
    at sun.rmi.transport.Transport$1.run(Unknown Source)
    at sun.rmi.transport.Transport$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Unknown Source)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
    at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
    at sun.rmi.server.UnicastRef.invoke(Unknown Source)
    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
    at java.rmi.Naming.lookup(Unknown Source)
    at org.iota.ict.ixi.IxiModule.<init>(IxiModule.java:39)
    ... 2 more

Output from IOTA ICT

C:\Users\lismore\Documents\GitHub\ict>java -jar ict-0.4-SNAPSHOT.jar -config ict.cfg
2754
13:57:07.546 INFO  [main/Main]   Starting new Ict 'ict' (version: 0.4-SNAPSHOT)
13:57:07.914 INFO  [main/Main]   Ict started on /0.0.0.0:1337.

13:58:07.575 INFO  [Sender/Neighbor]   ALL  |NEW  |REQ  |INV  |IGN     ADDRESS
14:09:07.589 INFO  [Sender/Neighbor]   ALL  |NEW  |REQ  |INV  |IGN     ADDRESS

jetty HttpParser error - Illegal character 0x16

Chat.ixi, starts, but is not usable and i can't login ... logging says:

/home/ict/omega-ict/chat.ixi# java -jar chat.ixi-1.2.jar ict user pass
[main] INFO spark.staticfiles.StaticFilesConfiguration - External StaticResourceHandler configured with folder = web/
[main] WARN spark.staticfiles.StaticFilesFolder - Registering external static files folder [web/] as [/home/ict/omega-ict/chat.ixi/web].
CHAT.ixi is now running on port 4567. Open web/index.html in your web browser to access the chat.
[Thread-1] INFO org.eclipse.jetty.util.log - Logging initialized @686ms to org.eclipse.jetty.util.log.Slf4jLog
[Thread-1] INFO spark.embeddedserver.jetty.EmbeddedJettyServer - == Spark has ignited ...
[Thread-1] INFO spark.embeddedserver.jetty.EmbeddedJettyServer - >> Listening on 0.0.0.0:4567
[Thread-1] INFO org.eclipse.jetty.server.Server - jetty-9.4.z-SNAPSHOT, build timestamp: 2017-11-21T21:27:37Z, git hash: 82b8fb23f757335bb3329d540ce37a2a2615f0a8
[Thread-1] INFO org.eclipse.jetty.server.session - DefaultSessionIdManager workerName=node0
[Thread-1] INFO org.eclipse.jetty.server.session - No SessionScavenger set, using defaults
[Thread-1] INFO org.eclipse.jetty.server.session - Scavenging every 660000ms
[Thread-1] INFO org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@7910fb9a{HTTP/1.1,[http/1.1]}{0.0.0.0:4567}
[Thread-1] INFO org.eclipse.jetty.server.Server - Started @745ms
[qtp2100899471-21] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@248528[p=1,l=517,c=8192,r=516]={\x16<<<\x03\x01\x02\x00\x01\x00\x01\xFc\x03\x03(\x9e7O\xDd\x1f...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[qtp2100899471-25] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@2ff0fa85[p=1,l=517,c=8192,r=516]={\x16<<<\x03\x01\x02\x00\x01\x00\x01\xFc\x03\x03\xDfB\xF0y
s\xE6...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[qtp2100899471-23] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@2ff0fa85[p=1,l=213,c=8192,r=212]={\x16<<<\x03\x01\x00\xD0\x01\x00\x00\xCc\x03\x03(\xF6\x8f\x9d\x9c\x90\x0c...\x12\x00\x00\x00\x1b\x00\x03\x02\x00\x02\xFa\xFa\x00\x01\x00>>>\x00\x14\x00\x12\x04\x03\x08\x04\x04\x01\x05\x03\x08\x05\x05\x01\x08...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[qtp2100899471-24] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@248528[p=1,l=213,c=8192,r=212]={\x16<<<\x03\x01\x00\xD0\x01\x00\x00\xCc\x03\x03[\xEf\x86\x98\xC4\xB2\x1a...\x12\x00\x00\x00\x1b\x00\x03\x02\x00\x02::\x00\x01\x00>>>\x00\x14\x00\x12\x04\x03\x08\x04\x04\x01\x05\x03\x08\x05\x05\x01\x08...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[qtp2100899471-21] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@2ff0fa85[p=1,l=517,c=8192,r=516]={\x16<<<\x03\x01\x02\x00\x01\x00\x01\xFc\x03\x03Iv\x0e^A\x1d6...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[qtp2100899471-23] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@2ff0fa85[p=1,l=517,c=8192,r=516]={\x16<<<\x03\x01\x02\x00\x01\x00\x01\xFc\x03\x03\xC93\xB8\x10>\xE0\xAf...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[qtp2100899471-24] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@2ff0fa85[p=1,l=213,c=8192,r=212]={\x16<<<\x03\x01\x00\xD0\x01\x00\x00\xCc\x03\x03\xF4\x01\x92\xA2\xEa\xE0\xE3...\x12\x00\x00\x00\x1b\x00\x03\x02\x00\x02::\x00\x01\x00>>>\x00\x14\x00\x12\x04\x03\x08\x04\x04\x01\x05\x03\x08\x05\x05\x01\x08...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[qtp2100899471-22] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@2ff0fa85[p=1,l=213,c=8192,r=212]={\x16<<<\x03\x01\x00\xD0\x01\x00\x00\xCc\x03\x03\x1c^\xD6\xA9w5\xAe...\x12\x00\x00\x00\x1b\x00\x03\x02\x00\x02jj\x00\x01\x00>>>\x00\x14\x00\x12\x04\x03\x08\x04\x04\x01\x05\x03\x08\x05\x05\x01\x08...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[qtp2100899471-23] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@2ff0fa85[p=1,l=517,c=8192,r=516]={\x16<<<\x03\x01\x02\x00\x01\x00\x01\xFc\x03\x03S(\xBa\x98iA\xA2...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[qtp2100899471-24] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@2ff0fa85[p=1,l=517,c=8192,r=516]={\x16<<<\x03\x01\x02\x00\x01\x00\x01\xFc\x03\x03H\x0f\xF9e\x10Y\x93...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[qtp2100899471-22] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@2ff0fa85[p=1,l=213,c=8192,r=212]={\x16<<<\x03\x01\x00\xD0\x01\x00\x00\xCc\x03\x03\xBeb\x03,\xD1\x0e\xF9...\x12\x00\x00\x00\x1b\x00\x03\x02\x00\x02\n\n\x00\x01\x00>>>\x00\x14\x00\x12\x04\x03\x08\x04\x04\x01\x05\x03\x08\x05\x05\x01\x08...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[qtp2100899471-23] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@2ff0fa85[p=1,l=213,c=8192,r=212]={\x16<<<\x03\x01\x00\xD0\x01\x00\x00\xCc\x03\x03\xB6F\x1d\xF8\x10%\x0f...\x12\x00\x00\x00\x1b\x00\x03\x02\x00\x02\n\n\x00\x01\x00>>>\x00\x14\x00\x12\x04\x03\x08\x04\x04\x01\x05\x03\x08\x05\x05\x01\x08...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[qtp2100899471-24] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@2ff0fa85[p=1,l=517,c=8192,r=516]={\x16<<<\x03\x01\x02\x00\x01\x00\x01\xFc\x03\x03\xE2.\x85\xE6%\x9f\xDc...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[qtp2100899471-23] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@2ff0fa85[p=1,l=517,c=8192,r=516]={\x16<<<\x03\x01\x02\x00\x01\x00\x01\xFc\x03\x03\x8e"\x97\xB1x\x85F...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[...]

java -version

java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

OS: Ubuntu 18.04

proposal: adjustable port

Adjustable port...

It would help maintaining it behind reverse proxy for SSL reasons, and still being on port 2019 from outside of machine. Otherwise interface of control would need to be changed to work with different port.

'404'

After installing and running it, it just produces 404 Not found as output on port 2019
ict:0.5

Remote PoW

Please let Chat.ixi out-source the PoW computation to remote service or the web client.
It's currently very slow to chat with a RaspberryPi first generation.
Often it takes more than a minute per message sent.

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.