Waku node and protocol.
Go to file
Sanaz Taheri Boshrooyeh 50a54cb4ee
Enabling pubsub topic filter in history queries (#492)
* replaces topics with seq of ContentFilters

* update topics to contentFilter

* updates the contentFilter  structure

 one content  topic per content filter instead of a sequence of topics

* updates store json rpc api

* renames ContentFilter to HistoryContentFilter

* unit test for a query with several content filters

* makes shortcut for store api

* updates chat2

* clean up

* renames topic to contentTopic

* adds pubsub topic to the history query

updates message store interface to return the pubsub topic
updates waku message store implementation
updates database schema to hold pubsub topi per waku message

* clarifies the use of content topic in store api

* clarifies the use of contentTopic in the init method of HistoryContentFilter

* simplifies the test and add comments

* lowers the field number of pubsub topic in historyQuery  protobuf

* captures an empty contentFilter case

* test pubsub topic filter for the entire history and no message match

* demoves duplicates

* adds TODO

* fix a broken comment line

* updates waku store codec

* swaps the order of pubsub topic and content topic in protobuf

* Update waku/v2/protocol/waku_store/waku_store_types.nim

Co-authored-by: Oskar Thorén <ot@oskarthoren.com>

* updates the pubsub topic to the default value

* bumps protocol id

* moves the comment close to IndexedWakuMessage

* adds checks to the store put method

* makes table title a constant variable and retitles the table to Message

* updates the changelog

* minor update

* minor

* beta2 to beta3

* minor

Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
2021-04-27 16:52:24 -07:00
.github/workflows Update docs.yml 2020-12-21 12:34:30 +01:00
docs Implement graceful shutdown for `wakunode2` and `chat2` (#490) 2021-04-15 10:18:14 +02:00
examples Fix filter notifications (#501) 2021-04-22 15:45:13 +02:00
metrics Fixed grafana dashboard to view Waku v2 metrics (#357) 2021-02-03 17:49:34 +02:00
tests Enabling pubsub topic filter in history queries (#492) 2021-04-27 16:52:24 -07:00
vendor Bump chronos and fix exception tracking issues (#436) 2021-03-26 10:52:04 +01:00
waku Enabling pubsub topic filter in history queries (#492) 2021-04-27 16:52:24 -07:00
.dockerignore add a Dockerfile for creating nim-waku images 2020-05-27 12:51:20 +02:00
.gitignore Ignore .update.timestamp file (#486) 2021-04-13 12:29:12 +08:00
.gitmodules Bump chronos and fix exception tracking issues (#436) 2021-03-26 10:52:04 +01:00
CHANGELOG.md Enabling pubsub topic filter in history queries (#492) 2021-04-27 16:52:24 -07:00
Dockerfile Fix Docker image - missing librln.so file (#406) 2021-03-04 17:55:27 +02:00
Jenkinsfile ci: add MAKE_TARGET parameter, remove default from IMAGE_TAG 2020-12-04 11:18:31 +01:00
LICENSE-APACHEv2 Set up repo to make use of nimbus-build-system 2020-05-01 11:29:16 +02:00
LICENSE-MIT Set up repo to make use of nimbus-build-system 2020-05-01 11:29:16 +02:00
Makefile Adds rln as a submodule (#402) 2021-03-02 12:57:48 -08:00
README.md Folder restructure (#274) 2020-11-17 17:34:53 +08:00
config.nims bump vendor/nimbus-build-system (#36) 2020-07-01 09:43:23 +02:00
env.sh Set up repo to make use of nimbus-build-system 2020-05-01 11:29:16 +02:00
waku.nimble Make wakunode2 and wakunode2 default to DEBUG log (#462) 2021-04-08 13:40:49 +08:00

README.md

nim-waku

Introduction

The nim-waku repository implements Waku v1 and v2, and provides tools related to it.

  • A Nim implementation of the Waku v1 protocol.
  • A Nim implementation of the Waku v2 protocol.
  • CLI applications wakunode and wakunode2 that allows you to run a Waku v1 or v2 node.
  • Examples of Waku v1 and v2 usage.
  • Various tests of above.

For more details on Waku v1 and v2, see their respective home folders:

How to Build & Run

These instructions are generic and apply to both Waku v1 and v2. For more detailed instructions, see Waku v1 and v2 home above.

Prerequisites

  • GNU Make, Bash and the usual POSIX utilities. Git 2.9.4 or newer.
  • PCRE

More information on the installation of these can be found here.

Wakunode

# The first `make` invocation will update all Git submodules.
# You'll run `make update` after each `git pull`, in the future, to keep those submodules up to date.
make wakunode1 wakunode2

# See available command line options
./build/wakunode --help
./build/wakunode2 --help

# Connect the client directly with the Status test fleet
./build/wakunode --log-level:debug --discovery:off --fleet:test --log-metrics
# TODO Equivalent for v2 

Waku Protocol Test Suite

# Run all the Waku v1 and v2 tests
make test

Examples

Examples can be found in the examples folder. For Waku v2, there is a fully featured chat example.