mirror of
https://github.com/logos-messaging/docs.waku.org.git
synced 2026-01-03 21:33:05 +00:00
1 line
13 KiB
JavaScript
1 line
13 KiB
JavaScript
"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[2941],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>k});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),u=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(a),m=n,k=c["".concat(l,".").concat(m)]||c[m]||d[m]||o;return a?r.createElement(k,i(i({ref:t},p),{},{components:a})):r.createElement(k,i({ref:t},p))}));function k(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var u=2;u<o;u++)i[u]=a[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},22103:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const o={title:"Introduction to Waku",hide_table_of_contents:!0,slug:"/"},i=void 0,s={unversionedId:"guides/getting-started",id:"guides/getting-started",title:"Introduction to Waku",description:"Waku is a family of robust, censorship-resistant, peer-to-peer communication protocols that enable privacy-focused messaging for Web3 applications, allowing you to integrate decentralised communication features into your dApp without compromising security or privacy.",source:"@site/docs/guides/getting-started.md",sourceDirName:"guides",slug:"/",permalink:"/",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/guides/getting-started.md",tags:[],version:"current",lastUpdatedAt:1730173165,formattedLastUpdatedAt:"29 Oct 2024",frontMatter:{title:"Introduction to Waku",hide_table_of_contents:!0,slug:"/"},sidebar:"guides",next:{title:"Run a Nwaku Node",permalink:"/guides/nwaku/run-node"}},l={},u=[{value:"What isn\u2019t Waku?",id:"what-isnt-waku",level:2},{value:"What can Waku be used for?",id:"what-can-waku-be-used-for",level:2},{value:"Case studies",id:"case-studies",level:2},{value:"Getting started",id:"getting-started",level:2},{value:"Run a Waku node",id:"run-a-waku-node",level:3},{value:"Integrate using SDKs",id:"integrate-using-sdks",level:3},{value:"Other integrations",id:"other-integrations",level:3}],p={toc:u},c="wrapper";function d(e){let{components:t,...o}=e;return(0,n.kt)(c,(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Waku is a family of robust, censorship-resistant, peer-to-peer communication protocols that enable privacy-focused messaging for Web3 applications, allowing you to integrate decentralised communication features into your dApp without compromising security or privacy."),(0,n.kt)("mermaid",{value:"graph LR\n S1(Message Sender 1) --\x3e|Message 1| W(The Waku Network)\n S2(Message Sender 2) --\x3e|Message 2| W\n S3(Message Sender 3) --\x3e|Message 3| W\n W --\x3e|Message 1| R1(Message Receiver 1)\n W --\x3e|Message 2| R1\n W --\x3e|Message 3| R2(Message Receiver 2)"}),(0,n.kt)("div",{class:"video-container"},(0,n.kt)("iframe",{class:"yt-video",src:"https://www.youtube.com/embed/nIWx5Vp_Qxk",title:"Waku Tutorial 001: Introduction to Waku",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:!0})),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Check out our ",(0,n.kt)("a",{parentName:"p",href:"/learn/waku-network"},"Learn section"),", ",(0,n.kt)("a",{parentName:"p",href:"https://www.youtube.com/@wakuorg"},"YouTube channel"),", and ",(0,n.kt)("a",{parentName:"p",href:"https://blog.waku.org/"},"Blog")," to dive into how Waku works behind the scenes!")),(0,n.kt)("h2",{id:"what-isnt-waku"},"What isn\u2019t Waku?"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Waku is not a blockchain but a network composed of protocols designed for Web3 communication, operating without the need for gas fees."),(0,n.kt)("li",{parentName:"ul"},"Waku is not just for messaging applications; it supports the development of complex applications that require secure and private data transmission."),(0,n.kt)("li",{parentName:"ul"},"Waku is not a long-term data storage network; it focuses on short, ephemeral, real-time messaging.")),(0,n.kt)("h2",{id:"what-can-waku-be-used-for"},"What can Waku be used for?"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Chat Messengers"),": Waku can be used to build private, decentralised chat apps resistant to censorship."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Voting and Proposals"),": Exchange votes on proposals off-chain via Waku to save gas fees, then submit aggregated results to the blockchain."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"NFT Marketplaces"),": Use Waku to handle off-chain NFT bids and offers for gas savings, and to integrate social interactions like likes and comments."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"State Channels"),": Establish and maintain state channels with Waku, facilitating seamless message exchanges and updates without blockchain interaction."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Signature Exchange for Multi-Signature Wallets"),": Allow multi-signature wallet owners to exchange signatures privately and securely through Waku."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Game Mechanics Communication"),": Implement Waku as a communication layer for decentralised, peer-to-peer gaming, avoiding centralised infrastructure."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Layer 2 Coordination (Open Market, Spam Protected Mempool)"),": Broadcast and aggregate Layer 2 transactions via Waku to enhance privacy and scalability, reducing network load."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Social Media Platforms"),": Beyond chat messengers, use Waku for decentralised, censorship-resistant social media platforms like news feeds and multimedia sharing.")),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Looking for what to build with Waku? Discover a collection of sample ideas and use cases for inspiration, curated by our community at: ",(0,n.kt)("a",{parentName:"p",href:"https://ideas.waku.org/"},"https://ideas.waku.org/")," and ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/waku-org/awesome-waku/"},"Awesome Waku"),".")),(0,n.kt)("h2",{id:"case-studies"},"Case studies"),(0,n.kt)("div",{class:"case-study-container"},(0,n.kt)("a",{href:"https://blog.waku.org/2024-05-13-the-graph-case-study/",target:"_blank",rel:"noopener noreferrer"},(0,n.kt)("img",{src:"/img/graph-use-case.jpeg"})),(0,n.kt)("a",{href:"https://blog.waku.org/2024-04-26-railgun-case-study/",target:"_blank",rel:"noopener noreferrer"},(0,n.kt)("img",{src:"/img/railgun-use-case.jpeg"}))),(0,n.kt)("h2",{id:"getting-started"},"Getting started"),(0,n.kt)("div",{class:"video-container"},(0,n.kt)("iframe",{class:"yt-video two-items",src:"https://www.youtube.com/embed/PYQaXCxUCwA",title:"Waku Tutorial 001: Introduction to Waku",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:!0}),(0,n.kt)("iframe",{class:"yt-video two-items",src:"https://www.youtube.com/embed/sfmMcrbiX0c",title:"Build a game using Waku Protocol",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:!0})),(0,n.kt)("h3",{id:"run-a-waku-node"},"Run a Waku node"),(0,n.kt)("p",null,"Waku is a decentralised, permissionless system where anyone can run a node, use the network, and contribute to its support. We recommend following the ",(0,n.kt)("a",{parentName:"p",href:"/guides/nwaku/run-docker-compose"},"Run Nwaku with Docker Compose")," guide and ",(0,n.kt)("a",{target:"_blank",href:a(18058).Z},"Waku Node Operator Cheatsheet")," to easily run a node."),(0,n.kt)("div",{class:"video-container"},(0,n.kt)("iframe",{class:"yt-video",src:"https://www.youtube.com/embed/fs0ynLk4z0I",title:"How to run a Waku node using Nwaku Compose",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowfullscreen:!0})),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"If you encounter issues running your node or require assistance with anything, please visit the ",(0,n.kt)("a",{parentName:"p",href:"https://discord.com/channels/1110799176264056863/1216748184592711691"},"#node-help channel")," on our Discord.")),(0,n.kt)("h3",{id:"integrate-using-sdks"},"Integrate using SDKs"),(0,n.kt)("p",null,"Waku is implemented in multiple SDKs, allowing it to integrate with different languages and address various use cases efficiently."),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null}),(0,n.kt)("th",{parentName:"tr",align:null},"Description"),(0,n.kt)("th",{parentName:"tr",align:null},"Documentation"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{parentName:"td",href:"https://github.com/waku-org/js-waku"},"@waku/sdk")),(0,n.kt)("td",{parentName:"tr",align:null},"JavaScript/TypeScript SDK designed for browser environments"),(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{parentName:"td",href:"/guides/js-waku/"},"JavaScript Waku SDK"))),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{parentName:"td",href:"https://www.npmjs.com/package/@waku/react"},"@waku/react")),(0,n.kt)("td",{parentName:"tr",align:null},"React components and UI adapters designed for seamless integration with ",(0,n.kt)("inlineCode",{parentName:"td"},"@waku/sdk")),(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{parentName:"td",href:"/guides/js-waku/use-waku-react"},"Build React DApps Using @waku/react"))))),(0,n.kt)("h3",{id:"other-integrations"},"Other integrations"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null}),(0,n.kt)("th",{parentName:"tr",align:null},"Description"),(0,n.kt)("th",{parentName:"tr",align:null},"Documentation"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{parentName:"td",href:"https://waku-org.github.io/waku-rest-api/"},"REST API")),(0,n.kt)("td",{parentName:"tr",align:null},"REST API interface provided by ",(0,n.kt)("inlineCode",{parentName:"td"},"nwaku")," and ",(0,n.kt)("inlineCode",{parentName:"td"},"go-waku")," to interact with the Waku Network"),(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{parentName:"td",href:"https://waku-org.github.io/waku-rest-api/"},"Waku Node REST API Reference"))),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{parentName:"td",href:"https://www.npmjs.com/package/@waku/create-app"},"@waku/create-app")),(0,n.kt)("td",{parentName:"tr",align:null},"Starter kit to bootstrap your next ",(0,n.kt)("inlineCode",{parentName:"td"},"@waku/sdk")," project from various example templates"),(0,n.kt)("td",{parentName:"tr",align:null},(0,n.kt)("a",{parentName:"td",href:"/guides/js-waku/use-waku-create-app"},"Scaffold DApps Using @waku/create-app"))))),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"Explore some example apps built using Waku at ",(0,n.kt)("a",{parentName:"p",href:"https://examples.waku.org/"},"https://examples.waku.org/")," and view a list of projects and workshops from previous hackathons at ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/waku-org/awesome-waku/"},"Awesome Waku"),".")))}d.isMDXComponent=!0},18058:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/files/Waku-NodeOperator-7fabb782473f2619b0b05dc209f12f53.pdf"}}]); |