move research folder under learn: side bar and buttons

This commit is contained in:
fryorcraken 2025-10-01 17:05:18 +10:00
parent 52b2f62c39
commit 3ac8029b1f
No known key found for this signature in database
GPG Key ID: A82ED75A8DFC50A4
10 changed files with 40 additions and 228 deletions

View File

@ -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

View File

@ -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

View File

@ -11,7 +11,6 @@ Waku is a family of robust, censorship-resistant, peer-to-peer communication pro
<a href="/build/javascript/" class="button button--primary">Start Building</a>
<a href="/run-node/" class="button button--primary">Run a Node</a>
<a href="/learn/" class="button button--primary">Learn More</a>
<a href="/research/" class="button button--primary">Explore Research</a>
</div>

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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<NetworkConfig>` instead of `Partial<ShardingParams>`.
- 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] }.`

View File

@ -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",

View File

@ -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 }"
}

View File

@ -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;