TMChat is a simple chat-demonstration using the Tendermint-Blockchain as a means to broadcast messages from one user to another.
This project is handled by Maven and thus can be build as such. (You will need to have maven installed)
git clone https://github.com/wolfposd/TMChat.git
cd TMChat
mvn package -U
You will then find a runnable JAR in the target-directory, start it as follows:
cd target/
java -c bcprov-jdk15on-1.57.jar -jar tmchat-0.0.2-SNAPSHOT.jar user1 user2 ... userX
Where user1 - userX are the chatwindows you would like to open.
The example screenshot was created using:
java -c bcprov-jdk15on-1.57.jar -jar tmchat-0.0.2-SNAPSHOT.jar Left Middle Right
This demo is meant as a simple introduction on how to write applications for tendermint.
The Components are seperated into two logical parts, each serving a different functionality.
The NodeCommunication class connects to the tendermint-node via the ABCI-Socket Protocol (using jabci) to handle all the Tendermint messages like AppendTX, CheckTx and Commit. It also connects via Websocket to the tendermint-node to broadcast TXs it received from its connected clients. NodeCommunication acts as a proxy between Tendermint and the Frontend.
The Frontend is connected to the NodeCommunication. It can send Messages to it (which will be relayed as TXs to the node) and can register for receiving messages (which are converted from TXs).