Status messaging console user interface
Go to file
Pedro Pombeiro 54ce2c8640
Rename gofmt to lint-fix (#139)
2020-01-07 17:07:36 +01:00
_assets Add simple API to send and read messages 2019-06-23 09:30:48 +03:00
internal/gethservice Move messages to protobuf (#135) 2019-12-06 07:48:46 +01:00
vendor Use goimports instead of gofmt (#138) 2020-01-06 10:25:58 +01:00
.dockerignore Add simple API to send and read messages 2019-06-23 09:30:48 +03:00
.gitignore Use new status-go/eth-node module 2019-11-27 18:25:07 +01:00
.golangci-v110.yml make travis CI work 2019-02-11 13:48:44 +01:00
.golangci.yml Use goimports instead of gofmt (#138) 2020-01-06 10:25:58 +01:00
.travis.yml Upgrade to latest status-protocol-go (#129) 2019-10-13 20:14:38 +02:00
API.md Add simple API to send and read messages 2019-06-23 09:30:48 +03:00
Dockerfile Add simple API to send and read messages 2019-06-23 09:30:48 +03:00
LICENSE.md initial commit 2019-01-08 21:02:11 +01:00
Makefile Rename gofmt to lint-fix (#139) 2020-01-07 17:07:36 +01:00
README.md Use new status-go/eth-node module 2019-11-27 18:25:07 +01:00
binding.go Upgrade to latest status-protocol-go (#129) 2019-10-13 20:14:38 +02:00
chats_controller.go Use goimports instead of gofmt (#138) 2020-01-06 10:25:58 +01:00
controller.go fix notifications (#16) 2019-03-25 11:01:42 +01:00
docs.go initial commit 2019-01-08 21:02:11 +01:00
geth.go Use goimports instead of gofmt (#138) 2020-01-06 10:25:58 +01:00
geth_disabled.go Use new status-go/eth-node module 2019-11-27 18:25:07 +01:00
go.mod Use goimports instead of gofmt (#138) 2020-01-06 10:25:58 +01:00
go.sum Use goimports instead of gofmt (#138) 2020-01-06 10:25:58 +01:00
input.go Use goimports instead of gofmt (#138) 2020-01-06 10:25:58 +01:00
main.go Use goimports instead of gofmt (#138) 2020-01-06 10:25:58 +01:00
messages_controller.go Merge pull request #137 from status-im/pre-nimbus 2019-12-30 11:15:02 +01:00
nimbus.go Merge pull request #137 from status-im/pre-nimbus 2019-12-30 11:15:02 +01:00
nimbus_disabled.go Merge pull request #137 from status-im/pre-nimbus 2019-12-30 11:15:02 +01:00
node-config-1.json Upgrade to latest status-protocol-go (#129) 2019-10-13 20:14:38 +02:00
node-config-2.json Upgrade to latest status-protocol-go (#129) 2019-10-13 20:14:38 +02:00
node_config.go Feature/add pair installation message (#107) 2019-07-08 15:12:50 +02:00
node_signals.go Use new status-go/eth-node module 2019-11-27 18:25:07 +01:00
notification.go fix notifications (#16) 2019-03-25 11:01:42 +01:00
view.go Upgrade to latest status-protocol-go (#129) 2019-10-13 20:14:38 +02:00

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.

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