adds check, fixes links (#124)

This commit is contained in:
Dean Eigenmann 2020-05-21 11:44:13 +02:00 committed by GitHub
parent 2b0604077d
commit c22a9e8d5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 178 additions and 187 deletions

View File

@ -1,6 +1,7 @@
{ {
"presets": ["lint-recommended", "lint-consistent"], "presets": ["lint-recommended", "lint-consistent"],
"plugins": { "plugins": {
"validate-links": {"repository": false},
"remark-lint": { "remark-lint": {
"unordered-list-marker-style": "consistent", "unordered-list-marker-style": "consistent",
"list-item-bullet-indent": true, "list-item-bullet-indent": true,
@ -12,13 +13,15 @@
"heading-increment": false, "heading-increment": false,
"no-multiple-toplevel-headings": true, "no-multiple-toplevel-headings": true,
"no-consecutive-blank-lines": false, "no-consecutive-blank-lines": false,
"maximum-line-length": 9000,
"maximum-heading-length": 300, "maximum-heading-length": 300,
"no-heading-punctuation": false, "no-heading-punctuation": false,
"no-duplicate-headings": false, "no-duplicate-headings": false,
"emphasis-marker": "*", "emphasis-marker": "*",
"no-tabs": true, "no-tabs": true,
"blockquote-indentation": false, "blockquote-indentation": false,
"strong-marker": "*" "strong-marker": "*",
"heading-style": "atx"
} }
}, },
"settings": { "settings": {

View File

@ -12,25 +12,24 @@ title: 3/WHISPER-USAGE
> >
> Authors: Adam Babik <adam@status.im>, Andrea Maria Piana <andreap@status.im>, Corey Petty <corey@status.im>, Oskar Thorén <oskar@status.im> (alphabetical order) > Authors: Adam Babik <adam@status.im>, Andrea Maria Piana <andreap@status.im>, Corey Petty <corey@status.im>, Oskar Thorén <oskar@status.im> (alphabetical order)
- [Status Whisper Usage Specification](#status-whisper-usage-specification) - [Abstract](#abstract)
- [Abstract](#abstract) - [Reason](#reason)
- [Reason](#reason) - [Terminology](#terminology)
- [Terminology](#terminology) - [Whisper packets](#whisper-packets)
- [Whisper packets](#whisper-packets) - [Whisper node configuration](#whisper-node-configuration)
- [Whisper node configuration](#whisper-node-configuration) - [Handshake](#handshake)
- [Handshake](#handshake) - [Rate limiting](#rate-limiting)
- [Rate limiting](#rate-limiting) - [Keys management](#keys-management)
- [Keys management](#keys-management) - [Contact code topic](#contact-code-topic)
- [Contact code topic](#contact-code-topic) - [Partitioned topic](#partitioned-topic)
- [Partitioned topic](#partitioned-topic) - [Public chats](#public-chats)
- [Public chats](#public-chats) - [Group chat topic](#group-chat-topic)
- [Group chat topic](#group-chat-topic) - [Message encryption](#message-encryption)
- [Message encryption](#message-encryption) - [Message confirmations](#message-confirmations)
- [Message confirmations](#message-confirmations) - [Whisper V6 extensions](#whisper-v6-extensions)
- [Whisper V6 extensions](#whisper-v6-extensions) - [Request historic messages](#request-historic-messages)
- [Request historic messages](#request-historic-messages) - [shhext_requestMessages](#shhext_requestmessages)
- [shhext_requestMessages](#shhextrequestmessages) - [Changelog](#changelog)
- [Changelog](#changelog)
## Abstract ## Abstract
@ -347,9 +346,9 @@ The above `topics` is then converted into a bloom filter and then and sent to th
## Changelog ## Changelog
### 0.3 ### 0.3
- Updated minimum PoW to `0.00001` - Updated minimum PoW to `0.00001`
### 0.2 ### 0.2
- Document created - Document created
## Copyright ## Copyright

View File

@ -23,35 +23,34 @@ as various clients created using different technologies.
## Table of Contents ## Table of Contents
- [Status Message Payloads Specification](#status-message-payloads-specification) - [Abstract](#abstract)
- [Abstract](#abstract) - [Table of Contents](#table-of-contents)
- [Table of Contents](#table-of-contents) - [Introduction](#introduction)
- [Introduction](#introduction) - [Payload wrapper](#payload-wrapper)
- [Payload wrapper](#payload-wrapper) - [Encoding](#encoding)
- [Encoding](#encoding) - [Types of messages](#types-of-messages)
- [Types of messages](#types-of-messages) - [Message](#message)
- [Message](#message) - [Payload](#payload)
- [Payload](#payload) - [Payload](#payload-1)
- [Payload](#payload-1) - [Content types](#content-types)
- [Content types](#content-types) - [Sticker content type](#sticker-content-type)
- [Sticker content type](#sticker-content-type) - [Image content type](#image-content-type)
- [Image content type](#image-content-type) - [Message types](#message-types)
- [Message types](#message-types) - [Clock vs Timestamp and message ordering](#clock-vs-timestamp-and-message-ordering)
- [Clock vs Timestamp and message ordering](#clock-vs-timestamp-and-message-ordering) - [Chats](#chats)
- [Chats](#chats) - [Contact Update](#contact-update)
- [Contact Update](#contact-update) - [Payload](#payload-2)
- [Payload](#payload-2) - [Contact update](#contact-update-1)
- [Contact update](#contact-update-1) - [SyncInstallationContact](#syncinstallationcontact)
- [SyncInstallationContact](#syncinstallationcontact) - [Payload](#payload-3)
- [Payload](#payload-3) - [SyncInstallationPublicChat](#syncinstallationpublicchat)
- [SyncInstallationPublicChat](#syncinstallationpublicchat) - [Payload](#payload-4)
- [Payload](#payload-4) - [PairInstallation](#pairinstallation)
- [PairInstallation](#pairinstallation) - [Payload](#payload-5)
- [Payload](#payload-5) - [MembershipUpdateMessage and MembershipUpdateEvent](#membershipupdatemessage-and-membershipupdateevent)
- [MembershipUpdateMessage and MembershipUpdateEvent](#membershipupdatemessage-and-membershipupdateevent) - [Upgradability](#upgradability)
- [Upgradability](#upgradability) - [Security Considerations](#security-considerations)
- [Security Considerations](#security-considerations) - [Design rationale](#design-rationale)
- [Design rationale](#design-rationale)
## Introduction ## Introduction
@ -339,7 +338,7 @@ message PairInstallation {
### MembershipUpdateMessage and MembershipUpdateEvent ### MembershipUpdateMessage and MembershipUpdateEvent
`MembershipUpdateEvent` is a message used to propagate information about group membership changes in a group chat. `MembershipUpdateEvent` is a message used to propagate information about group membership changes in a group chat.
The details are in the [Group chats specs](status-group-chats-spec.md) The details are in the [Group chats specs](./7-group-chat.md)
## Upgradability ## Upgradability

View File

@ -20,13 +20,13 @@ title: 7/GROUP-CHAT
- [Chat ID](#chat-id) - [Chat ID](#chat-id)
- [Signature](#signature) - [Signature](#signature)
- [Group membership event](#group-membership-event) - [Group membership event](#group-membership-event)
- [chat-created](#chat-created) - [chat-created](#chat_created)
- [name-changed](#name-changed) - [name-changed](#name_changed)
- [members-added](#members-added) - [members-added](#members_added)
- [members-joined](#members-joined) - [members-joined](#member_joined)
- [admins-added](#admins-added) - [admins-added](#admins_added)
- [members-removed](#members-removed) - [members-removed](#member_removed)
- [admin-removed](#admin-removed) - [admin-removed](#admin_removed)
## Abstract ## Abstract
@ -83,7 +83,7 @@ message MembershipUpdateEvent {
| ----- | ---- | ---- | ---- | | ----- | ---- | ---- | ---- |
| 1 | chat-id | `string` | The chat id of the chat where the change is to take place | | 1 | chat-id | `string` | The chat id of the chat where the change is to take place |
| 2 | events | See details | A list of events that describe the membership changes, in their encoded protobuf form | | 2 | events | See details | A list of events that describe the membership changes, in their encoded protobuf form |
| 3 | message | `ChatMessage` | An optional message, described in [Message](#message) | | 3 | message | `ChatMessage` | An optional message, described in [Message](./6-payloads.md#message) |
`MembershipUpdateEvent`: `MembershipUpdateEvent`:

View File

@ -17,7 +17,7 @@ title: 9/3RD-PARTY-USAGE
## Table of Contents ## Table of Contents
1. [Abstract](Abstract) 1. [Abstract](#abstract)
2. [Definitions](#definitions) 2. [Definitions](#definitions)
3. [Why 3rd party API can be a problem?](#why-3rd-party-api-can-be-a-problem) 3. [Why 3rd party API can be a problem?](#why-3rd-party-api-can-be-a-problem)
4. [3rd party APIs used by Status](#3rd-party-apis-used-by-current-status-app) 4. [3rd party APIs used by Status](#3rd-party-apis-used-by-current-status-app)
@ -31,6 +31,7 @@ title: 9/3RD-PARTY-USAGE
7. [Copyright](#copyright) 7. [Copyright](#copyright)
## Abstract ## Abstract
In this specification, we discuss 3rd party APIs that Status relies on. These APIs provide various capabilities such as: In this specification, we discuss 3rd party APIs that Status relies on. These APIs provide various capabilities such as:
- communicate with the Ethereum network - communicate with the Ethereum network
- allow users to see address and transaction details on external website - allow users to see address and transaction details on external website

View File

@ -87,7 +87,7 @@ To install a sticker pack, we need to fetch all sticker packs which are availabl
Call `packCount()` on the sticker market contract, will return number of sticker pack registered as `uint256`. Call `packCount()` on the sticker market contract, will return number of sticker pack registered as `uint256`.
#### 2. Get sticker pack by id #### 2. Get sticker pack by id
ID's are represented as `uint256` and are incremental from `0` to total number of sticker packs in contract, which we received on previous step. To get a sticker pack we should call `getPackData(sticker-pack-id)`, the return type is `["bytes4[]" "address" "bool" "uint256" "uint256" "bytes"]` which represents the following fields: `[category owner mintable timestamp price contenthash]`. Price is the SNT value in wei set by sticker pack owner. The contenthash is the IPFS address described in the [submit description](#submit-a-sticker-pack) above. Other fields specification could be found in [Sticker Market spec](https://github.com/status-im/sticker-market/blob/651e88e5f38c690e57ecaad47f46b9641b8b1e27/docs/specification.md) ID's are represented as `uint256` and are incremental from `0` to total number of sticker packs in contract, which we received on previous step. To get a sticker pack we should call `getPackData(sticker-pack-id)`, the return type is `["bytes4[]" "address" "bool" "uint256" "uint256" "bytes"]` which represents the following fields: `[category owner mintable timestamp price contenthash]`. Price is the SNT value in wei set by sticker pack owner. The contenthash is the IPFS address described in the [submit description](#submit-a-sticker) above. Other fields specification could be found in [Sticker Market spec](https://github.com/status-im/sticker-market/blob/651e88e5f38c690e57ecaad47f46b9641b8b1e27/docs/specification.md)
##### 3. Get owned sticker packs ##### 3. Get owned sticker packs
The current Status app fetches owned sticker packs during the open of any sticker view (a screen which shows a sticker pack or the list of sticker packs). The current Status app fetches owned sticker packs during the open of any sticker view (a screen which shows a sticker pack or the list of sticker packs).

View File

@ -25,42 +25,43 @@ have to be implemented in order to be a full Status client. The second gives a d
## Table of Contents ## Table of Contents
- [Status Client Specification](#status-client-specification) - [Abstract](#abstract)
- [Abstract](#abstract) - [Table of Contents](#table-of-contents)
- [Table of Contents](#table-of-contents) - [Introduction](#introduction)
- [Introduction](#introduction) - [Protocol layers](#protocol-layers)
- [Protocol layers](#protocol-layers) - [Protobuf](#protobuf)
- [Protobuf](#protobuf) - [Components](#components)
- [Components](#components) - [P2P Overlay](#p2p-overlay)
- [P2P Overlay](#p2p-overlay) - [Node discovery and roles](#node-discovery-and-roles)
- [Node discovery and roles](#node-discovery-and-roles) - [Bootstrapping](#bootstrapping)
- [Bootstrapping](#bootstrapping) - [Discovery](#discovery)
- [Discovery](#discovery) - [Mobile nodes](#mobile-nodes)
- [Mobile nodes](#mobile-nodes) - [Transport privacy and Whisper usage](#transport-privacy-and-whisper-usage)
- [Transport privacy and Whisper usage](#transport-privacy-and-whisper-usage) - [Secure Transport](#secure-transport)
- [Secure Transport](#secure-transport) - [Data Sync](#data-sync)
- [Data Sync](#data-sync) - [Payloads and clients](#payloads-and-clients)
- [Payloads and clients](#payloads-and-clients) - [BIPs and EIPs Standards support](#bips-and-eips-standards-support)
- [BIPs and EIPs Standards support](#bips-and-eips-standards-support) - [Security Considerations](#security-considerations)
- [Security Considerations](#security-considerations) - [Design Rationale](#design-rationale)
- [Design Rationale](#design-rationale) - [P2P Overlay](#p2p-overlay-1)
- [P2P Overlay](#p2p-overlay-1) - [Why devp2p? Why not use libp2p?](#why-devp2p-why-not-use-libp2p)
- [Why devp2p? Why not use libp2p?](#why-devp2p-why-not-use-libp2p) - [What about other RLPx subprotocols like LES, and Swarm?](#what-about-other-rlpx-subprotocols-like-les-and-swarm)
- [What about other RLPx subprotocols like LES, and Swarm?](#what-about-other-rlpx-subprotocols-like-les-and-swarm) - [Why do you use Whisper?](#why-do-you-use-whisper)
- [Why do you use Whisper?](#why-do-you-use-whisper) - [I heard you were moving away from Whisper?](#i-heard-you-were-moving-away-from-whisper)
- [I heard you were moving away from Whisper?](#i-heard-you-were-moving-away-from-whisper) - [Why is PoW for Whisper set so low?](#why-is-pow-for-whisper-set-so-low)
- [Why is PoW for Whisper set so low?](#why-is-pow-for-whisper-set-so-low) - [Why do you not use Discovery v5 for node discovery?](#why-do-you-not-use-discovery-v5-for-node-discovery)
- [Why do you not use Discovery v5 for node discovery?](#why-do-you-not-use-discovery-v5-for-node-discovery) - [I heard something about mailservers being trusted somehow?](#i-heard-something-about-mailservers-being-trusted-somehow)
- [I heard something about mailservers being trusted somehow?](#i-heard-something-about-mailservers-being-trusted-somehow) - [Data sync](#data-sync-1)
- [Data sync](#data-sync-1) - [Why is MVDS not used for public chats?](#why-is-mvds-not-used-for-public-chats)
- [Why is MVDS not used for public chats?](#why-is-mvds-not-used-for-public-chats) - [Footnotes](#footnotes)
- [Footnotes](#footnotes) - [Appendix A: Security considerations](#appendix-a-security-considerations)
- [Appendix A: Security considerations](#appendix-a-security-considerations) - [Scalability and UX](#scalability-and-ux)
- [Scalability and UX](#scalability-and-ux) - [Privacy](#privacy)
- [Privacy](#privacy) - [Spam resistance](#spam-resistance)
- [Spam resistance](#spam-resistance) - [Censorship resistance](#censorship-resistance)
- [Censorship resistance](#censorship-resistance) - [Acknowledgments](#acknowledgments)
- [Acknowledgments](#acknowledgments)
## Introduction
### Protocol layers ### Protocol layers
@ -124,18 +125,18 @@ Status maintains a list of production fleet bootstrap nodes in the following loc
**Hong Kong:** **Hong Kong:**
- `enode://6e6554fb3034b211398fcd0f0082cbb6bd13619e1a7e76ba66e1809aaa0c5f1ac53c9ae79cf2fd4a7bacb10d12010899b370c75fed19b991d9c0cdd02891abad@47.75.99.169:443` - `enode://6e6554fb3034b211398fcd0f0082cbb6bd13619e1a7e76ba66e1809aaa0c5f1ac53c9ae79cf2fd4a7bacb10d12010899b370c75fed19b991d9c0cdd02891abad@47.75.99.169:443`
- `enode://23d0740b11919358625d79d4cac7d50a34d79e9c69e16831c5c70573757a1f5d7d884510bc595d7ee4da3c1508adf87bbc9e9260d804ef03f8c1e37f2fb2fc69@47.52.106.107:443` - `enode://23d0740b11919358625d79d4cac7d50a34d79e9c69e16831c5c70573757a1f5d7d884510bc595d7ee4da3c1508adf87bbc9e9260d804ef03f8c1e37f2fb2fc69@47.52.106.107:443`
**Amsterdam:** **Amsterdam:**
- `enode://436cc6f674928fdc9a9f7990f2944002b685d1c37f025c1be425185b5b1f0900feaf1ccc2a6130268f9901be4a7d252f37302c8335a2c1a62736e9232691cc3a@178.128.138.128:443` - `enode://436cc6f674928fdc9a9f7990f2944002b685d1c37f025c1be425185b5b1f0900feaf1ccc2a6130268f9901be4a7d252f37302c8335a2c1a62736e9232691cc3a@178.128.138.128:443`
- `enode://5395aab7833f1ecb671b59bf0521cf20224fe8162fc3d2675de4ee4d5636a75ec32d13268fc184df8d1ddfa803943906882da62a4df42d4fccf6d17808156a87@178.128.140.188:443` - `enode://5395aab7833f1ecb671b59bf0521cf20224fe8162fc3d2675de4ee4d5636a75ec32d13268fc184df8d1ddfa803943906882da62a4df42d4fccf6d17808156a87@178.128.140.188:443`
**Central US:** **Central US:**
- `enode://32ff6d88760b0947a3dee54ceff4d8d7f0b4c023c6dad34568615fcae89e26cc2753f28f12485a4116c977be937a72665116596265aa0736b53d46b27446296a@34.70.75.208:443` - `enode://32ff6d88760b0947a3dee54ceff4d8d7f0b4c023c6dad34568615fcae89e26cc2753f28f12485a4116c977be937a72665116596265aa0736b53d46b27446296a@34.70.75.208:443`
- `enode://5405c509df683c962e7c9470b251bb679dd6978f82d5b469f1f6c64d11d50fbd5dd9f7801c6ad51f3b20a5f6c7ffe248cc9ab223f8bcbaeaf14bb1c0ef295fd0@35.223.215.156:443` - `enode://5405c509df683c962e7c9470b251bb679dd6978f82d5b469f1f6c64d11d50fbd5dd9f7801c6ad51f3b20a5f6c7ffe248cc9ab223f8bcbaeaf14bb1c0ef295fd0@35.223.215.156:443`
These bootstrap nodes MAY change and we can't guarantee that it will stay this way forever These bootstrap nodes MAY change and we can't guarantee that it will stay this way forever
and at some point we might be forced to change them. and at some point we might be forced to change them.
@ -274,10 +275,10 @@ computer.
Whisper is not currently under active development, and it has several drawbacks. Whisper is not currently under active development, and it has several drawbacks.
Among others: Among others:
- It is very wasteful bandwidth-wise and it doesn't appear to be scalable - It is very wasteful bandwidth-wise and it doesn't appear to be scalable
- Proof of work is a poor spam protection mechanism for heterogeneous devices - Proof of work is a poor spam protection mechanism for heterogeneous devices
- The privacy guarantees provided are not rigorous - The privacy guarantees provided are not rigorous
- There's no incentives to run a node - There's no incentives to run a node
Finding a more suitable transport privacy is an ongoing research effort, Finding a more suitable transport privacy is an ongoing research effort,
together with [Vac](https://vac.dev/vac-overview) and other teams in the space. together with [Vac](https://vac.dev/vac-overview) and other teams in the space.

View File

@ -28,7 +28,6 @@ In this specification we explain what Status account is, and how trust is establ
- [X3DH Prekey bundles](#x3dh-prekey-bundles) - [X3DH Prekey bundles](#x3dh-prekey-bundles)
- [Optional Account additions](#optional-account-additions) - [Optional Account additions](#optional-account-additions)
- [ENS Username](#ens-username) - [ENS Username](#ens-username)
- [User Profile Picture](#user-profile-picture)
- [Trust establishment](#trust-establishment) - [Trust establishment](#trust-establishment)
- [Terms Glossary](#terms-glossary) - [Terms Glossary](#terms-glossary)
- [Contact Discovery](#contact-discovery) - [Contact Discovery](#contact-discovery)
@ -37,7 +36,6 @@ In this specification we explain what Status account is, and how trust is establ
- [Initial Key Exchange](#initial-key-exchange) - [Initial Key Exchange](#initial-key-exchange)
- [Contact Request](#contact-request) - [Contact Request](#contact-request)
- [Bundles](#bundles) - [Bundles](#bundles)
- [QR code](#qr-code)
- [Contact Verification](#contact-verification) - [Contact Verification](#contact-verification)
- [Identicon](#identicon) - [Identicon](#identicon)
- [3 word pseudonym / whisper key fingerprint](#3-word-pseudonym--whisper-key-fingerprint) - [3 word pseudonym / whisper key fingerprint](#3-word-pseudonym--whisper-key-fingerprint)

View File

@ -12,26 +12,23 @@ title: 3/WHISPER-USAGE
> >
> Authors: Adam Babik <adam@status.im>, Corey Petty <corey@status.im>, Oskar Thorén <oskar@status.im> (alphabetical order) > Authors: Adam Babik <adam@status.im>, Corey Petty <corey@status.im>, Oskar Thorén <oskar@status.im> (alphabetical order)
- [Status Whisper Usage Specification](#status-whisper-usage-specification) - [Abstract](#abstract)
- [Abstract](#abstract) - [Reason](#reason)
- [Reason](#reason) - [Terminology](#terminology)
- [Terminology](#terminology) - [Whisper packets](#whisper-packets)
- [Whisper packets](#whisper-packets) - [Whisper node configuration](#whisper-node-configuration)
- [Whisper node configuration](#whisper-node-configuration) - [Handshake](#handshake)
- [Handshake](#handshake) - [Rate limiting](#rate-limiting)
- [Rate limiting](#rate-limiting) - [Keys management](#keys-management)
- [Keys management](#keys-management) - [Contact code topic](#contact-code-topic)
- [Contact code topic](#contact-code-topic) - [Partitioned topic](#partitioned-topic)
- [Partitioned topic](#partitioned-topic) - [Public chats](#public-chats)
- [Public chats](#public-chats) - [Group chat topic](#group-chat-topic)
- [Generic discovery topic](#generic-discovery-topic) - [Message encryption](#message-encryption)
- [One-to-one topic](#one-to-one-topic) - [Message confirmations](#message-confirmations)
- [Group chat topic](#group-chat-topic) - [Whisper V6 extensions](#whisper-v6-extensions)
- [Message encryption](#message-encryption) - [Request historic messages](#request-historic-messages)
- [Message confirmations](#message-confirmations) - [shhext_requestMessages](#shhext_requestmessages)
- [Whisper V6 extensions](#whisper-v6-extensions)
- [Request historic messages](#request-historic-messages)
- [shhext_requestMessages](#shhextrequestmessages)
## Abstract ## Abstract

View File

@ -12,17 +12,16 @@ title: 4/WHISPER-MAILSERVER
> >
> Authors: Adam Babik <adam@status.im>, Oskar Thorén <oskar@status.im> (alphabetical order) > Authors: Adam Babik <adam@status.im>, Oskar Thorén <oskar@status.im> (alphabetical order)
- [Status Whisper Mailserver Specification](#status-whisper-mailserver-specification) - [Abstract](#abstract)
- [Abstract](#abstract) - [Mailserver](#mailserver)
- [Mailserver](#mailserver) - [Archiving messages](#archiving-messages)
- [Archiving messages](#archiving-messages) - [Requesting messages](#requesting-messages)
- [Requesting messages](#requesting-messages) - [Receiving historic messages](#receiving-historic-messages)
- [Receiving historic messages](#receiving-historic-messages) - [Security considerations](#security-considerations)
- [Security considerations](#security-considerations) - [Confidentiality](#confidentiality)
- [Confidentiality](#confidentiality) - [Altruistic and centralized operator risk](#altruistic-and-centralized-operator-risk)
- [Altruistic and centralized operator risk](#altruistic-and-centralized-operator-risk) - [Privacy concerns](#privacy-concerns)
- [Privacy concerns](#privacy-concerns) - [Denial-of-service](#denial-of-service)
- [Denial-of-service](#denial-of-service)
## Abstract ## Abstract

View File

@ -49,11 +49,6 @@ It builds on the [X3DH](https://signal.org/docs/specifications/x3dh/) and [Doubl
- [Sending messages to a paired group](#sending-messages-to-a-paired-group) - [Sending messages to a paired group](#sending-messages-to-a-paired-group)
- [Account recovery](#account-recovery) - [Account recovery](#account-recovery)
- [Partitioned devices](#partitioned-devices) - [Partitioned devices](#partitioned-devices)
- [Trust establishment](#trust-establishment)
- [Contact request](#contact-request)
- [Expired session](#expired-session)
- [Stale devices](#stale-devices)
## Introduction ## Introduction
@ -80,13 +75,13 @@ Types used in this specification are defined using [Protobuf](https://developers
### Transport Layer ### Transport Layer
[Whisper](./status-whisper-usage-spec.md) serves as the transport layer for the Status chat protocol. [Whisper](./3-whisper-usage.md) serves as the transport layer for the Status chat protocol.
### User flow for 1-to-1 communications ### User flow for 1-to-1 communications
#### Account generation #### Account generation
See [Account specification](./status-account-spec.md) See [Account specification](./2-account.md)
#### Account recovery #### Account recovery

View File

@ -23,34 +23,33 @@ as various clients created using different technologies.
## Table of Contents ## Table of Contents
- [Status Message Payloads Specification](#status-message-payloads-specification) - [Abstract](#abstract)
- [Abstract](#abstract) - [Table of Contents](#table-of-contents)
- [Table of Contents](#table-of-contents) - [Introduction](#introduction)
- [Introduction](#introduction) - [Payload wrapper](#payload-wrapper)
- [Payload wrapper](#payload-wrapper) - [Encoding](#encoding)
- [Encoding](#encoding) - [Types of messages](#types-of-messages)
- [Types of messages](#types-of-messages) - [Message](#message)
- [Message](#message) - [Payload](#payload)
- [Payload](#payload) - [Payload](#payload-1)
- [Payload](#payload-1) - [Content types](#content-types)
- [Content types](#content-types) - [Sticker content type](#sticker-content-type)
- [Sticker content type](#sticker-content-type) - [Message types](#message-types)
- [Message types](#message-types) - [Clock vs Timestamp and message ordering](#clock-vs-timestamp-and-message-ordering)
- [Clock vs Timestamp and message ordering](#clock-vs-timestamp-and-message-ordering) - [Chats](#chats)
- [Chats](#chats) - [Contact Update](#contact-update)
- [Contact Update](#contact-update) - [Payload](#payload-2)
- [Payload](#payload-2) - [Contact update](#contact-update-1)
- [Contact update](#contact-update-1) - [SyncInstallationContact](#syncinstallationcontact)
- [SyncInstallationContact](#syncinstallationcontact) - [Payload](#payload-3)
- [Payload](#payload-3) - [SyncInstallationPublicChat](#syncinstallationpublicchat)
- [SyncInstallationPublicChat](#syncinstallationpublicchat) - [Payload](#payload-4)
- [Payload](#payload-4) - [PairInstallation](#pairinstallation)
- [PairInstallation](#pairinstallation) - [Payload](#payload-5)
- [Payload](#payload-5) - [MembershipUpdateMessage and MembershipUpdateEvent](#membershipupdatemessage-and-membershipupdateevent)
- [MembershipUpdateMessage and MembershipUpdateEvent](#membershipupdatemessage-and-membershipupdateevent) - [Upgradability](#upgradability)
- [Upgradability](#upgradability) - [Security Considerations](#security-considerations)
- [Security Considerations](#security-considerations) - [Design rationale](#design-rationale)
- [Design rationale](#design-rationale)
## Introduction ## Introduction
@ -319,7 +318,7 @@ message PairInstallation {
### MembershipUpdateMessage and MembershipUpdateEvent ### MembershipUpdateMessage and MembershipUpdateEvent
`MembershipUpdateEvent` is a message used to propagate information about group membership changes in a group chat. `MembershipUpdateEvent` is a message used to propagate information about group membership changes in a group chat.
The details are in the [Group chats specs](status-group-chats-spec.md) The details are in the [Group chats specs](./../draft/7-group-chat.md)
## Upgradability ## Upgradability

View File

@ -17,15 +17,14 @@ title: 8/EIPS
In this specification, we describe how Status relates with EIPs. In this specification, we describe how Status relates with EIPs.
## Table of Contents ## Table of Contents
- [Status EIPs standards ](#status-client-specification) - [Abstract](#abstract)
- [Abstract](#abstract) - [Table of Contents](#table-of-contents)
- [Table of Contents](#table-of-contents) - [Introduction](#introduction)
- [Introduction](#introduction) - [Components](#components)
- [Components](#components) - [Security Considerations](#security-considerations)
- [Security Considerations](#security-considerations) - [Design Rationale](#design-rationale)
- [Design Rationale](#design-rationale) - [Footnotes](#footnotes)
- [Footnotes](#footnotes) - [Acknowledgments](#acknowledgments)
- [Acknowledgments](#acknowledgments)
## Introduction ## Introduction

View File

@ -3,7 +3,8 @@
"dependencies": { "dependencies": {
"remark-cli": "^6.0.1", "remark-cli": "^6.0.1",
"remark-lint": "^6.0.2", "remark-lint": "^6.0.2",
"remark-preset-lint-recommended": "^3.0.2" "remark-preset-lint-recommended": "^3.0.2",
"remark-validate-links": "^10.0.0"
}, },
"scripts": { "scripts": {
"lint": "remark ." "lint": "remark ."