Skip to content
Status messaging console user interface
Go Makefile Dockerfile TSQL
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
_assets Add simple API to send and read messages Jun 23, 2019
internal Use chats from protocol (#125) Aug 5, 2019
vendor Use chats from protocol (#125) Aug 5, 2019
.dockerignore Add simple API to send and read messages Jun 23, 2019
.gitignore Refactor adapters v2 (#84) Jun 14, 2019
.golangci-v110.yml make travis CI work Feb 11, 2019
.golangci.yml make travis CI work Feb 11, 2019
.travis.yml Fix go mod (#36) May 15, 2019
API.md Add simple API to send and read messages Jun 23, 2019
Dockerfile Add simple API to send and read messages Jun 23, 2019
LICENSE.md initial commit Jan 8, 2019
Makefile Nimbus PoC integration (#79) Aug 1, 2019
README.md Activate first added chat to avoid crash when sending message (#126) Aug 16, 2019
binding.go Activate first added chat to avoid crash when sending message (#126) Aug 16, 2019
chat.go Use chats from protocol (#125) Aug 5, 2019
chat_controller.go Activate first added chat to avoid crash when sending message (#126) Aug 16, 2019
chats_controller.go Use chats from protocol (#125) Aug 5, 2019
controller.go fix notifications (#16) Mar 25, 2019
docs.go initial commit Jan 8, 2019
go.mod Use chats from protocol (#125) Aug 5, 2019
go.sum Use chats from protocol (#125) Aug 5, 2019
input.go Activate first added chat to avoid crash when sending message (#126) Aug 16, 2019
main.go Activate first added chat to avoid crash when sending message (#126) Aug 16, 2019
nimbus.go Nimbus PoC integration (#79) Aug 1, 2019
nimbus_disabled.go Nimbus PoC integration (#79) Aug 1, 2019
node_config.go
node_signals.go Dont print signals and redirect logs to two different files (#32) May 8, 2019
notification.go fix notifications (#16) Mar 25, 2019
transport_server.go Integrate status-protocol-go (#121) Jul 17, 2019
view.go Rename Contact -> chats and remove histories (#116) Jul 10, 2019

README.md

Status Console User Interface

This is not an official Status client. It should be used exclusively for development purposes.

The main motivation for writing this client is to have a second implementation of the messaging protocol in order to run protocol compatibility smoke tests. It will also allow us to iterate faster and test some approaches as eventually we want to move the whole messaging protocol details to status-go.

At the same time, it's more powerful than relying on Status Node JSON-RPC commands because it has direct access to the p2p server and the Whisper service.

Start

# build a binary
$ make build

# generate a private key
$ ./bin/status-term-client -create-key-pair
Your private key: <KEY>

# start
$ ./bin/status-term-client -keyhex=<KEY> -installation-id=any-string -data-dir=your-data-dir

# or start and redirect logs
$ ./bin/status-term-client -keyhex=<KEY> 2>/tmp/status-term-client.log

# more options
$ ./bin/status-term-client -h

Commands

Commands starts with / and must be typed in the INPUT view in the UI.

Currently the following commands are supported.

Adding a public chat

/chat add <topic>

Adding a contact

/chat add <public-key> <name>

Packages

The main package contains the console user interface.

  • github.com/status-im/status-console-client/protocol/v1 contains the current messaging protocol payload encoders and decoders as well as some utilities like creating a Whisper topic for a public chat.

(Very) Experimental Nimbus support

status-console-client supports very experimental Nimbus support for Whisper.

How it works

  1. Nimbus exposes a basic and very rough C API for Whisper polling, posting, subscribing, and adding peers: https://github.com/status-im/nimbus/pull/331

  2. This C API is consumed as a standard shared library, libnimbus_api.so.

  3. status-nim wraps this library to expose a Go API. Currently, this "API" is more like a hacky spike. The goal is for this to library to hide the integration details with Nim and provide a clean Go interface for consumers.

Building and running

The changes are isolated and won't impact status-console-client unless the appropriate build instruction, flag and patch is provided.

libnimbus_api.so

If you have issues with libnimbus_api.so (likely) you might want to copy it into /usr/local/lib manually.

make build-nimbus
./bin/status-term-client -keyhex=0x9af3cdb76d76da2b36d2dcc082cb54ea672639331ef03b91a62ad6ef804b4896 -nimbus

Expected output:

[nim-status] posting ["~#c4",["Message:1000","text/plain","~:public-group-user-message",156393648280100,1563936482801,["^ ","~:chat-id","status-test-c","~:text","Message:1000"]]]

And a message being posted in #status-test-c.

License

Mozilla Public License 2.0

You can’t perform that action at this time.