From 3ac8029b1fed6629ed258ebdb0c5d0157edff9ff Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Wed, 1 Oct 2025 17:05:18 +1000 Subject: [PATCH] move research folder under learn: side bar and buttons --- docs/build/javascript/configure-discovery.mdx | 2 +- docs/build/javascript/index.md | 2 +- docs/landing.md | 1 - docs/learn/concepts/static-peers.md | 2 +- docs/learn/research/index.md | 4 +- docs/learn/waku-vs-libp2p.md | 2 +- .../js-waku/migration_v0.026_0.027.md | 201 ------------------ docusaurus.config.js | 6 - fetch-content.js | 4 +- sidebars.js | 44 ++-- 10 files changed, 40 insertions(+), 228 deletions(-) delete mode 100644 docs/migrations/js-waku/migration_v0.026_0.027.md diff --git a/docs/build/javascript/configure-discovery.mdx b/docs/build/javascript/configure-discovery.mdx index a1a1a39..67b8f37 100644 --- a/docs/build/javascript/configure-discovery.mdx +++ b/docs/build/javascript/configure-discovery.mdx @@ -13,7 +13,7 @@ If you do not set up a bootstrap node or discovery mechanism, your node will not ::: :::tip -Until [node incentivisation](/learn/research#prevention-of-denial-of-service-dos-and-node-incentivisation) is in place, you should [operate extra nodes](/#run-a-waku-node) alongside the ones provided by the Waku Network. When running a node, we recommend using the [DNS Discovery and Static Peers](#configure-dns-discovery-and-static-peers) configuration to connect to both the Waku Network and your node. +Until [node incentivisation](/learn/research#prevention-of-denial-of-service-dos-and-node-incentivisation) is in place, you should [operate extra nodes](/run-node) alongside the ones provided by the Waku Network. When running a node, we recommend using the [DNS Discovery and Static Peers](#configure-dns-discovery-and-static-peers) configuration to connect to both the Waku Network and your node. ::: ## Default bootstrap method diff --git a/docs/build/javascript/index.md b/docs/build/javascript/index.md index 8175337..be4f33d 100644 --- a/docs/build/javascript/index.md +++ b/docs/build/javascript/index.md @@ -108,7 +108,7 @@ Have a look at the quick start guide and comprehensive tutorials to learn how to | [Manage Your Filter Subscriptions](/build/javascript/manage-filter) | Learn how to manage [filter subscriptions](/learn/concepts/protocols#filter) and handle node disconnections in your application | :::tip -Until [node incentivisation](/learn/research#prevention-of-denial-of-service-dos-and-node-incentivisation) is in place, you should [operate extra nodes](/#run-a-waku-node) alongside the ones provided by the Waku Network. When running a node, we recommend using the [DNS Discovery and Static Peers](/build/javascript/configure-discovery#configure-dns-discovery-and-static-peers) configuration to connect to both the Waku Network and your node. +Until [node incentivisation](/learn/research#prevention-of-denial-of-service-dos-and-node-incentivisation) is in place, you should [operate extra nodes](/run-node/) alongside the ones provided by the Waku Network. When running a node, we recommend using the [DNS Discovery and Static Peers](/build/javascript/configure-discovery#configure-dns-discovery-and-static-peers) configuration to connect to both the Waku Network and your node. ::: ## Get help and report issues diff --git a/docs/landing.md b/docs/landing.md index fc79adc..7d84827 100644 --- a/docs/landing.md +++ b/docs/landing.md @@ -11,7 +11,6 @@ Waku is a family of robust, censorship-resistant, peer-to-peer communication pro Start Building Run a Node Learn More - Explore Research diff --git a/docs/learn/concepts/static-peers.md b/docs/learn/concepts/static-peers.md index 94f847e..a4849c3 100644 --- a/docs/learn/concepts/static-peers.md +++ b/docs/learn/concepts/static-peers.md @@ -4,7 +4,7 @@ hide_table_of_contents: true displayed_sidebar: learn --- -Waku applications have the flexibility to embed bootstrap node addresses directly into their codebase. Developers can either use static peers operated by Status or [run a node](/#run-a-waku-node). +Waku applications have the flexibility to embed bootstrap node addresses directly into their codebase. Developers can either use static peers operated by Status or [run a node](/run-node). #### Pros diff --git a/docs/learn/research/index.md b/docs/learn/research/index.md index d2ca884..10c32de 100644 --- a/docs/learn/research/index.md +++ b/docs/learn/research/index.md @@ -26,9 +26,9 @@ You can also read more about the ongoing challenges the Waku team is working on ## Research resources -[**Research and Studies**](./research-and-studies): Protocol simulations and theoretical analysis to support the design of Waku protocols. The protocol definitions are on the [Waku RFCs](https://rfc.vac.dev/waku) website. +[**Research and Studies**](/learn/research/research-and-studies/incentivisation): Protocol simulations and theoretical analysis to support the design of Waku protocols. The protocol definitions are on the [Waku RFCs](https://rfc.vac.dev/waku) website. -[**Benchmarks**](./benchmarks): Results of implementations and engineering-related benchmarks for Waku clients. +[**Benchmarks**](/learn/research/benchmarks/test-results-summary): Results of implementations and engineering-related benchmarks for Waku clients. ## Research papers diff --git a/docs/learn/waku-vs-libp2p.md b/docs/learn/waku-vs-libp2p.md index 9d8e168..e4fd5b4 100644 --- a/docs/learn/waku-vs-libp2p.md +++ b/docs/learn/waku-vs-libp2p.md @@ -8,7 +8,7 @@ Since Waku is built on top of libp2p, they share a lot of concepts and terminolo ## Waku as a service network -Waku intends to incentivise mechanisms to run nodes, but it is not part of libp2p's scope. Additionally, users or developers do not have to deploy their infrastructure as a prerequisite to use Waku. It is a service network. However, you are encouraged to [run a node](/#run-a-waku-node) to support and decentralise the network. +Waku intends to incentivise mechanisms to run nodes, but it is not part of libp2p's scope. Additionally, users or developers do not have to deploy their infrastructure as a prerequisite to use Waku. It is a service network. However, you are encouraged to [run a node](/run-node) to support and decentralise the network. ## Waku as a turnkey solution diff --git a/docs/migrations/js-waku/migration_v0.026_0.027.md b/docs/migrations/js-waku/migration_v0.026_0.027.md deleted file mode 100644 index 34f44f8..0000000 --- a/docs/migrations/js-waku/migration_v0.026_0.027.md +++ /dev/null @@ -1,201 +0,0 @@ -# Migrating to Waku v0.027 - -A migration guide for refactoring your application code from Waku v0.026 to v0.027. - -## Table of Contents - -- [Migrating to Waku v0.027](#migrating-to-waku-v0027) - - [Table of Contents](#table-of-contents) - - [Network Configuration](#network-configuration) - - [Default Network Configuration](#default-network-configuration) - - [Static Sharding](#static-sharding) - - [Auto Sharding](#auto-sharding) - - [Pubsub Topic Configuration](#pubsub-topic-configuration) - - [Removed APIs](#removed-apis) - - [Type Changes](#type-changes) - - [Internal/Private Utility Function Changes](#internalprivate-utility-function-changes) - -## Network Configuration - -The way to configure network settings for a Waku node has been simplified. The new NetworkConfig type only allows for Static Sharding or Auto Sharding. - -### Default Network Configuration - -If no network configuration is provided when creating a Light Node, The Waku Network configuration will be used by default. - -**Before** -```typescript -import { createLightNode } from "@waku/sdk"; - -const waku = await createLightNode(); -// This would use the default pubsub topic, that was, `/waku/2/default-waku/proto` -``` - -**After** -```typescript -import { createLightNode } from "@waku/sdk"; - -const waku = await createLightNode(); -// This will now use The Waku Network configuration by default: -// { clusterId: 1, shards: [0,1,2,3,4,5,6,7] } -``` - -### Static Sharding - -**Before** -```typescript -import { createLightNode } from "@waku/sdk"; - -const waku = await createLightNode({ - shardInfo: { - clusterId: 1, - shards: [0, 1, 2, 3] - } -}); -``` - -**After** -```typescript -import { createLightNode } from "@waku/sdk"; - -const waku = await createLightNode({ - networkConfig: { - clusterId: 1, - shards: [0, 1, 2, 3] - } -}); -``` - - -### Auto Sharding - -**Before** -```typescript -import { createLightNode } from "@waku/sdk"; - -const waku = await createLightNode({ - shardInfo: { - clusterId: 1, - contentTopics: ["/my-app/1/notifications/proto"] - } -}); -``` - -**After** -```typescript -import { createLightNode } from "@waku/sdk"; - -const waku = await createLightNode({ - networkConfig: { - clusterId: 1, - contentTopics: ["/my-app/1/notifications/proto"] - } -}); -``` - -## Pubsub Topic Configuration - -Named pubsub topics are no longer supported. You must use either Static Sharding or Auto Sharding to configure pubsub topics. - -**Before** -```typescript -import { createLightNode } from "@waku/sdk"; - -const waku = await createLightNode({ - pubsubTopics: ["/waku/2/default-waku/proto"] -}); -``` - -**After** - -Use Static Sharding: -```typescript -import { createLightNode } from "@waku/sdk"; - -const waku = await createLightNode({ - networkConfig: { - clusterId: 1, - shards: [0, 1, 2, 3, 4, 5, 6, 7] - } -}); -``` - -Or use Auto Sharding: -```typescript -import { createLightNode } from "@waku/sdk"; - -const waku = await createLightNode({ - networkConfig: { - clusterId: 1, - contentTopics: ["/your-app/1/default/proto"] - } -}); -``` - -## Removed APIs - -The following APIs have been removed: - -- ApplicationInfo type: Use `string` for application and version in `NetworkConfig` instead. -- `shardInfo` option in `createLightNode`: Use `networkConfig` instead. -- `pubsubTopics` option in `createLightNode`: Use `networkConfig` with Static Sharding or Auto Sharding instead. - -If you were using `ApplicationInfo` before, you should now use `ContentTopicInfo` (Auto Sharding) and specify your application and version in the content topic `string`. - -**Before** -```typescript -import { createLightNode } from "@waku/sdk"; - -const waku = await createLightNode({ - shardInfo: { - clusterId: 1, - application: "my-app", - version: "1" - } -}); -``` - -**After** -```typescript -import { createLightNode } from "@waku/sdk"; - -const waku = await createLightNode({ - networkConfig: { - clusterId: 1, - contentTopics: ["/my-app/1/default/proto"] - } -}); -``` - -## Type Changes - -- `ShardingParams` has been removed. Use `NetworkConfig` instead. -- `NetworkConfig` is now defined as `StaticSharding` | `AutoSharding`. -- `StaticSharding` is equivalent to the previous `ShardInfo`. -- `AutoSharding` is equivalent to the previous `ContentTopicInfo`. - -## Internal/Private Utility Function Changes - -Several utility functions have been updated or added: - -- `ensureShardingConfigured` has been removed. Use `derivePubsubTopicsFromNetworkConfig` instead. -- New function `derivePubsubTopicsFromNetworkConfig` has been added to derive pubsub topics from the network configuration. -- `shardInfoToPubsubTopics` now accepts `Partial` instead of `Partial`. -- New function `pubsubTopicsToShardInfo` has been added to convert pubsub topics to a ShardInfo object. - -If you were using any of these utility functions directly, you'll need to update your code accordingly. - -**Before** -```typescript -import { ensureShardingConfigured } from "@waku/utils"; - -const result = ensureShardingConfigured(shardInfo); -``` - -**After** -```typescript -import { derivePubsubTopicsFromNetworkConfig } from "@waku/utils"; - -const pubsubTopics = derivePubsubTopicsFromNetworkConfig(networkConfig); -``` -Note: The default `NetworkConfig` for The Waku Network is now `{ clusterId: 1, shards: [0,1,2,3,4,5,6,7] }.` diff --git a/docusaurus.config.js b/docusaurus.config.js index 50f0320..3208800 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -85,12 +85,6 @@ const config = { to: "/learn/", activeBaseRegex: "^/learn/", }, - { - position: "left", - label: "Research", - to: "/research/", - activeBaseRegex: "^/research/", - }, { href: "https://discord.waku.org", position: "left", diff --git a/fetch-content.js b/fetch-content.js index 2e082de..4d50aa5 100644 --- a/fetch-content.js +++ b/fetch-content.js @@ -62,13 +62,13 @@ async function downloadAndSaveFile(url, filePath) { const repositories = [ { baseUrl: 'https://api.github.com/repos/waku-org/nwaku/contents/docs/benchmarks', - baseSavePath: '/docs/research/benchmarks/', + baseSavePath: '/docs/learn/research/benchmarks/', prefixToRemove: "docs/benchmarks/", categoryFileContent: "{ \"label\": \"Benchmarks\", \"collapsed\": false }" }, { baseUrl: 'https://api.github.com/repos/waku-org/research/contents/docs', - baseSavePath: '/docs/research/research-and-studies/', + baseSavePath: '/docs/learn/research/research-and-studies/', prefixToRemove: "docs/", categoryFileContent: "{ \"label\": \"Research and Studies\", \"collapsed\": false }" } diff --git a/sidebars.js b/sidebars.js index 315be4d..0aabe14 100644 --- a/sidebars.js +++ b/sidebars.js @@ -107,22 +107,42 @@ const sidebars = { ], }, "learn/security-features", - "learn/research", + { + type: "category", + label: "Research", + link: { + type: "doc", + id: "learn/research/index", + }, + items: [ + { + type: "category", + label: "Benchmarks", + collapsed: false, + items: [ + { + type: "autogenerated", + dirName: "learn/research/benchmarks", + }, + ], + }, + { + type: "category", + label: "Research and Studies", + collapsed: false, + items: [ + { + type: "autogenerated", + dirName: "learn/research/research-and-studies", + }, + ], + }, + ], + }, "learn/waku-vs-libp2p", "learn/glossary", "learn/faq", ], - research: [ - { - type: "link", - label: "Home", - href: "/", - }, - { - type: "autogenerated", - dirName: "research", - }, - ], }; module.exports = sidebars; \ No newline at end of file