mirror of
https://github.com/status-im/status-go.git
synced 2025-02-08 12:54:37 +00:00
* Added function to get preffered network IP Also done some refactor work oon server package to make a lot more reusable * Added server.Option and simplified handler funcs * Added serial number deterministically generated from pk * Debugging TLS server connection * Implemented configurable server ip When accessing over the network the server needs to listen on the network port and not localhost or 127.0.0.1 . Also the cert can now have a dedicated IP * Refactor of URL funcs to use the url package * Removed redundant Options pattern in favour of config param * Added full server test using GetOutboundIP * Remove references and usage of Server.port The application does not need to set the port, we rely on the net.Listener to pick a port. * Version bump * Added ToECDSA func and improved cert testing * Added error check in test * Split Server types, embedding raw Server funcs into specialised server types * localhost * Implemented DNS and IP based cert gen ios doesn't allow for restricted ip addresses to be used in a valid tls cert * Replace listener handling with original port store Also added handlers as a parameter of the Server
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 exportsMessenger
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 byMessenger
as a persistent data store.
History
Originally this package was a dedicated repo called status-protocol-go
and was migrated into status-go
. The new status-go/protocol
package maintained its own dependencies until sub modules were removed and the root go.mod file managed all dependencies for the entire status-go
repo.