messenger/

directory
v1.6.18 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 10, 2024 License: MIT

README

HLM

Hidden Lake Messenger

hlm_logo.png

The Hidden Lake Messenger is a messenger based on the core of an anonymous network with theoretically provable anonymity of HLS. A feature of this messenger is the provision of anonymity of the fact of transactions (sending, receiving).

HLM is an application that implements a graphical user interface (GUI) on a browser-based HTML/CSS/JS display. Most of the code is based on the bootstrap library https://getbootstrap.com/. GUI is adapted to the size of the window, so it can be used both in a desktop and in a smartphone.

More information about HLM in the habr.com/ru/post/701488

Installation

$ go install github.com/number571/go-peer/cmd/hidden_lake/applications/messenger/cmd/hlm@latest

How it works

Most of the code is a call to API functions from the HLS kernel. Thanks to this approach, implicit authorization of users is formed from the state of the anonymizing service.

hlm_chat.gif

Figure 1. Example of chat room in HLM.

Supported platforms

  • Windows (x86_64, arm64)
  • Linux (x86_64, arm64)
  • MacOS (x86_64, arm64)

Build and run

Default build and run

$ cd ./cmd/hidden_lake/applications/messenger
$ make build # create hlm, hlm_[arch=amd64,arm64]_[os=linux,windows,darwin] and copy to ./bin
$ make run # run ./bin/hlm

> [INFO] 2023/06/03 15:30:31 HLM is running...
> ...

Open ports 9591 (HTTP, interface) and 9592 (HTTP, incoming). Creates ./hlm.yml and ./hlm.db files. The file hlm.db stores all sent/received messages in encrypted view.

Default config hlm.yml

settings:
  messages_capacity: 2048
logging:
  - info
  - warn
  - erro
address:
  interface: 127.0.0.1:9591
  incoming: 127.0.0.1:9592
connection: 127.0.0.1:9572

Running options

$ ./hlm -path=/root
# path = path to config and database files

Example

The example will involve (as well as in HLS) five nodes node1_hlm, node2_hlm and middle_hlt_1, middle_hlt_2, middle_hlt_3. The three HLT nodes are only needed for communication between node1_hlm and node2_hlm nodes. Each of the remaining ones is a combination of HLS and HLM, where HLM plays the role of an application and services (as it was depicted in Figure 3 HLS readme).

Build and run nodes

$ cd examples/anonymity/messenger/routing
$ make

The output of the middle_hls node is similar to Figure 4 (HLS). Than open browser on localhost:8080. It is a node1_hlm. This node is a Bob.

hlm_about.png

Figure 2. Home page of the HLM application.

To see the success of sending and receiving messages, you need to do all the same operations, but with localhost:7070 as node2_hlm. This node will be Alice.

hlm_logger.png

Figure 3. Log of the three nodes with request/response actions.

More example images about HLM pages in the github.com/number571/go-peer/cmd/hidden_lake/applications/messenger/_images

Pages

About page

Base information about projects HLM and HLS with links to source.

about.png
Settings page

Information about public key and connections. Connections can be appended and deleted.

settings.png
Friends page

Information about friends. Friends can be appended and deleted.

friends.png
Chat page

Chat with friend. The chat is based on web sockets, so it can update messages in real time. Messages can be sent.

chat.png

Directories

Path Synopsis
cmd
hlm
internal
pkg
app

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL