DappConnect: Decentralised communication using Waku

DappConnect: Decentralised communication using Waku · 21 Jul 2021 · 43:55

Franck Royer describes how DappConnect can add communication features to a dApp using Waku v2, a decentralized peer-to-peer messaging protocol. He explains that Waku v2 was created to address the shortcomings of Whisper, and presents the approach to the Ethereum Engineering Group at an online meetup in July 2021.

Speakers

Topics

From DappConnect: Decentralised communication using Waku, hosted by Ethereum Engineering Group.

Transcript

hello and welcome everyone this is the ethereum engineering group meetup i'm peter robinson and today we've got frank royer from status who's going to tell us all about waku so frank why don't you introduce yourself please hi everyone and thanks peter for having me so yes i'm frank i am currently based in sydney australia and i work at status i'm the team lead of the dev connect team and today i will tell you a bit more about what is dev connect and what is waku um i've been working the ecosystem since 2018 and johnny only joined statues in march this year

i'm very excited to uh to work on waku and dev connect um yeah thank you let's start it yeah sure please share your slides all right okay can everyone see my slides yeah awesome all right so um so today we are going to talk about uh dab connect and how uh dab developers can use it to decentralize their uh communications uh using waku so let's have a look at the agenda um so first i will introduce waku um

you know what it is and uh and then on top of that i will talk about uh dab connect then we see some use cases so that we have a bit more of a concrete idea what we can do with it and then finally we'll get some code so the first three sections are are good for everyone and four sections will be more for developers so what could v2 or what is what could be two um a good way to to talk about waku is to uh look at its uh inception and why why it was created so originally when webster was created there was three protocols whisper for communications swarm for

storage as an ethereum that we all know for contracts statues are very early on created a chat app which is pre-decentralized and once they starting building the apps they try to use whisper however being a mobile phone app has some issues with whisper for example whisper uses proof of work for spam protection so you can imagine that when you have a phone on the network and the servers networks and proof of work start to be difficult to manage because you need to use a lot of cpu on the phone to be able to send you messages for example and there was also some scalability issues

so status created a waku mod or wakuvi one which is built on top of whisper that solves this problem and i lose a chat app today so today status app uses what could be one and you have a free decentralized chat app that is able to work on desktop and mobile phones um yeah so boss whisperer work with one use devp2p which is the same technology used by ethereum one for communication and sending transactions so learning uh learning from bakubi one we created waco v2 which is a brand new tech stack uh p2p

and uh and has a new set of protocols that are you know fully adapted for uh mobile phone environment and so the idea is really try whisper didn't work made what could be one on top of whisper and then realized okay let's start from scratch and have a brand new protocol which is what could be two so um let's talk about what is so what is what could be because we choose goal uh what's important to notice here and you know and the reason why i'm here is that status aim is to allow everyone to use work v2 so it's not creating a protocol and just using for the chat app is creating the protocol but also trying to promote

the infrastructure and promote dev connect for anyone to be able to use this network so what could be this goal is to provide an infrastructure and standard for decentralized off-chain private communications to the ecm ecosystem while considering the limitations of restricted resource environments uh so it's very uh mass full here and quite a lot of things as i said so let's just go in with more details and break down this uh statement so when i talk about infrastructure it's uh very similar to easter egg in the way when you build a ethereum dap you don't have to run any serum node

okay so you can run an ic node if you know if you want but when you're being adapted when you're using ethereum you don't have to run your own node okay you don't have to worry about spinning off some nodes running some servers as soon as that so waku aims to try the same thing in the way that if you want to use waku you can just use it without having to set up an infrastructure for it but it is an open system so if you do want to run your own node then you are welcome to do so also so code is open source the specs are open so everything is free to access um a standard so more in uh in the sense of a defect to standard the idea is that by having a common ground to do communications then it's easier

on one hand to reuse waku from one project to the user or maybe having some interoperability if let's say you want a dap and wallet to have some communication happening or maybe between two different depths so having this common ground this common language to do a communication will allow you know better interactivity and faster development in short decentralized so decentralization is a technical property that brings you a lot of functional properties as we know them so having a decent star system uh the same way as and for extreme so i'm sure you're all very familiar with it uh allows you to have you know nobody no bottleneck

better um sorry uh censorship resistance uh trying to avoid discrimination having uh singapore like avoiding singapore failures maybe reducing uh risk infrastructure risk and legal risk so all this all these properties that uh decentralized decentralized um project brings you you have it with waku of chain so i just wanted to highlight here that waku is not about using the eastern blockchain to send messages it is a separate network so it means that you can expect that when you send or see messages you don't have to pay gas fee um goku is very modular so there is a

lot of different protocols and one of the spam protection protocols we're working on do use smart contracts on the blockchain to basically limit spam um but it's very modular so it should be free up to each developer builder to decide what protocols they want or don't want to use um private so waku keeps in mind that some dapps need some privacy guarantees whether is pseudonymity or maybe antoine encryption uh anything like that so while you don't have to encrypt all the messages there will be a very easy way to do so and so as part of the protocol there is a space for symmetric encryption asymmetric

encryption signatures extra um communication so sending and hosting messages so it is not a competitor to ipfs for example it is not about solving uh decentralized storage it is about solving decentralized communication so whenever you want to send rc messages in a near instant manner then what could could help you there um so status is a you know has a website wallet and it is an ethereum project and company so we are targeting the hcr ecosystem we are from in terms of cryptography choices we made similar

choices the one made in the html ecosystem so interoperability is easy and we also provide examples and api to easily use waku with a website wallet for example but at the end of the day it is an open system with open code and open specification so any other blockchain project and we do actually have some other blockchain project working to use roku do so or even projects that do not which are not related to blockchain at all okay um our target is ecosystem but but it is an open network so anyone can join and participate and finally so i do i did mention that originally the idea was to

have it work i mean it is designed to work on mobile phone uh mobile phone is a restricted environment in the way that you may not have connectivity all the time you may have the data plans that limit how much data you can receive limited battery or cpu but it also includes a browser environment so in a browser environment you may not have as much storage you may not be able to access tcp stack as soon as that so what could protocol what who is great design for this limited environment which also arrows uh dev developers whether they are building uh you know web app or whether you want to do a mobile app or desktop app or anything in between

uh you can use what they have the protocol fitting their need okay so so far i've been talking about very abstract things so now let's go a bit more uh what we have uh concretely what what what's we have a number of uh available implementations uh so first one is nimoku for those who don't know nim is a functional language um in between like similar to python and rust so this uh nimwaku library allows you to run an additive node um in the way that is very modular when you run a node you can decide what protocol you want to enable and it is a reference implementation for

all the protocols and it can be used as a backend for example if you have a more complex uh system then you could still run some node yourself and you would hold some nemo nodes uh you can use it as a native library so if you're building a desktop app for example or you can just run the node by itself uh as a way to get some uh as an incentivized knot so you can just run on the node by itself the same way you would run an easier node by itself um then we have gswaku so that's the javascript library um which are in typescript so you have types paper and that is what arrows tabs web wallets web apps to access work

network and we got more details on jsokoo as part of the dab connector section and finally what machining is that we also have a go implementation and that's the implementation we are using to migrate status chat app from waco v1 to what could we do because the station chat app you just go as a back-end all right so um why would you want to use uh waku for that so what could really solve the communication problem so whether you want to have a user to use your communications in your dap or maybe operator to user meaning you want to have some you know your dao and you want to be able to notify your

user that what is starting um any kind of communication can be solved or can be done using waku it removes the needs of infrastructure as i mentioned um the idea is that the network is available and you don't have to run your own not to to participate to it to use waku but you can if you want to and and today if you want to have some sort of communication the easiest ways to have you know centralized server but then your depth is not decentralized anymore so um without having to basically um solve complex problems which comes with decentralization you can still have decentralized communication um with devconnect we aim

to bring you an out-of-the-box solution so something very easy to use and um and again the idea is that if you you don't have to uh so the same way that when you use ethereum or when you bid on ethereum you don't have to solve ecm scalability shoot by yourself you you can participate you can you know participate today for to solve therapist issue for example but you don't have to do it to use it and same for waku if you want to use waku and do commit and do communications in a decentralized manner for your dab then you can just use waku and if you want you can join the effort to also do the research and help reading waku to make it you know to extend it

all right so waku is really um the protocol layer and what we created is that connect which is uh something um just acr to grasp for uh for um for developers so the dev connect is it's just a set of documentations and libraries to allow you to add communication features to your tab so work with the protocol and uh if you're a researcher are you really interested into the underlying uh you know protocol and how things work then you can go and jump in waku but if you are a dev developer and you just want to add communication to your dab then that connect is your entry point um so it is it contains the javascript typescript

library just work with part of that connect and we have code examples we are writing tutorials having some explanation videos having uh use case studies extra so the idea is that uh devconnect is your entry point it's actually your web stream api it is uh what you're going to look at when you want to add um work with your to your project um so today what we have available in uh in dev connect so we have uh so json cool library allows you to receive messages so i mentioned two protocol to oc messages um so we have relay so relay is a peer-to-peer

gossip protocol so we are connected to several peers they are your neighbors and if there's messages then they follow it to you so that's that's really for uh near instant species you also messenger and that you can see it can be an issue if you're a mobile phone for example maybe um you just choose connections so you're not trusting messages because you're not connected once you know connect your peers are not going to send you all messages so you may have missed messages that's why we have store so store protocol um you can query a node that support store and uh and get some archive messages like all your messages so the idea is that in the network people can use nimoku to run store nodes

they will save any messages they see on the network via vole and then on by phone as a developer you can ensure that if you resume connectivity then send a do query to a store node to receive messages that you may have missed so that's why so that's one of the aspects that's one of the aspect of having um waku bit for uh restricted environment having these protocols available that take in account okay what happened if i not connected i'm missing messages how can i retrieve them uh something to some messages so you can send messages which is you just broadcast the message to any peer you're going to but again if you're on mobile phone i

don't have very good connectivity then maybe you want to use light push which is similar in the way that you send a message to one specific node and this node confirms that there is a message and this node the most likely would be a server running somewhere so that this one can then broadcast your message overlay so again if you want to ensure that message is stand and maybe so maybe you are a mobile phone and you have not connected to a lot of peers and connectivity is bad so you use that push and the dap is going to be running on the browser on on the laptop then you have good connectivity 20 to 10 ps so you don't need to use that push and you just use fully so having this modular uh it's working

in modular manner which really allows you to have a solution for any kind of use case or any kind of situation um we have a couple of code examples so we have a chat room so it's actually a link at the end you can actually use it today if you want so it's just like a nice little web app that shows you how you can use waku to do chat messages and we also have um sdm for instagram direct message which is a very simple nice protocol to do end-to-end uh and to unencrypted direct messages so you can use someone instagram address to send them a message in an encrypted manner using sdm and

again we have a i have a showcase web app available for so it's very basic and it's just about showing to the showing developers how they can do things like that and then build their own dapps and then add their own features and we also have so also documented and we have a quite extensive documentation on the api available today um so as i mentioned i only started with statues uh in march this year so there's still a lot of more to do for me in the devconnect internet connect project so for not just me actually i'm hiring so if you are a developer and you're keen just let me know i'm trying to have a two more day but yeah so to what uh my next focus will be on having

website because which is being beat at the moment so that we can have more tutorials to explain how to use depth connect and explain more use cases um we go into this case after i think what's important to understand is that waku can re-enable a lot of different use cases and people may not realize that so that's why i want to spend a lot of time ensuring that we can you know list all possibilities uh all possibilities with uh with uh with uh connect um i'm going to focus on more code examples from stationery it's very interesting uh example where we can use vacuum at the moment yes work is not yet used in production but we instead use

there is a couple of dabs that are being built on on jswaku so i need to ensure a few bugs are being fixed um and i also want to do more wave three applications so like integration with wallet uh for example if you want your transaction your messages to be signed be able to use the webster api to sign in messages um everything is open source i'm trying to work in a very open manner so feel free to check the project board to know what are the next priorities and what we've been working on so in terms of use case why would you want to use a dab connect so anything of chain so anything that um that is optioned in the way that when you go off chain it means that

instead of doing everything on this on blockchain you are taking a communication out of the blockchain directly from peer-to-peer and maybe gathering the tag you know changing states and things like that and then at some point you may decide for the blockchain or not so any kind of communication so anytime you want to go off-chain you could use workproof to handle communication so that for your project you don't have to worry about infrastructure anything like that but again it doesn't need to be always related to blockchain so you could use waku for things which are not blockchain related at all and where you just need to have some communication so one use case um i already mentioned

quite heavily is a chat app uh use case so status chats app uh uses vocabulary one and name maggot to work with two and this uses uh this allows you to have some private groups private the is that they are and to encrypted public groups and private peer-to-peer um let's join directly to yeah eastern scalability solutions so that's a use case i'm very excited about whether you look at state channels where um where two peers two or several peers will you know block some some assets on the and then we exchange messages to uh the described

uh exchange of states and then after 10 hundred thousand messages finally decided to go to blockchain so being able to save you know a thousand of communication to blockchain by having off chain communication this case could use waku instead of having to you know build your state channel and start to decide okay how do i do this just to telecommunication you can just use what could directly uh and that's i think it's very interesting case um and as i mentioned i be some good example shortly for that uh sensing for rollups so in the case of a rollup whether it's optimistic or secure all up through the um once uh you know the

replay starts uh they started and participants joined the the roll-up and they have to send their roll-up transactions to an aggregator and then the aggregator can bring take this foundation together and submit a role of block you know uh market routinely to the to the so today if you were to do that without roku most likely then the aggregator will have to run a server with a public ip and some ports open so that participant can contact the aggregator and send and send him or her these transactions which of course can lead to you know censorship and any problem like instead you could use waku and have the

transaction the the whole transaction sent over roku and having the aggregator listening for this transaction and then closing them and put them on the blockchain i still need to do more research on this on this specific topic and i'd be very interesting to see uh if such a model would then allow a fairer composition between aggregator so i don't know yet you know can you have several aggregators for all up i think it'd be interesting to see that and see if aggregators could compete uh gathering these transactions and being the ones with the block so i'm very early on at this stage i haven't done enough research on that but definitely in terms of communication and being able to pass the transaction to the educator i think be

very interesting to uh to use vaku so the educator didn't have to disclose you know any kind of ip address or dns or i don't take the risk of being blocked by um you know by by a provider or anything like that um voting so voting we have a couple of uh voting features so um currency status is building the status community directory creation dap so it's basically just um a dab where you can vote for so communities being a group chat and you can vote on chain for your community so that it appears in the directory so the idea is that when you join the dap you can see communities in directory and join them

or you can create your own community and have people vote for it to be included in the directory so we're using raku for two reasons so to vote to have the community institute as a community or out of the directory uh anyone with a status token can vote so instead of having everyone spend gas voting on the voting for the community and what we have is that the community owner will start to vote on the blockchain and then participants can just send their their vote over the work and the actors that are most interested in having the vote

you know happening can then gather all these votes and pay the gas so as a community owner i can create a vote i will gather all the votes for my community and then submitting the blockchain and i you know i'm the one paying the gas and then if i'm someone who is very against this community being put in and i can gather vote as well myself i'm sure that the robots are being submitted to blockchain um but if i'm someone that is just passing you know i'm just using the community and i think it's a good idea i want it in the directory but i'm not that incentivized uh incentivized to to pay for the gas and i can just sign my vote over cool for free um that's for voting so voting means that the result is in the blockchain for polling so while call polling is

just when the result is not submitted anywhere we have an interesting use cases here as well so it's a featured feature community so having like five features community uh per week you know showing up in the app here's the feature committee of the week and that is tony is done entirely through waku so you can vote for community over waku and then each dapp so each mobile phone is user we just collect the votes from the local network and then we calculate oh this is uh most voted communities this week and just display them and that's one way to have a decentralized communication layer and decentralized polling and because it's just about showing a a uh four weeks you don't need to go to

blockchain don't need to pay gas in there uh and so this one are being worked on and um and so that's uh uh that which will be using waku jswaku any kind of communication can be decentralized using uh using dev connect and that is again without as burden of solving our problem of solving the heart problem of decentralized communication of spam protection of uh efficiency and scalability and uh anything like that so other use cases i'm looking into are from nft auctions so at the moment

i'm aware that most um nfc platform where you can auction nft usually are custodial platforms so they you know they have the rights they own your nft uh and you can put it on sale and this is an off-chain solution in the way that when you put it on sale and people can uh bid on it it's all happening on this entrance platform so it's of chain but it comes with a risk of custodial solutions you know like if there is a hack if there is the company is going down anything like that um with waku you could move your nft auction to a decentralized manner um the idea would be for example as a nfc owner you know you start the auction on on the and then people bid over roku

and at some point you take the highest bidder message and using that you can purchase the blockchain and have the transfer done so again more research is needed here but i think it's a very interesting use case on how you can decentralize uh some current you know some projects that we have today uh very centralized um way connect 2.0 2.0 uses uh waku so you don't use jsoku yet but uh they use a nemo kunod to be able to decentralize so today when you use weight connect which allows you to easily connect adap and your wallet you have to communicate with uh well connect servers which is a risk because you know centralized servers

uh it is a risk because it could be ip blocked or anything like that so instead now they use so for wire connect two they use waku meaning that to do this communication do it over the work network and their server can just system work network without exporting themselves to any kind of attack and more so there's many use cases and part of the website we are building is to release all these cases you uh that you can you can do uh with with uh um and the idea is really in all these situations you don't have to worry about uh how do i you know protect against spam how do i ensure that my users with a mobile phone receive all these messages because what could help you with that um yeah so let's look at uh let's look

at the code um so we're going to look at just work with code which is what you would use as a dapp developer so um very easy to create a working node in your dab just what could create straightforward i'm trying to apply very good defaults so the idea is that you know minimum parameters minimum options just out of the box it works and then if you want to find new things then you can so to listen for messages so i'm just going to uh talk a bit more about the content topic uh concept um so the idea is that so on the work network you know all messages are being transferred on the work network now as a your dap

or i'm the user i'm using adapt i don't care about messages that are not from adapt all right so what we use is that we fit our messages by content topic so as a developer you decide what content to pick you want your dab to use um and you know in this format and if maybe there is several uh you know features maybe you have group messaging um you have group staging and you have dark messages so you may have different features you may use different content to pick and then your dap to uh to receive messages then you can do what could relay so using the protocol and you add an observer that which and you personally pass callback function with message and then you can process message and

when you do the ad observer you specific what content to pick you are listening to so that you only process messages that are related relevant to your dap so that this rc message is you know three lines of code um to send messages so it's a bit more so if you just look at the first part so work message is just a message of a waku um when you create a work message you specify this content topic to ensure that it's only received by other instances of your dab and then you can either use so um you can see wakudo trolley.send so using relay

there's a peer-to-peer so you can use relay to send a message the section to neighbors and then broadcast it to their neighbors or if maybe you have some connectivity issues uh you can using you can use light push which um you will find a light push node so usually it should be a nimworker node like a server node can know this is running a bit more apparently and not on the mobile phone and you can give it a message and they can replay back to say yes i will see message so as this we see has some privacy drawbacks but again as a developer you can decide what is the best for your tap and you have the choice um then to all three messages so we talk

about receiving messages in a peer-to-peer manner in on the gossip network which is a if uh i lose connectivity so i know i'm connected to the europeans because maybe the phone just uh you know i just lost connectivity i know your resume connectivity and you see ah i'm reconnected to peers now then to retrieve the missing missing messages uh you can use the workstore protocol and again here is really uh very easy in the way that you just pass your content topic to the to the query and uh and jsoku will look for a store node for you and select one for you and then return

messages so the idea is for you to have something which is very easy to use out of the box okay and as i mentioned as well so if you want to have clear messages that's fine if you need to have encrypted messages or into signed messages again jsoku is providing a very easy interface for that so you can see from here uh there is a helper here to generate a private key um however i'm also keen to uh to make it easier to use uh web3 uh keys as well so i'm working on that but the idea is that when you create your work message

so payload is just you know your data what you want to send across and you can just pass the encryption to your key or australia key to use to sign and work who will handle the encryption for you and package it in the work and send it over the network i see i see a little question um no so yes that's uh so i have a question from peter i'll jump on that um so yeah so in whisper indeed one of the issues that we had so the question from peter is our message routed how do they flow through the network like whisper so that's the thing is that whisper was

feeding the network which wasn't which is one of the scalability issues that status encounters when creating the mobile app on whisper so messages through the holy protocol is uh is based on the gossip sub protocol of lp2p so the messages are being routed and um in gossip's manner so in the way it maintains number of neighbors that is not too big as as gossip do what's interesting as well is that at the moment we use one uh pub sub topic if you're familiar with that for all messages but the idea is that we we are crazy artists you know we have

written protocol in a way that would be very easy at some point to maybe implement some shards or some other to help uh with the protocol um in terms of uh software when you do a store query you need to create for your content topic so that your online state message is charity to you and we are going to extend the store uh i mean we are extending the store query to be able to supervise the timestamp so you can just see messages get messages within a time range um so in terms of public keys communicated so waku doesn't really handle this part so it's up to you so um so i created the sdn protocol which is very

a naive way of doing that uh and we can i can dig a bit more into that but the idea is that uh users send a message where they sign a encryption public key with an account to the network and so that when you want to send a message to someone uh with this address you can look for the message or without your key um and so using waku for that that's a very nice photocall i'm sure there's better ways to do it the idea was to just demonstrate how you can do things with that um finally uh nikki was asking questions so yes at the moment uh for the web we are using web sockets so and that's one thing to be aware of is that uh yeah in a web browser you may not have you don't have access to ccp

cb stack so we are using websocket in this case and that's what's available for js all right a lot of questions and then again so let's say you are using uh uh you're encrypting your messages so to delete messages what you do is just pass the declaration key to work overlay and then you can uh receive message as usual so again a very easy way for you to have an encryption it's just passing the key to a query and then when you rest your you will try to decrypt it and same thing when you try to do a store query you can pass your declaration keys

to jswaku who then will try to decrypt receive from the stock way so we're trying to have a very simple usable api okay yes uh i'm done basically so thank you very much for your time um so here are some links so the slides are available online i also put i will put a new version into into google drive um jess waku so at the moment as i say we're working on websites so i don't have a nice website to showcase just yet but uh we have the jsp repository which contains library and contains a lot of the commentation um feel free you can directly jump to this uh links right now uh this is the website i

was talking about which is um a little web app to have one there is one room and you can just chat in there and use waku in the background and stm is the one for antoine ecketti so this one is uh connects to your uh to metamask your to your wallet um to allow you to send a message to someone uh just knowing their ism address it is opt-in so you have to sign a public key first over the network and then someone can use that to send you accepted messages um website is coming and to the spec so to work with spec are open source anyone can come in and and create a new stack of comments it's really trying to uh it's free

handle in your open source manner okay and our story on the last slide is a bit let cut just check that um yeah so if you have any questions please uh please come in while i fix the last slide for our next talks yeah well thank you for your talk ah there we go um so yeah thank you for your talk um so i i already had my questions in um in the chat actually here is another question

so proof of work was being used um in whisper as a way of rate limiting and you know anti-spam so how have you addressed that in vacuum so yeah so first time i think important to mention that the idea is to have this protocol very modular so um i expect at the end to have several ways uh to do stunt protection with several different protocols and then it would be up to the developer to decide which is best for their uh for the application at the moment our researchers are working on on so it's called rln which is a great

limiting new fire protocol um the way it works is it's very interesting so you have a smart contract once my contract is being deployed and if you want to participate to the network you are going to lock some funds in a smart contract then when you send a message over the you have to basically provide a shared shamir secret with your message and this secret is only valid for an epoch which is once again so if you send a he has to have the secret and uh and once received message he verifies that it is valid within the one second within the given epoch

now if you want to spam the network and send a similar message if you send some message and it's not valid for this epoch then it will receive a recipient will you drop the message because you say well this secret is not so i'm not going to broadcast it i'm not going to afford it if you are using the same same secret and say oh we already use this secret so i'm not going forward so and if you decide to uh to use a different share then that's enough share to steal your money from the smart contracts so you have a situation where uh that's how so that's one of the other and what's interesting as well is because it uses uh zero knowledge proof uh there is no

someone looking at a smart contract cannot guess um can i guess uh so like the identity the html identity on smart contract is not related to the h7 entity to do our code identity on the network so because you use your owner's proof um when you see a message you know that this proof is covered in the contract we don't know which hm account added uh you know log the account so you you have this privacy feature uh so yes that's uh one of the current spam protection that is being worked on okay sounds interesting yeah are there other questions for frank [Music]

all right well i'll post the recording um maybe later today maybe tomorrow and um onto youtube and people can post questions as comments on the um video um yeah um yeah absolutely and uh i think i think my um sorry i never go to the last slide when i when i trained on this uh pronunciation let me just because i have um i have some links uh so i am on twitter and uh we have a discord channel as well so if

anyone is impressing they can just ask me questions quicker have a look at the github repo open issues if needed and okay now it's not happening all right and it sounds great there you go i go onto and we have also a discord uh server where we discuss uh both the and both that connect and use cases um yeah so feel free to join the as discussion at any point for sure all right well thank you again frank for giving a great talk today and um talk to or everyone in two weeks time when we have

our next talk which will be on zk starks all right thank you thank you for having me not a problem at all all right bye