Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wolfposd/TMChat
Tendermint based chat
https://github.com/wolfposd/TMChat
Last synced: 3 months ago
JSON representation
Tendermint based chat
- Host: GitHub
- URL: https://github.com/wolfposd/TMChat
- Owner: wolfposd
- License: mit
- Created: 2016-08-30T11:26:07.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-03-20T15:47:26.000Z (almost 7 years ago)
- Last Synced: 2024-07-31T21:52:59.900Z (6 months ago)
- Language: Java
- Size: 205 KB
- Stars: 23
- Watchers: 4
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - Example: chat
README
# TMChat
TMChat is a simple chat-demonstration using the Tendermint-Blockchain as a means to broadcast messages from one user to another.![alt text](https://github.com/wolfposd/TMChat/raw/master/screenshots/screen1.png "screenshot")
## How to run
This project is handled by [Maven](https://maven.apache.org/) 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
## IntroductionThis demo is meant as a simple introduction on how to write applications for tendermint.
![architecture](https://github.com/wolfposd/TMChat/raw/master/screenshots/architecture.png "architecture")
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).