Spin up a local Waku network for development without relying on external infrastructure
Perfect for hackathons, offline development, or when you need a controlled testing environment for your js-waku application.
npx @waku/run start
This will:
Example output:
import { createLightNode } from "@waku/sdk";
const waku = await createLightNode({
defaultBootstrap: false,
bootstrapPeers: [
"/ip4/127.0.0.1/tcp/60000/ws/p2p/16Uiu2HAmF6oAsd23RMAnZb3NJgxXrExxBTPMdEoih232iAZkviU2",
"/ip4/127.0.0.1/tcp/60001/ws/p2p/16Uiu2HAm5aZU47YkiUoARqivbCXwuFPzFFXXiURAorySqAQbL6EQ"
],
numPeersToUse: 2,
libp2p: {
filterMultiaddrs: false
},
networkConfig: {
clusterId: 0,
numShardsInCluster: 8
}
});
Copy the configuration from the output above and paste it into your application. Then start your node:
await waku.start();
// Your app is now connected to your local Waku network!
npx @waku/run stop
| Command | Description |
|---|---|
npx @waku/run start |
Start the network (detached) and show connection info |
npx @waku/run stop |
Stop the network and clean up |
npx @waku/run info |
Show connection info for running network |
npx @waku/run logs |
View and follow logs from all nodes |
npx @waku/run test |
Test the network by sending a message |
All configuration is done via environment variables passed to the command.
If the default ports are in use, specify custom ports:
NODE1_WS_PORT=50000 NODE2_WS_PORT=50001 npx @waku/run start
Available port configuration:
NODE1_WS_PORT (default: 60000)NODE2_WS_PORT (default: 60001)NODE1_REST_PORT (default: 8646)NODE2_REST_PORT (default: 8647)The default configuration uses:
To test with a different cluster:
CLUSTER_ID=16 npx @waku/run start
To use a different nwaku image version:
NWAKU_IMAGE=wakuorg/nwaku:v0.35.0 npx @waku/run start
npx @waku/run logs
# Node 1
curl http://127.0.0.1:8646/health
# Node 2
curl http://127.0.0.1:8647/health
# Node 1 debug info
curl http://127.0.0.1:8646/debug/v1/info
# Node 2 debug info
curl http://127.0.0.1:8647/debug/v1/info
MIT OR Apache-2.0