BREAKING CHANGE: implement docusaurus (#36)

* BREAKING CHANGE: implement docusaurus
This commit is contained in:
SWB 2023-06-01 21:48:43 +01:00 committed by GitHub
parent 72fcd1b4d4
commit 6dcd73c759
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
43 changed files with 13603 additions and 1709 deletions

View File

@ -1,24 +0,0 @@
{
"version": "0.2",
"language": "en",
"words": [
"deplatforming",
"libp2p",
"monospace",
"nwaku",
"permissionless",
"proto",
"Protobuf",
"sidenav",
"supercrypto",
"RAILGUN",
"unlinkability",
"Waku",
"XMTP",
"FDPIC",
"Baarerstrasse",
"incentivized",
"cryptoeconomic",
"classwide"
]
}

View File

@ -1,15 +0,0 @@
name: Add new issues to Waku project board
on:
issues:
types: [opened]
jobs:
add-to-project:
name: Add issue to project
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v0.3.0
with:
project-url: https://github.com/orgs/waku-org/projects/2
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}

View File

@ -1,24 +0,0 @@
name: Checks
on:
push:
branches:
- 'develop'
- 'master'
pull_request:
jobs:
yarn_test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2.3.3
- name: Install NodeJS
uses: actions/setup-node@v2
- name: Yarn install
run: yarn install --frozen-lockfile
- name: Test
run: yarn test

25
.gitignore vendored
View File

@ -1,3 +1,26 @@
# Dependencies
/node_modules
# Production
/build
# Generated files
.docusaurus
.cache-loader
# Misc
.DS_Store
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.yalc
yalc.lock
.idea
/node_modules/
static/search-index.json

2
.husky/commit-msg Executable file
View File

@ -0,0 +1,2 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npx lint-staged
npm run test
# yarn prettier:staged
yarn typecheck

2
.prettierignore Normal file
View File

@ -0,0 +1,2 @@
*.mdx
*.md

6
.prettierrc Normal file
View File

@ -0,0 +1,6 @@
{
"tabWidth": 2,
"semi": false,
"singleQuote": true,
"trailingComma": "all"
}

45
Jenkinsfile vendored
View File

@ -3,8 +3,6 @@ pipeline {
options {
disableConcurrentBuilds()
/* Necessary for logos-side-builder local_folder source type. */
checkoutToSubdirectory('src')
/* manage how many builds we keep */
buildDiscarder(logRotator(
numToKeepStr: '20',
@ -13,10 +11,6 @@ pipeline {
}
environment {
/* Mode of logos-site-builder for copying site source from already checked out repo.
* TODO: Avoid copying anything at all, make checkout site of into `docs` folder work. */
CONTENT_SOURCE_TYPE = 'local_folder'
CONTENT_SOURCE_URL = '../src'
GIT_COMMITTER_NAME = 'status-im-auto'
GIT_COMMITTER_EMAIL = 'auto@status.im'
PROD_SITE = 'waku.org'
@ -26,41 +20,24 @@ pipeline {
}
stages {
stage('Clone Builder') {
steps {
dir('builder') {
checkout([$class: 'GitSCM',
branches: [[name: 'v0']],
userRemoteConfigs: [[url: 'https://github.com/acid-info/logos-site-builder']]])
}
}
}
stage('Install') {
steps {
dir('builder') {
sh 'yarn install'
}
sh "yarn install"
}
}
stage('Build') {
steps {
dir('builder') {
sh 'yarn build'
sh "echo ${env.PROD_SITE} > out/CNAME"
}
sh 'yarn build'
sh "echo ${env.PROD_SITE} > build/CNAME"
}
}
stage('Publish Prod') {
when { expression { env.GIT_BRANCH ==~ /.*master/ } }
steps {
dir('src') {
sh 'cp -r ../builder/out ./'
sshagent(credentials: ['status-im-auto-ssh']) {
sh "ghp-import -p out"
}
sshagent(credentials: ['status-im-auto-ssh']) {
sh "ghp-import -p build"
}
}
}
@ -68,13 +45,11 @@ pipeline {
stage('Publish Devel') {
when { expression { env.GIT_BRANCH ==~ /.*develop/ } }
steps {
dir('builder') {
sshagent(credentials: ['jenkins-ssh']) {
sh """
rsync -e 'ssh -o ${SCP_OPTS}' -r --delete out/. \
${env.DEV_HOST}:/var/www/${env.DEV_SITE}/
"""
}
sshagent(credentials: ['jenkins-ssh']) {
sh """
rsync -e 'ssh -o ${SCP_OPTS}' -r --delete build/. \
${env.DEV_HOST}:/var/www/${env.DEV_SITE}/
"""
}
}
}

View File

@ -1,48 +1,46 @@
# Waku.org
- [Description](#description)
- [How to Run Locally](#how-to-run-locally)
- [Configuration](#configuration)
- [Customization](#customization)
## Description
Content of https://waku.org website.
This repository contains the content of your documentation website.
## Practical notes
## How to Run Locally
- Please keep this repo clean and for markdown content ONLY
- In case you have any issue with rendering, how website looks, etc,
please file an issue on [logos website builder](https://github.com/acid-info/logos-site-builder).
## Continuous Integration
* `master` branch is deployed to https://waku.org by [CI](https://ci.infra.status.im/job/website/job/waku.org/).
* `develop` branch is deployed to https:/dev.waku.org by [CI](https://ci.infra.status.im/job/website/job/dev.waku.org/).
## Format & spelling checks
Format and spelling checks are done via npm commands.
Installation:
```shell
yarn
1. Clone this repository.
2. Install the dependencies:
```bash
$ yarn
```
3. Start and open the website in your browser:
```bash
$ yarn start
```
This will automatically install a git hook to format and check spelling at commit time.
You can also trigger the commands manually:
## Configuration
Edit the `docusaurus.config.js` file in the repository's root directory, and update the value of the `businessUnit` field in presets section; below is a list of valid values:
- Logos
- Codex
- Waku
Fix format:
```shell
yarn fix
Example:
```js
presets: [
[
'@acid-info/logos-docusaurus-preset',
{
businessUnit: 'Codex',
},
],
],
```
Check spelling and format:
This is probably enough in most cases, as the Logos plugins will fill in other configurations related to the specified business unit. If you find any error in the information coming from Logos Plugins, please head over to [Logos Docusaurus Plugins](https://github.com/acid-info/logos-docusaurus-plugins) and create an issue.
```shell
yarn check
```
## Customization
## Change Process
You can find the instructions on adding more documentation sections, localization, and versioning on the [Docusaurus](https://docusaurus.io/docs) website.
1. Create a new working branch from `develop`: `git checkout develop; git checkout -b my-changes`,
2. Proceed with changes, push to `origin` and open a Pull Request against `develop`,
3. Once approved, merge pull request, check changes on [dev.waku.org](https://dev.waku.org),
4. Once ready to promote to live website, rebase master on develop: `git checkout master; git pull master; git rebase origin/develop; git push`.
> Note that theme customization is limited; for further instructions on customizing your theme, head over to [Logos Docusaurus Theme](https://github.com/acid-info/logos-docusaurus-plugins/tree/main/packages/logos-docusaurus-theme/).

View File

@ -1,83 +0,0 @@
---
title: About
category: page
---
# About
Communication today is rife with third party interference.
From censorship and deplatforming, to rent seeking intermediaries, to the misuse of data in the surveillance economy.
Waku is designed to place control of communication back into the hands of the individual.
## Motivation and goals
### Privacy
These applications have a desire for some privacy guarantees, such as pseudonymity, metadata protection in transit, etc.
### Peer-to-Peer
These applications sometimes have requirements that make them suitable for peer-to-peer solutions.
### Generalized messaging
Many applications require some form of messaging protocol to communicate between different subsystems or different nodes.
This messaging can be human-to-human or machine-to-machine or a mix.
### Resource restricted
These applications often run in constrained environments,
where resources or the environment is restricted in some fashion.
E.g.:
- limited bandwidth, CPU, memory, disk, battery, etc.,
- not being publicly connectable,
- only being intermittently connected; mostly-offline.
## History
Waku v1 was a fork of Whisper with some added tweaks for efficiency.
Waku v2 is a completely redesigned suite of protocols designed to address the goals set out above.
```mermaid
%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'HISTORY'}} }%%
gitGraph
commit id:"2013"
commit id:"2015" tag:"R&D"
commit id:"2018" tag:"R&D" type: HIGHLIGHT
branch v1
checkout v1
commit id:"2020" tag:"release"
checkout HISTORY
merge v1
branch v2
checkout v2
commit id:"2021" tag:"release"
checkout HISTORY
merge v2
commit id:"🔥"
```
### 2013
Ethereum White Paper was introduced with the Holy Trinity,
consisting of Ethereum for consensus, Swarm for decentralized storage, and Whisper for p2p messaging.
### 2015-2018
R&D of Whisper was slow to follow progress of the Ethereum EVM and Swarm without a dedicated team building out the protocol.
### 2018
With little progress made on Whisper and significant scalability concerns growing,
Vac was formed to conduct R&D on more scalable p2p messaging.
### 2020
Waku v1 was introduced as the messaging protocol in Status, replacing Whisper.
### 2021
Waku v2 replaces Waku v1.

3
babel.config.js Normal file
View File

@ -0,0 +1,3 @@
module.exports = {
presets: [require.resolve("@docusaurus/core/lib/babel/preset")],
};

View File

@ -1,96 +0,0 @@
{
"theme": {
"palettes": {
"dark": {
"background": "#1F1E42",
"text": "#F3DDC3",
"accentActive": "#7187FF",
"accentMute": "#49445C"
},
"light": {
"background": "#F3DDC3",
"text": "#1F1E42",
"accentActive": "#7187FF",
"accentMute": "#C9B7A9"
}
},
"fontFamily": "monospace",
"codeTheme": "prism/duotone-dark"
},
"template": "default",
"static_assets_folder": "static-assets",
"useTerms": true,
"navigation": {
"home": "main.md",
"exclude": ["privacy-policy", "terms-of-use"],
"fileOrdersInSidenav": [
"main.md",
"about.md",
"platform.md",
"operator.md",
"contribute.md"
],
"folderOrdersInSidenav": [],
"external_links": [
{
"text": "Blog",
"url": "https://vac.dev/research",
"category": "Links"
},
{
"text": "Vac",
"url": "https://vac.dev/",
"category": "Links"
},
{
"text": "Vac RFCs",
"url": "https://rfc.vac.dev/",
"category": "Links"
},
{
"text": "Careers",
"url": "https://jobs.status.im/",
"category": "Links"
},
{
"text": "Discord",
"url": "https://discord.gg/Nrac59MfSX",
"category": "Connect"
},
{
"text": "Twitter",
"url": "https://twitter.com/waku_org",
"category": "Connect"
}
]
},
"ds_id": "waku",
"seo": {
"title": "Waku",
"description": "Waku is the communication layer for Web3. Decentralized communication that scales. Private, secure, and it runs anywhere.",
"image": "waku-site-preview-image.png",
"url": "https://waku.org",
"social_media": [
{
"provider": "twitter",
"handler": "waku_org"
},
{
"provider": "discord",
"handler": "j5pGbn7MHZ"
},
{
"provider": "github",
"handler": "waku-org"
},
{
"provider": "telegram",
"handler": "waku_org"
},
{
"provider": "discourse",
"handler": "forum.vac.dev"
}
]
}
}

View File

@ -1,54 +0,0 @@
---
title: Contribute to Waku
---
# Contribute to Waku
You can contribute to Waku in several manners:
## Run a Node
The Waku Network is a permissionless, decentralized set of nodes.
Anyone can run their own node, use and support the network.
Learn more [here](https://github.com/waku-org/nwaku/tree/master/docs/operators).
## Build Your Own Waku Application
By integrating Waku in your application,
you may contribute by:
- Running Waku node within your application,
- Reporting bugs and missing features to the development teams,
- Inspire other developers in using Waku for various use cases.
[Get started now](/platform).
## Contribute to the Waku Implementations
All Waku implementations are open source,
Pull Requests and welcome and encouraged.
We sometimes open bounties on [Gitcoin](https://gitcoin.co/),
potential bounties are marked with the label `bounty` on GitHub issues.
Repositories:
- [js-waku](https://github.com/waku-org/js-waku)
- [nwaku](https://github.com/waku-org/nwaku)
- [go-waku](https://github.com/waku-org/go-waku)
## Research
Waku Research is ongoing and driven by Vac.
Vac is an R&D org creating modular p2p protocols for private, secure, censorship resistant communication.
Learn more at https://vac.dev/
## Other Ways of Contributing
If you are keen to contribute but not sure how,
join the discussion on [Vac Discord](https://discord.gg/Nrac59MfSX)
or the [Waku Telegram Group](https://t.me/waku_org).
Waku is a public good, we are always welcoming help from the community.

52
docs/architect.md Normal file
View File

@ -0,0 +1,52 @@
---
title: Description and architecture
sidebar_position: 2
---
Waku is a family of protocols that enable private, censorship-resistant communications; a suite of open-source software; and the name of the public, permissionless and decentralized network facilitating generalized messaging. By communications, we mean the exchange of data or messages between two or more entities, whether they are users, devices or nodes.
Waku was built as open-source public goods infrastructure to serve as the communications layer of the decentralized web. As such, its development focuses on the following:
- **Generalized:** Waku's focus on generalized and ephemeral messaging facilitates communication between users, subsystems or nodes according to developers' needs.
- **Peer-to-peer:** Waku is implemented via a decentralized p2p network, yielding the advantages of censorship resistance while remaining adaptive and scalable.
- **Runs anywhere:** Waku was designed to run in resource-restricted environments—like phones and browsers—enabling users operating lower-spec hardware or with intermittent bandwidth to participate as peers.
- **Privacy first:** Waku empowers developers to build apps that cannot harvest users' metadata, removing the need for users to trust that their data is not used maliciously or without their consent.
- **Modular:** Waku's modularity enables developers to make tradeoffs according to their users' privacy expectations and performance demands by implementing only those protocols that are relevant to their applications. While one app might value privacy above all else, another may be willing to make compromises to deliver a more frictionless UX.
- **Platform agnostic:** Waku can run on any platform or in any environment making it a suitable messaging solution for decentralized applications regardless of the network on which they're deployed.
<br/>
### Network architecture
The Waku team has developed three clients to run in different environments along with a range of SDKs in Rust, React Native, Kotlin and Swift:
- nwaku: Waku's reference implementation written in Nim.
- go-waku: An implementation for native integration with Golang applications.
- js-waku: Waku's JavaScript implementation for browser environments.
Waku is best thought of as a cohesive whole in terms of its capabilities. However, under the hood are three distinct network interaction domains: gossip, discovery and request/response.
#### Waku protocols
Waku compromises multiple protocols, including but not limited to the following:
**Waku Relay**: The heart of Waku v2, the relay protocol specifies a pub/sub approach to p2p messaging with a focus on privacy, censorship resistance and security, and is currently implemented as a minor extension of the libp2p GossipSub protocol.
**Waku Filter**: A lighter-weight version of the relay protocol for resource-restricted devices, Waku Filter enables light nodes to only receive the messages they want from full nodes.
**Waku Store**: Enables querying of messages stored by other nodes through Waku Relay.
**Waku Light Push**: A request/response protocol that enables nodes with short connection windows or limited bandwidth to publish messages to the Waku network
<br/>
![architect](/subpages/architect.png)
<br/>
[Dive into the docs](https://vac.dev/research)

36
docs/index.md Normal file
View File

@ -0,0 +1,36 @@
---
title: About
sidebar_position: 1
---
Waku is the communication standard for the decentralized web. A suite of generalized messaging protocols, it enables private, secure, bidirectional human-to-human, machine-to-machine and human-to-machine communication without reliance on centralized intermediaries.
Today's internet is increasingly controlled by a vanishingly small number of tech giants. The Googles, Amazons and Metas of the world dictate what we see and with whom we can communicate. Their influence is absolute, and their actions shape global public opinion and even geopolitics.
To anyone that understands the internet's present architecture, this outcome should be expected. The centralized entities through which we communicate have privileged access to reams of data that we, as internet users, produce daily, presenting an opportunity for the kind of surveillance that was once confined to the pages of science-fiction literature. Thinking that the most powerful commercial and political institutions would not leverage this would be naive.
Yet, it doesn't have to be this way. Advances in cryptography, p2p technologies and decentralized networking provide an alternate path forward.
<br/>
### (Slowly) moving toward a decentralized web
The early Ethereum community realized this. Initially, the plan was to rebuild the web's architecture along decentralized lines by developing the so-called "Holy Trinity of the Decentralized Web." Ethereum itself would handle logic, Swarm was the reimagined web's storage layer and Whisper would take care of messaging.
<br/>
![history](/subpages/history.png)
<br/>
Whisper was a promising start but scalability shortcomings quickly became apparent. Meanwhile, for reasons upon which we can only speculate, the development of Swarm and Whisper was relegated to a backseat while Ethereum took center stage. Yet, without adequate communication and storage layers, the decentralized web's potential for disruption remained severely handicapped.
Status, the decentralized messaging application, hoped to leverage Whisper but with development grinding to a snail's pace, it was forced to take up the job itself. Consequently, the R&D group Vac was put together in 2018 to research solutions to Whisper's scaling woes.
<br/>
### The birth of Waku
In 2020, Waku v1 was released. A fork of the Whisper codebase, this initial version introduced various Vac-proposed optimizations, resulting in a more performant messaging protocol. Yet, it was clear that further changes were needed if Waku was to handle the volume of messages an application like Status would produce.
The following year, work on a complete protocol rewrite began. Waku v2, as the version under development today is known, introduced a relay protocol that implements pub/sub over libp2p. Additionally, further capabilities were included to make Waku more useful, including historic message retrieval for often-offline devices, adaptive nodes to make participation more accessible to users with limited or intermittent connections and lower-spec hardware, and various bandwidth preservation techniques.

44
docs/roadmap.md Normal file
View File

@ -0,0 +1,44 @@
---
title: Development roadmap
sidebar_position: 4
---
Waku v1 is in production and was quickly adopted by the Status Mobile application. Yet, this initial version was unable to handle the scale required to support popular applications, prompting the v2 rewrite. Waku v2 has seen encouraging initial adoption beyond Status by projects such as Railgun's private transaction system, TheGraph's indexer communication network Graphcast and the messaging platform XMTP.
Given Waku v1's scaling difficulties, the team behind Waku is primarily focused on ensuring v2 scales securely. By the end of Q2 2023, we aim to support more than one million users.
Meanwhile, the team is also working on ensuring production readiness alongside network and development sustainability. Although work on these areas is already underway, our efforts will intensify as we make progress toward our million-user-milestone. Finally, Waku aims to promote itself among developers looking to add decentralized communications to their applications.
<br/>
#### Secure scalability
Alongside Vac researchers, Waku is producing and implementing various RFCs to define the protocols and application guidelines required to serve more than one million simultaneous users. We then aim to study Waku's capacity through network simulations before designing and implementing scalability risk-mitigation strategies.
#### Production readines
We will consider Waku v2 production ready when it's performant, stable and bug-free while satisfying user requirements. This process will involve collaboration with Status teams to test the protocols, and further simulations to assess future updates' expected performances. Ensuring that Waku has adequate protection against spam and DoS attacks is critically important to this milestone.
#### Network sustainability
Many of Waku's core value propositions—privacy and resistance to censorship, for example—are reliant on its decentralization. While our most passionate users may well operate network infrastructure altruistically, incentivization mechanisms will ensure a wider node distribution and, thus, strengthen Waku's more disruptive properties.
This process will involve defining a viable incentivization structure via RFC and studying its efficacy to tweak parameters through test net simulations before implementation on the main net.
#### Development sustainability
We believe Waku will only realize its true potential if its community and users believe in its longevity. As such, Waku's development must remain funded. Again, arriving at a suitable funding mechanism will involve several RFCs to define how much of the network's extractable value can be diverted toward R&D efforts.
#### Growth
After achieving the above milestones, we will be in a position to aggressively market Waku to potential contributors and developers within the web3 sector and beyond. As a piece of public goods infrastructure, we encourage the wider community to help improve the protocols by contributing to our R&D efforts. However, promotion is an ongoing process that is already underway, involving conference attendance and sponsorship, hosting developer workshops, producing promotional material, and appearing on industry-focused podcasts.
<br/>
### Roadmap rationale
Completing the roadmap objectives described above will best position Waku for maximum user adoption. Proving Waku is scalable and reliable must come before subsequent milestones as the network's non-functionality will discourage infrastructure operators regardless of the incentive structure we put in place.
Similarly, it makes little sense to promote Waku aggressively until we are confident that it can handle waves of new users without degraded performance. Without first achieving secure scalability and proving production readiness, it will be very difficult to convince all but the most ideologically driven developers to continue believing in Waku's potential if their first experience is a negative one.
[Contribute to Waku](https://github.com/waku-org)

30
docs/team.md Normal file
View File

@ -0,0 +1,30 @@
---
title: Core contributors
sidebar_position: 3
---
Leading Waku's R&D efforts is Franck Royer. Royer draws on more than five years of experience within the blockchain and crypto ecosystem, and over 13 years as a software engineer and team lead with a primary focus on backend development for mission-critical applications.
The core contributors building Waku are split into three subgroups:
#### Waku Research
Our research efforts are led by a former telecoms engineer with almost a decade of experience, and supported by a post-doctoral research engineer who specializes in communications networks.
#### Waku Development
Waku's development arm is broken down by client implementation.
- nwaku: The team building nwaku, our implementation in Nim, comprises two software engineers with more than two decades of combined experience within the fields of backend development, open-source development, artificial intelligence and finance.
- js-waku: Our JavaScript implementation is developed by a senior and intermediate software engineer, one with extensive experience in the web3 sector and another who previously worked with renowned tech companies, such as Microsoft and Ubisoft.
- go-waku: Building Waku's Golang implementation is a senior software engineer with almost 15 years of experience, including five in web3.
#### Waku Outreach
Ensuring that Waku attracts developers and users is the Waku Outreach team. It comprises a developer relations engineer and a technical writer. Both members are steeped in web3, having previously worked with Wallet Connect and Unstoppable Domains, and regularly presenting on the crypto conference circuit.
Waku is looking to expand the above structure and currently has openings for core contributors. As an open-source public goods project Waku also welcomes community contributions.
[Work with us](https://jobs.status.im/)

126
docusaurus.config.js Normal file
View File

@ -0,0 +1,126 @@
// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion
require('dotenv').config()
/** @type {import('@docusaurus/types').Config} */
const config = {
title: 'Waku',
url: 'https://url',
baseUrl: '/',
customFields: {
ghostAPiKey: process.env.GHOST_API_KEY,
},
markdown: {
mermaid: true,
},
// Even if you don't use internalization, you can use this field to set useful
// metadata like html lang. For example, if your site is Chinese, you may want
// to replace "en" with "zh-Hans".
i18n: {
defaultLocale: 'en',
locales: ['en'],
},
presets: [
[
'@acid-info/logos-docusaurus-preset',
/** @type {import('@acid-info/logos-docusaurus-preset').PluginOptions} */
({
businessUnit: 'Waku',
theme: {
name: 'default',
options: {
customCss: [require.resolve('./src/css/custom.scss')],
},
},
docs: {
routeBasePath: '/about',
versions: {
current: {
label: 'current',
},
},
lastVersion: 'current',
},
}),
],
],
themes: ['@docusaurus/theme-mermaid'],
themeConfig:
/** @type {import('@acid-info/logos-docusaurus-preset').ThemeConfig} */
({
colorMode: {
defaultMode: 'dark',
disableSwitch: false,
},
navbar: {
items: [
{
type: 'search',
},
{
label: 'About',
to: '/about',
},
{
label: 'Blog',
href: '/',
},
{
label: 'Github',
href: 'https://github.com/status-im',
},
],
},
footer: {
copyright: 'Waku @2023<br/>All Rights Reserved.',
links: [
{
items: [
{
href: 'https://twitter.com/waku_org',
label: 'Twitter',
},
{
href: 'https://discord.gg/wc8gj26cwH',
label: 'Discord',
},
{
href: '/',
label: 'Docs',
},
{
href: 'https://github.com/status-im',
label: 'Github',
},
],
},
{
items: [
{
href: '/',
label: 'Contact us',
},
{
href: 'https://jobs.status.im/',
label: 'Work with us',
},
{
href: '/',
label: 'Privacy policy',
},
{
href: '/',
label: 'Temrs & conditions',
},
],
},
],
},
}),
}
module.exports = config

102
main.md
View File

@ -1,102 +0,0 @@
---
title: Main page
---
Waku is the communication layer for Web3. Decentralized communication that scales.
Private. Secure. Runs anywhere.
[Check the docs](https://js.waku.guide/)
## What is Waku?
Waku is a suite of privacy-preserving, peer-to-peer messaging protocols.
Waku **removes centralized third parties** from messaging,
enabling private, secure, censorship-free communication with no single point of failure.
Waku **provides privacy-preserving** capabilities,
such as sender anonymity,metadata protection and unlinkability to personally identifiable information.
Waku is designed for **generalized messaging**, enabling human-to-human, machine-to-machine or hybrid communication.
Waku runs everywhere: desktop, server, including **resource-restricted devices**, such as mobile devices and browsers.
## How does it work?
The first version of Waku had its origins in the Whisper protocol,
with optimizations for scalability and usability.
Waku v2 is a complete rewrite.
Its relay protocol implements pub/sub over libp2p, and also introduces additional capabilities:
1. Retrieving historical messages for mostly-offline devices.
2. Adaptive nodes, allowing for heterogeneous nodes to contribute.
3. Bandwidth preservation for light nodes.
This makes it ideal for running a p2p protocol on mobile, or in other similarly resource-restricted environments.
[Read the RFCs](https://rfc.vac.dev/spec/10/)
## Use Waku Now
You can
- [Run a Waku node](/operator)
- [Integrate Waku in your application](/platform)
- [Contribute to Waku](/contribute)
## Who is using Waku?
### Status
Status is a secure messaging app, crypto wallet, and Web3 browser built with state-of-the-art technology.
[Visit Status](https://status.im/)
### RAILGUN
RAILGUN is a privacy system for Ethereum that shields your assets in your own smart contract wallet.
RAILGUN uses Waku when offering the ETH gas payments to other users,
privately signaling fees and offers for gas payment relayers to keep the privacy & anonymity of your stablecoin & token transactions.
[Visit RAILGUN](https://railgun.org/)
### XMTP
XMTP is using Waku v2 for their open protocol and network for secure web3 messaging.
[Visit XMTP](https://xmtp.com/)
## Implementations
### nwaku
A nim implementation of the Waku v2 protocol.
Reference client and flagship implementation.
[nwaku repository](https://github.com/waku-org/nwaku)
### js-waku
A JavaScript implementation for browser environments.
[js-waku docs](https://js.waku.guide/)
### go-waku
A Go implementation for native integration in go applications,
C-Bindings are also available with C#, Swift and Kotlin examples.
[go-waku repository](https://github.com/waku-org/go-waku)
### @waku/react-native
Integrate Waku in your React Native app using go-waku for mobile.
[@waku/react-native repo](https://github.com/waku-org/waku-react-native)
### Waku Rust Bindings
Rust layer on top of go-waku C FFI bindings.
[waku-rust-bindings repo](https://github.com/waku-org/waku-rust-bindings)

View File

@ -1,12 +0,0 @@
---
title: Run a Waku Node
---
# Run a Waku Node
By running your own node you provide additional nodes for the Waku Network.
In the future, we intend to design and implement incentivization within some Waku protocols,
so you can be rewarded when supporting the network.
Check out [the nwaku guide for operators](https://github.com/waku-org/nwaku/tree/master/docs/operators) to run your own node.

View File

@ -1,28 +1,53 @@
{
"name": "@waku/waku.org",
"version": "1.0.0",
"main": "\"\"",
"repository": "git@github.com:waku-org/waku.org.git",
"author": "Franck Royer <franck@status.im>",
"license": "MIT OR Apache-2.0",
"name": "waku-docusaurus-template",
"version": "0.0.0",
"private": true,
"scripts": {
"fix": "prettier \"*.md\" \"./*.json\" --write",
"test": "run-p test:**",
"test:format": "prettier \"*.md\" \"./*.json\" --list-different",
"test:spelling": "cspell \"*.md\" config.json",
"prepare": "husky install"
},
"lint-staged": {
"*.{md,json}": "prettier --write"
"docusaurus": "docusaurus",
"start": "docusaurus start",
"build": "docusaurus build",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
"serve": "docusaurus serve",
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids",
"typecheck": "tsc"
},
"dependencies": {
"cspell": "^6.1.2",
"npm-run-all": "^4.1.5",
"prettier": "^2.8.3"
"@acid-info/logos-docusaurus-preset": "^1.0.0-alpha.4",
"@docusaurus/core": "2.4.1",
"@docusaurus/preset-classic": "2.4.1",
"@docusaurus/theme-mermaid": "^2.4.1",
"@emotion/react": "^11.11.0",
"@emotion/styled": "^11.11.0",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
"dotenv": "^16.0.3",
"prism-react-renderer": "^1.3.5",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"sass": "^1.62.1",
"tsdx": "^0.14.1"
},
"devDependencies": {
"husky": "^8.0.1",
"lint-staged": "^13.0.2"
"@docusaurus/module-type-aliases": "2.4.1",
"@tsconfig/docusaurus": "^1.0.5",
"typescript": "^4.7.4"
},
"browserslist": {
"production": [
">0.5%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"engines": {
"node": ">=16.14"
}
}

View File

@ -1,55 +0,0 @@
---
title: Use Waku in Your Application
---
# Use Waku in Your Application
Interested in using Waku to add private, secure, censorship-free communication
to your Application?
Here are your options:
## Desktop & Server Applications
### JSON RPC API
You can run your own nwaku (or go-waku) node alongside your application
and access the Waku network using the available JSON RPC API.
Docs:
- [Use nwaku's JSON RPC API](https://github.com/waku-org/nwaku/blob/master/docs/tutorial/jsonrpc-api.md)
### HTTP REST API
[Work is in progress](https://github.com/waku-org/nwaku/issues/727) to add an HTTP REST API to nwaku.
### Waku as a library
It is possible to integrate Waku as a library.
| Your Application's language | What to Use | Links |
| --------------------------- | ------------------------ | ----------------------------------------------------------------------------------- |
| Nim | nwaku as a library | [repository](https://github.com/waku-org/nwaku/tree/master/waku/v2) |
| Go | go-waku as a library | [tutorials](https://github.com/waku-org/go-waku#tutorials-and-documentation) |
| C/C++/etc | go-waku using C-Bindings | [C example](https://github.com/waku-org/go-waku/tree/master/examples/c-bindings) |
| C# | go-waku using C-Bindings | [C# example](https://github.com/waku-org/go-waku/tree/master/examples/waku-csharp) |
| Rust | Waku Rust Bindings | [Rust example](https://github.com/waku-org/waku-rust-bindings/tree/master/examples) |
## Browser Application
### JS-Waku
You can use js-waku to run a Waku node in the browser.
Docs: https://js.waku.guide/
## Mobile Application
You can run Waku on mobile phones, Android and iOS are supported:
| Your Application's language | What to Use | Links |
| --------------------------- | -------------------------- | ----------------------------------------------------------------------------------------- |
| Swift (iOS) | go-waku using C-Bindings | [Swift example](https://github.com/waku-org/go-waku/tree/master/examples/swift-waku) |
| Kotlin (Android) | go-waku using C-Bindings | [Kotlin example](https://github.com/waku-org/go-waku/tree/master/examples/android-kotlin) |
| Go | go-waku as a library | [tutorials](https://github.com/waku-org/go-waku#tutorials-and-documentation) |
| React Native | go-waku as a native module | [repository](https://github.com/waku-org/waku-react-native) |

View File

@ -1,244 +0,0 @@
**Waku's website Privacy Policy**
The goal of Waku is widespread adoption of the decentralized web. Our
challenge is achieving mass adoption while staying true to our
principles, which include privacy and transparency.
We believe privacy is the power to selectively reveal oneself to the
world. For us, its essential to protect privacy in communications.
Guided by our principles, Waku is designed to be a tool that allows you
to protect your privacy and to process as little personal data as
possible for the network to thrive.
In this Privacy Policy, we explain how Waku strives to only request data
thats useful and required, not to hold that data longer than necessary,
and to give you as much control as possible over your data.
**1**
**Who we are**
Whenever “Waku” or “we” is used in this Privacy Policy, were referring
to Status Research & Development GmbH, a Swiss company. Our contact
information can be found on our website and at the end of this Privacy
Policy.
**2**
**Our role in your privacy**
Waku is the communication layer for Web3. Decentralized communication
that scales. Private, secure, and it runs anywhere. Waku is being used
by (i) Waku Connect: The communication layer for Ethereum. A tech stack
enabling decentralized communication between DApps and people; (ii)
Status: Status is a secure messaging app, crypto wallet, and Web3
browser built with state of the art technology; and (iii) WalletConnect:
WalletConnect v2 is using Waku v2 for decentralized messaging
infrastructure.
If you decide to run a node or implement Waku, or submitting any
questions or comments through e-mail or on our social networks, or just
visiting our website, this Privacy Policy applies to you.
When Waku collects and processes personal data for our own purposes
(which we dont do often), such as Community support or to process your
input and/or feedback left on our (social media) pages, Waku acts as the
data controller of information. This means we determine how and why
your data are processed.
This means we process these data strictly on your behalf, and we will
never process the data for our own purposes.
Personal data means all information by which a person can be directly or
indirectly identified, in line with the definitions of the General Data
Protection Regulation (GDPR), the Swiss Federal Act on Data Protection
of June 19, 1992 (DPA) and its ordinances, and other relevant
legislation on the protection of personal data. When we refer to privacy
legislation in this Privacy Policy, we mean GDPR and all such relevant
legislation.
**3**
**How and why we use your data**
Under relevant privacy legislation, Waku can only use your data for
certain reasons and where we have a legal basis to do so. Beyond the
law, its our policy to store and process only those data that are
essential for community support and to respond to your input on our
social media pages and if necessary. Waku wont process or store any
data that we dont need, and in such case, we only store personal data
for the least amount of time needed for these purposes.
Here are the reasons why we process your data:
- Ethereum is a public blockchain
Ethereum is the community-run technology powering the cryptocurrency
ether (ETH) and thousands of decentralized applications (DApps). Waku is
the communication layer for Web3. Decentralized communication that
scales. Private, secure, and it runs anywhere.
The Ethereum public network is accessible to anyone in the world with an
internet connection. Anyone can read or create transactions on a public
blockchain and validate the transactions being executed. Therefore,
information you share on the Ethereum blockchain is public.
Please be aware that when sharing information on the ETH network it is
stored publicly and immutably.
- When you you decide to run a node or implement Waku, you are the
sole owner and possessor of your private keys and therefore
responsible for their storage or loss. This means that Waku doesnt
know which keys belong to you and doesnt process any personal data
in this respect.
This means, that your private keys are stored by you in the way you
decide, and Waku has no access to such private keys and doesnt process
any personal data in this respect.
- Data processed through external (social media) pages:
- **Personal Data:**
Information you make public when you leave a comment or otherwise post something on our external (social media) pages- For example, Waku has pages on the following (social media) platforms:Facebook, Twitter, Instagram, YouTube,Reddit, GitHub, Discuss and Discord.
- **Purpose(s):**
We may use these data to:- Contact you via our (social media) pages- Process your input and/or feedback left on our (social media) pagesWe will explicitly not gather any more information about you or link your social media account to your chat name, ENS name, or IP-address.
- **Legal basis:**
Legitimate Interest:- Necessary to get in touch with you regarding your message- Process your input, respond to feedbackOur external (social media) pages are also controlled by the platform itself.Please check the social media privacy policies,to see how each platform handles your personal data.
- **Stored:**
As long as your message is available on the pages concerned,in accordance with the pages privacy policy,or until you delete the message.
- Community support
Waku is an open-source project made by people all over the world. We
have many ways to stay in touch, including via email and social media
platforms.
Data processed when you contact us:
- **Personal Data:**
Your chat name or ENS name and all (personal) data you share with using your message on social media platforms.- Your email address when you send us an emailPlease note: as a rule, your chat name is generated by you or on your own devices.Your chat name will only beKnown by us if you decide to contact us.
- **Purpose(s):**
We use these data to:Contact you about your messageProvide you information and/or support.
- **Legal basis:**
Consent and Legitimate Interest :- Necessary to contact you about your message to provide you the support you requested- You give your consent to being contacted by reaching out to us.
- **Stored:**
As long as needed to resolve your concern.
**4**
**How we work with third party processors**
Waku wont share your personal data with third parties.
However, Waku may engage (sub) processors that we trust to carry out the
processing of personal data on our behalf. We only provide personal data
to (sub) processors when necessary for them to execute the services they
provide to us. Weve established contractual agreements with all our
(sub) processors ensuring that they may only process the personal data
collected and processed by us within the scope of the contractual
agreement and under no circumstances for other purposes.
As Data Controller: Waku may use (sub) processors to assist us in our
services provided as data controller. Our use of processors is under
contractual agreement and in accordance with privacy legislation.
As Data Processor: Waku may also use sub-processors to assist us in our
services. Our use of sub-processors is under contractual agreement and
in accordance with privacy legislation.
**5**
**Exporting data outside the European Union**
Waku may transmit personal data to parties outside the European Union,
if one of our (sub) processors is established outside the European
Union. Personal data will only be processed in countries or by parties
that provide an adequate level of protection in accordance with European
standards. The transmission of data outside the European Union will
always happen in conformity with privacy legislation.
**6**
**Were serious about data security**
Waku protects the personal data we process from unauthorized and
unlawful access, change, disclosure, use, and destruction. For example,
we take the following technical and organizational security:
We encrypt many of our services using SSL and other security measures.
We review our information collection, storage, and processing practices
and handbooks, from time to time, to guard our systems against
unauthorized access.
We restrict access to personal data to our contributors and all other
parties we work with on a need-to-know basis, subject to strict
contractual confidentiality obligations.
We perform periodic internal security audits.
**7**
**A quick bite on cookies**
Cookies are necessary for the technical operation of our website. When
we have to use cookies, we choose cookies that dont hold any
user-specific information and are essential for the operation of the
website.
**8**
**This Privacy Policy might change**
We might modify or replace any part of this Privacy Policy. Please check
our website periodically for any changes. The new Privacy Policy will be
effective immediately upon posting to our website.
Your choices and rights
As explained throughout this Privacy Policy, Waku collects very little
information about our users. As a result, it might be difficult to
verify whether a request regarding privacy rights has actually been
submitted by the person concerned.
As laid out in relevant privacy legislation, you have the right to:
- Ask us to correct or update your personal data (where possible);
- Ask us to remove your personal data from our systems;
- Ask us for a copy of your Data processed, which may also be
transferred to another data controller at your request;
- Withdraw your consent to process your personal data (only if consent
was asked for a processing activity), which only affects processing
activities that are based on your consent and doesnt affect the
validity of such processing activities before you have withdrawn
your consent;
- Object to the processing of your personal data;
- File a complaint with the Federal Data Protection and Information
Commissioner (FDPIC), if you believe that your personal data has
been processed unlawfully.
Status Research & Development GmbH
> Baarerstrasse 10
>
> 6302 Zug
>
> Switzerland
You can message us directly in any of our social media platforms. Keep
in mind, any information shared in the public channels or as a comment
or post in any of our social networks wont be private. When personal
data is shared in this way, it will not be protected by Waku or covered
by this Privacy Policy. To contact us privately, please email us at
legal@status.im.
This document is: Waku_PP_June2022.

View File

@ -0,0 +1 @@
export * from '@acid-info/logos-docusaurus-theme/lib/client/components/mdx'

7
src/css/custom.scss Normal file
View File

@ -0,0 +1,7 @@
:root {
}
body,
html {
overflow-x: hidden;
}

107
src/pages/index.mdx Normal file
View File

@ -0,0 +1,107 @@
import {
Hero,
HeroTitle,
HeroDescription,
HeroActions,
HeroAction,
CallToActionSection,
FeatureList,
Showcase,
HeroModel,
} from '../components/mdx'
<Hero size="large">
<HeroInfo>
<HeroTitle>The web3 managing standard</HeroTitle>
{/*
<HeroDescription>
Waku is a decentralized communications network that enables private, censorship-resistant messaging for web3 applications.
</HeroDescription>
* */}
<HeroDescription>
WAKU IS A DECENTRALIZED COMMUNICATIONS NETWORK.
</HeroDescription>
<HeroActions>
<HeroAction href="https://docs.waku.org" target="_blank">
Build on Waku
</HeroAction>
<HeroAction variant="filled" href="https://docs.waku.org" target="_blank">
Run Waku
</HeroAction>
</HeroActions>
</HeroInfo>
<HeroModel
modelUrl="/hero/bulanding-generic-hand-01.glb"
layout="floating"
renderer="ascii"
initialX={-0.9831336272264352}
initialY={-0.14592188008227222}
rotateSpeed={0.1}
asciiConfig={{
characters: ' .,:;ox%# ||| ||| waku @',
}}
/>
</Hero>
<FeatureList
id="features"
features={[
{
title: 'Private',
description:
'Waku leverages cutting-edge zero-knowledge encryption to ensure all messages and associated metadata benefit from rock-solid privacy guarantees.',
},
{
title: 'Runs anywhere',
description:
"Waku's modularity enables developers to integrate Waku protocols according to their use case and users' hardware restraints",
},
{
title: 'Scalable',
description:
'Waku aims to scale to support millions of users by dividing the flow of messages into shards—not every node needs to forward every message—while discovery protocols ensure users connect to the nodes serving relevant messages.',
},
{
title: 'Secure',
description:
"Waku's native incentivization mechanisms ensure a wide node distribution, making it highly secure and strengthening its privacy assurances.",
},
]}
/>
<CallToActionSection
title="User adoptions"
description="Waku has brought private, censorship-resistant communications to several notable web3 DApps, decentralizing their messaging components:"
label="Decentralize your DApp"
href="/join"
/>
<Showcase
id="showcase"
items={[
{
name: 'XMTP',
logo: '/showcase/xmtp-mark-white.svg',
description:
"Inter-blockchain account messaging protocol XMTP uses Waku's Go implementation to facilitate communication between nodes in its currently permissioned network.",
},
{
name: 'Status',
logo: '/showcase/status-mark-white.svg',
description:
"Waku powers many of the Status super app's features, including its private messaging.",
},
{
name: 'Railgun',
logo: '/showcase/railgun-mark-white.svg',
description:
'The privacy-focused DeFi protocol Railgun anonymizes Ethereum transactions with Waku. ',
},
]}
/>
<CallToActionSection
title="Join the community to discover what Waku can bring to your DApp"
label="Decentralize your DApp"
href="/join"
/>

1
src/pages/test.mdx Normal file
View File

@ -0,0 +1 @@
# hello

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
static/hero/bust-hi.glb Normal file

Binary file not shown.

Binary file not shown.

BIN
static/hero/logos.glb Normal file

Binary file not shown.

View File

@ -0,0 +1,4 @@
<svg width="58" height="58" viewBox="0 0 58 58" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="58" height="58" rx="29" fill="white"/>
<path d="M23 39V19H29.737C31.2013 19 32.4164 19.2669 33.3823 19.8008C34.3544 20.3346 35.0804 21.0736 35.5603 22.0176C36.0402 22.9551 36.2802 24.0391 36.2802 25.2695C36.2802 26.4935 36.0371 27.571 35.5511 28.502C35.0712 29.4264 34.3452 30.1458 33.3731 30.6602C32.4072 31.1745 31.192 31.4316 29.7278 31.4316H24.6243V28.834H29.4693C30.3922 28.834 31.1428 28.694 31.7212 28.4141C32.3056 28.1341 32.7332 27.7272 33.004 27.1934C33.2747 26.6595 33.41 26.0182 33.41 25.2695C33.41 24.5143 33.2716 23.86 32.9947 23.3066C32.724 22.7533 32.2964 22.3301 31.7119 22.0371C31.1336 21.7376 30.3738 21.5879 29.4324 21.5879H25.8517V39H23ZM32.3303 29.9766L37 39H33.7515L29.174 29.9766H32.3303Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 845 B

View File

@ -0,0 +1,3 @@
<svg width="58" height="58" viewBox="0 0 58 58" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M33.6479 28.7455C30.3452 28.9358 28.2754 28.1665 24.9723 28.3573C24.1531 28.4033 23.3396 28.522 22.5412 28.7121C23.0288 22.6037 27.3519 17.2602 33.2306 16.9205C36.8381 16.7123 40.4439 18.9397 40.6394 22.5555C40.8319 26.1094 38.1221 28.487 33.6483 28.7451L33.6479 28.7455ZM24.779 41.24C21.323 41.4352 17.8692 39.3501 17.6817 35.9665C17.4972 32.6404 20.0937 30.4152 24.3794 30.1736C27.543 29.9953 29.5261 30.7157 32.6897 30.5369C33.4741 30.4939 34.2533 30.3828 35.0186 30.2048C34.5523 35.9214 30.411 40.9226 24.779 41.24ZM28.9999 1.4449C13.7812 1.44446 1.44434 13.7812 1.44434 29C1.44434 44.2189 13.7812 56.5556 28.9999 56.5556C44.2186 56.5556 56.5554 44.2184 56.5554 29C56.5554 13.7816 44.2186 1.44446 28.9999 1.44446" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 885 B

View File

@ -0,0 +1,10 @@
<svg width="57" height="58" viewBox="0 0 57 58" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_603_7836)">
<path d="M0 29C0 12.9837 12.8112 0 28.6147 0C44.4079 0 56.61 12.7424 56.9815 28.8744C56.9815 34.0217 55.2473 38.3527 50.9119 42.4328C47.2482 45.8808 41.0019 46.3874 36.4191 43.8139C33.1479 41.9015 30.627 37.8289 28.4908 34.8377L24.5268 40.9892H15.9796L24.0314 28.8739L16.2274 16.948H25.0223L28.5528 23.0996L32.0211 16.948H40.8782L32.8265 28.8744C32.8265 28.8744 36.6665 34.8377 38.7722 37.1602C40.8782 39.4828 44.7182 39.5455 47.1955 37.0346C49.9195 34.274 50.5292 32.0759 50.5403 28.8744C50.5828 16.4828 40.8709 6.52813 28.6147 6.52813C16.3687 6.52813 6.44139 16.5891 6.44139 29C6.44139 41.4108 16.3687 51.472 28.6147 51.472C30.3085 51.472 31.932 51.3277 33.5077 50.9696L34.8704 57.3096C32.6282 57.819 30.8169 58 28.6147 58C12.8112 58 0 45.0162 0 29Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_603_7836">
<rect width="57" height="58" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1015 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

BIN
static/subpages/history.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

View File

@ -1,161 +0,0 @@
**Waku website** **Terms of Use**
Waku strives to be a secure communication tool that upholds human rights. Designed to enable the free flow of information, protect the right to private, secure conversations, and promote the sovereignty of individuals.
Waku is the communication layer for Web3. Decentralized communication that scales. Private, secure, and it runs anywhere.
These Terms of Use ("ToU") are a contract between you and Waku. If you decide to run a node or implement Waku, or submitting any questions or comments through e-mail or on our social networks, or just visiting our website you agree to these ToU. If you do not agree to these ToU you must not perform any of the above actions.
**Who we are**
Whenever "Waku" or "we" is used in this ToU, we're referring to Status Research & Development GmbH, a Swiss company. Our contact information can be found on our website and at the end of this ToU.
These ToU are designed to reflect our principles and goal for mass adoption, while providing important legal protections for Waku and the Waku community of users.
Waku removes centralized third parties from messaging, enabling private, secure, censorship-free communication.
Waku is designed for generalized messaging, enabling both human-to-human or machine-to-machine communication.
Waku is an open-source software, so if you decide to run a Waku node or implement Waku or submitting any questions or comments through e-mail or on our social networks, or just visiting our website, this ToU applies to you.
You'll never be asked for a phone number, email address (unless you send us an e-mail), bank account, or any other personal information when running a Waku node or implementing Waku on your own platform.
When you you decide to run a node or implement Waku, you are the sole owner and possessor of your private keys and therefore responsible for their storage or loss. This means that Waku doesn't know which keys belong to you and doesn't process any personal data in this respect. Only you have access to your private keys, so only you're responsible for keeping them safe.
**We care about your privacy**
Waku is an open-source, peer-to-peer protocols and strong end-to-end encryption to protect your users. We don't monetize Waku implementations, not even when you decide to run a Waku node. You are entirely responsible for the relationship you have with your users when implementing Waku. Be aware that information posted to a blockchain is public, therefore, you're responsible for your activities.
We believe in the sovereignty of individuals. As a platform that stands for the cause of personal liberty, we aim to maximize social, political, and economic freedoms. This also means you're fully responsible for all activities that occur when you run a Waku node or implement Waku.
Waku is encrypted end-to-end by default, to help ensure your privacy. However, your privacy may be compromised if you use third party services that you decide to integrate or use. Our full terms regarding third party services are described below.
Learn more about how seriously we protect your data by reading our Privacy Policy.
You're entirely responsible for running a Waku node or implementing Waku, including any harm resulting from that implementation, and Waku shall not be liable for any acts or omissions by you.
When you run a Waku node or implement Waku, you are entirely responsible for the secure storage of the private keys as no one else may have access to such private keys or seed phrase. This means that Waku doesn't know which keys belong to you and doesn't process any personal data in this respect. Waku will never have access to or control over your keys or wallet assets, as Waku is not a custodian.
You're responsible for taking precautions to protect yourself and your devices, implementations and infrastructure from viruses and other harmful content. You're also responsible for any carrier or connection charges, fees, and taxes associated with the devices on which you run a Waku node or implement Waku.
To run a Waku node or implementing Waku, you must be fully able and competent to agree to these ToU. To run a Waku node or implementing Waku without parental permission, you must meet the minimum age requirements in your country of residence.
When running a Waku node or implementing Waku, you may be able to access, use, or interact with third party products and services, such as websites, blockchain wallet transactions, apps and DApps, support services, cloud services and group chat community spaces, among others.
When you use such third party service, please be aware that they are provided entirely by third party service providers and their terms and conditions, including privacy policies, govern your use of those services, and Waku shall not be liable for your use of or activities on or with any third party service.
**Waku** **is open-source**
The software we create is a public good. The Waku source code is made available via free and open-source licenses, for anyone to share, modify, and benefit from (according to the applicable license). We believe in permission-less participation. We enable free flow of information, and no content is under surveillance.
When running a Waku node or implementing Waku, we can't review, and won't review your activity nor your users' activity, and therefore, we can't be responsible for any user's content. Waku aims to provide the tools for user communities to voluntarily self-regulate their own content.
When someone decides to implement Waku, you may view content that's offensive, indecent, or otherwise objectionable; content containing technical inaccuracies, typographical mistakes, and other errors; and material that violates others' rights, including privacy and intellectual property rights. Waku doesn't endorse any user content or activity and disclaims any responsibility for any harm resulting from user content or activities.
For an explanation about how Waku has no means of removing users or user generated content, see the section on decentralization and the Waku protocol below.
**Our view on censorship**
Please limit certain uses
We strive for complete openness and symmetry of information within the Waku organization and with our community. We ask you to respect the Waku community too.
You agree to use Waku in a way that doesn't harm or violate the rights of Waku, other Waku users, or any third party in any way.
You agree that you won't, and you won't assist others to: (i) gain or try to gain unauthorized access to any Ethereum address; (ii) disrupt the integrity or performance of Waku; (iii) create nodes through unauthorized means or prohibited locations; (iv) install any viruses, worms, malware, Trojan horses, or other harmful or destructive code or content; (v) use spam, data mining, or other unsolicited promotional methods, machine generated content, or unethical or unwanted commercial content; (vi) engage in phishing, spoofing, or similar fraudulent acts; (vii) spread misinformation or misleadingly impersonate another person or company; (viii) stalk, bully, harass or abuse another individual in any way; (ix) violate the privacy rights of others; or (x) copy, distribute, sell, license, create derivative works from, or in any other way exploit any copyrighted material, trademarks, or any intellectual property rights of others.
**Waku** **is decentralized**
Waku aims to minimize centralization across the software and the organization itself by maximizing the number of physical computers composing the network, and maximizing the number of individuals who have control over such system(s).
We provide the tools to run a Waku node or implementing Waku, just as Chrome/Safari is a generic web browser for connecting to the Web, and just as Google/Apple doesn't control the content on the Web, Waku does not control the actions or content posted by its users.
**Our services may change**
As Waku is an open-source, community-driven project, users can both request and contribute to feature development. Any service or implementation created using Waku is the responsibility of its developer or its implementer.
**We'll keep you updated**
From time to time, we may provide updates to Waku in order to enable new features and enhanced functionality, however, the foregoing does not represent an obligation to make any modifications to Waku. Like any technology, Waku is subject to failures, or may be intentionally or unintentionally interrupted, including for maintenance, upgrades, or network or equipment failures.
When you use any third party service, their terms and conditions, including privacy policies, govern your use of those services, and Waku shall not be liable for your use of or activities on or with any third party service.
**Respect the** **Waku** **brand**
We create software incentivized to continue to exist and improve, without the stewardship of a single entity or any of the current team members. The Waku community has worked hard to build a brand and goodwill that will also continue to exist and improve over time.
We love to see creative work by users from the Waku community, but please let us know in advance if you want to use trademarks, logos, or graphics that are modified from our standard colors and designs. If you write articles or blogs, create websites, or talk about Waku, make sure it's clear you aren't speaking for, on behalf of, or under endorsement by Waku.
To request permission to use our copyrighted material or trademarks, such as logos, please contact marketing@status.im.
**We may change these** **ToU**
We may modify or replace any part of these ToU. You're responsible for checking our website periodically for any changes. As long as you continue to run a Waku node or use Waku in any way it means that you accept the ToU and any further changes.
**Waku** **makes no warranties**
Whenever used in these ToU, "representatives" means Waku affiliates, officers, employees, partners, agents, core contributors, and any other representatives.
Waku is provided on an "as is" basis, and if you decide to run a node or implementing Waku you do so at your own discretion and risk.
Waku disclaims all warranties of any kind, express or implied, including without limitation the warranties of merchantability, fitness for a particular purpose, and non-infringement. You understand and agree that Waku doesn't have control over, doesn't warrant, and has no duty to take any action: (i) that any information provided by Waku is complete, accurate, or useful; (ii) if the network status is not operational or have failures, interruptions, errors or delays, (iii) regarding failure of hardware, software, or Internet connections; (iv) that Waku will be secure, safe, or free from viruses or other malicious code being introduced; (v) that third parties may obtain unauthorized access to your information stored, such as your wallet address, private key, seed phrase, or personal data; (vi) regarding changes to or errors in the Ethereum network; (vii) regarding risks related to cryptographic and cryptoeconomic systems, virtual currencies, or any other tokens, such as change in transaction costs; (viii) regarding legal or regulatory risk, inquiry, or action; (ix) regarding any custodial or fiduciary risk or responsibility, of which Waku and its representatives have none; or (x) regarding third party content accessed through Waku.
**Risks you should know about**
You represent and warrant that you understand the inherent risks associated with cryptographic and cryptoeconomic systems and have an understanding of the usage and intricacies of virtual currency and tokens (such as Ether (ETH)), smart contract based tokens (such as ERC 20), and blockchain-based systems. You acknowledge and agree that: (i) Waku and its representatives aren't responsible for the underlying protocols of open source blockchain based networks, which may be subject to sudden changes in operating rules (such as forks), (ii) such changes may materially affect Waku, (iii) any third party developments or implementations and (iv) Waku may, in our sole discretion, decide not to support a forked network. Waku and its representatives aren't responsible whatsoever for any underlying software protocols, whether forked or not.
You acknowledge and understand that cryptographic and cryptoeconomic systems are an emerging technology with inherent risks. For example, advances in technology, such as cryptography or quantum computers, could result in the theft or loss of your tokens or wallet assets or access. While security is at the forefront of our priorities (which is why many functions on Waku are privacy-mode by default) and Waku intends to continuously update its security measures, Waku can't and doesn't guarantee full security of Waku network, its underlying protocols, or your tokens or wallet assets or access. Waku has no ongoing duty to alert you to potential security risks, but you can check our website or social media channels for updates when available.
**Releases you should read closely**
You release Waku and its representatives from all liability related to any claim, cause of action, controversy, dispute, loss, or damages, known or unknown, related to, arising from, or in any way connected with: (i) user error, such as forgotten passwords, incorrectly constructed transactions, or mistyped virtual currency addresses; (ii) delays, server failure, or data loss; (iii) unauthorized access to your account, or your private data; (iv) bugs or other errors in the Waku network and code or any system; (v) any unauthorized third party activities, including without limitation the use of viruses, phishing, brute forcing, or other means of attack against the Waku network; (vi) risks associated with cryptographic and cryptoeconomic systems, including use or utility of tokens; (vii) fluctuations in transaction costs; (viii) loss of wallet assets; and (ix) your use of or activities on any third party service.
**Waku** **liability is limited**
In no event will Waku or its representatives be liable under any contract, negligence, strict liability, or other legal or equitable theory for any lost profits, cost of procurement for substitute services, or any special, incidental, or consequential damages related to, arising from, or in any way connected with these ToU, or your use of any and all services on the Waku network, including without limitation use of tokens, even if Waku or its representatives have been advised of the possibility of such damages. These disclaimers and limitations of liability will apply to the maximum extent permitted by applicable law.
**You indemnify** **Waku** **against claims**
You agree to indemnify and hold harmless Waku and its representatives from and against any and all claims and expenses, including attorneys' fees, arising out of your use of Waku or any Waku system or code, including without limitation your violation of these ToU.
**Where** **Waku** **operates**
Status Research & Development GmbH is a Swiss company that conducts global marketing campaigns but doesn't conduct business activities within the United States of America, District of Columbia, Puerto Rico, the U.S. Virgin Islands, and all other U.S. territories and possessions, as well as all Swiss Embargoed Countries. If you decide to run a Waku node or to implement Waku, including without limitation the use of any kind of cryptocurrencies or any kind of tokens, shall not subject Waku or its representatives to jurisdiction in any such prohibited area under any circumstance. Waku isn't intended for distribution in any country where such distribution would subject Waku to regulations or jurisdiction of a foreign court, and we reserve the right to limit Access to Waku website in any country.
**How disputes are resolved**
Whenever used in these ToU, "dispute" has the broadest meaning enforceable by law and includes any claim you make against or controversy you may have with Waku and its representatives.
**Please read this section carefully!**
We usually prefer arbitration because we believe arbitration is less drama-filled than litigation and meets our principle of solving problems in the most effective way possible at lower economic costs.
You agree to the following arbitration clause, which is essentially a waiver of your right to litigation and all opportunity to be heard by a judge. You understand that court review of an arbitration award is limited. You waive all your rights to a jury trial (if any) in any and all jurisdictions.
Unless otherwise agreed to in writing by you and Waku, any dispute related to, arising from, or in any way connected with these ToU, or your use of any and all Waku systems, in an amount greater than Seven Hundred Fifty Thousand Euros (750,000 EUR) shall be referred to and finally resolved by arbitration administered by the Swiss Chambers' Arbitration Institution in accordance with the Swiss Rules of International Arbitration for the time being in force, which rules are deemed to be incorporated herein by reference, and the arbitral decision may be enforced in any court. The seat of the arbitration shall be Zug, Switzerland (via video conference virtual/online methods whenever possible), the tribunal shall consist of one arbitrator, all proceedings shall be kept confidential, and the language of the arbitration shall be English.
Any dispute not subject to the paragraph above will be brought exclusively in the courts of Zug, Switzerland, and you submit tosuchexclusive jurisdiction and venue.
Regardless of any applicable statute of limitations, any claim must be brought within one year after the claim arose or the time when you should have reasonably known about the claim.
You waive the right to participate in a class action lawsuit or a classwide arbitration against Waku or its representatives.
Swiss law governs these ToU and any disputes between you and Waku, whether in court or arbitration, without regard to conflict of laws provisions.
**What happens if you stop** **running a node or using the Waku network**
If, at any time, you no longer agree to these ToU, you must stop running a Waku node or the Waku implementation in all available instances or environments. Be aware that, even after the node is no longer running or the implementation is suspended or terminated, blockchain transactions you made may remain recorded on the blockchain, and smart contracts you deployed to a blockchain may remain deployed.
Even after you stop running a node or the implementation was suspended or terminated, all provisions of these ToU which by their nature should survive termination shall survive termination, including without limitation warranty disclaimers, indemnity, limitations of liability, dispute resolution, and governing law.
**About these** **ToU**
These ToU cover the entire agreement between you and Waku regarding the Waku network.
The captions and headings identifying sections and subsections of these ToU are for reference only and don't define, modify, expand, limit, or affect the interpretation of any provisions of these ToU. We provided illustrative graphics and links to websites for your information and education. Unless otherwise specifically indicated, neither those resources nor the information they contain are included in or part of these ToU.
If any part of these ToU is held invalid or unenforceable, that part will be severable from these ToU, and the remaining portions will remain in full force and effect. If we fail to enforce any of these ToU, that doesn't mean we've breached them or waive the right to enforce them.
If you have specific questions about these ToU, please contact us at legal@status.im.
This document is :Waku_ToU_June2022.

4
tsconfig.json Normal file
View File

@ -0,0 +1,4 @@
{
// This file is not used in compilation. It is here just for a nice editor experience.
"extends": "@tsconfig/docusaurus/tsconfig.json"
}

13799
yarn.lock

File diff suppressed because it is too large Load Diff