Andrea Maria Piana 8ba6625df0 Lower PoW for messages
Images are too large to be sent over waku/whisper with the
current PoW (0.002).

This commit lowers the PoW for sending messages to a lower value,
depending on the size.

This means that older clients will not be able to receive messages that
are greater than 50KB (none of the messages we currently send is anywhere close to
that, most of them are less than 1KB).

I would have preferred to set the PoW explicitly for images to be lower,
but it's not trivial as we use `datasync` to send messages and its
interface takes a payload that is to be dispatched and a function to
dispatch, at initialization stage.

This make it difficult (impossible?) to set a different PoW for a
particular message, without changing function signature in datasync
(which is agnostic to the transport used).

So a less cumbersome approach is to just fingerprint on size.
2020-06-01 11:30:04 +02:00
..
2020-06-01 11:30:04 +02:00
2020-06-01 11:30:04 +02:00
2020-06-01 11:30:04 +02:00
2020-06-01 11:30:04 +02:00
2020-02-21 15:48:53 +01:00
2020-06-01 11:30:04 +02:00
2019-11-21 17:19:22 +01:00
2020-02-07 12:56:30 +01:00
2020-05-25 14:00:04 +02:00
2019-11-21 17:19:22 +01:00
2020-06-01 11:30:04 +02:00
2020-06-01 11:30:04 +02:00
2020-06-01 11:30:04 +02:00
2020-06-01 11:30:04 +02:00
2020-06-01 11:30:04 +02:00
2020-06-01 11:30:04 +02:00
2020-05-25 14:00:04 +02:00
2020-01-16 13:18:36 +01:00

status-go/protocol

This is an implementation of the secure transport and payloads which are a part of the Status Client specification.

This implementation uses SQLite and SQLCipher for persistent storage.

The payloads are encoded using protocol-buffers.

Content

  • messenger.go is the main file which exports Messenger struct. This is a public API to interact with this implementation of the Status Chat Protocol.
  • protobuf/ contains protobuf files implementing payloads described in the Payloads spec.
  • encryption/ implements the Secure Transport spec.
  • transport/ connects the Status Chat Protocol with a wire-protocol which in our case is either Whisper or Waku.
  • datasync/ is an adapter for MVDS.
  • applicationmetadata/ is an outer layer wrapping a payload with an app-specific metadata like a signature.
  • identity/ implements details related to creating a three-word name and identicon.
  • migrations/ contains implementation specific migrations for the sqlite database which is used by Messenger as a persistent data store.