From 2948544b7a14cb00969f29f150e8b418f55ddb1a Mon Sep 17 00:00:00 2001 From: Adam Babik Date: Thu, 9 Apr 2020 23:28:40 +0200 Subject: [PATCH] update protocol package README (#1934) --- protocol/README.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/protocol/README.md b/protocol/README.md index cea57680a..5ea3669b7 100644 --- a/protocol/README.md +++ b/protocol/README.md @@ -1,6 +1,18 @@ # status-go/protocol -This is the Status Protocol implementation in Go. +This is an implementation of the [secure transport](https://specs.status.im/spec/5) and [payloads](https://specs.status.im/spec/6) which are a part of [the Status Client specification](https://specs.status.im/spec/1). +This implementation uses SQLite and [SQLCipher](github.com/mutecomm/go-sqlcipher) for persistent storage. -TBD +The payloads are encoded using [protocol-buffers](https://developers.google.com/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](https://specs.status.im/spec/6). +* `encryption/` implements [the Secure Transport spec](https://specs.status.im/spec/5). +* `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](https://specs.vac.dev/specs/mvds.html). +* `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.