Workshop stage at Nostrasia day 1
So probably you would be wondering who is this guy who is talking about designing in in the stage so my journey started with the astral ninja experience and said this is crappy we need to work on that but yeah we need designers and probably this guy is just at backend
Developers uh develop developing this application so I I started using CL um services like Noster directory back in back in the days and I was trying to experiment with with those platforms and I I remember that I redesigned the whole website and the whole experience for the Noster directory and that was
Mainly used for finding friends from Twitter on Noster and the other side that I worked on and I I applied the same methodology redesigning the whole thing and then showing to the developers and say would you like to implement this or would you like to have it and they usually said
Yes uh so Noster bill is right here um I applied the same thing for Noster build I found it ugly but it worked it was really fast and I use it every day for uploading pictures videos and I was like uh probably this is the Google Drive for
For Noster so I will be interested in in collaborating with with those guys I didn’t know it was just one guy and I was I was uh I just jumped into my figma file and started like thinking about how how the experience should work and when
I had something kind of ready I showed it to the main developers and he was really amazed and we started like implementing it right away and then right after that I remember that I was I was able to interact with big names in in nosters
Such as Jack and said I I remember that I thought in the very beginning that Jack was the founder of damus and then I text him and said are you the founder of damus I would like to collaborate and design on damus and he said no I’m not
The one behind damus uh JB 55 is the one so you should contact him and I was amazed because probably this Jack replying to me why and I was I was completely blown away about the the power of Noster and I went ahead and say hey Will
I would like to work on damos design and he said we need help pretty much everywhere so just go ahead and and do something um I’ve also co-founded a stemer which is um is uh an experience uh for musicians where you can explore sounds or or tracks and then you you can
Make music out of it it’s pretty amazing it has good design as well and I remember that I had another idea um about having the twig deck version um for Noster and I created uh I designed a client uh like just the client design and experience how that work um about a
Product called nostre but um after that right after that I remember that William from Damu said I would like to build something similar to twch and I would like to use your designs so I said okay go ahead and uh here’s the figma file you could just
Go ahead and start like applying all the design to uh to your new client and he renamed it to to not de he’s still working on that and I failed and try I’ve tried and fail and to contribute with damos and damos is I think is the
Most famous client out there and this was my first damos design or iteration so as you can see here uh this is design um I honored even the phone that I used that is called Satoshi for damus but when I showed this to William and and some other developers in charge of the
Application they told me me no we have no time to build that um so and why I failed I think I failed because at that point developers were mostly working alone shipping features for the their client sofh house uh that they didn’t even uh have the time to actually build
Custom ux experiences and um of course they didn’t have like the users in mind while designing or building stuff and this is my demo second try so right after that I started like Implement I continued designing stuff uh I went to I went to my figma uh file and
Say we I would like to start right from from the beginning and this is my second try and Eric is is right here uh another damus developer he’s he really liked the design and said to me ah well we will be able to implement that right now because
I will be working on that so yeah um so this is how damos uh looks right now in the majority of of screens we need a lot more features to ship but uh we’re we’re making progress on that so how can I help users um I think
We can help them uh by following them introducing them zapping them and keep them in the loop about your your features supporting them while when they ask questions I think um when normies join Noster they need to feel in interaction and if you follow them or introduce them
Saying like this is my friend who joined Noster right now um I think that feeling is amazing for us as nist and they will feel like the like this protocol is is working and I think you will be able to help them by just doing these these other
Things so these are some of the stories or comments from people that I know when when joining Noster um I have a lot of friends and family who’ve been like joining Noster and every day and they basically tell me these things um that is too complex um the other is nobody is
There um the third one is I opened an account but there’s no engagement um it is made for bitcoiners only uh it is only for social networks like Twitter or or or Instagram something related to that which is not the case and the other is oh yeah it’s cool idea but yeah it
Won’t work because it requires a lot of things to actually work and it’s too complex and everything is kind of connected so in the previous screen I said that uh if you follow them or introduce them and sa them they will feel like the the engagement that we all
Probably feel right now and they won’t feel alone anymore so you are a designer when and why you are a designer and how you can contribute to grown Noster you you might be wondering I’m not a designer you will be saying like I’m a developer or I’m a
Marketer or I’m just hanging around on there but the reality is that you are also a designer you are a designer when you are basically suggesting features helping designers when they share design proposals commenting on app releases test uh app features suggest changes in features or introduce other and try to
Understand their points you will be a designer if you basically said couple a couple of of months back I remember that I I’ve shared some design proposals about how damus should treat I don’t know like going to a profile or or something related to that how to sub
People um and a lot of people jumped and say oh this thing should be done this other way or should be designed this other way um so if if you see you don’t need to be a product designer or a experience designer to actually help uh build will shape the future of
Noster and how how you can grow Noster in reality if you are a designer or a developers you you could just build stuff and build your favorite application on top of Noster so as I said before Noster is not just for social media and um you could build
Pretty much everything you want on top of Noster and you will be collaborating to grow the protocol by just building your favorite tool um the other the other thing that you could do is improve what you don’t like about uh the current applications or client so if you want to go ahead and
Say I don’t have the skills or the time to create new clients or applications I would like to just help on providing feedback um and uh helping and introducing and sapping people and hugging new users uh I don’t know if you remember when Jack uh back in the days
He used to introduce people by just adding the Shaka Emoji or hugging uh new users and we need to feel that engagement for for new users and they will feel like it is something really cool and you will by just doing that you will be collaborating to grow Noster um
In a in a huge Manner and this is another topic that I wanted to talk about it is how to keep up with devs I have uh some friends that are devs and some of them are here as well they they know they are too fast and
There are many of them and they build things all the time so it’s really hard to keep to keep up with with all those things happening at the same time and uh it happened to me that I was working on damus I was working on stemer I was
Working on Noster build I was working on N deck and a bunch of other clients um just shaping the future of Noster and it’s really hard to keep up with all the the the work that that the developers are doing every day so one way to to
Avoid that uh and to feel consume is just communicating with the developers um design things even the developers w’t implemented yet because uh that happened to me with damos that I just went ahead and and redesigned like the entire experience and we have a huge
File and you could check it out in the figma community which is open source you could see that we we have still a lot of views to build and I just went ahead and designed everything that I thought it is important even though is not fully implemented yet so Eric is working every
Single date on that and Willian is also working on that and we have every single week um Dev calls and see what we could build out of the robertto design so the designs are there um and um and we still now have a lot of features to to release
Also by just providing feedback um saying like developers they work a bunch in a bunch of things uh but they sometimes they don’t they don’t Implement your design in in the proper way so so you need to provide feedback on them and say stop a little bit and go
Back and and add those things the the the little Shadow or the little CER radius uh I know that those things are super small but are super is important in order to deliver a good experience for them uh because again we are competing against Twitter again Instagram against WhatsApp and they have
Really good experiences and they really care about those small is uh topics and the other is collect feedback from users and PR priori tasks as you can see in damus we have a friend in there and he is the manager uh who is elsat he is basically every single day collecting
Feedback from user adding those issues to the GitHub log and where and we go ahead and and in the GitHub and say oh what’s the most important task right now to implement and yeah I think those those things are important and to keep up with uh with all the
Developers and the other and probably one of the last things that I’m going to to speak is about noer is the the wild west and you don’t need to ask any uh permissions to actually build build things so you just need to go ahead and
Say I would like to build this this bind or this Instagram or I’m going to just design it and some someone else will implement it so you don’t need to ask for any any permissions in in order to deliver good experiences and yeah thank you very much much gracias
And if you have any questions feel free to ask in regards to design working with devs if you want to collaborate on something yeah go ahead um I pretty much use figma figma for everything I’m not a big fan of Photoshop uh I don’t do graphic design
Because I don’t I don’t like it I I’m I’m not interested in in the experience and and the whole ux flows and all the stuff and I think figma for me as a tool is the one that provides me the mo the most value someone else yeah go
Ahead um currently I’m working on stemer which is a music um client um and again as I said before um I remember that even Jack shared that on Twitter and say well you see Noster is not just for social media so you could build stuff so uh it is a client
Where you can you could basically share um stem or a sound and could be as little as a clap or you could be just singing and then a bunch of people will discover that track and say oh this is really cool I will use it in my new
Track and we have artist uh making music out of those uh sounds and uh where you could honor those sounds in a sound tree so you will see like the whole process uh when you deliver a a song you will see all the small pieces that help you
Build the the full the full song so that’s that’s really cool so it’s a stem stem sters right now um and the not deck which is the the Tweet like the Tweet deck like a very of Noster y yeah go ahead um well dam is a pretty pretty big
Application and he has a lot of views to actually build and the website that Vanessa um showed a couple of minutes back I’m still working on that but um I think I in the past we’ve explored uh the opportunity to design the damus Android application which will require basically the duplication not not
Duplication but yeah like recreate every single screen um in a Android view so which is is going to be a lot but uh actually like building things like um the GitHub stuff uh is is a pretty cool idea because I remember that in Costa Rica um in March Jack said that um it’s
It’s not just cool it is super important to have a the the the GitHub version for Noster H so that way we could run the the Bitcoin notes and all the codes not in GitHub but in the GitHub version in Noster which is decentralized as well so
You will you will be securing like the Bitcoin Bitcoin code um in Noster so that will be a really cool project to work on and and massive someone else cool so I think that’s it thank you very [Applause] much e e e you can hear me
What you said what’s that say what you said a moment ago just waiting yeah I think we’re just waiting for a moment until they tell us we’ve got the green light and then we’ll go unless someone wants to tell us we’ve got the green light show say good all right
Well I guess it’s Noster so there’s no rules right uh we could just go ahead and start I didn’t know if there was someone who was supposed to like kick it off but uh I guess we’ll go ahead uh do we have any families in the audience any uh parents with children
Around all right good hey oh here we go gra that I’ll just hang right perfect make sure talk nice and close to the mic so everybody can hear you yeah we’ll do hello all right very good cool so let’s Noster this is um an opportunity for my
Daughter and I to share with other families other parents and children uh our experience is PA programming using Noster uh we passed out somei uh some little cardboard uh or or marketing little pieces of paper on the uh on the tables there if you’re interested in following along uh welcome
To everyone on the live stream as well and before we start I did want to thank one more time our uh event hosts and all of the volunteers soato thank you very much for all the work you guys are putting in um oh thank you tell them where they can find everything
In there yes if you want to find any links to any resources that we’re going to bring up please go to Sophie Bonacci let’s Noster it’ll have all the information on our talk and we’ll have a link to our slideshow on there as well great all right so uh just a little bit
Of an introduction for us um you’ll see here’s our uh our Nims we’re both on Noster of course um we are as I said a father and daughter team and uh this is my daughter sof yeah I’m a I’m a high school senior and I have college coming
Soon I’m in the middle of my applications right now um yeah and I go by Fibonacci um I’m a delivery manager I work with a lot of software teams but neither of us are coders which is the most exciting part of this talk uh the coding that we’ve done is just because
We’re interested in things like Freedom Tech and free open- source software and just meeting really cool people so hajim what’s our mission what are we trying to do with this par programming so our mission is to first and foremost prepare me for University studying in computer science things like that and
Just getting some quality father daughter time between us before I leave for for college and learning un useful programming practices and tools as we expand our experience and to build the Noster together the Noster so when people say why Noster I think Pablo says it really well if anyone’s
Been to nost r or has seen one of the videos from nost Rica um Pablo is prolific I’m not sure where he finds the time but I think the extra appendages probably help him out and he was the one at this talk and there’s a link to it in
The resources there um he said that Noster is one of the greatest gifts that we have especially as novice programmers because it’s so fast it’s free network effects if you are on Noster suddenly you have access to everybody else on Noster the open social graph of it all
Um there’s no apis involved and the zapping the in protocol payments these are the things that that Pablo uh said were the benefits but what we’ve discovered is it’s easy right not only is it easy but we can get very fast feedback whenever we do just a keystroke
Or two we can immediately see how things change right away um there’s no rules with Noster um and did we mention it’s fast and easy so uh many many benefits to programming uh with Noster so our timeline how we got here so mostly this timeline is about me but
Back in elementary school I had a little bit of programming in my life life and then I had some iPad apps things like really simple things and then in middle school a little more and then back last year in the fall I started taking my first actual computer science related
Class in school and then my dad joined domas yeah I joined the Damas uh test flight back in December anyone else joined last year around uh when Jack tweeted out yeah and then uh sof joined right after that mhm so in terms of the timeline we only started pairing uh
Earlier in this summer and we started because we wanted to build some reactive websites and we heard about spelt as as an easy kind of framework to get involved with and then um we kind of Dove used that as a a means to get into Noster yeah so for our process we used
Um what was called scrum we used short iterations of it about a week long and we made a plan on Sunday and we were always solo repairing from Monday to Saturday because I had school every week and my dad was um he he has work things
Like that so we weren’t always able to do things on the same timeline and then on Sunday we would um do a demo of what we’ done and then we would inspect it together and my mom was our scrum Master kind of leading us from from behind
K so what we’d like to do now is just demonstrate a few of the micro blogs that we had created together the first one is for Sophia she grabbed the domain name sork IO and it looks something like this you want to talk about what you did and
Maybe show off the site yeah so fork. is still a work in progress It’s really simple but I wanted it to be that simple so on a scale of one to five stars I put a Simplicity of one it just the only thing that has Noster in it is just it
Displays some of my last posts I think if I go this way I have sof work open this is the light mode if I come to the sof page it’s really simple like I said so far but it goes like this and then it
Has some of my posts here he is we were here yesterday in the morning so this is that just simple things yeah so that’s what sofar has um Noster related with ndk so very easy to integrate a feed into a website um between every demo here we’re
Going to give a little bit of insight again into our process and PR programming yeah so speaking of PA pair programming it’s all about working and learning in tandem so if you don’t know what pair programming is it’s when two people typically are working together at one
Computer the person whose hands are on the keyboard is called the driver but the person who’s maybe sitting next to them is the Navigator so if we were working together like this I might be giving dire directions and the person who’s driving at the keyboard doesn’t have to be an expert
They don’t have to know anything but I as a navigator need to be articulate in the instructions that I give have to give clear instructions so we might operate like this for maybe 10 minutes or so and then we might switch roles so there’s benefits to pair programming as you can see
Here such as we can work very quickly very rapidly it increases the ability to share knowledge and to learn amongst ourselves um and if you are working in an environment with teams and new people coming on all the time pairing is a fantastic way to onboard new members to
The way that your team works or the technology or whatever it might be just keep thinking two brains are better than one in terms of some of the resources do you want to tell them about these yeah so our first brush with um with SEL which what we use to build our websites
Was this YouTube video by someone named Joy of code just a really simple but kind of long video in depth of how to just build a build a Blog so sof workk and all the other websites that we’ll be showing soon um at the core was based
Off of this video and we learned with this so so link to the video on the resource page that’s that’s on the website there but again not a Noster video just a spelt video and again for two people who have never coded like this before um pairing up and watching a
Video and pausing the video and rewinding and going back um has been really helpful so we use that we leverage that as a tool then there’s other resources again when you start getting into Noster there’s something called ndk the Noster development kit they’ve got some really good documentation at no. FYI here as
Well as the GitHub repository for uh for for Noster dev kit so I encourage you if you’re looking into building with Noster to go check out those websites as well does anybody know Jeff G anyone know Jeff yeah a few of you so Jeff is
Here with us at nostr Asia in fact he’ll be on the stage right up here next right um he’s also put out some fantastic videos on the ndk nostr dev kit um so here’s the three videos that he put out a few months ago they’re a little bit
Old uh because everything’s moving so fast in the Noster development but fantastic reference and again we watched them together and as we were watching them we borrowed a lot of what he was uh doing on the screen and then we experimented with that demo number two yeah so next we
Have something called Noster Garden which is a simple site for displaying picture of Nature and our garden so a step up from sof for gets a Simplicity of two out of five so let’s show them the site yeah and again Noster Garden it’s our backyard so we would take pictures and
Post them to Noster but what we did was uh if you scroll down to some of the bigger pictures keep going go just keep scrolling as I’m talking um some of the larger pictures you see here those come from the account Noster Garden so we created a Noster account with a public
Private key pair for Noster Garden go to the one right below here and you can see there’s a bird in the tree with the big picture that comes straight from that account the one above it that comes from another account who uses the appropriate hashtag so we can separate um a primary
And kind of secondary accounts here and it’s just useful for in this case just photos of nature right but what I’d like to do is go back to the uh slide here and show you something about the relay because for this one for Noster Garden
We we built our own we didn’t build it we bought a relay here um why don’t you go to the next page there next slide um the relay is from a website called re is it relay. tools yeah relay. tools where you can just purchase a a relay for
Something like $5 us for one year and in it if you go to the next slide you’ll see that there’s a yeah this good this is good here this is kind of the flow um and on this slide here you can see on the relay itself you can add users you
Can white list a user or you can whitelist a keyword you can also Blacklist or block keywords and uh users so here uh maybe it shows yes you can see some of the keywords that are allowed to pass things like Noster Garden or Garden or Gardener um and then this is the uh
Public key for the Noster Garden account so if you go back one slide to that green box there um this is actually on the about us page of of Noster Garden it says first of all is the post coming from this relay we’re only pulling from
Our private relay if it is let’s go to step two is the post coming from that white labeled user if it is post it if it’s not coming from Noster Garden user let’s see if they have the um the tags those uh those hashtags does it say
Garden yes it does well let’s continue one more time does it have an image if there’s no image skip it if there is an image we’ll post it right now only a few people are are using that relay just family so if more people start using
That relay I might have to start looking at what pictures are coming through and then maybe apply some other rules as well so in making Noster Garden it was very similar to what sof did on her sofor IO page except now we’ve got some more sophistication with the rules that
We’re doing and some of the styling that we’re doing with it by the way whenever we develop what we like to do is try to go to a local Meetup and demonstrate what we’re doing there in front of an audience of maybe two or three other people and get some
Feedback as we do it that helps us kind of get out of our own little bubble get out of our own little Echo chamber of hey that looks really good don’t we feel good because then we could get other people saying well maybe it could be better right
So our third website is calligraphy japan.com I think our most recent website so this is a simple site for displaying an artist’s calligraphy an artist who is my mom um Simplicity still at two but now we’re going to try to go for zapping and localization on the site
So if we go to it so we’ve got a short video that we would like to show you now if it uh should you show it first or should we do the yeah why don’t we show the video first okay so this is our video does sound work on
This yeah hopefully we’ll be able to get through this with uh no technical problems that’s not working make it big yeah oops I don’t know if the sound’s going to work on this turn up your volume oh if I okay hold on so if it doesn’t come over the
Speakers what we’ll do is we’ll skip this 4-minute video and invite you to watch it but you’ll hear it if uh if you do understand Japanese you will hear sof and her mother only speaking in Japanese to each other because s’s mother is Japanese and as she said uh she’s also a
Calligraphy artist so um if you skip through the video a little bit just show a little bit of how she’s interacting can we hear this let me tell you about my mom and her calligraphy she’s been practicing Sho all her life can you hear that fine wait oh they can
They you can yeah play it okay okay I’m g go back from the start and just let it play it’s a cute little let me tell you about my mom and her calligraphy she’s been practicing Sho all her life the Japanese calligraphy school that she belongs to
Doesn’t have an easy way to show off her work same with her friends I talked to her about the websites that my dad made for her they were rather interesting they were just hard to use using vs code on my MacBook I was able to easily start a spell project D a m u Not only do we want to add the ability for visitors to react and zap we also plan to allow her friends to post their pieces too this means that my mom has to show her friends how to get on to dois or some other client and I’m sure she’ll
Ask me for more help but we’ll see about that Display name username usern I wanted her to use Damas because it was easy all she had to do was sign up take a picture and post it behind the scenes it was time for my dad and I to get busy designing the site so he made a plan key I imported ndk which is the nostr dev kit and was able to quickly connect relays and Port events the site rebuilding her grabs her post from a private relay and Exhibits her artwork beautifully So let’s see what she thinks about the site speee so there you go Noster to build websites pretty easy if you ask me so yeah that was our little demo video for that for craphy Japan so if you’re watching live hello Haku she’s in Los Angeles right now she did
Not join us for this trip so then if we just visit the website really quickly you’ll see that this was the picture that was posted in that video and she has all of her other posts in here as well and we’re looking to add very soon so not many yet but
Again as sof said we’re trying to open it up so that not only um uh hakusui s’s mom can dis um display hers but also other people in her same calligraphy school can also join Noster hopefully uh the onboarding is easy using Damas and uh they can similarly post their artwork as
Well to be developed okay so our fourth website is called mik.com which is a combination of mikong and Noster so it has a strange name if anyone was in uh Costa Rica for nost R uh maybe you heard Pablo created a website called anost Anna is a word
For pineapple I don’t know why he named his website Ana Noster but he was inspired by a pineapple which might be good for Costa Rica but for Japan we decided to use mikon uh why don’t you open up that site it’s basically a Craigslist or a classifi type of a site
Uh where you could post events uh based on different categories click the purple button add a post um use the drop down and say I want to sing kro and you can give it we’re not going to do it now but you can give it a time
And more details and once you post it then other and this is posting using a kind 121 in Noster uh most Noster notes are kind one events uh but this is going to be a kind 121 event and so it posts as that but replies will be kind one so we
Got about maybe 80% done with all the feature parody to where uh anaer was and uh our pair programming skills were really put to the test but qu didn’t quite overcome right so it was a fun project and hopefully we’ll talk to Pablo uh during
The next few days and maybe he can give us some hints too what was nice was again we used uh the meetups to go ahead and demonstrate some of this to the people in our community too so here’s another little bit of um uh some some tips that you can try if
You are also working uh in a pairing relationship yeah so some of the Dos are to when using git to pull whenever you start um just make sure that you’re always having a fresh start and then do commit more frequently during your session or when you’re done just
Remember to commit that so you have extra green on your GitHub and rotate very often or use pomodoros if you’re working solo um and one thing is don’t wait three weeks between programming sessions because maybe you will forget everything all right and the last one we won’t to demonstrate this because it’s
Not launched it’s just working on my local host but feedster is another project that we created where we’re just experimenting we’re trying new things so we’re find we’re looking at like Jeff G’s code whoever that guy is and we’re like trying something that he’s done or something that someone else has done so
It’s an internal sandbox uh hopefully we’ll we’ll post feedster doxyz um sometime in the next few days but right now it’s just a fun little place to experiment and play and we also do have another um relay that we’re using again for experimental purposes there all right so as we wrap up we
Wanted to just show you what ndk looks like again I would point you to the resources that we showed as well but here’s some of the takeaways that we found first of all it’s very easy as we said If you’re looking at the uh document the documentation you can see a
Lot of this is already there so this is a case where we created what’s called a Singleton we took the ndk uh object and we created a single instance of it so we can write it once turn it on once and and then use it anywhere across the web
Pages so you see it’s not very many lines of code uh up in the top we’re importing our packages we’re um assigning this nip 07 signer which allows other people to use something like Albi or insect bunker or something like that to authenticate and then we’re going ahead um attaching some relays and
Making our connection if the connection Works we’re creating it uh so it’s writable and again usable throughout the project how about the relays yeah so for our relays this is for calligraphy Japan specifically we have a few different um groups of relays at the top you’ll see we have current
Relays which are the ones that we’ll be using um within calligraphy Japan right now and we have a list of Japanese relays that we found since we don’t live in Japan we don’t really and we’re not on that side of uh of of Noster um we don’t know what the best Japanese relays
Are but we just pulled four of the ones that we saw most yeah and then we just have a few more that we’re testing but for now we’re using the current relays at the Top If you don’t know what purple pages is uh Pablo created that one as well and it’s only
Collecting I think I think it’s kind zero which is the uh the information the user information The Meta uh data there and then of course testing as you said so how do you implement ndk so one of our pages in spelt again a reactive website um at the top of the page uh
You’ll see we’re pulling in we’re importing our our packages or our Singleton object uh different types and then we’re making um we’re doing this uh this subscription it says here on line nine it says um go ahead and create a subscribe event so you’re pulling all
These kind one which is just the general notes um and uh and we’re only going to collect 99 of them there you see on line 11 so we’re we’re limiting the global feed to just return the most uh the top 99 the most recent 99 events uh and then
We do a little bit more with the subscription there um and then what we do is all of the 99 events that we’ve captured we we’ve got an array of them and we’re just cycling through iterating through the array and each event we’re just passing to uh the component
Postcard as a post let’s go ahead and look at that component yeah so for the postcard DV file that we’re in um you can see that we’ve imported everything we’ve talked about and we have this content string um on line 10 so all of the content of the
Post which is like the the image all of the words will be in that string and then we have the author on Lines line 13 which gets their profile with their hex Pub Key and their post Pub Key so we can display that better so it’s just one long file broken
Up over three slides here the second slide that you go to this is where uh we’re using regular Expressions to um identify any hyperlinks to um make sure that the line breaks and the formatting is nice and to identify the image just kind of regular Expressions on to slide
Three and then we bring it all home you want to talk about this yeah so at the top we have we’re going to display the Avatar of the of the author of the post and then we have their profile and the display name just making it really um beautifully displayed on our website
Instead of a lot of words and unnecessary things we just have nice big name yeah nice big name picture and things like that and then of course the date that it was posted the created at date and then the cleaned up code you can say we we can see you can see that
We converted the link to image we added the line breaks we got the links there so those three functions that you saw earlier and then a little a little bit of style so there’s not a lot of complex code going on here it’s very um pretty
Much uh reusable from one project to the next we might just change a public key or change the style or maybe change a little bit of how Noster is interacting great so as we wrap up we just want to repeat the the importance of reaching out and participating in your community
Especially if you’re not a a a developer um a real strong developer it’s really good to get involved with the community and get that feedback and maybe find some expertise so what are some ways that you could work within your community and talk to your community with this sharing and learning well
First of all you could do that over Noster right um keep in mind it’s great to make friends not just with developers but with anybody uh but certainly when you’re working when you’re talking talking to developers over Noster uh be nice you know complement their work build a nice relationship be brave share
Your progress that takes a lot of Courage sometimes and uh always be curious and ask uh for advice maybe there’s something that you can improve so I think that’s very important another way to get involved with the community is through something like Meetup so if there’s no Meetup in
Your area I would advise that you just start one that’s what we did with Noster OC Orange County California so if you’re ever in Southern California and you want to come to join our Meetup in person uh it’s an open invitation of course and then there’s a few other
Things that you can do uh We’ve started recording ourselves for a podcast we haven’t pushed a podcast out yet but we’ve we’ve started and we hope to share a lot of the things that we’re learning over the podcast we’ve also made some videos us you saw one short video but
We’ve also been documenting the progress with ma Noster and then also the telegram group is great for reaching out to people who really know their stuff that can very uh happily even um give you some advice and so now our last section is our future
Plans so what do we plan to do together well first is um features for unfinished website uh calligraphy Japan we wanted to add some localization especially because of the whole um Japanese community on Noster so he wanted to add and a French yeah so he wanted to do that uh
As soon as possible and we want to also add the ability to react and zap within calligraphy Japan’s website so for that we’ll need that authentication that nip7 signer that we showed and then like we said in the video we wanted to add my mom’s friends from her uh from her Sho
Class hopefully um she can introduce them to Noster so we’re also looking for other projects that we can do that are within our skill range or maybe at the edge pushing us just maybe beyond what we can do uh so we’d be happy to uh hear from
You if there’s anything that you might recommend in terms of other projects that we might look into maybe Beyond micro blogs and then any other learning that we can do together that’s certainly something that we’re interested in yeah so for my future plans like I said I’m
In the middle of my college applications so after all this is done I’m looking forward to starting at an intership possibly or getting advice on how to reach out and connect with people that could give me that opportunity and get ready for my future career out of college things like
That and then uh as far as I go um I’m I’m GNA miss working with her once she goes to college but in the meantime I do have a a full-time job as a delivery manager of software teams but I am eager to start looking for opportunities
Outside of the Fiat world and start working in places that Celebrate Freedom Tech notice we haven’t even said the b word in our whole uh our whole presentation here today but that’s very exciting to me so I’ll be on the hunt looking for opportunities for me to get
Involved and contribute that way in addition I’ll be at noville in Tennessee next week if anyone’s going to be there give a shout out and uh finally oh boy Community is my thing I would love it I think it’s my calling to open up a hacker space where there’s podcast
Studios and I can serve coffee as your Barista so that’s me in a nutshell I hope that you had a great time with us here today I know that we certainly did so where will our journey take us next yeah where indeed will we be going [Applause] was
We showed it oh okay great awesome we’re good okay we’re running behind on the main stage our next presenters Jeff Gardner and Pablo will be here shortly so just stand by are there any questions that would be a good thing we we if anyone has any
Questions and grab this mic and uh ask away ah here they are I was is wondering about the the cafe the hacking space where would that be eventually where indeed um well because we live in Southern California um probably there however I think we’re trying to well speaking for myself I
Wouldn’t mind getting out of Southern California and perhaps finding another place my heart part of my heart is in yamanashi Ken oh I would love to have like a little yamanakako or Fuji Yoshida no too little cafe wouldn’t that be lovely but where are the hackers so maybe there’s another place uh that
Someone would recommend would be great but always it’s up here it’s up here the cafe is in my heart great okay we’re good okay great thank you [Applause] all thank you sir um hello hello I guess in true unconference style we have done very little prep for this but um this is
Basically what we do all day every day so I think we’ll be able to put it together well the talk is how to contribute to Noster code so just wing it so the so is it’s a very good representation of that yeah yeah exactly
Um so I guess maybe to get started uh do you want I mean maybe you don’t really need much of an introduction but you want to just give a quick like this is what I’m working on these are the things that uh with specific like tilt towards
Working on Noster code yeah uh so I’m Pablo F7 set I works on a bunch of clients um highlighter anost which uh they forked um what else uh sster I was trying to lead you along the path IND okay oh yeah oh yeah and indk uh yeah so actually indate comes from
Anost um uh I for anost I wrote something and I I thought okay I’m going to package like the noer specific code in a very reusable way and then I I kept copying when whenever I would create a new application I would just copy the the whole anost code because you you you
You saw that at no uh I I was just copy the entire code base um because I just didn’t want to take the time to to package it but that was the that was the goal and and yeah like I think in February or March or I I so I packaged
It I’ll fill in some blanks um so uh Pablo and I met uh I think in February and basically had a conversation we both found well he had found Noster a little earlier I had found Noster around kind of late January and I got on the phone with a couple
Different people and he was one of the first and it was like are we seeing am I seeing this correctly like is this what you’re and he’s like yeah yep all of it everything it’s all going to get redone and it was like okay great I’m not crazy
Um and then we accidentally ended up on the same flight going to Costa Rica in March uh and so we ended up meeting in the Madrid Airport and spent most of the flight between Madrid and San Jose and Costa Rica basically talking about you know a bunch of different Nostra apps
But also this indk thing that um Pablo was starting to think about like trying to put together um and so I immediately obviously jumped on like okay I’ll help in whatever way I can which is mostly like merging uh read me changes um but uh I think the idea behind indk
Like BDK like LDK if you’re familiar with those libraries is how do we make it really easy for people to build things on Noster without having to think about the uh centralization Tendencies or the maintenance of sort of you know decentralization and just all the underlying like lowl
Stuff um how can we get it so that people can write something that functions in 10 or 15 minutes um and I think to that end it’s been incredibly successful like it’s been really great yeah that that point is super important and that was 95% of the reason I wanted
To package ndk and make it because there’s this overhead to you create a library for yourself and you know you don’t have to write any the comment not like there’s a lot of the commentation but you you don’t have to be so careful with regards to how clean the apis are
Or if you want to just break an API if it’s just you using a package you just use it so there’s a there’s a tax uh there’s an overhead to to be paid if you make uh a library like this one public um and I I knew that it was going to end
Up breaking interfaces which was another reason um why I was delaying publishing n dek and then in in costara was yeah like convinced okay I should just start giving access but the the fact that Noster has very important uh especially at the moment centralizing Tendencies uh as a
Developer was to me was very important um I go on and on and on about the gossip protocol now renamed luckily to the outbox model which is just a fancy way of saying where do I find events or where do I write events like should I just blast them out like Blaster should
I just send them out everywhere or should I be a little bit more uh smarter um because at the moment everybody just connects to the the damos relay or to the snort relay and and and it works it’s very easy because it’s literally just hard codes some relays
And it’s just like very very tempting to just do that just do that like why care about all this really hard code that I need to write to find where and it’s always a bit ambiguous that’s why the outbox models has like everybody that implements the outbox models ends up
With a scoring system for the relays and the puff keys and and other things um so yeah I wanted to to write that that that code in a way that people that want to create a new client they don’t have to think about these things because the the out booked
Mods is is quite hard to implement and it’s very ambiguous and we don’t know yet what’s the I mean I don’t think there is a right way but um it it’s very unclear still so I guess given that the the topic here is contributing toster code
Um maybe uh maybe let’s go like really high level first and we’ll drill into a few of these things but like um from your point of view what are some of the really key principles of you know the right way to contribute to you know open source code in general but like in
Specific in the Noster ecosystem if somebody was coming into this from like whatever a web development background or you know kind of standard startup background and wanted to get in like what are the things that are maybe a bit different that you wouldn’t necessarily uh wouldn’t necessarily jump to if you
Didn’t you know have a background working on open source stuff um in when you come from a background of of just working in in companies uh the the people that work in companies and I worked in companies for a long time and small I I worked at Marilyn so I I
Worked in very small and very big and the the thing that they have in common is that there is a lot of road map it’s very clear where you’re going um or tens to even like on really bad shitty companies I I worked on a on a very
Small company we were this was like 2003 or so and we were creating uh Linux distribution a beautiful brilliant business if you’re not redot um and it was with XML it was like it was horrible all the way down and this was by written by uh like the company was being run by
Someone who had no idea what they were they were doing but still it was a road map it was like the direction was clear there was wrong but it was clear um in open source you don’t get that um and I think it’s a bit similar to what I was
Saying in the in the talk before it’s more natural it’s like life pretty much has no rad like you have to make your own rad map uh and open source is like that no one is going to come and tell you we we had a a an issue opened on the
I was going to get to that next but oh my God that was beautiful that was poetic hang on before you get into that one real quick um so I guess like that is something that I think is really important um the lack of road map and the lack of
Clarity stops a lot of people from trying to contribute and I think that’s just wrong um they feel like they need to be given permission they feel like they need to have something assigned to them or someone who’s in charge to tell them that they should do X or Y or Zed
Um and I think especially for product managers coming to open source that’s a really hard jump to make because they’re used to being the people that figure out who gets to do what and like you know what the priority stack is um but it’s it’s one that you got to break your mind
Out of pretty quick um because again it’s Mo mostly about find something that I want to work on uh and and work on it like fix it and submit code yeah just in life you’re going to have a good life regardless of development if you think every about everything in those terms
You’re just going to have a much better life yeah so going back to to to the stories a few days ago someone opened an issue on the on the NK repo it was so funny um it was the the the issue was properly structured which which already tells you something it was
Problem uh it’s unclear how to contribute to this repository uh analysis or something like that uh there is a contributing.md file missing on this repo solution I contributing.md file contributing uh contributing.md file and then Please assign me this issues so that I might address it I read that I was like this
Is beautiful I didn’t reply I just sent it to to you to FF um and I think oh and to g sovereignty uh how would you reply to to this and got all kinds of really funny responses uh G sovereignty actually went in and responded in a very polite way is
Is it was a tongue and cheek anyways I mean we poke fun a little bit but at the same time uh I mean the thing stands like you can either spend 10 minutes writing an issue about the thing that needs to be done or you can just write
The doc and create a poll request and then you’ve got the work done and you know in 10 seconds I read through it and I’m like cool great that sounds about right bam merged um and you move on to something else I would reject that that
PR though yeah I’m sure you would would re that PR anyways I think again the point here is optimize for doing work that matters rather than doing work work um and especially if you’ve come from very large companies you’re probably you live life optimizing for work work you
Know the work that proves proves that you’re doing work or the work around managing other work um so many people in big companies like that’s actually their job versus doing the work itself um and open source is a really beautiful system because you can actually skip all those
Steps and just go straight to doing the work um and yes there’s a bit of communication that needs to happen but uh most of that communication happens on poll requests or happens in comments on code or on designs um so there’s I think it is one of those things that once you
Make that transition it’s it’s like freeing it’s amazing yeah totally um before we just continue with banter basically yeah are there any questions because maybe that would be more productive there are no questions everybody knows everything already yeah of course um why we talk about nips writing nips maybe yeah
That’s actually a great one um so uh I’m pretty sure most people here are going to be familiar with the nips repository um it’s uh becoming more and more hectic by the day which is both a great thing and also a challenge in a lot of ways um
Speaking of which is Arthur franka coming to I don’t know to Tokyo does the NSA allow him to come I don’t know um in any case like I think uh you know the nips ratory is the sort of source of Truth for how you know the protocol
Potentially can work um I think one important thing that you know those of us that have been around a while know is uh nip one is the only one that’s required that’s it that’s the only thing about Noster that is actually fundamentally required to that’s Noster
Yeah that is one is Noster yeah that’s it um the rest of the stuff is like you can do this if you’d like it’s a suggestion um sort of like speed limits in Italy um uh so I I think you know everything should sort of be filtered one through
That lens and then two you know it’s uh I guess you have to come in with a bit of thick skin if you’re going to try and contribute or make comments in the nips repository um most people uh I think a lot of people get put off because it’s
Very Brusque uh in how people talk in in poll requests and in comments and things and that’s just kind of software engineers in general um but it’s also you know no one wants to spend the time you know writing again doing work work writing eight paragraphs to like you
Know step around gently around your feelings it’s just like this is a terrible concept Knack you know like I’m we’re not going to do this I don’t think this is a good idea um and I think that’s really good right but you do have to get used to
That yeah to me the the non nippo one nips are are not even suggestions they’re like more documentation of hey if you want to be interoperable with this thing this is the way to go right because it would be very easy to you create whatever a Marketplace and you
Just come up with a bunch of um nips of a bunch of not even nips you just come up with a bunch of kinds and you do your own thing but then you’re losing the interpretability of Noster so you have a market of one right like the the only
Player in that Marketplace that you just made up is is you and and your users um and a lot of the magic of of Noster comes from the fact that things are interoperable so damos is compatible with amethyst for the most part when they’re not fighting um most part and
And and Primal is is compatible with uh snort um and and and that’s beautiful right because you don’t have to use the same client to talk with with this with different people um so to me is okay I created a highlighter kind 9802 if someone wants to create this type of
Event this is the way I’m doing it um and it’s also good because when you go through the um nip um PR process uh a lot of people semi usually a lot of people will come and will complain about every minute detail uh which is annoying but
At the same time usually you you find some blind spots some edge cases that you didn’t think of or you find a better way of doing something um when I wrote um ana noer my my my idea was like oh I’m just going to put a Jason blob
Stringify Jason blob on the content what could go wrong it’s a horrible idea it’s a really bad idea it’s not the way to do it it’s not the nost way to do it it’s it’s like all data modeling uh thinking uh way of doing things but if I had
Proposed that on a on a nip I’m sure people would have just laughed at me and would have taught me okay this is not how you do it well people were doing sh on on the content but like kind zero for example um but yeah that’s
Um and and so that’s my my philosophy of how I understand the non- nippo one uh nips um and and to me writing a nip the do you want to talk more about like how you understand the nips yeah yeah like I mean I guess um so like I totally agree
With that point I think the nip process uh is a really good one again it’s Brusque you like you know come in being humble and having a bit of thick skin and like knowing you’re going to get some feedback but like again that’s a really good thing um and and there’s
Going to be lots and lots of bike shedding um for anything even like minor changes but they can also go quite quickly um the nip that I wrote for classified ads um it was a really great process cuz that exact situation happened I called you up and we like
Were talking about the general concept of it and I had it built in a very different way and we were both like wait if you just take one big step back from this it’s actually the same like these three different things that you thought you had are actually one thing um and
Because we had that conversation and because we went through those you know that flow when the nip was actually written it took like two days and then it was merged um because everybody was like yeah this is the right level of of abstraction this is the right setup it’s a really simple thing
Um but you don’t get to that without you know waiting in and and getting in there with people and like getting that feedback uh and again it’s all optional um and people are going to disagree and even now like you know people don’t even agree about the zap’s niip and like want
To change it and like completely overhaul a thing so I think you need to know that like one they’re uh optional but also they’re temporary they will change over time and they will get Rewritten and they will get replaced by other newer nips yeah and when you realize that the
Bike shedding is uh a bit intrinsic to to the to the process you can get a bit ahead of it um once you get experience you you know what the um the the comments are going to look like and you can pre- reply to those comments usually
When when someone takes a stand about something they they polarize around that stance right so if you preempt at least that that’s the way I do it’s very politics but but if you preempt their objection they will think it but because you preempted it they will not voice it and because they don’t
Voice it they don’t get their identity married to that opinion and will defend it to to death yeah um I I was um I I wanted to write the nbk forced me to write the the identity rotation uh nip which allows you to will allow you I still need to prepare the presentation
For tomorrow but it it basically allows you to change your uff without losing your followers uh it’s it’s very problematic because the protocol is not designed for that so there is a lot of uh things that that need to happen around around this but it’s very important like the graph
Of Noster is is like most of its value so most of the value of Noster so we we need to find ways to preserve that um so I I wrote the the this nip nip 41 um which is about to be merged and and I I read all the other proposals
Because solving this is such a core problem of of just identity in general not just Noster um that it has been proposed multiple Solutions have been proposed for for quite a while I and I read all of them before creating the pr and that’s why NPK was on my ass for
Like days because I was actually reading what were the UPS like why did it never work before I make my proposal how did the conversation flow um and yeah you can you can get ahead of stuff I think the other thing that works really well is implement the thing you’re thinking
Of you must and and like not only after the fact but like part of the reason that uh I think especially like the classified nip again which is simple and I think the reason you know nip 41 will get merged pretty quickly there is you know if you’ve got a working
Implementation of it you can point to it and be like look I’ve built it I didn’t run into any other weird issues here it does what it says you know it’s supposed to do uh and working code generally will put a lot of conversations to bed um people get into really bike shedding
Situations when they’re looking at documentation but without working code to look at um so I think making sure that if you want to write a nip if you’ve got an idea for something spend the time to actually try and Implement even a super simple like Ultra basic
Version of it that looks super ugly but like put it in there yes yeah it’s actually in the rhy of the of the ni repo says there’s got to be two implementations before any uh PR is marriage no one does it but uh it I mean one is I think fine like it’s
Helpful yeah yeah I think so yeah okay so let me repeat the question for anybody with a stream um so the question is we’ve been talking about like how to do these things but uh maybe the more important question is why should devs that might spend time on other projects
Um or spend time trying to get VC money to work on some close Source thing um why should they spend their time uh building on Noster you want me to answer is there an answer freedom I think that’s the only word you such a bad answer I know I know for
Everything I mean it works though it works uh um I mean I’m going to give you a talk later about how Noster wins uh so the answer to that is that noer wins and if you have stuff implemented in in Noster it’s better that if you implemented on
Something that died right um that’s the tldr the the the longer answer or or the answer that I will present later is that noer has certain properties that are just emerging from how the protocol Works which is kind of cool it’s it’s very Bitcoin like Bitcoin has some well
Let’s go call the Bitcoin rabbit hole but it has certain properties that allow for compounding in a very natural way all the other platforms uh and these the competing protocols like blue sky and and Mastadon for the most part all of them do not have these compounding
Properties uh at such a deep level um it’s like embedded in the nature of the protocol so if you create something at the beginning of something that has the potential of having I I always say it’s Network effects um exponential use cases if you are able to create
Something that is compelling that is useful that that’s one of those use cases you’re going to write massive wave you can write a massive wave of of adoption once that happens one really good example that was it’s so small because the network is so small but it’s
Very significant and it happened I think I was flying to to Miami when that happened yeah it was when I was going to Miami um so I I wrote sster which is like a music client like Spotify um and all the musics and then I added podcast and carish got angry at me
It’s Kind here um the um the it’s just a Noster kinds our Noster events right so it’s just like okay it’s a music client it has like five users or something like that but then snort added support for the kind that I created on on sster so then you can listen to sster
Music on snort so you have this I I I mentioned it also as data liquidity the dat data from sster is leaking into the kind one micro micro bloging and now coracle has support for stemer so now you can listen to bits and the stuff that people are doing on coracle which
Is it’s a micro blowing client why is it a music client because thinking of clients in this this is a microing client it doesn’t really work it’s the the lines in nster are way fuzzier so that means that the activity in stemer the activity on Sofer the
Activity on on web Lake impacts the activity the value of Primal of snort without them having to do any extra work so this effect is really powerful and there are very few protocols that have this capability uh Slash TXS is such a prot article but I
Think that the sign of Slash tags is is flawed um I I wrote clients for okay I I don’t want to open that that that door too much but but but this is a very powerful force because it’s it’s a natural force so the why of writing an
No client instead of just contributing to creating your own open source whatever is that you’re going to leverage very powerful Network effect it’s just really hard to see them right now because everything is so small but they’re coming yeah like that to me is that and the fact that it’s so
Flexible to do any use case I think are the most important pieces um you know the like anybody who’s worked in startups for any amount of time knows that like uh like product is actually the easy part distribution is the really really difficult part and Noster comes with built-in distribution like as soon
As you build a client like probably said if it’s a valuable useful thing uh it will get users very quick because you don’t you’re not chasing people to get them to sign up for something new it’s one click and they’re there um and all their data and all their social graph
And all everything comes with them um so I think being able to sort of jump that distribution uh kind of Chasm at the beginning of creating something new is really really powerful for building new products and um I forgot the other thing I was going to say and and yeah one more
Thing with regards to to what you should said is that even within the same type of clients you have Primal and Amethyst or Primal and Amethyst is the best example here go ahead yeah amethyst is a it’s a good example amethyst is optimizing for something that is pretty much the polar
Opposite of what Primal is optimizing for for yet they are both contributing to the same thing they’re just attacking completely different uh a completely different audience but at the end of the day that audience they are all all in the same pool and that’s super powerful like blue sky for
Example they they they have their their one client it it looks pretty much like Twitter they have a product team that that that is working they do not have an an amethyst like blue blue sky client that they only have the blue sky client it it goes after one
Audience caveat is a very large audience because Twitter is a is a is a compelling product for a lot of people but the fact that we can have these different approaches and Primal is going to try a bunch of things that bitcoiners will will say oh this is not the right
Way or CBD is going to try one approach that Bitcoins will hate but you don’t have to use it yet the activity that happens on CBD will benefit the people that are doing using yeah something like that’s exactly what I was going to say so in traditional Network effects
Businesses which has been most of the internet so far all of the value of cres to who gets there first and gets scale first um and that is that has literally built all of the major companies all the successful internet companies so far is they got there not necessarily first but
They were the first to hit the point the inflection point where their scale compounded faster than anybody could catch them and that is absolutely just a recipe for building monopolies um which okay they build really big giant valuable businesses and this is why VC loves them because they’re like if I get
One of these out of like I’ve paid back my fund um in Noster it turns all of that on its head and the value acrs to the network and everyone on the network most of all to the users um which to me is also fascinating because it totally turns the business
Model on its head as well as you know what you’re building and how you’re building it and it makes you think of okay if that’s true and that’s what’s going to happen here and it’s going to ACR everywhere what ises that do to business uh what does that do to how you
Make money on the internet um and then what effects does that have on how we do things in society I think the last 20 years has shown us that it has been not a good outcome to have everything centralized to three or four giant you know Mega conglomerate internet
Companies are we do we have much time left we need to get out of here yeah as long as you want oh yeah okay really are you sure okay um does anybody else have any other questions what [Laughter] I can hear it whatever he says it’s a
Lie this is the one occasion where I’m not going to troll either of you believe so you mentioned like um amethyst and um Primal optimizing for different things can you like spell it out like what what are those different things they’re optimizing for well they’re they’re optimizing have you used
Amethyst amethyst is optimizing for like just absolute coverage on as many different use cases as possible betor is competing against himself to to find a way to implement absolutely all nips including the PRS including the closed PRS the ones that were no one’s going to
Use this okay he’s going to do it um so the client is very confusing right I mean once once you’re using it uh you get used to it and it’s really powerful I love that that amethyst exist and I actually use it like I bought an Android
Just to use amethyst um so it’s it’s it’s a phenomenal client it’s just not a whole lot of people are going to uh relate to that kind of experience Primal is optimizing for this is not for bitcoiners who have their call stor it’s optimizing for people from Twitter who
It’s optimizing for okay let’s do a a keyas on boarding flow okay let’s figure out how to do these let’s figure out how to like have a proper product vision and execute instead of like a lot of I’m I’m talking about what I’m going to
Talk on the next you can just skip the next talk um but we have a lot of developers in Noster we don’t have enough entrepreneurs in noer people that are thinking okay product this is my vision I’m I’m going to execute in this direction we have a lot of Tinkers and
It’s really good and we need more but we we are very heavy on the Tinker developer that is up creating just wild ideas uh like a dow thing or um like these wild ideas it’s fantastic it’s great like that’s the kind of thing we want to see but we also
Want to see going after the the obvious path like the path that requires Pixel Perfect execution that is really hard to to execute well it’s really hard but it’s not going to appeal to a lot of developers because a lot of developers they just want to play right like little
Kids um so those are those are very different audiences those are very different paths uh and we have both we have both no we have n of those right like both and more yeah and other stuff um any other questions wait that do that answer your question no but that’s [Laughter]
Cool I can’t remember what your question was something yeah troll back to anster for that one you use like a kind 120 right it just pi the number don’t remember I just I just pick the number so when we’re coming up with like these different kinds for
Experimenting um is there any way that you found for like I’m thinking of like um what when airplanes are landing you have to have like flight control like making sure everyone’s like cross crossing over like if I use like this event type and someone’s using it for a
Different purpose is there any kind of um way to discover like what relays handle them them or or anything like that so so really really for the most part and I would like to see less of these but for the most part uh are kind agnostic they don’t care uh kinds have
Different ranges of Kinds have different meanings like 30,000 is NE 33 so it’s parameter replaceable 20 10,000 is replaceable like they have different meanings uh but for the most part really don’t care the way I do it is I just pick a number that is funny to me like
Sster songs are 1337 and it needed to be NE 33 so I needed a three at the beginning so it’s 3 1337 why just because of leit it’s it’s fully because of that um for ne41 sausage is made so for n41 I chose uh 1776 uh Independence and uh reports 1984 1984 is
Is is reports um look the answer to your question in short form is just pick a number isn’t already taken even if it’s in someone else’s PR and you really want it just make sure that your PR gets merged first it yeah it depends like like it’s a bit of an move to
Take someone else’s number that is so if you really care so for example for for nip 89 I really want to make a reference to the fall of the Berling wall so I picked K 31 1989 and I wanted the the nip to be 89 and bet the Carman
Had a NEP 89 open for like two months for like broadcasting Bitcoin transaction and there was a discussion going on forever I was like this is never going to get merged I’m just going to take I was I was the and I went in and I pushed hard to get that
Merch very fast and I took nip 89 that’s an move but it it it’s only warranted if you really and I actually messaged B the kman I asked him do you care about this number because I do I actually offered him money for the number coin
On trying to get your nip so yeah this is how this but and then you go to um you just check if there is someone using if there is real use of that number of that kind number I just check like a bunch of relays okay there’s no one I
Checked no one was used in 1776 okay perfect I’ll just take it um so yeah that’s the way the way I do there and for like relays in theory you know there is a the talks about relay info where um you know you make a request to the relay
To basically say to them what do you support um and most of the relay uh software implementations have this feature built in and so um and again most of them are kind Diagnostics so they’re just going to accept everything blindly but uh you can also use that in
Probably over time that’ll become more of a thing yeah that that nip sucks and that NEP things extended we’re not going to get into details profoundly because right now for example there is no way so I run relay purple Pages which accepts only kind zero and kind 10,2 uh which is gossip n65
And it’s it’s it’s a it’s a fairly popular relay and clients just send everything to it and I only accept those very specific kinds I actually on I love when I get a purple Pages uh event rejected all the time great I’m thinking about changing purple pages to say that it accepted it
But it it doesn’t uh but it’s a lie um but there is no way for a client to say what kinds do you take and there is so many of these things like we there is so much work to do on on that kind of stuff yeah any other last questions
Or I think we’ve rambled enough pretty much okay thank you thank you guys [Applause] bye e e e e e e e e e e e e me try hello there we go hello everyone I am no. build and I’m going to be talking about Noster apps 101 so just
Basic overview I’m going to wait now we can go okay thank you all for coming my name’s Noster build my name and I’m going over uh apps 101 so covering a lot of the basic apps right off I want to thank auki auki did all of our designs for like all the
Slides right so she’s also here she has some merchandise she’s selling okay agenda there are a lot of apps I’m not going to read through all these actually we’re going to go through most of them but there’s a ton of apps um it’s not just like Twitter clones right so there’s
Apps for all sorts of use cases I mean this is just a fraction of them right there’s tons of tons of options for pretty much anything that anyone likes to do online so just a slide here on the basics how many of you use Noster I bet
All of you how many of you use Noster cool um how many of you understand basically how it works Basics okay cool um I only have a slide on it so I’ll keep it simple but Noster it’s a open protocol that enables Global decentralization and censorship
Resistant media right um so how it works is if you take something like Twitter it’s a very centralized place there’s one company one Twitter right there’s one one place load images it only does one thing right one look and feel to the app Noster uses relays anyone can host a
Relay right relays are Global so something happens in a area and someone takes a relay down or has to take the relay down someone else can pop up another relay um relays can represent different areas of Interest so if you’re interested in cooking or if you’re interested in Bitcoin or whatever you
Can have relays focused to that the cool thing is people can connect to whatever relay they want from all over the world and that’s what gives it this kind of decentralized aspect right couple bullet points at the bottom about Noster is how you log in you use
Public and private keys so it’s very similar to the username and password but with a private key you can’t change it so you have to be really careful with it you can’t like necessarily just like send it you know keep it in your email or keep it where people could hack or
Put it into all the different clients right cuz who knows if it’s a client that’s maybe not very secure you know it could leak your private key so you got to keep your private key safe Noster notes are not encrypted so anyone can see your notes so it is a
Public theme um if you go even without an account and you go look at one of the um apps you can see any notes from anybody kind of similar to Twitter I guess in that case the DMS are encrypted um standard DMS you can normally see who’s who’s talking with each other and
At what time but they’re encrypted so you don’t know what they’re saying and then depending on the client they they will make it more difficult to even see who’s talking so we talked a little bit about signing in right and kind of the difference in the username password
Public key versus private key um public keys are called inubs and so every public key is like an in Pub one right so the private keys are the the tricky part right you can put your public key into anything you want private keys are tricky because you don’t want to put
Your whole private key necessarily into one of these apps all of them take a private key but you don’t necessarily want to put it into one of these apps so they’ve created what they call extensions the extensions um basically allow you to one time it put your public
Private key into it but then it is able to work with the other apps and so it doesn’t actually put its private key into the other apps right keeps it keeps your private key safe some of these extensions NOS 2xs 2x is what I use Fiat Joff created that ntor insect bunker uh
Pablo did that Ellen bits so already a selection of ways you can log into these different apps safely one thing I forgot is to thank all the devs I mean I’m going to go through all of these apps here and I mean the devs did an
Excellent job all of them right and so if I miss a Dev and you want to call them out or something that’s great if I if I can remember who who designed what app I’ll call them out but I mean everyone’s doing such an awesome job
This isn’t this isn’t all my stuff none of it’s mine I one thing’s mine but it’s really a combination of many many devs here hundreds so another really unique aspect of Noster are the zaps right and basically what that is is is there small Bitcoin payments how many of you are
Familiar that with zaps or lightning okay most of you so keeping it short multiple wallets you can use they’re like I they’re basically um lightning wallets Bitcoin wallets that transfer uh small amounts of Bitcoin very fast right and so the Noster protocol integrates this into it so it’s
Actually really cool because you can actually pay for things or you can donate money to people or you can um if there’s an artist or there’s a you know a Creator or you know someone that writes a really you know uh interesting blog you can zap them you can send them
A little bit of Bitcoin right um and there’s no middleman to take that it’s peer-to peer it’s point to point right so it’s it’s a it’s people think it’s kind of fun to zap people and stuff but if you look a little deeper it’s it is actually a global payment system built
Into this protocol it’s actually pretty pretty amazing and you’ll see here as I go through some of these apps apps what you can do with zaps wallets here’s a couple wallets there’s a ton of lightning wallets these are some popular ones that we use Zeus Albi wallet of Satoshi Moon wallet
Strike um very simple to use a wallet uh manually you can see I put a few images right let’s you have X amount of SATs right if you want to send it you have your or receive it you have to have your uh QR code right someone scans it and
Sends it to you if you want to send it then you scan something and send it to them right and like I mentioned I put a few things on the right all the apps have a zap have a way to zap them right anything you can pretty much zap
Anything so let’s let’s start talking a little more about the apps um since we’re just talking about zaps we’ll talk about some of the zap apps so there’s zap stream Kieran created zap stream and it’s basically a streaming service right something like I don’t know YouTube or
Something right but YouTube I guess they have streaming it’s not all streaming but it’s a live streaming service allows people to comment on the streams stream what they want and zap people for that Stream So if you really like what they’re live streaming you can zap them and then there’s there’s plenty of
Other apps but one that came up that people like are the the auto zaps so you can actually let’s say you like you want to you know maybe there’s a Dev and you want to zap them whatever you know so many SATs so many cents or pieces of
Bitcoin every week whatever you can do auto zaps for certain people there’s the the trending zappies so because Noster is completely open and you can see everything that’s going on you can see who’s getting how many zaps and so someone created an app that can show you
Who’s getting a lot of zaps right the trenders this is something that this is what everyone thinks or a lot of people think that Noster is the Twitter clones right and they’re great and I really I mean it’s what I use mostly in all honesty but but there’s so much more but
Let’s cover the Clones doas sure most of you are aware of domus that’s the iOS um iOS Noster Twitter clone app I hate to say Twitter clone by the way it’s it it’s kind of what we have been calling them but there’s so much more than just a Twitter clone but anyways there’s
Snort there’s uh okay doas is IOS we have Primal iOS amethyst is Android SN social Iris toe snort and Iris actually recently merged their code bases right so they’re working together uh doas as will forget Primal um snort is Kieran Iris toe is marati uh no str. ninja I don’t remember
All the devs I’m trying to remember them no str. ninja is also uh a web- based app it’s really upand cominging really good um chical social and plenty more and so I I think one thing I want to point out about the apps is unlike Twitter that’s why I don’t even hate
Using the word even in correlation with this but unlike Twitter each app has a different experience you’re not tied to a certain app you can use whatever app you like best there’s people that are like oh my God I love I love damus and then there’s people like us I’m an
Amethyst person like you know true and through and other people are like no strudel up and coming I I’ve used no strudel a lot it’s it’s actually pretty cool online um apps so it really just depends on like your preference your you know look and feel also a lot of the
Apps have very unique features so you know some apps you know tell you what’s trending like if there’s a trending uh note um some apps might tell you uh um who’s blocked you or who’s muted you um some apps might give you different zap options so every app’s actually a little
Bit different right of the these Twitter clones but they all have this kind of feed they all kind of have that feed and you can upload images and and have your notes I say notes that’s kind of like Tweets in Twitter land but we call them notes I recommend like start one of
These if you’re interest if you haven’t used Noster start with one of these apps but there’s so much more that was just one slide so another huge category of Noster is blogging so the difference here is it’s all focused on writing a really nice blog um a few big blogging
Apps abla news his name is verbich Veri I met him last night and I still can’t pronounce it Fly cat. club uh Yaki hon.com blog stack highlighter was created by Pablo um so as you can see like that it’s really focused on creating the blog you it’s Rich text you
Can you know different fonts if you want to change your fonts if you want to enlarge them if you want to change colors whatever um and then it goes out like a Blog at the end here you you see I added the highlighter um Pablo created highlighter
And you can see like this is an idea of just like kind of you can create anything you want right doesn’t even have to be an existing kind of Twitter clone or blog or something highlighter was an idea of his that allows a person
To go to a blog or you know wherever on Noster highlight something you like it doesn’t have to be like saving the link of the whole page maybe you just like a quote and you can highlight this quote highlight this sentence or whatever and it’ll mark it and it’ll save it for you
Other people can see it um and then Pablo just announced that he did a 2.0 update right so there’s all sorts of updated changes you can split payments and again like if you really like the blog you can zap that person you can send them some money for that blog
Right music who likes music a lot of people I like music too so the cool thing is right off you think okay so there’s all three or four of these music apps are going to kind of be similar but focus on music but no these three apps I’m going to go through are
Actually pretty different um still all focused on music so simster um by not Henry is an incredible music app it’s really cool so it has a feed right similar to like a a Twitter clone but um every note in that feed is based on music it’s it’s some some uh
Stem or uh some audio file or U music or song or whatever that someone uploaded right and so you see a little bit of that experience there right if you share it you drag and drop your music there um you can then uh download it and remix it
Um share it there people can get feedback download that and remix it um so some really cool music features are in simster songster dorg I just found out about this a few days ago so also based on Noster all also based on music but gives you the option to actually you
Know go through it through a NOS through this app but if then if you want to buy it or you want to go see it on YouTube or something like that you can see like there’s links to go do that right buy it on title or Amazon or whatever so kind
Of a different use case than simster and then one I I also just found that I really like is waveman doapp and this is by wav Lake team and they’ve been around for a while and they’ve been into music for a while obviously and they have a really cool app and all zip
Does is it just um plays your streams your music back to back right and you can see it’s in this kind of old school looking kind of uh music player um so you just hit play and it just plays a song after song and um that’s it it’s very simple right so all
Three very cool music apps totally different use cases and there’s probably more music apps and there’s probably a lot more music use cases that you can do you know uner with stuff like this so this is just kind of showing you some of the diversity and creat creativity with
Just one type of art music okay and not being biased at all but this is my favorite set of apps right image uploaders are great um there’s a ton of image uploaders right so I’m I’m Noster dobu uh I started the Noster dobu image uploader app but
There’s a lot more right so there’s void. cat um also by Kieran nost image.com by not Henry Noster check.me uh I’m going to remember his name in a second I just forgot it um satellite. Earth already forgot that too but tons and there’s also more than that
These are some of the big ones so the key for example the the key uh thing that all of them do is they all upload images right so just taking a step back you know since it’s decentralized you know in in a in a system like Twitter you can you know
That has everything’s kind of combined in one you upload your image but all the images go to the Twitter upload space right you can’t really choose a different place to upload um we don’t have a Noster like a centralized place to upload images so we have to create our own places to upload
The images and so that’s what we’ve all done right and so people are asking they’ve asked me before well why isn’t no. build for example is on we use AWS servers it’s very centralized and uh people are like make it decentralized and I mean I’ve I’ve talked to fish cake
He’s my partner and we’ve looked into it and I mean although it’s possible it’s very difficult to make image uploaders decentralized or there there would be there none of these are decentralized all these five or six that we’re talking about nothing’s a decentralized image uploader here so it’s it’s very
Difficult um but this is the next best thing having an option you know to upload your image to wherever you want is is almost just as good right and and most of the um apps that I’ve talked about and that I’ll talk about they give you an option
Right domus uses Noster do build for the backend but they also use Noster image so if you don’t like Noster dobu you can switch it to Noster image right and and um uh the same with pretty much most of the apps right you can choose what uploader you want and ultimately if it’s
Not built in you can always go to that and copy the link and paste it in and and and even besides that you can build your own image uploader right if you don’t trust any of these guys it’s very simple so for example fish cake my partner um he’s doing a presentation on
Day three uh Deep dive on Noster dobu so basically how to build your own image uploader right he’s going to go through everything on GitHub everything he’s done to update it all that right um so even though all of these upload images for example each one also has unique
Features like all apps like Noster dobu we have private storage accounts um we just started supporting nip 98 with account integration uh you can get nip 5 verification we have a public Gallery right so kind of side cool features right you’re able to see all the images that no. build that anyone’s ever
Uploaded to nost buil through the free upload section right if you want it’s 800,000 plus pieces of media videos gifs all this void. cat by Kieran also focus on uploading images but also some unique features so it’s not just images right you can actually upload any file on void
Cat right any file you want and you can also encrypt your files right so unique very unique features there I don’t think any any other of these you can upload any file or encrypt them Noster image has a gif Library very simple easy to use UI as you can see little different
Um payment model so Noster Noster dobu void cat Noster check.me are all completely free right we have paid accounts but you can completely free uh upload your imagery free also um Noster image you can upload super cheap it’s like a penny or something but it is it
Does have a a a pay structure for each image you upload satellite Earth also very upand cominging um uh popular uploader um but you also pay for that usage of the upload image Noster checkme just a few features it has also has a nit 5 verification has
A public gallery has a lot of stuff n check.me key converter satellite. Earth isn’t just an image uploader they have a whole it’s a whole other like kind of Twitter clone it has a an app to it also what I hit so again plenty of choices for image
Uploaders you can even build your own image uploader most of these if not all of them are on GitHub right open source so not it’s not uh decentralized again is very hard fish cake will tell you why how hard it is but this is a lot better
Than a lot more decentralized than any other social media um platform out there as far as image uploads this is a really cool one and uh you should go check it out because some really cool stuff for sale here but couple marketplaces right so like that
Kind of eBay of of Noster we have shops . store um that one I just found out about plebian Market I’ve known for a while again you don’t buy in dollars you don’t buy in Dogecoin you don’t buy in anything else you buy in Bitcoin you buy
In SATs and lightning right it’s all Bitcoin you can see there at the bottom left 85,000 SATs for the sweater right so again that’s a way you can actually purchase stuff and not just kind of randomly off of a Twitter clone but a dedicated Marketplace remember all all
Of this is all running on the Noster protocol right so I mean there’s so many apps and I I just I figured I’d combine I’m I’m coming kind of near to the end here I figur I’d combine a few of the apps and we can still go through them
But there’s a lot of stuff um Noster cooking so if you’re into cooking recipes right this is completely focused on cooking this is completely focused on your recipes you can upload your recipe you can upload a related image or images uh you people can comment on it um it’s
Great it’s not so great I mean if you’re looking for something unique to cook jump on Noster do cooking and find something right stacker news this is a good one because you know people are getting kind of sick of the media these days right the mainstream media um stacker news is
A a real kind of uh uh Noster way or locals way to to see what you know what’s going on in in our version of the news right so we have an entire News stream again if you like the article you can zap the article Noster nests so this is if
You’re familiar with Twitter spaces often we need to have real conversations with people you know it’s it’s you can only get so much done with you know notes and direct messages and stuff and you need to like really verbally talk to people so nostres has been around for a
While um maybe eight nine months or so I mean that’s a that’s a long time in Noster time and uh simou created it I think Derrick helps him run it and it’s used a lot it’s an excellent app um it’s again it’s a way that people can get together in groups and talk
Speaking of other interesting apps um we have uh Noster dob is a search app right so you can search anything you want on nosters so if you want to find an old note or if you want to find certain keywords the phrase or quote or an expression or something right um maybe
Even a image link and you have the link but you don’t know who actually posted that link you found a link and you know it’s from an uster but you don’t know who posted you can search that and you can find out who posted that link so
Also very I use that a lot actually quite a bit right um no. band and actually I think there’s another Noster search engine does anyone know what the other one is is there another one okay no. band’s the big one and and most recently uh there’s a a pretty
Decent chat app that’s running on Noster um Ox chat and I have been using that one also so again that chat app it’s based on on the Noster protocol it’s ex syncs completely to your DMs right your direct messages and any other um app you’re using but the chat app is like
Focused on chat it’s chat only like any other chat app right so it’s it’s a little easier to actually chat with people it’s a little faster it’s a little cleaner you see like your chats right like in order you don’t it’s not all mixed in with your other apps very
Clean am I missing any of the really cool Noster apps just curious someone’s using something they’ want to call out I have that that’s that’s the best app of them all yeah I mean not being biased so let me see I I may have just went through this way too fast no we’re
Doing okay we have 4 minutes that was actually not bad tons of resources is so if you go to Noster app. link there’s a a lot more than what I just covered and it also gives a basic overview of their apps so go to Noster app. link um a lot
Of related courses today and tomorrow on these apps so uh Pablo is doing a Noster apps 2011 you know a little more a deep dive a double click maybe how to build some of these the guts of some of these right and this is day two tomorrow from
10: to 10:30 uh Noster signing device device um Ellen bits is a I believe it’s a physical signing device um but they’re going to talk a little bit about that day two 1 to 145 um journalism right we talked about stacker news so um journalism obviously will go beyond just stacker news but
It’s it also should um you know uh it it it’s it’s going to cover some of that you know kind of um Rogue or kind of unique journalism right not necessarily tied to mainstream media um Noster do. Build architecture and future uh fish cake is going to go over
That on day three and um and he’s here and I mean just to to double click on that one is you know we I started Noster build what almost a year ago like nine months ago and um I’m I’m a very I’m not like a like a full-fledged Dev like a
Lot of the people here um I I am able to create an image uploader I can create some simple websites and stuff but um basically after the third or fourth month with the growth of Noster you know it was starting to get a little out of
Hand and uh starting to look for a a partner and um fish cake just generously came in and offered to help fix the the big problem I was having is the data out so with um AWS it data out gets extremely expensive and I wasn’t thumbnailing them I wasn’t using CDN
There was a lot of things I wasn’t doing that I could have done that that would have saved us a lot of data money fishcake came in and he literally rewrote the whole Noster do build probably a couple times and then on top of that he added like stuff like nip
Excuse me nip 98 nip 96 um uh all sorts of you rebuilt the whole we have a for accounts if you want to purchase an account he rebuilt the whole account uh UI on the inside it’s he he’s and he keeps on adding more features it’s just incredible so excellent partner you
Should definitely go see what he did on day three to no. build shopster uh they’re talking about building a better Marketplace on day three from 1 to 120 so um interested in marketplaces either shopping or building your own Marketplace or how they work definitely check it out zaps and music
This is the one I definitely want to see a love story um wav Lake day three right 9:30 to 10 talking more about music um on Noster and insect bunker Pablo is going to do that day two from 2 to 2:45 right some really cool related apps that
You might want to go or sessions you might want to go check out that’s it any any questions any thoughts any apps I missed anything I should add to the list for next time or just for us to know about if you have questions please come
Up to the mic for the people at home oh we also have shirts if you guys want to buy a shirt bit pop art and I created this shirt and we’re like you know helping we don’t make a lot just to let you know and be completely transparent
Um it it uh here oh wait I’m going to I got offered to get my picture taken so I’ll take that oh good yeah there we go and pretend like I’m still doing something um so we we sell a accounts and there’s like four different accounts and they’re all pretty affordable annual
Subscription and God I mean I think our costs are around three2 or $300 a month and we probably make three or $400 a month on the accounts thank you so it’s you know one thing I want to mention just about all those apps if you’re here
To make money like big money and you think you’re going to get rich on the Noster platform like think again it’s going to take a while um so you know we we all have day jobs right we none of us are living off of Noster income but if
We’re if we’re breaking even we’re happy and I think you know that’s really all that matters for now um so anyways question yeah hi hello yeah uh so uh first of all thanks for this wonderful talk and for building uh nost build course um so uh I
Am actually the developer of blow water so it’s a it’s a web client yeah um so I haven’t integrated with any image uploader yet because they don’t have unified apis yet uh so do you say any like future possibilities or names to unify their uh apis yeah um fish cakes
Here so he can actually give you a more detailed answer than I would be able to give you so go ahead fish cake oh wait yeah you want to use this one here I don’t know if I can take it out here we go so we have something called nip
96 which is still in draft not merged that has been integrated at least in five different media hosting platforms that is Unified you basically if you client supports that all user have to do is just add the URL that the platform itself provides and you all integrated it that’s it
9696 NEP 96 okay thank you not the other nip 96 there are two unfortunately okay I will find it on your GitHub okay GitHub is completely open source so you can check out our GitHub and probably find it there also some more details on it thank you for the question any other questions
Great I think that’s it thank you all very much appreciate [Applause] it thank you e there’s onair okay so let me see if it works uh you guys can sit in the chairs and hold the mics I’ll quick ADV that’s perfect yeah sure for e hey everyone this is El
Lady and testing testing yep yeah we’re good okay we talking about keep the nostr weird let’s see yeah imagine go ahead maybe we should switch spots you want to switch yeah sure this is fully done on the spot I started preparing 10 minutes ago I’m not
As SL as you are hang on let’s see what’s going to go happen all right thank you so much XB is that good okay a little bit weird stay close to it okay hey it’s keeps keep no are weird Okay imagine um arriving at Nostra and having
Just one t-shirt to pick from now that’s usually what we see at conferences and uh imagine also that for some reason it was a one-size fit s and somehow it was the wrong fit for you because one siiz fits all don’t really fit everyone we’re all quite unique
Um Noster is about Choice which means we kind of get rid of that one t-shirt factor and unlike many platforms where we’re locked into a specific way of working and we cannot choose anything that’s different in Noster you own your own Keys which is pretty awesome I think
Um and those keys allow you to enter the entire Noster un iverse a universe of different products and apps that I keep growing every day so which door can you enter with those keys um basically any door any product that’s built on the Noster protocol you can enter it with your own
Keys and the Funky thing about this is that not only do you enter the entire nostal universe but you keep your follows your followers your posts and anything else that you have whenever you switch with products uh which is not something that happens in other places but when it comes to all of
This yeah um not all the shirts fit everybody it’s and but what there’s is there to do really so you makeup creating your own shirt what shirt fits you and we have the all the tools necessary to do that that and we have an important question
What makes you weird I think this is something that ner has truly embraced calling each of us PLS we’re just regular Bloks hanging out having fun so and doing what we do best and not shying away from that and the question about what do you care deeply about seeing a lot of people
Talk about conspiracy talk about talk about development and not showing away and being like afraid to talk about it what they truly care about it’s about choice in yeah and and in my case in particular um while I was uh working on the design for things of
Austrasia it wasn’t just about having a t-shirt like keeping the Noster weird I like that one uh it’s one of my favorites but it was about giving people a choice so this wasn’t a product but in a way it it embrace the same concept so you arrived at austraia and you could
Pick a t-shirt from three different traces and that’s what Noster reflects so you could pick the cat or the alien or the rabbit um what do you like to do yeah so this this is something that I’ve discovered mostly about myself through Noster usage is trying to understand
What am I about what kind of topics do I care to talk about and what kind of people I tend to more talk to and for me it’s been overall seeing how the user behavior is not to get too in into the details but uh yeah this is what I found
And learn about myself and that makes me weird caring about a specific topic much more than many other topics so yeah and I think whenever you find your talent then you can make stronger choices as far as where you move forward I like to tell stories so and
Not stories as standing here and telling you a story but that that’s part of it but tell a story through design and so if we look back at nosta and I know many of you um so were able to be there with us there was a a talk uh on the women’s
Panel where Carla mentioned that zapping was important because anyone who generated content could be Zapped and could earn something for their content and in her case she mentioned that uh you could get zapped for posting pictures of your feet um which made quite um quite a statement
And he grew in the community and then now there’s foot there and it’s a representation of the importance of being able to earn Sab for your content and so it’s in the T-shirt too and this is not a talk really about telling you how to do ux or UI or what
Colors to pick but more of giving you an idea of why you do things and in and once you know go deeper into that then you can make those choices based on kind of a sort of protocol protocol for design absolutely and it’s it’s also about what do you value really
It’s in terms of if you look at clients if you look at how you use something do you like everything everywhere all at once do you enjoy amethyst kind of an approach to enjoy more of a do you enjoy algorithms do you enjoy Primal do you do you want to do something completely
Different and that’s something that you have completely open for yourself you can decide that and how do you add meaning to all of this if we look at the process of Designing for austrasia and thinking of Japan I had started designing Kawaii characters and I thought they would be
The five different elements and that it would be make it fun and interesting and fit the culture and then I came across a different story and so instead of seeing banners that look like this you’re looking at the banners out there um so it’s about and I’ll tell you a
Little bit about those banners but it’s about adapting your story to what holds most meaning to you because when I read the story I had to place it into the banners instead of the characters I read about the Thousand cranes and if you don’t know about this
There’s a there’s an ancient leg Legend in Japan that talks about a thousand cranes bring bringing you long life and good fortune but uh during World War II there was a young girl called Sadako who um unfortunately was in Hiroshima at the time and um she received a lot of radiation
Poisoning and she started making a thousand cranes and she passed away before she could finish that so her classmates finished up the Thousand cranes and somehow this struck a cord with me because we were seeing stories about war and we’re seeing a conflict across the globe and somehow I think
That nost or Freedom Tech like noer and Bitcoin are more focused on peace and they allow for um for you to have your own keys to choose your own products to empower the individual to focus outside of those things that control you and that create conflict so
I wanted to include that in the posters and that made it in and if you count the cranes don’t do it it takes too long but there’s 1,000 cranes in those banners in total um so it made it in and I think it reminds us of what’s important and
Whatever matters to us we have to bring it into what we built in this case it was the banners out there and it’s not about The Shining new Fe features right tenno absolutely true okay it’s more of why we choose to build them why do you choose to build what you build yeah
Exactly I think it’s it’s a deeper meaning to it instead of like why did I build this feature it’s like what does it provide what is it what um what am I building for the next generation and like the deeper meaning behind it just like it’s not that it looks cool it’s
Because it provides value because it provides meaning that’s why I build stuff so if you want to keep Noster weird you have to figure out what’s your why and that’ll make it it easier to make the choices yeah and at the end you just need to embrace your weirdness and find
A way to apply it and I think that’s on nostr thank you uh does anyone have any questions thank [Applause] you any questions by anybody this is completely open to talk about yeah okay I think we’re good yeah thank you so much for your time and thank you for watching thank [Applause] you
E e e e e e e e e e e e e e e e e e e e e oh uh snort supports it jingle dos in a couple of his jingle supported yeah yeah um did you get your laptop are we just G to skip that part I made that diagram
Look it’s all it’s all been sorted out so easy yeah B he’s on my way here oh there’s 20 people watching on the stream though so it’s not just what’s here but I keep running into I was like I’m like it’s super technical talk you don’t want to come what happened to
These oh it’s just my laptop died okay laptop just died no it’s just you knowre yeah you got to get amphetamine that little mac I I I have it just en it how you feeling yeah hold them together although we’re ahead no we’re behind we’re behind yeah exactly which
Direction yeah it’s like night time or whatever it’s like evening back for you okay hello um yeah yes okay so we’re going to be talking about NE 46 uh implementation is ENC voner um ne46 okay it was uh T idea uh it’s called Noster connect which is a
Really bad name in my opinion uh it doesn’t have like any fruit name so it doesn’t end with stir I know what’s up with that um and the basic idea of n46 is uh is to do a like a remote signing which when I saw it I thought this is
Brilliant idea and I immediately implemented I was working on a on a website called psbt doio which is just like a delay broadcasting uh of Bitcoin transactions and I wanted to implement n46 but this thing has nothing to do with Noster so I just created a chat
Widget and added n46 to the chat widget and then the chat widget became nostri chat um so yeah the the idea of remote signing I think it’s super super super super important and very underplayed okay now holl B you want to introduce yourself oh I’m Pablo oh yeah
I’m hudle bod I have uh implemented nip 46 via Pablo’s code which qualifies to me on a qualifies me to be on a panel I guess you also build coracle I build coracle yeah he’s a podcaster mainly yeah mostly I don’t do much coding nowadays um I’m Jeff uh I have very
Recently implemented nip 46 in liser um and yeah let’s do it all right so I think the reason why n46 is so so important is that the one of the Magic parts of of Noster is this interoperability now of course you need to have keys to be interoperable otherwise what’s the interoperability
You’re doing um so that means that you need to have a way to sign easily to sign a cross a vast amount of different clients we don’t want people to just stay in one client in damos in Primal in corle it’s like what’s the point of noer
And we also don’t want people to put their insects everywhere but that’s that’s how it has been done so far people are just pasting your insect everywhere basically none of my applications other than insect bunker allow you to paste an an insect because I don’t want people doing that
Um and I I don’t want to continue promoting the idea that this is the way you you use Noster we got so the evolution of just spacing your insect everywhere is uh just use ano7 extension get Alvi nose tox or or something like that which is
Really good and I think it it’s a step function Improvement but I I think most people are not going to be able to like Norm is if we think okay how do we get to a billion users I don’t think people are going to be like the billion users
Are going to be have the knowhow of okay I need to install this uh and I need to put my insc here and it’s encrypted with this password like it’s a little bit too confusing and particularly in Mobile it doesn’t really work um in iOS we have no
Store but it’s it’s it’s a very complex experience I was literally just trying to help someone about an hour ago with this exact same thing and I was like as I was explaining it I was just like this is so hard yeah totally I mean imagine if you
Wanted to get on Twitter and you had to install a different app branded differently made by someone else in order to store your password there I mean we have password managers and some of these patterns are promising like uh you got spring browser as well which builds a nip 07 extensions into the
Browser itself so I think that can be of limited utility but of course for any native application you’re outside of your rapper and so uh you have to put your insect bunk or your insect into at least two places in order to do uh what you want to do in multiple different
Places so yeah I mean uh the only way to step outside of that is to have an always on service that uh custodies it for you and uh now we introduce all the problems of custody yes which was going to happen anyway um the the pr I see with
Something and and I I do agree that the spring approach is interesting is just it’s not an unboarding tool like no one says oh I’m going to try this browser unless you’re like a browser freak and you have you know brave and you know Firefox and whatever else uh people are
Interested in in an application like they have a use case in mind and they want an application that serves that use case so you don’t start with I’m going to download like I’m fascinated by downloading Noster browsers um so but but people do wake up
Thinking I want to listen to I I want to try a new music client or a new music application or a new video application that that’s something that might move people um so I think it’s a it’s a useful tool for people that are already
Deep in it deep in the but you can imagine that pattern though of just your browser has the thing built in and it’s just part of using a browser right like it’s like you sign into your browser with you know like with chrome at least and brave you sign in with your Google
Account and then like it’s just used all over the place um so it’s a pattern that will work once it’s reached mainstream adoption which again gets back to where we are not right now and then why we need something like insect bunker actually how many people know what like
When we say remote signing or insect bunker like how many people know what insect bunker is okay good must people Co um just do I’ll do a quick refresh for everybody else um so insect bunker is basically a custodial thing that holds your private
Key to keep it safe and keep it in it can be a cust it can be a custodial thing you can one common line to install it and you could one click install it in like a digital Ocean or something like that so it’s super easy I did it last
Week it’s no big deal but the point is is that um it is a single place where your private key lives and then it has the ability to communicate with all other clients via Noster messages as the transport protocol um to do signing on events that are created in different
Clients so it’s just a way to decrease your exposure or decrease the exposure of your insect just to mention some other possibilities too not super like corded this discussion necessarily but uh it also also opens up the possibility of having different scoping mechanisms yes um as well as uh a way to share
Shared keys so you know you can hire your marketing intern and let them post for your company without sharing your company’s insc with your intern yeah and also having um a log of who signed what like if you’re sharing your key in sharing your account with 100 employees
You want to see who tweeted like a dickpic or something like that you want to you want to know what happened and you can also because it’s basically you can run HSM policies you can you can you can execute code that the decides whether to allow a signature to happen
Or not um you can decide okay for this employee they can only like things or they can only repost things but they can only they cannot write they cannot change the profile picture for example of this account uh which is fundamental if we’re thinking about a company you
Cannot give a blank check for all your social media managers to do anything they want with your with your company account will we go through the little diagram since we spent so much time making it this a very professional diagram this was made in about two and a
Half minutes before we started this yeah so the way it works is very complex because there is a bunch of keys uh going around and signing for things when you use it I mean the current interface that I wrote it was like a prototype and
I wrote it very very quickly um so it’s quite confusing um now n46 is getting more interest and and adoption so I think it’s time to revamp these things um so yeah once you use it as a user is not as weird but we have a bunch of things so
The first part on the left um the first part is the admin side so when you deploy an an insect bunker you you need to put your insect or create an insect within the the insect bunker uh and you must put a passphrase to encrypt locally
Encrypt the the the key um so in order to talk to the insect bunker Dem on the back end uh the okay this is where it starts to get confusing so the the insect bunker key when you create a new insect bunker it uh generates its own
Key that key means doesn’t mean anything it’s just a way to for for the bunker to have a bub key so you can talk to it you can encrypt to the bunker um and then you have an admin key which is the key that you would normally use uh is the
Key that that you have in your in your get Aldi on your no2x is the key that you decide to administer the the banker with then when you deploy the banker you can create a bunch of accounts so for example on my banker I have my um my
Nsec I have the nsec of highlighter the nsec of purple Pages the nsec of um a family account that I run where I just use like like an Instagram typ type of account um so I I run a few different type of accounts um my key Pablo key is the
Admin of that whole bunker but that bunker has a bunch of what we call Target Keys it’s the keys that you want to sign as um so from this admin interface you can create tokens and the tokens was um a cool idea that now made it into the uh
Into the into the nip into the nip 46 the basic idea is is you want to be able to say to G to give like a a token uh onetime used token that uh anyone can use to redeem for permissions to do something with that key which could be
Sign for everything or encrypt or decrypt or only sign one event per hour and only kind one stuff stuff like that on the right side we have the flow of actually signing so the best example would be I have coracle on my phone it doesn’t have AO 7 extension because I don’t have
An eo7 extension on my phone um and I have an insect bker deploy with my key now I go in with my um with my admin key and I create a token and I name the token coracle coracle mobile for example now what happens on coracle
In my phone is the client will generate a local key it doesn’t show it to the user the user doesn’t even know that that’s happening it’s just a random key it doesn’t mean anything but when the the coracle talks to the insect bunker again all via no
Relays uh when it talks to the to the insect bunker it says this is my Pub Key it’s just a random Pub Key that just created and this is my token this is my secret now the bunker says okay this secret gives you this permissions so it WID list basically
That that the pp key of corle that the user has never seen it will never see them um it want at least to have authorization to do things and importantly that uh it’s kind of it’s not a throwaway Pub Key that coracle created um it’s an actual key that
Coracle needs to keep track of because when you come back because you’ve used that connection token you’ve used it the one time it can be used and so if you have to do it again you’ve got to go get another connection token and you know connect that up to the insect bunker
Just to relate it to other uh protocols this is like a device key uh you know scuttlebut uh only had device Keys uh there was no way to relate them to a overarching identity across multiple devices and this is basically just kind of pragmatic uh key delegation where if
Coral is uh compromised and that private key is exfiltrated all it has is authorization to have the the real private key sign on its behalf but that can be revoked because you have Dynamic control yeah this is a way of doing what you could also do cryptographically um in a way that is
More synthetic uh and that works with what we currently have but functionally you have the same right like you can give a bunch of keys to a bunch of different employees your main key has never been um and you can revoke easily like you can go to the admin and just delete key
And that’s it that key can never sign again but the experience of the user is I’m using coracle I never I never installed this nipo 7 thing I don’t even know what that is um I I didn’t have to do anything weird uh and I can just use
Corle is fine on on the fly to to Miami I was on the flight I purposefully didn’t bring my key my insc and I was on the flight using signing events from my Note at home uh it works just fine I mean it’s slow because it’s an airplane
But um but but it works really well it it works really really surprisingly fast and and the user experience again is all they have to do is put in this connection string um that the admin of the insect bunker gave them so you can imagine again the employee situation you
Know Pablo works for me now um I’m your boss now yeah uh and uh I just give him this string and I’m like put this into coracle and you’re ready to go it’s got everything you need um so there’s no password there’s no username there’s no any of that stuff
You don’t have to manage Keys you don’t have to manage permissions it’s just done um and then when I have to and when he fires me exctly that’s where I was going next when I eventually have to fire Pablo for not doing his work yeah
Um I can just revoke the key and that’s the end of it I don’t have to think about it anymore yeah the user experience uh is the part that’s most exciting to me and like to be honest the user experience right now I mean you say
It’s good it could be a lot better it could be a lot better A lot better yeah I mean one of the things that really confused me was when I lost that uh that public key or the private key that was generated on the client I had to
Reauthorize and then I had to go into insect Bunker’s admin UI so there’s a lot of work to be done but here here’s like my vision for where I I would love to see this go and if any of you guys out there want to hack on something and
Build this you this a really good thing to need should build this uh let me just pitch my idea have you thought about ooth with n literally about to talk about I have it on the figma of highlighter I have an all uh mechanism to log in yeah dude okay because that’s
What people are used to yeah like the point of highlighter is bring nor okay slow down explain the idea yeah so you know if you couple a insect bunker and an ooth flow with a nippo 5 provider you can basically do signing with nippo 5 so
People know what an email address is and what it looks like you go to a client and it says login with nippo 5 you put in your nippo 5 even if it’s not the nippo 5 that you like actually use uh with your Pub Key it can just be aip5
And what it does is it provides a username and a domain so the client can take the domain dreference to a well-known uh URL or something and then uh start to uh you know pull some pull some stuff out of there related to ni 46 and then broker that whole uh connection
String without the user ever having to do any copy pasting so they they have a human readable identifier that connects to a provider that they’ve already worked with and you know maybe it’s one that they’re self-hosting uh probably not I mean so you you create a domain
Called noer id.com or whatever it is and you get people to sign up and you know when they log in there’s no authorized applications you go somewhere else put your identifier in and it brings you over asks you about Scopes I mean that’s an oaf thing we can totally follow the
Oaf spec doing this so yeah that’s the right pattern and it’s again it’s super super easy it does all the right steps it is familiar it’s great and to the point where it’s familiar to people it’s a it’s a flow that people understand and
Even when you go to okay I want to I created this identity um using an immediately authorized with coracle and and now I want to sign in with the same thing with the same identity on Primal and and you can have like a popup like the typical Google or Twitter popup
Saying do you want to authorize this this this and this right um and it’s the same flow it’s just underlying is completely different but it’s the same flow I I don’t know to me that that sounds it’s it’s very compelling because we we already have a lot of different
Things on Noster and when you onboard people that are not used to private key management and stuff like that and you tell them okay you need to learn about relays you need to learn about Key Management it’s too much right um if we can soften the um the learning curve I
Think that’s better yeah custody is is fine for uh low value lowrisk situations when you’re just getting started with noer your key is totally disposable so why not use a service that actually helps you keep it safe while you learn the while you learn learn the ropes same
Thing can be done uh you know if you have a service that’s doing that more features can be added to that software for the purposes of Key Management so Pablo recently uh created a PR for uh key rotation uh that same service when you sign up can uh publish one of those
Uh initial rotation uh attestation events um and you know that’s another thing the client or the user never has to see that uh that these custodial Solutions can take care for you and then moving moving your um your key out of that custodial solution is as simple as
Putting it somewhere else of course you can’t prove that they’ve deleted it so there is that but no yeah but I was thinking about that because you could you could marry the two things the n46 and n41 which is the the key rotation thing um and when you offboard from the
ENC bunker like the custodial ENC bunker you could immediately publish like okay and now this is going to be my new key I’m going to continue using the the one that was hosted was Crystal and but I’m going to end up moving in in two months
I’m going to end up moving to this new npub um and it’s it’s like a very soft um like like a like a very soft onboarding process right because you don’t have to learn about keys at all and once you are ready you end up fully Sovereign and your insect has never been
Somewhere else this is one of those places where I feel like having been built by bitcoiners is hurting us uh because people are just so religious about it’s got to be totally self- Sovereign completely self-hosted there’s no other way and yes okay we all agree
With this but at the same time you have to just go okay everything’s not perfect and for low-risk situations custodial is totally fine um so yeah I’d love to see that get built yeah I’d much rather see that than Hardware as cool as those are I can’t
Think of a situation when you I’m going pull out hardare and plug it into my phone and like so what I want to do is I I already told MBK this that I I want to build on on sats link um did you see it
The hard like the q1 looking uh so I I want just use it as a as an insect bunker back end um where the key it’s actually on the secure Enclave the the secure element in the in the sets link mainly because it’s cool and you just
Have it in your backpack and what it just like P top for you but it’s like it’s connected right so because I did this a few years ago uh like three or four years ago I I I was living in Costa Rica and and I decided for for fun I
Wanted to move on my core linning uh you know core linning like the code itself so it has an H hsmd module so the the key like it doesn’t matter the I I wanted to put my key for my lightning node inside a cold card and sign HTC’s
From my Cod card um and I did that on an MK3 so it was very slow uh so it didn’t really like functionally it worked but it was not practical um but you could do something like that with sets link and just sign all your events remotely from
A setlink and it’s pretty cool you could also do something like Shipyard where you buffer all the requests until you have access to your key and then you send all those out at once or schedule them yeah so sh Shipyard Shipyard does that with when you connect an insect
Bunker like you give it a token um it will try to sign when it knows when it needs to um to publish the event it will try to get the signature and if it can get it um it just will try again a bit
Later uh and it’s cool if if you put a queue and like the Cadence of the queue uh Shipyard is like a publishing tool where you say okay I want to schedule this this not to go in two hours or next Thursday or something um and you can
Have a queue that has like a Cadence of 24 hours it’s my good morning queue right um if you delete something from the queue all the other events that were following that event that got deleted uh they need to change the time stamp um and it actually shows you that there is
A missing signature and then it tries to go and fetch the signature so it has like a like a cascading animation like just organic that it’s just signed signed signed signed it’s it’s pretty cool that’s fun yeah another thing that occurs me that you could do with this
Setup is have keys that are only accessible in certain places so like if you’re on the company internet so you actually have to be in a physical place in order to sign an event as your key yeah would also be interesting um we could do this all day but does anybody
Have any questions about specifically how to implement this or like we’ve kind of purposely not gone into the implementation detail um I’m going to try and make a video next week because this is fresh in my mind of just like step by step go through how to do this
So yeah question in the back yeah I I thought about that um I I I really like on the fact that is snore gives you like that flexibility for free um the way I thought it is I don’t think we’re there yet in in with regards to
Someone actually using it um like barely andc bunker probably anyone uses like this method FF rewrote ne46 because n46 was very poorly written uh it was very hard to understand actually when I tried to read it I was like I don’t get it so I
Just went to the code and then FF did the same thing um so now it’s been Rewritten um I know a few clients are are looking into into it uh which is a very good thing will told me that he’s looking into making uh damos a signer so you
Could sign from like your Apple watch which is cool um so so yeah but I I think that’s a really really cool idea um but yeah probably too early for for something like that still from from a market demand perspective any yes questions yeah so I was looking last week and I wasn’t
Really able to decide whether you anticipate user us buker directly or is it be an APG backend of Cent it’s not an A so the question is is it going to be more the end user that’s going to use um insect bunker itself or is there going to be more like an API
Integration so one there’s no the API is Noster there is no other sort of API but um I I guess probably for most users uh it’s more the client that’s running an insect bunker and so for new users they just create their keys in their insect
Bunker and then use that as the the mechanism um I think for most normal users like spinning up your own insect bunker um is probably Beyond them unless they’re using like a hosted system like insect bunker.com which is you go you set it up and you’re actually setting it up on you
Know Pablo’s infrastructure but uh you don’t have to worry about that yeah and multiple implementations of insect bunker I mean of nip 46 really would be helpful to just to have different options uh and to power different Services I mean it’s it’s kind of like relay tools right it’s just it’s just a
Relay uh piece of software but then they put a nice front end on it so NC bunkers admin UI doesn’t have to be the thing that everyone has to use and you know what do you guys think about building ANC bunker into clients as as like an
Admin UI you mentioned Damas might be a signer but like yeah I so I I I talked about this with with Milan um and the way I see it and maybe it happen is that Primal could run an insect bunker or or or buy one or whatever but run an insect
Bunker where they are onboarding the um the new users that they they are onboarding into into Noster and that means that they can take all the key stuff from the UI at first um and the user still REM retains the ability of being interoperable like like they can go to
Corle and without seeing keys without ever seeing keys they can use coracle with their identity that they created on on uh on Primal and they can go to snort and they can go to liser and they can go to a bunch of new can I jump in here
Real quick to make something clear that might not be clear so it doesn’t matter which client created or has the insect bunker as long as the insect bunker is connected to other relays or is like out there listening for the event types that are the signing requests um you know if
I in my list client had an insect bunker where I was adding new users and this is what publ is describing here it wouldn’t matter that somebody went and tried to use the same thing on a different client because my insect bunker or my nip 46 uh
You know signing thing would be there listening for any request and as long as the permissions match the permissions that that you know token had it would still work not really the the reason I started running that relay uh and what why I recommend that people use it um is that
Other relays are really not reliable uh pun on on relaying uh a firal events um so which is what n46 uses so what I was writing it I was finding that it it barely worked like 10% of the time it worked I was like why and just
Scratching my head and and then I said okay I’m going to just run a relay and deback that part and then when I run my own relay that accepted and was you know played nicely with uh with this event kinds it just worked did you write your
Own implementation or is no I just I just modify can’t recall which one no I think I think on a stream one of those um but but um but yeah there were two relays that worked well um mine and the the one that Tito was trying to go was
It uh B bpam I think it’s called his company um that’s why that’s the default that’s why that’s the default yeah that’s because those are the two relays that I know play used to plays nicely and he shut down his relay a few weeks
Ago and I had a bag on I had a bag on insect buker that made it that if the connect to one of the en Banker really failed then nothing worked um so but that that’s fixed now and remov so one thing though that is actually a risk of this whole nip 46
Signing thing as soon as the bunker goes down you can’t do anything like you’re blocked from signing any events or doing anything so um there are trade-offs here obviously like everything oh yeah those are two different things though yeah I think so too yeah they’re solving different
Problems like I can actually see lots of people you know I think the umbrell and the start nines of the world are sort of normalizing this idea of like you’ve just got this little appliance that you’re going to get at some point and you’re just going to plug it in and it
Is going to set up a bunch of of services or it’s already got the services ready to go and it manages all those things for you so you’re you’re running a Bitcoin node you’re running a lightning node you’re doing you know a bunch of things like that that you don’t
Have to think about and like a Noster relay and a Noster signing you know uh setup will potentially be part of that and so I think it’s there are ways to make it definitely consumer grade and like really easy to do um but yeah for now it it makes much more sense for
Businesses or like places where you really don’t want to lose your your key um rather than like the standard you know consumer stuff I don’t currently use it but I I totally would if the UI was a little bit better uh it definitely beats putting your NC into every
App you want go next yeah imag I mean personally the and I’m guessing for for for water blower you you cach the you cach the events right right so the way I would do it is you you cache the same way but you encrypt the cach version with the local
Key so you decrypt it only once right like you remotely decrypt it once and then when you keep it locally it’s encrypted but with a local key so you can encrypt it just fast without ao7 it’s just like literally you have the private key because it’s local to your
There’s also an easier way to do this in my opinion which would just be to uh make sure that your UI only is decrypting stuff as it’s visible um so you know you’re not trying to decrypt every single conversation in the thing but like when you load one up it you
Know you’re decrypting just the first couple of messages or the last you know the most recent couple of messages um so I mean I think there’s probably a couple of ways you could do it yeah there’s also a less simple way to do this too which would be your
Own no no I was thinking you know combine um combine a relay uh relay proxy with uh an nsec bunker so you basically entrust a special purpose relay to decrypt things for you so that um you know not only can It D duplicate events for multiple relays like
Multiplexor does but it can also decrypt things uh using your your private key uh that’s probably a terrible idea but uh just you know a thought another option I like it the the local client would need to know that the that it’s doing that right yeah like the proxy
Decrypting for you yeah I I like that the the one thing with regards to encryption is that you know that with nepo 7 you only can decrypt one at a time and with this you don’t have to like like you can send it 500 events and
They Crypt all of these and give them back and you don’t have to do like the cryp the Crypt the Crypt the Crypt which arguably I I have not tested this but but I know that the like I’ve dealt with like the nipo 7 and I actually in ndk
When you call it you don’t have to concern yourself with queuing like the decryptions or the signing it’s going to queue them for you because I I found that so obnoxious why why sorry a second I don’t understand this why you can’t call into the neo7 synchronously like multiple times
Because just because of how nost tools is WR just because of how nost tools is written I maybe it’s because of how get Albi is implemented oh right okay yeah sorry because get Albi is like waiting for one at the time okay gotcha oh did they oh did they oh I didn’t know
That so annoying oh okay I’m going to remove that queue then because yeah it’s like these slowing down of things for no reason everyone’s clans were broken for like four months like failed to decrypt for no reason other questions y yeah the the the multi-organization thing is the reason I
Built it so what I had in mind for insect bunker I at one point in the highlighter I had like this totally Rel thing uh which I’m going to launch as a different product um but it was like a sort of like Google Docs is um and I
Wanted collaboration I wanted people to be able to write uh an encrypted uh n23 an encrypted long form uh with multiple people at the same time and yeah I wanted to be able to have a history and all like all this stuff but published as as one so yeah collaboration is is the
Why I built it yeah it’s it’s a bit like in a sense active directory or what’s the more like modern ones like the user team company management type stuff yeah it’s 100% that dude but it’s super super important yeah but active directory what’s wrong with everybody knows what
AC directory is it’s a great metaphor it’s a great example because everybody knows what it is yeah to kind of like zoom out a little bit too you know this is just one more component that Pablo’s invented dvms are another one you know noer started as clients and relays
Basically but these new components are being identified and separated out and I think that’s a really healthy thing for noer in general yeah yeah massively healthy it’s just new building blocks yeah we don’t know what can be built with compound building blocks building yeah other questions I think we
Got a couple more minutes here for sure no we’re good nope yeah know I think you just outlined it perfectly you know what I mean like it’s the it is that trade-off of ease of getting onboarded customers in the door and like you know getting to the value that
They’re looking for um you know whether it’s a music app or a you know Twitter like app or whatever it is versus making it easier to sort of uh I guess manage multiple identities or that sort of thing so in some sense it’s like if you’re if the job is managing identities
That you’re trying to solve for then that’s actually the client you’re building is like the how do you manage all that stuff and and do those things versus every other client that’s not really their job um is to manage the stuff so they by doing just the really
Basic stuff they might only have like a we create your new accounts on our insec bunker call it and the only other thing you can do there is export it and that’s it like you can get the key out and you can leave with it but that’s that’s the
Only other function that they you know allow you to deal with because that’s not really what they do yeah and really you don’t have to run your own nsec bunker as a client in order to provide that you know because they’re providing their NC to you anyway unless you really
Want like a backup of it that’s server side somewhere you can just hold the n saac in memory in the client and then eject later uh and provide a good flow for choosing an identity provider at that point like the way I would do it probably if I were to actually run a
Enac bunker instance would be to say like you know just sign up we’ll keep your key and if you want you can select your provider here here’s the here’s the ones we know about like pick it from a drop down or you know maybe use nip
89 to to to get recommendations from uh potentially your social graph although if you’re signing up that that’s not bootstrapped yet but yeah I think you identified the the trade-offs really well yeah I think that the market will decide that basically and different things will like I don’t think corle
Will run an insect bunker like it doesn’t fit with your Paradigm I think Primal would run an insect bunker like it fits with that model uh and everywhere everything in between right like cvd is sort of like an insect bunker where you can’t take your key
Right uh it’s sort of like like that so it would be within the within this spectrum of he doesn’t like corle would not run an insect bunker to Primal would run an insect bunker and maybe on board because one of the things that you can do with the insect buker is tell it
Generate a key and authorize my key like the key that is telling you hey generate a key authorize it to do things so Primal Co onboard users never see their nsec have a local key that allows them to allows Primal to function so for the user they they don’t see anything
Weird the flow is exactly the same but Primal at no point have custody of of that nsec um yeah and you know if you couch this in terms of like assign in with uh buttons um it’d be really easy to uh to make this one of those categories that is just monolithic in
People’s minds but actually has a diversity of of uh implementations um you know you don’t have to uh choose a provider necessarily uh you can you can leave it open-ended uh and just have really good user experience so and the cool thing is that I actually really
Like this um when when I implemented this the the fact that you use Noster for for the communication with the back end means that you get like hole punch you can go through the firewall for free like there’s there’s an entire company that is built around the idea of whole
Punching through a through a firewall uh if you want to access your umbrell on lining um you’re lining through umbrell uh you probably need to use tore because otherwise how are you going to reach into the D lnd or the cln um this gives you that for free instead of connecting
To 1 I you connect to a puff key so it’s like like data data Centric networking kind yeah when we were I I I think you and me and G sovereignty were talking about this uh maybe in Miami and you know I brought up the idea of a you know
Because JavaScript the way JavaScript works you put things on a queue and then the event Loop picks them up so you have asynchronous programming and and no no parallel uh programming and um and I was just like oh you could do that with no like relays could just be that cue that
You stick stuff on wouldn’t it be funny if someone implemented JavaScript on noer and uh G and and Pablo laughed but I remember seeing like a glint in your eye like I’m already planning this oh my God pain and destruction any last question we’ve got
Time for I guess one more or we can just be done yeah done all right good stuff thanks guys thanks for the great questions [Applause] e e so hi everybody um so this talk the title is noar the missing part of decentralization um and you can see a QR
Code uh there uh so that’s the same blog post I I have uh on HBL uh with the same information but slightly different angles so a little bit about me uh I created a little client called Blow water so it’s a DM Focus client it’s a open set sponsor project the URL is
Bloww water. apppp so it’s a web app uh it has a mobile view but right now it’s mostly optimized for laptops and um here you can see the Damas uh profile link uh so you can contact me with this QR code so blow has um it’s a standard DM
You can chat with people you can configure it your relays or you you can have very fast uh profile searches locally um we also have a very strange feature um so this is group chat so here in this video I have three instance opened um it’s not released yet uh but
Here you can see uh we have three people chatting in the same group and this group is actually also a normal norer profile yeah it’s a normal norer account so this group itself can actually post kind one or kind four uh to other people and what’s even more weird is
That blow water is also a n 7 extension this extension is not released yet but the idea is this extension can work side by side with other wallet extension so you can actually sign in for example Croco with blow water and you can also pay adap people with Abby or other W
Extensions in the same time but of course this talk is not about blow water it’s uh about some Visions I have about Noster in general so let’s start with decentralization uh for the last 10 years uh because blockchain uh various kind of blockchains was so popular so
Most people uh when they think of decentralization they think of blockchains however this should not be the only Nar narrative we have because uh at a technology level blockchain is created to solve the problem of global consensus um it means the problem is about um the ownership and the
Transferring of ownership of limited resources so Bitcoin is a very good example of a blockchain the first ever blockchain but the problem is this decentralization does not always always need to be concerned with global consensus there are many kind of softwares that does not need Global consensus for example this is Obsidian
It’s a not taking app uh so basically uh you can write down markdowns and it will render some butiful UI for you and uh it will show um uh knowledge graph of the relationship between your personal notes so it’s a personal notes taking app but it has no connectivity there’s no collaborative
Editing um you basically on your own you cannot see other people’s note you cannot share note with anybody and this is notion uh it’s another note taking app however with this one you can share it with other people you can have collaborate collaborative editing with your
Colleagues but it has no offline mode so the first obsidian it is offline it works great you don’t have to have internet with notion you have to have internet and it’s centralized now the problem is why can’t we have both offline and online work together and I believe Noster is a good
Opportunity for us to create hybrid applications that can work offline regardless but when we want to collaborate with other people we can have the online features and it will not be centralized um so with noer we can have the power of the client and the power of
The server together and the user device should be respected as a source of Truth another example is figma so figma is actually offline capable figma uses a algorithm called crdt it it’s it’s actually a decentralized algorithm it allows people to edit uh those Vector graphs locally and then it will
Synchronize with servers so figma as a technology of figma is decentralized but figma as a company they operate their decentralized Tech in a centralized fashion right so just imagine we can actually just use similar technology but operate in a centralized sorry in a decentralized manner then we can have
Notion we can have figma and we can even have like collaborative video editing tools because right now for all the video editing tools it’s just offline there is not not even connectivity and the a traditional narrative in Silicon Valley is if you want connectivity you
Need to use cloud you need to be Cloud first because you want to be Cloud first you have to be centralized there is no way to be decentralized and connected at the same time uh actually that’s just a false narrative s can value want to sell
To us because the cloud vendors want to promote their product so the technology figma use underneath is called crdt uh basically crdt is a family of algorithms that allows applications to handle data independently in a decentralized way and offline is not a special case offline is just a normal case
So that’s about uh collaborative softwares now let’s take look at another scenario and before that let’s look at the three dimensions of Software System the First Dimension is the publicity so for example Noster kind one is fully public right and um for S like maybe signal or telegram it’s like fully
Private or if it we cannot verify them but at least the advertising as fully private and for no kind for it’s like something in between you have encryption but you also have metadata leak and the second dimension is data Fidelity so at the lowest level we just
Have text then we go a little bit higher we have image we have audio we have videos a little bit higher we have streaming and right now with the new VR AR headset we we can even have 3D streaming in the future and the third dimension is centralization or decentralization so we
Have decentralized we have Federated and we have centralized so for Noster right now we uh for the First Dimension we are more leaning towards the public d uh the public domain and for data Fidelity right now it’s mostly text we have some images uh with sta stream we have
Streaming but the streaming data handling is centralized so in the future maybe we want to uh build the data validity of norer a little bit higher gradually of course we want to stay decentralized for norstar so the key takeaway here is a centralized technology can be operated in a sorry a decentralized technology
Can be operated in a centralized way but a centralized technology can never be decentralized so so decentralized technology is like uh have the benefit of both right now let’s talk about Tik Tok uh or do in the Chinese version uh this is not my doing uh I don’t look at beautiful girls all
The time um but the the message here is if I am a business owner I need to pay 300 USD the China version to be listed in do just to be listed and for every 1,000 exposures I have to pay about uh 15 cents so that’s a Chinese price in US is actually
Higher and that’s a huge upfront uh cost for small business owners and this is another Chinese app it’s called DM pin it literally means people’s comment so it’s more like a Yelp uh you have pictures you have comments you also have DMS uh but of course it’s
Centralized so now the question is can we build something like Tik Tok and something like Y in Nar right now with all the public information kind of why we can already have images and comments the one thing missing is a good onboarding process for small businesses
For example here uh in the center of the picture you have like a little button to click in and then you can say the business profile and then you can have your uh you can buy ticket or you can order food if it’s a restaurant and I believe technologist wise Noster is
Already capable of doing all of this stuff we just need uh people who are interested in this kind of product Dimension and um build the actual product and let’s talk about uh Visa card so Visa is convenient for uh normal um customers but actually for business
Owners on average they pay 1.5 to 3.5% processing fee to just handle all the credit card payment and that’s actually a huge cost combining with the three 00 upfront payment to be listed on T Tik Tok as a business now with Bitcoin and lightning the fee could be much lower and what if
Each business has its own lightning note or its own virtual liting node so they never have to uh cash out then there there’s no processing fee for them um they only have to pay uh the transaction Fe if they want to cash out to the mainnet and from mainnet to their
Fiat bank if they choose to but overall I believe the the marketing fee and the processing fee with Noster plus Bitcoin could be like 20 uh sorry I’m like two or three times lower than the Fiat Solutions and the centralized Solutions and also it’s regulation friendly because a physical store is uh
Is in the real world so they they can be checked and and so they can have good text report and there’s no problem of like mon laundry or things like that uh so just do a recap with noar and Bitcoin we can build very useful solutions for real people in the real
World for softwares we can use noar plus crdt to have offline first softwares and for offline stores we can use it to empower um local business transactions so we can still use a centralized Cloud it’s just the role of the cloud is changed it’s not primary anymore it’s not required anymore it’s
Just another tool we can utilize so what do we need do we need more users yes but before that we need developers to have clear version uh vision uh right now we are in like a chaotic but fun like more like hackers but I believe the noar ecosystem need more
Entrepreneurs to actually push their product out um we might also need to talk with investors um because sometimes maybe the Fiat investors is not necessarily evil we need to educate them and let them say the value of norstar and the decentral ization movement at large so thank you very much that is my
Talk so the left QR code is a blower client and the the right QR code is my noar profile and any questions yes yeah so so the question is uh right now most popular crdt implementations are complicated and that is true um and the question is can we have simpler crdts um
To enable some simple use case is and I think is yes so for example we can have a we can just have a crdt set so set like a mathematical set we can add strings into it then we can actually um actually let me do a demonstration here um so for example
This relay configuration it’s just strings it’s just four strings together right for for text um we can just use a simple set crdt to do relay configuration synchronization uh and that could be implemented in probably one or 200 lines of JavaScript um and then it will be also
Be relay friendly I mean like Noster Json friendly um but my assumption is if we want to have um multiple capabilities for example collaborative editing we need to use those complicated crdts and maybe nost protocol need to have a binary format in instead of just Json and does that answer your
Question right right for example like a follower list right and the follower list is mle you want to add new people to the list or you want to remove some people from your follow list and uh right now it’s like if you connected to multiple relays and and they have
Different list whoever gets written last just wipe out everything else um so I’m doing many experiments with that I don’t have a stable solution yet right now blow’s uh configuration list is binary so it’s not compatible with any other client it’s not a it’s not thing I want
It’s just how I end up right now uh we need to talk about that uh offline more yeah so if no other questions that will be my talk thank you very much for should I use this one over here darl darl how’s it going everybody well you look well yeah it’s all working
Cool yeah so does this one also work yeah we’re good cool um so I want to talk about a project called who are you oh yeah sorry I’m I’m G and I’m arox G sovereignty um I want to talk about a project called nost Rocket which
Is something I’ve been uh working on for a while um and recently received uh an open sets Grant um which I’m pretty happy about so yeah thanks um so like the general thing is Bitcoin means you don’t have to think about money and payments it it solves
That problem uh and what I’m trying to do with nost rocket is build something that does the same thing for human organizations um so everyone can work on like a shared project um without needing to solve the problem of what work people should do uh the direction that the
Project should go in uh and how to distribute revenue and stuff like that so like at the moment um the way we do this is with ay structure uh which is which is nested under the state uh and that’s a pretty big problem if you want to do something
That the state doesn’t like um so like and it also makes you very centrally planned um so I mean there there some stuff in the US that’s happening right now basically anti yeah I don’t know if you’ve heard but in the United States there’s some new regulations uh
Regarding llc’s that is going to be coming into effect next year basically it doxes everyone who owns llc’s and requires a bunch more paperwork so it’s an active attack by the state uh against LLC corporations in America um there’s a lot of people who use llc’s uh because
They’re overseas and they want to be involved in companies in the United States but uh after these new regulations go in effect next year they won’t be able to do that if their home country isn’t okay with what they’re doing so uh organizing things under the
State is basically like G said if you’re doing anything that they don’t like if your jurisdiction isn’t okay with what you’re working on you can’t use a company structure and so we need a new way to organize uh projects and you know there are other things out there but I
Feel like nost rocket is the best thing we’ve invented so far so yeah and also just like if you as soon as you have a red as a company and you’re responsible to the state everything in your company becomes centrally planned there’s no alternative to that uh because someone’s
Responsible to the government so um that’s not going to work uh especially when you can’t build a Bitcoin company like that that cuz the first thing is State we we’re still in like the honeymoon period of Bitcoin where the state doesn’t really care that much but when they start really caring about it
Because it impacts their tax and and whatever um they’re going to start coming out to bitcoin and the easiest place to start is with anyone who’s doing any Bitcoin kind of company so like you can’t like there’s no such thing as a Bitcoin company it’s a it it
Doesn’t work it’s not going to work um so anyway um there are a few projects I’ll just quickly show you like um this is this is the current implementation um these are the people who’ have started using it um so so to use nost rocket you first
Get into the identity tree which means someone else already in the tree has to add you then you’re able to create projects under nost rocket and then you’re also able to contribute uh to projects um and and um okay so yeah there are a few projects
Launching on nost rocket and um Areno uh he’s aranu is really here because I’m not very good at presenting he is you can tell right yeah but um but the other reason is um aranu is launching some stuff on nost Rocket so yeah so I have three projects
Basically everything I’m doing on noer I’m putting on nost Rocket because I think it just makes sense I have three projects that I’m launching on nost Rocket um the first of which I also got an open SATs grant for which is the cyberspace protocol I’m creating a uh
Digital uh cyberspace like meta reality metaverse on on noer um which uh if you if you’ve ever heard of the metaverse that might sound stupid and I guarantee you it’s the only metaverse that’s not so um and then I’m also working on two implementations of the cyberspace
Protocol which is uh onos sendi uh like which is a VR cyberspace client and then I’m also working on uh another implementation which is more more augmented reality based called Yonder and if you’re hearing this right now you are hearing an announcement of a brand new noer client that no one knows about
Yet uh called Yonder and you can use it right now at go. yonder. me and it’s a mapping client for noer uh and so you can create places you can navigate to places and soon you’ll be able to uh use encryption to encrypted Communications to share your location real time with
Other people uh but these are all uh I’m putting all of these under nost rocket because I want to uh incentivize other contributors to come in and work on these projects and Noster rocket has a really great incentive structure to help that happen so what you do to put your
Project on a nost rocket is you break down what your road map is into bite-size problems which are basically like okay well if I’m going to do I’m I’m going to do a mapping client because that helps humans coordinate which is good and then I break that down into a
Smaller problem well I need to you know make a mapping client and then I break that down into a smaller problem like well uh what kind am I going to use to store map data and then you keep on breaking your road map down into smaller and smaller pieces until they’re so
Small that someone can just grab one of those problems and solve it and when they solve it then they’re able to um request merits for solving that and merits are basically like the the uh they’re a representation of your contribution to the project it’s like a a quantification of what you’ve done
Towards the nost rocket project so imagine that you have uh imagine your commit graph on GitHub represented your your right to any future revenue of any of those GitHub projects that’s basically what merits are and so if that project generates revenue or has some sort of uh you know
Lightning payment thing built in the people who contribute to that project can actually they can receive those payments directly from the cust customer a great example of this is a relay so um there’s actually a relay under nost rocket called Flame bucket and so if you contribute to Flame bucket the relay
Software and uh you earn merits for your contributions then when someone pays to sign up for that relay those SATs actually go directly to you in proportion to how many contributions or merits that you’ve earned for contributing so that means that people who are working on a project get direct
Non-custodial payments for what they’re doing instead of being in a company structure where you have to uh you know do all the paperwork and you get a paycheck paid out and G gets to decide if your contributions were worthy or not uh and and all that stuff we just bypass
All of that and then every contributor just gets paid directly from the customers through the nost rocket uh protocol so because the con uh the contributors are incentivized in this way uh that makes them focus on solutions that are on the direct path to revenue which the the idea behind that
Is that revenue is sort of of like the common uh indicator of a successful Endeavor you know if it if it makes money in the marketplace that’s probably you know something worth doing maybe uh it’s better than nothing so did you have anything you want to add to that um no
I’ll just say like the problems are are structured are they’re nested yeah um yeah so there’s the rot problem which is humanity is not living up to its full potential and that’s nice in general so you can kind of Nest almost like anything that helps Humanity under that
Uh as as far as defining your road map into problems and then nice thing about that is that when you’re defining your project in terms of in that context that sort of directs every project under nost rocket as something that that should benefit Humanity in some way um and so
It that’s a little bit different way of thinking about it than the way of thinking like hey I just want to make as much money as possible and uh you know figure out how to do that it sort of directs all action towards the betterment of humanity and obviously all
These projects are open source so that’s also you know in that same vein of uh kind of building software for Humanity so the next thing we want to kind of cover is like the philosophical approach or like what what’s the what’s the big idea behind all this because
Organizing a project and figuring out how someone can contri contribute is one thing but uh what the what’s the vision ultimately and I guess to me when you know not having invented nost rocket I’m just one of G’s biggest fans uh in terms of you know this project and stuff not
Not anything else about them just this is the project uh but when it comes to uh nostr rocket I feel like it represents for Humanity it’s like a brand new digital uh economy just on the internet that anyone can opt into and start uh using their talents to earn money like
Real hard money uh directly to them and it doesn’t it just kind of gets rid of all those barriers and I’m I’m hoping that in the future nost rocket is something where uh you know people who don’t have many opportunities where they currently live can find Opportunities
And ways to contribute valuably uh to different initiatives that are you know through the internet through nost rocket on on lster so um so what did you have anything you want to add to the not really that’s okay so the three projects that I’m I’m doing um here’s what they
Would look like I want to talk about you know how they look like in the context of nost Rocket but here’s what they would look like outside of nost Rocket if I was just going to go about this in a traditional way if I’d never heard of
Noster before this is what I would do I would own the project I would own all future Revenue of the project and I would pay it to people whenever I felt like it or whatever I saw fit I would control how much when and who is compensated for contributing I would
Control what people can contribute to the direction of the project and then consequently I’m also on the hook for recruiting and fundraising and running a business and liability to governments and all that stuff um so it’s not really good for me it’s not really good for the contributors uh the incentives are kind
Of stacked in a I mean it’s it’s like very common right I mean companies are that’s like how you organize Human Action right now uh but the incentives aren’t aren’t great and it’s not good for the project ultimately like the the road map of the project and where it’s
Going uh it doesn’t have the same Freedom that a nost rocket project could have so with nost rocket nobody owns the project and that’s a kind of a radical idea um it even took me a little bit to like let go of the idea that the things
That I’m like you know imagining I’m just going to like let go of all ownership of that and just make that completely open sourc and completely owned by anybody who wants to contribute uh but it’s just better it’s just better that way it’s kind of like how you know
Fiat dra invented noer but he doesn’t own noer that’s that’s what we’re talking about like that kind of non-ownership of something even though you can contribute to it um with nost rocket the revenue is distributed proportionally to the contributors by their merits uh at the time of the of the customer’s payment so
We don’t have to worry about uh you know know payroll and stuff like that and then finally the direction of the project is set by the contributors with every contribution um if you make a PR to an nost rocket project uh there aren’t really any conditions for it to
Be merged other than it must not break anything right now uh you know it can’t cause errors or introduce uh you know it can’t be malicious uh but basically if you if you make a PR to a project on nost Rocket it’s going to get merged if
It works and that means that anyone who can contributes to it can basically help shape the direction of the project they don’t have to get approval from me to decide what new features or or what’s going to happen with Yonder or or onosai or anything like that anyone can just
Come in and code and I don’t even get to like turn them down if they add a feature and it works it’s like okay well I guess that’s part of it now I mean you can always Fork the project if you want right but it’s better if we work
Together so having an open mind about where things are going and using it like that um it’s a radical way of kind of allowing anybody to to to come into a project and and kind of be an owner of it so anything else you want to add yeah
I just I mean the pr requests um have to be solving a problem that’s all and there are rules about problems yeah so there are a couple conditions but the conditions don’t really have to do with my opinion yeah yeah they’re rules based so yeah yeah yeah so um oh sorry G do
You want to pull up yonder yeah just show them yeah I saw a question over there too yeah but go ahead like kind of except the Dows the way that we think of dows the way that theyve been done are like totally so um so like I it’s not really
The right way to think about it it’s it’s I guess if you really want to get to the original term of the meaning it’s it’s kind of like a d but it’s like a easily forkable D so it’s nested DS maybe um um but not the coiny way so
Yeah yeah so merits are oh you yeah merits are like uh created um in response to it’s like proof of work like they just solve the problem is it solved and then um it’s a little bit like we don’t have enough time to go all the way
Through through it cuz it’s it there’s like I’d have to be I can simplify it for you yeah yeah so when you solve a problem you put out a request for merits and you choose how many merits you think it’s worth you probably want to choose a number that’s proportional to the other
Contributions that have been made to the same project and then that Merit request is approved by the existing Merit holders of that project so they get to say yeah go ahead cont yeah yeah but they don’t have to approve it that’s right y so but then like that
If if if you don’t if they don’t approve the merits if the person who contributed doesn’t think it’s fair that they’re not approved they’re not going to contribute again so you just other people probably won’t either if they it’s fair it’s not going to work yeah you have to yeah
There’s a lot of social dynamics in terms of that um but the voting system uh it’s it’s got these ratios where you have to have like a great majority of people to to approve and you have to have a very low minority to reject most
Proposals so it kind of gets like a good a good kind of Middle Ground like if everybody hates something then yeah it should probably be rejected and if everybody loves something then it should probably be approved um and so yeah it if they deny your request it’s like well
Good luck finding people who want to work on it and you could also just go Fork it at that point if you’re like well you’re not going to you know work with me I’ll Fork it and I’ll put it under nost rocket and you know people
Can come work with me instead so it there’s it’s very radically open uh you know and I think that there could be times when people uh do that they kind of fork off and use their own yes yep yep well go ahead more nuanced um but it’s it’s a long explanation because
There was a problem with like um there’s been other projects in the past that have tried not exactly this but they’ve tried like every aspect of this like has been I’ve tested it in previous um jobs or previous whatever uh and so like you can’t just have it based purely on
Merits like the The Waiting can’t be done like that way because then you get there’s all these little consensus hacks and stuff so there’s some more to it but I the protocol is on um nost rock.org you can see sort of how that works um yeah it’s easier to read than explain
It can you pull up yonder second pull up yonder yeah okay oh wait sorry yeah I’m I’m working on two different screens no problem oops all right so yeah go click on click on my beacon uh on the building here so I just uh oh that’s well it’s uh
It’s nearby it’s one of those oh those are old ones is it okay anyway maybe refresh it and zoom out or whatever yeah go ahead and refresh it so anyway um yeah Yonder is a map kind it’s like a social map um and it’s actually this is implementing or will be
Implementing uh the cyberspace protocol which you can uh ask me about if you want to know more but you’ll be able to um basically like it’s going to have an augmented reality component uh and then you’ll be able to see things physically in front of you by looking through your
Phone’s camera um but right now you can create places so uh now we have a Noster client where you can basically make your own Google Maps uh my goal is to put Google Maps in the dirt so if you work for Google sorry uh but I want to just
Make make it so that Google isn’t the intermediary of all mapping uh I don’t think you should have to go through Google to be on a map and so this is the the Noster version of that and I would love for other um Noster map clients to
Start uh kind of doing a similar thing and uh we can just kind of make this part of the ecosystem but the cool thing about Yonder is uh the people that you follow there’s you see the global button if you hit that it it changes to friends
And then you can only see the places of your friends uh on the map the places that they create so as a business if you want to create like a place for your your taco stand or whatever and uh you move like it’s a food truck you can
Easily it’s a replaceable event so you can just update your place move it wherever and then you can send out um the N adder and then you can tell people hey follow this n Pub and you can see where I’m at at any given time and it updates in real time because it’s
Websockets uh so it’s like a really convenient way to have like a frictionless Google Maps where you don’t need like approval for for any of that stuff from Google and uh there’s also the geoch chat so if you press the purple button down there you can see I guess you have to
Zoom out and pick another place but um this loads any uh geotag messages on the Noster protocol so kind ones that are geotag pop in here and if you go to wherever you’re currently at in the world you can post geoch chat messages from there too so it’s kind of like I’m
Trying to hook into the kind one ecosystem but make it in a place so you can have conversations uh in an area of the map and the geoh the geohash changes size as you zoom out and stuff so you can see some messages pop up there um
You can zoom out enough where it gets to be like half of a continent but uh it soon I’m going to make it so that you can reply to people in other geohash regions but you’ll only be able to start conversations in your current region that you’re at according to your GPS so
We got geoch chat we got places you can create places and uh end to end encrypted location sharing is coming soon too as soon as uh as soon as hleb finishes the the private groups nip or whatever I’m just going to keep bugging them about
That so uh enjoy it play with it give me feedback uh this is a nost rocket project I’m happy to have other people involved yeah thank you yeah not yet if you want to build it what was that two weeks yeah it’s just going to be two weeks but yeah thank you
Uh it uses geojson that is uh stringified in the content tag I’m sorry Pablo but I stringified some Json um but yeah if you if you use geojson it’s basically that’s I didn’t write a nip uh there’s a there’s a discussion about that but Oh you mean the geoh or the geotag
Or the gtag use it sure yeah I I need to find that then I I guess I didn’t know or I wasn’t aware that it was it maybe came about uh like when I I just haven’t yeah I should look into that cool and maybe I’m actually maybe
I’m already using it I don’t know I’ll have to look yeah I I I’ve I’ve been in some discussions on the on the um the PRS for geospatial stuff but uh part of me was was just like well this isn’t going anywhere so I’m just going to do
Something yeah my plan is to add so you can upload photos and and other content to those markers as well just haven’t gotten there quite yet oh lead time yeah that’s that’s a thing yeah sir yeah yeah no you don’t need an approval process because um um
Like it’s a long story I’ll meet you afterwards I think we’re good on what we’re going to present so we’re happy to just yeah more questions do you mean in terms of like how many merits I think he means like if like if you don’t know how to do a PR how do
You oh okay so you can still like claim merits for work that’s not technical um yeah that’s just yeah um naturally it’s going to be a lot of code to kind of begin it’s just that right now like all the problems are technical because it’s not finished built being built but
Actually no but some of the problems I’ve actually claimed merits for were literally designing logos for stuff that that people were working on so um yeah it can it can be pretty much anything that’s solving a problem it doesn’t have to be code but the so the problems like
Need to be what there’s more to like CU because Rockets can be like you can have like rockets underneath other Rockets um so like a project yeah like an exra project um and so like um but the the the merits need like if you’re claiming merits for something um the existing
People like one of the rules is like the the has to be a problem that’s in a critical path towards more users or more Revenue um because otherwise it’s in the wrong direction um and so like that’s like a that’s a judgment that like existing Merit holders uh
Make so I have a bunch of different ideas for that but I’m also uh obviously happy to hear ideas uh one obviously easy thing is you just use the friends thing the global feed might come become pretty useless at some point on Yonder um but I’m also looking at proof of work
As a way to uh kind of resolve those disputes um like I had an idea where if you’re zoomed out really really high proof of work places would still be visible and then as you zoom in like low proof of work places would be visible so
You could use proof of work as kind of like a filter um ultimately there will be a uh there’s other ways that I’m thinking of making it so that you know if someone claims a McDonald’s and another person puts a be a place on a McDonald’s and it’s like two different
You know claims I mean ultimately the best way is that you find the business on Noster you find their profile and you follow them and you know it’s like that Pub Key own actually owns this place and then it shows up on your friends list yeah that’s another way um we’re looking at
Potentially um having like a verified Place relay that you could optionally pay for and then we would just serve places that we know are legit or they could have like a special mark on them obviously that would be a monetization strategy it’s not completely authoritative but it would be un
Authority so other people could also do that um so yeah there’s a bunch of different ways you could kind of come at that problem and maybe multiple uh ways of doing it are needed cool we’ve run out of time thank you everybody appreciate [Applause] it I want e e so
How we address this make a little lower no I mean good afternoon everyone is it working yep cool uh I go by Nismo Prime on Noster and this is a much simpler presentation than what you just saw this is um building your own relay for beginners and this is really tailored more towards
People with little to no technical experience so we’re going to start off with some um a painfully simple description of what a relay is to start and end with the demonstration of actually building a relay um so to start off what is a relay relays are really the backbone of the Nostra
Protocol we are replacing the servers that typically run in the centralized Services um and decentralizing those across the globe they are ultimately responsible for serving uh excuse me storing and serving all the notes um that are served to clients a client requests events relays respond with events or with a
Message saying they don’t have that um it’s a very specific type of server that has one job incredibly simple and um without them we wouldn’t Noster wouldn’t exist what relays look like under the hood um they all differ a little bit but in kind of a service um service oriented architecture they
Typically consist of some logic to handle websocket connections we need to keep uh first of all accept websocket connections keep track of who is connected and make sure that we’re serving the requested events back to the proper clients there’s also Logic for event handling um specifically writing events events and uh using logic
To filter out the requested events from the database the database is an organized way of storing notes um with persistent storage so that the clients can request it using the agreed upon uh syntax and then we will serve that back to the client and most projects uh
Contain a cache as well which is a simpler database of just key value pairs um and they are held in memory uh for non-persistent storage because it is much quicker to serve those frequently requested um requests I guess uh from memory instead of actually making a database
Query and having to search through the entire uh the entirety of the database and typically a lot of of relays will often sit behind a reverse proxy that is changing those um or upgrading those https connections to websocket connections why would you want to run your own relay because you could have
More control of your data you can choose um which relay you’re writing to you could store your own data you could make this private if you wanted to uh you can curate content restrict post in to certain end pubs like a paid relay or some other sort of mechanism to
UM Vet who’s posting to that you can also build communities around relays and it’s a really fun way to learn more about the network and or the protocol really uh and support it as well at the bare minimum to run a relay you need your own domain uh uh an SSL certificate to
Encrypt data between the client and the relay a server to host this and some actual relay software to respond to the requests where would you host a relay uh there was some interesting discussion about this this morning and I forget the name of the project because jet lag just
Hit me like a ton of bricks um I host in the cloud on Virtual private servers and there’s a couple reasons for that the hardware is maintained by the cloud provider you maintain the operating system network security and your own software it’s very convenient but there are tradeoffs uh you can absolutely be
Rugged if AWS decides to just close my account or for whatever reason uh I ran into some throttling issues with one of the relays I was working on um I had built a serverless relay and they were throttling me in certain regions so I was very much at
The mercy of the cloud provider uh but I I think it’s easier and I think it’s an acceptable tradeoff in my book especially where one of the um biggest bottlenecks I guess are one of the largest contributors to latency is the proximity of the client to the actual relay so if you can
Maintain a presence in multiple regions you can ultimately serve clients around the globe faster than having just one server say hosted out of your living room or something you can self-host these and there are people that do uh I don’t um just because of the reasons I stated earlier it’s easier to just
Reimage things in the cloud I can spin up spin down um and have that Global presence and it’s a lot harder if you are sitting behind a natat router which most home networks are to be able to make that reachable to clients outside of your network you would either need to
Port forward on your router um so you have a number of devices behind your home router that are all sharing that same public IP I don’t want to broadcast my home public IP as well as that’s also a dynamic IP address your internet service provider can refresh that at any
Time and you would need to update your um DNS records to reflect that or it’s going to resolve to the wrong IP address as well as when you’re putting that out there you are letting everyone know it’s pretty easy to see where that IP address is geographically as well as if you have
Other things in your home network um you’re potentially opening your home network work up to adversaries for people could port scan you find out if you’re running any other services you could open yourself up to denial a service or distributed denial a service attacks uh neither of which I want on my home
Network and as mentioned earlier to run a relay you do need to get a domain name from a domain registar there are several different companies that can do this you typically do need to provide some um information for forget what the actual name of it is
But you’ll need a name email address you can make up uh an email address there are certain services that you can use where you can pay in Bitcoin or do this somewhat anonymously you’ll need a server whether that is Hardware that you’re hosting yourself or um infrastructure somewhere
In the cloud you’ll need to be able to clone a repository I have people ask me what that is quite often a repository is just a um I guess where the relay code lives and you can clone that you can make changes to it you’re basically downloading or not downloading I guess
You are downloading um a local copy of the code that is available for everybody to share and you usually need to either compile it yourself or make some sort of um adjustments to reflect your own domain name username and passwords for the database or any other personalization that needs to be done um
It’s not something that you would click and just download there might be um implementations out there that do do this where you can just pretty much plug and play but a lot of them require some uh modification to fit your setup some of the basic networking
Um you should only be opening the ports that you need at a bare minimum you’ll need a port 443 open uh for the actual clients to connect that’s where they’re going to be starting their https connections and your proxy should upgrade that to websocket connections Port 80 will need
To be open at some point to let if you’re using let’s encrypt for a certificate Authority they’ll need to make a connection um verify that you own that domain and then issue that certificate so that you can make secure websocket connections and then you should also
Have Port 22 open to uh create a secure shell so that you could administer your own relay but you should limit that in uh not make that open to all IP addresses just basically what IP addresses you would expect to connect to that relay from to um administer the
Relay I’ve helped a number of people um set up relays and I’ve run into a number of interpretations of the directions uh for setting up a relay there are some really good and there are more coming out daily um instructions on how to run your own relay but I see a
Lot of people getting stuck on the same things um a lot of them are networking issues some of them are just insufficient resources available to the relay the database container may not start uh another big one is running commands from the wrong directories if you’re running a command that references
A file as a argument or you’re actually executing a binary I’ll see people running these commands from the incorrect directory and if whatever you’re trying to access isn’t in that file path it’s not going to work I also see command line uh text editors can be kind of tricky especially if
You’re using Vim or something uh I see people edit these might figure it out from some quick Googling but then they don’t save it correctly and just exit and it has all the default settings as far as like a placeholder for a domain name the wrong passwords or username and
It can be kind of difficult to track these errors down uh in error logs and of course if you leave the um or I’ve seen a lot of mistakes in setting up the actual subdomain and people’s domain names are not resolving to the correct IP at all
So obviously clients won’t be able to find you if your domain name does not redirect to the correct IP couple of things to be mindful of when running a relay um these things cost money especially if you are running in the cloud infrastructure isn’t cheap I know
I have been hit with several surprise AWS bills over the years and I’m sure a number of people in the room have as well and storage can be quite costly as well and there’s also some interesting conversations around how long relay should be storing things for and and
How things are going to look for relays in a couple of years um is it viable to store all events for all of eternity somebody’s paying for this at um at some point and what is the incentive for the Relay operator to keep paying for this
Month after month because a lot of the paid relays uh what you collect in fees to post that Pro I guess it depends on the volume of your relay and how much you’re paying um probably isn’t going to cover your costs at the end of the month
I know right now uh I’m not making any money off it I did run a paid relay at some point and I had maybe 15 people that had paid to a thousand SATs each uh so 15,000 SATs for something that cost me about 15 20 bucks at least a month to
Run uh so that’s not sustainable in the long run as well as there’s been some interesting conversations about legal issues uh with content you’re storing and serving uh there are people working on ways to kind of filter what people can post to relays but if people are uploading a legal
Content to your relays and you’re storing that and serving that I I don’t know exactly what the um laws are around that and I guess it would depend on where what jurisdiction you’re hosting it out of but I think it’s quite reasonable to believe that you could end end up with
Some legal action taken against you if you became of interest to some regulatory Authority and I wanted to kind of go through actually building a relay um and kind of talking about what we’re doing as we’re setting this up so I had actually written a relay in Python and
It is not the fastest it is not the um it is not as well architected as some of the other relays especially like stir fry or even nost stream is probably like 100 times faster and I kind of copied uh the architecture for nost stream and rewrote it in some very simple Python
Scripts and packaged everything into containers and then wrote some server setups script so that a user can basically just execute a set of scripts on a fresh uh auntu VPS instance and it will create or install a reverse proxy uh request an SSL certificate add in a number of
Environmental variables like your domain name usernames passwords and then bring up the relay in a Docker composed stack so that everything has its dependencies packaged within their uh containers so to do this let’s go ahead and spin up an ec2 instance real quick um and I’m using AWS
Because this is just where I’m most comfortable but there are a number of cloud providers out there that I would recommend like Leno or digital ocean those can be a bit simpler but um AWS is familiar to me and there are a number of other uh products you can use
With this if you’re using uh S3 buckets for storage or have some other sort of distributed architecture so we’re going to go with a pretty small instance here we only need one uh virtual CPU and about two gigabytes of memory and going back to our discussion
About a firewall here this is a very simple um firewall managed by AWS where’re just going to create a really simple security group that allows SSH traffic I’m allowing it from anywhere right now cuz I don’t know what my IP addresses allowing https traffic that’s going to be ultimately our clients connecting and
Then HTTP for the certificate authority to issue that certificate so go ahead and create this and once we have a public IP we’ll go ahead and create a domain record for this and I’m just using a subdomain this should broadcast pretty quickly go ahead and SSH into our newly created server
Okay and we are in we then go ahead and just create a pseudo user real quickly login as that user and we’re going to go back to actually clone that repository so we’re going to take that code that I have hosted on GitHub and pull that into our
Server so that we can input our variables so as mentioned I’m going to leave the default um database user and password that I have in there but I am going to change the domain name because we’re ultimately going to use that to issue a certificate put an API key for a
Monitoring tool that I use and then we are all set to actually start the menu and run the setup script to prepare a server and what this is doing is this is updating um the package manager repository it is going to install the dependencies that are needed
On the server to actually run the relay it is going to create that reverse proxy we were talking about and request the certificate and then once we have Docker installed and all that stuff we can actually build our containers um and like I said we’re just using a Docker
Composed stack I’ve got a websocket Handler container an event handler container uh postgress database container and a uh container for uh the monitoring tool I use as well as well as a reddis cache and for anyone that doesn’t know what a container is it is a type of virtualization it’s basically a
Mini operating system where you can package your code with all the dependencies that it needs so that it’s portable you can run it on different machines um it’s often used in uh modern web applications there we go okay and we’re requesting our certificate and I made a typo maybe not
Okay okay and now we can actually start our relay and what this is doing right now is this is building the docker containers it is is downloading all the dependencies going through um a couple of the steps that I have set out here to prepare those and pulling in the actual
Code um that I’ve written into those containers and this relay is an incredibly simple relay it is just an event handler and a websocket Handler there’s no um nothing really special about this it’s not the fastest but it works uh it does have some rate limiting mechanism built into it where it’s
Basically a number of tokens that the user is issued um in a certain amount of time and if you’re posting too often or requesting too often you’re using those tokens and if you use up your token allowance then you are disconnected um and no longer able to post or request uh from the
Relay and while we’re waiting for that I’ve got a little command line tool that I’ve built here um and what this does is this is just GNA programmatically post notes let’s wait till this is up and we’re just going to confirm everything’s running okay okay one still starting
Cool let this run for a second all right and we Are uh making a request with a client I know we’ve got hleb in the uh audience right now and it looks like we are scoped to the relay that we just built and we’re looking at all the uh random events I just generated with that little
Command line tool and as you can see things are going kind of smoothly um as I said it’s written in Python it is not fast but it’s fast enough um I don’t think this would probably be good for something like damus or something that’s under really heavy load uh python is one
Of the slowest if not uh the actual slowest programming languages and some people don’t uh consider it a programming language anguage either because it’s actually an interpreted language uh it’s more of a scripting language but it seems to work it’s pretty simple to set up and I think that
It could be a fun little tool for some people that are uh not developers themselves and would like to set up a relay to play around with um with minimal work on their end and that is pretty much it I think I had um just some ways to get in touch if
There is any way that I could help anyone that’s curious about running their own relay I’m more than happy to do so I’m also um open to any sort of critique that somebody might have for this relay project and that’s pretty much it any questions um do do we have a mic
X frog asked me to uh have people ask questions into the mic for thank you I think it’s off hello yeah yep thank you for sharing uh I have one question but of two parts if that’s okay sure uh I wonder how Plug and Play is it to Runner really like
Basically what kind of commitment do I need to make if we contrast it say with Bitcoin where a Bitcoin node is easy to run but a lightning node uh you know you need some TLC every day with a channels once I’ve done the VPS the DNS what am I
Looking at on a daily basis and then the second part uh the risks you outlined uh the main one that comes to my mind is the traffic the bandwidth on the server that that would be I don’t know if there are any VPS is that give you like unlimited bandwidth
Or is there a way to solve that like like white listing or maybe you have some thoughts and wisdom on this um well let me answer the first question uh there isn’t much maintenance on a day-to-day basis everything is pretty much running on its own doesn’t really
Require much upkeep if you have a static IP address I wouldn’t expect any upkeep on the DNS records uh the cool thing about containers is if they fail for whatever reason um you can set them to always rest start so that it’ll just regenerate uh there have been several
Instances where I found bugs where like I said I have monitoring tools deployed where I’ll notice that a container failed and maybe didn’t restart or was in some sort of like crash loop back off um but I guess the short answer to that question is not much uh you should be
Able to just kind of leave it and it should run for a while I this is only maybe three or four months old I’ve left one running in my staging environment haven’t touched Ted it since and I haven’t had any issues um as far as restricting traffic
That’s a very good point a lot of cloud providers do uh meter the traffic that you can have both inbound and outbound uh I haven’t come up on that threshold where it’s cost me like I it cost a little bit I could go over my actual AWS Bill and get like a
Um more realistic figure but as far as mitigating that I think a firewall could be somewhat useful the kind of token based rate limiter is helpful as well where it’s cutting people off uh before they become a problem but they’re still connecting in the first place so there isn’t really
A clear solution in mind as far as how to limit that before it becomes a problem that you’re paying for I mean it could absolutely become a problem where you just go to check your bill one month and you’re paying a fortune and AWS is notorious for egress
Costs um I haven’t had this happen with this particular project but I have had that happen with some other stuff that I built where I went to go check in on it and there was some malicious traffic or just much higher than expected traffic and because
Of the way I had set up the network uh with like private link or some other tool it depends on like what cloud services you’re using as well it could get kind of expensive anyone else uh sorry um do you happen to know of any good options for VP non kyc VPS providers
Um there’s some that I have come across in the past I can’t think of any by name I’m not really using any at the moment um there are some out there though as far as how um what kind of availability they offer as well I’m not sure I did come across
One in my research I’m struggling think of the name of it right now but um no I guess I I don’t know if any off the top of my head but they absolutely are out there you can pay in Bitcoin for some of them but again I don’t know what kind of
Um okay um yeah sorry I don’t have a more specific answer for that any other questions guess wrap it up a little early okay cool thank you everyone is our next speaker in the room I’m not even going to try to butcher your name uh if you are next on stage come on
Up e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e hello everyone happy to be here thanks for having us I’m here with my buddy Carson
We’re working on Project called hornet storage for noer provides uh multimedia support for noer relays here’s our GitHub we are the other stuff yep so um the big problem with Nostra right now is that it only can support text and if we want to truly decentralize uh the internet we
Obviously need a lot more than text um so here I’m going to go into how we leveraged something called a Merkel tree which a lot of you bitcoiners might be familiar with uh but we actually used a more evolved version of a Merkel tree or I should say just a different version
Called a Merkel dag that allows you to support folders and files all sorts of other types of things Beyond text so here we go so to begin I want to emphasize that this is basically a layer two above noer and it’s completely backwards compatible at the beginning of the year we had
Ideas surrounding Merkle trees we didn’t know if we could make them backwards compatible but because of all of the enthusiasm and uh support from open SATs and just everybody building all these different clients we uh we really dedicated a lot of time to figuring out how to make it backwards compatible and
Here you can see noer at the bottom and uh then above that are the Noster clients and lightning you know we use zaps and and everybody’s got different clients and and then above that we have Hornet enabled clients and uh something called bitstream I’ll get to bitstream
Later but the beauty of hornet storage is it’s basically a Noster relay that can support all sorts of files uh Beyond text and it lets relay operators view how much data each app is occupying so if the the relay is supporting you know videos and photos and GitHub repos maybe
They don’t want to support report all of that maybe they only want photos or they only want videos like could you know Focus like a YouTube they can do that you know they can easily toggle not only the file types but even the app names as well another thing that’s great is it’s
All coded in go so you can run the relay on any OS and um it’s highly scalable in that sense here I compare the different types of Merkel trees you could see the classic Merkel trees on the right those are the ones used in Bitcoin and they don’t support syncing very well um
Unless you you know build a protocol on top of it like neg tropy uh and they don’t support uh file storage and in the middle here you see Merkel dags and that’s what ipfs uses and those do support file storage but their branches are very bloated and I’ll I’ll show you
Guys how that happens a little later and uh their syncing system is also incredibly complicated and uh the the request sizes for the sinking system can get too big as well and then on the left here we have our psionic Merkel tree dags or sonic Merkel dag trees and
That’s our new Merkel tree that essentially combines The Best of Both Worlds so that we can have the small branches of the classic Merkel trees in Bitcoin and the file storage ability of the ipfs Merkel DXs and on top of it we built the tree syncing system as well uh
That’s built into the trees and I’ll go into all of this step by step so here are the classic Merk trees used in Bitcoin on the right this is what a merel tree looks like the leaves are the green uh Pairs and in classic Merkel trees the leaves always have to be in
Pairs of two and you hash them together and then that’s how you get one of those purple parents and then you hash the purple parents together and you get another parent until you get to the root and then on the left here you can see the example uh from satoshi’s white
Paper of a Merkel branch and how you can grab a few of the pairs up to the root inside the block and you can prove that a transaction was included in a Bitcoin block without downloading the whole block which is really useful because people don’t want to have to download
Everything to prove inclusion and the real beauty of Merkel trees in a system like noer is you can prevent delay attacks so if I’m trying to download a file from you and let’s say it takes me an hour to download it well I have to download the entire file in that hour
And then check its hash to make sure it’s the right file that you signed and if it’s not the correct hash then I just wasted an hour that’s a really big problem and that that is an attack that could be exploited because I need to make sure that that is owned by
You that you own that file that you signed it the only way I can do that is proving that you signed the hash of the file so the beauty of Merkel trees is you can chunk up a file into a bunch of different hashes and I can download the
File bit by bit or chunk by chunk and every time I download a chunk I can verify it against the Merkel rout and make sure that it’s yours because the user just signs the Merkel root instead of the file hash the Merkel Roots right at the top there that little black part
So now the user just signs that and they download the file bit by bit so classic Merkel trees don’t really support anything beyond text but Merkel dags allow you to do a lot more and this is a picture directly from ipfs Proto school and here you could see that the leaves
Aren’t in pairs of two anymore you can actually have as many leaves under a parent as you want so on the left here you could see there are you know there’s a picture of a fish um just different different pictures underneath that um that block and it’s very nice it
It essentially H how it works is instead of hashing the two leaves together the block or the parent above those leaves is actually contains a list of all the children so you can see child one child two child three and those match these files below so now you don’t
Have to Hash them together you just download this block and it will prove that those leaves are included in it but the problem with this is what happens if if we have 10,000 files in one folder like sometimes your tweets are you have 10,000 Tweets in your profile well in
Ipfs Merkel dags you’d have to download that entire block which would be 10,000 hashes in order to prove that one of those tweets is included in in your tree so that becomes very prohibitive because sometimes a tweet might just be a g like GM or a little Emoji you know something
Smaller than a hash so if I have to download 10,000 hashes to get one tweet that uh pretty much destroys the whole benefit of Merkel dags so what we did was we created a new basically a merger called a psionic Merkel dag tree and here you could see that the parent block
Is actually a classic Merkel tree so instead of downloading this entire instead of downloading this entire parent block now we can actually just download a little bit of it I can take a classic Merkel branch and you see I don’t have to download those blue parts
I only have to download the green parts and that lets me prove that this file or tweet or anything you want is included in in the tree so it really solves the problem for noer because if you have 10,000 Tweets in your folder now I can just download a Merkel Branch from here
And then this full Merkel Branch to prove that the tweet’s included so it gives us the best of both worlds we’ve got the file storage we’ve got the classic Merkel branches and uh you know all the benefits of the ipfs mer dags and and the classic Merkel trees in
One so another benefit is uh we implemented a sinking system as well so each Leaf here is actually labeled with a number and that number is inside the tree and hashed and the beauty of this is now when you do syncing and if two relays are trying to share what data is
Missing they can just list what Leaf numbers are missing all they have to do is list the Merkel rout at the top to identify what tree they’re talking about and then they just list the leaf numbers that they’re missing and currently there’s a really popular relay coded in C++ called stirry stirfry uses
Classic Merkel trees and it uses a sinking protocol called neant tropy and neant tropy forces relays to essentially take a snapshot of all the data or lots of data that they have and then they they share that snapshot with other relays and then that relay does the same
Thing and shares it with you and now you guys know what you have so basically you there’s this pre-step that you have to do to to exchange data and then you can discover what’s missing by process of elimination and that that extra step is computationally costly uh so with Forest
Is what we call our syncing system you don’t have to tell other relays what data you have you can just request the missing lead Le by listing the leaf numbers and you can even request a range of listing a range of missing Leaf numbers so you could say hey here’s this
Merkel route I’m missing Leaf 20 through 100 I mean that is this that’s a small as a request can possibly be it’s like single integers I mean 20- 100 that is incredibly tiny so you don’t have to send these huge Fingerprints of what data I have and so
On and uh graph sync is uh the one in the middle there that’s uh the ipfs syncing system and it’s a little bit better than negentropy it doesn’t require that sharing of data that pre-step but if you start requesting leaves from different branches then you have to start listing hashes or parent
Hashes from those different branches so it’s the request size starts to grow so with Forest we’ve eliminated both of those problems you don’t have to list parent hashes all you have to do is list the Merkel root of the tree and the leaf numbers that you’re missing so we our
Goal with it was just to shrink the request sizes as much as possible so we could minimize traffic on the network because in a decentralized network operating relays is very costly so if we can reduce overhead in any way possible it’ll make that Network faster and healthier so the first implementation of
These Merkel trees we want to do on Iris and we figured out how to do it in a backwards compatible way and here I’m going to do my best to explain how exactly that works so first you turn your noter note into a Merkel dag tree
And let’s say you want to attach a photo to your noer note and you actually want that photo to be on the relay not on just some centralized website what you do is you turn the photo into a Merkel dag tree as well and then here the Json
Here is a kind one noer note this is what a normal noer note is for everyone that that all clients use what we did is we created a new tag here called the H tag and in this H tag you actually put the Merkel roots of the photo that
You’re attaching to your note so like I said you turn your note into a Merkel tree and the photo into a Merkel tree you put the Merkel root of the photo in the H tag of your note and then you sign your note and whilea now they’re
Connected and the beauty of this is that on Iris or any clients that implement this they will prioritize viewing the photos from the relays and that’s the only photo that will be displayed not the photo from the centralized web but on other clients that don’t support our trees the photo
From the centralized web will be displayed because these other clients won’t know what these H tags mean they won’t know what to do with the Merkel rout so they’ll just ignore them so that’s the beauty of it is that Iris can just ignore the link to the central neiz
Web if the photo matches uh the photo in in the tags here and you can just display the photo from the relay and then the other clients that don’t support it can just display the photo on the centralized web so it’s just completely backwards compatible and also
If you wanted to Iris could fall back on the centralized web if the photo wasn’t being delivered from the relay uh just to really provide that layer of redundancy for for liveliness and yeah so that’s uh that’s a really important part um is preserving that backwards compatibility and to top
It all off you can also have a profile tree so you can have a tree of all of your notes and the beauty of that is now we won’t have so many missing notes because right now relays are just storing notes they’re storing stray notes and they never know when they’re
Missing notes from someone’s profile uh but with this your entire profile all of your notes can be turned into this Merkel dag tree and each Leaf in the tree is a Merkel root of one of your notes or one of your photos from step one and step two so the the great part
Of that is that now you can leverage Forest to sync someone’s profile because you have a complete state of their profile you have their entire profile in this Merkel dag tree and each Leaf in the tree is the root of one of their notes and all you have to do is say hey
I’m missing Leaf one through 100 and that would be 100 notes and you can sync those with Forest the next project we’re applying the Merkel dag trees to is the decentralized GitHub and the reason we really needed it and this was actually our initial inspiration for building these is
Because GitHub and git specifically requires folder support and with Merkel dags they support folders so you can actually specify the git folder it’s its location and turn it into a Merkel dag tree and then you can sign the Merkel roots of it and store it on a relay so
This allows you to cryptographically verify your repo just like you do noer notes and this is your entire repo like everything is is inside this tree and it’s kind of simple at first but it would took a lot of work to to get there um and in terms of the social media part
Of the GitHub you can look at the noer notes almost like an event log like commits and merged poll requests those are State changes so when the repo updates uh that’s from a commit or from a poll request being merged and the git folder will change which means the
Merkel tree will change and what you do is in those notes you specify the new Merkel route for that Repository inside the note and we’ll be using nip 78 uh so that we don’t flood other clients uh you know non- GitHub clients with these notes because you know people
Like to do commits a lot so we don’t want people seeing that and uh nip 78 just lets you specify that these notes are commits poll requests and issues and uh issues are really similar to like form posts so you don’t really you don’t really have to do much
Uh special you don’t have to really include anything special in them it’s just uh just a normal note um so those are the three main parts of GitHub and we have each of them covered and we actually have a Cypher hoodlum and my buddy Anthony working on the UI for the
GitHub and we’re all taking care of the backend so as it all develops uh it’ll really be fun to see it come to life you know the last eight months have just been a lot of work on all the back end so uh it’s it’s coming along slowly but surely but
Your uh your G Nester we’re calling it g Nester um but your G Nester profile is also a tree so every commit you’ve ever done every issue it’s all part of your profiles tree or your repositories tree more accurately uh just like as I explained before with
Iris so the next step is something called a verified web app so I’m sure people probably heard of progressive web apps if W and our goal with verified web apps is we wanted to remove the Reliance on HTTP so with this browser extension you’ll be able to connect directly to
Relays and download the data have it load up in your web app without using HTTP and you can use many different transport layers to do this uh using lid peer-to peers transport layer uh system they have websockets and web RTC and really whatever people want but we’ll
Probably just be using websockets uh to start and I hope that Iris and G Nester and other noer apps can behave in this way and be a verified web app and a part that is kind of cool where we try to simulate native app security is that you
Can actually have the browser extension check the hash of the web app so if the relay tries to deliver you a new version of the web app you can see that that happened because usually when a web app updates it happens without your knowledge you just go to the website and
It loads up and you don’t even know so with this you can actually see that a change happened and you can approve it and you can even see if that change was signed by the developer who made the web app if you have the developers in Pub
You can check against it so this way it’s more like when your app updates on the App Store and you press update it’s it tries to mimic that um also I got to give a shout out to Robin at uh zero sync he is doing zero knowledge proofs
On bitcoin where you can turn the entire blockchain into a zero knowledge proof and that will allow mobile phones uh to or just it will allow everyone to do do basically a domain system on bitcoin so you could register a domain on the Bitcoin blockchain and now users don’t
Have to run a full node to verify that that domain exists and it’s only registered to you you can actually verify that that domain is on chain and that is registered to only one person without having to download the whole chain using the zero knowledge
Proof so once that is done I think that will synergize really well with Noster because basically you could register a domain and put the IP address of a Noster relay and have that relay host a website and then anybody can go to a full node and grab an spb proof or or
Grab a I I guess you really I forgot to mention you don’t even need SPV proofs at all uh you just grab the the data and verify it against the zero knowledge proof that uh it’s on chain and that that IP address of that relay is
Connected to that domain and type it in the browser extension and it will load up that IP address and connect to the relay and download the data for that web app so I’m really excited about verified web apps and this browser extension um it’s uh it’s definitely a I think an important step
Forward and last but not least there’s what I mentioned very early on uh bitstream bitstream is another idea that Robin worked on uh with uh with me and he really perfected the mechanics of it I more had the the concept in mind of
How what I wanted it to do um and how it works is that you can pay to download files bit by bit so usually you pay a relay to store data and you can pay them over time like you know maybe once a day and if they stop storing your data
Then you don’t pay them anymore but with bitstream it flips everything around where you can actually pay relays to download the data bit by bit so I can go to a relay let’s say there’s a missing note and I have the note hash and I know
What relay it’s on like using nip 65 or some other relay Discovery mechanism if I can find the relay that has that note I can give that relay the hash and pay for the note with bitstream over lightning and the thing that’s so nice about it is that it’s aom
And Trust minimized so if the relay delivers the wrong note and it doesn’t match the hash then he cannot claim your payment and the way that Robin achieved this is the lightning Network it relies on something called pre-images and hlc’s so when uh htlcs stand for hash
Tim locked contract so in the lightning network if I pay someone the only way that they can take my coins is if they reveal the secret pre-image and if they don’t reveal the pre-image that’s the correct pre-image then they can’t take my coins so we were thinking
What if we made the secret pre-image the file chunk itself like the file chunk that you want because they have to reveal this secret anyway so what if they revealed the thing that you were trying to buy and that’s what we started with but then we realized uh that it has
To be a secret you know and everybody might have other people might have the file chunk so Robin thought oh well what if we use um adapter signatures to tweak the pre-image so that it’s the file chunk but there’s still uniqueness to it every time uh and that way I can pay to
Download the chunk of the file and the Relay can only take my money if he delivers that chunk and it’s completely Atomic and and Trust minimized so it’s very exciting way to do it and relies on ptlc which is a more privacy friendly version of lightning but since then
Robin actually has uh optimized it or he’s created another version um that doesn’t use ptc’s it uses htlcs and in this new version uh he actually has the relay freeze up a certain amount of coins and then the user can request a file chunk and if that file chunk isn’t delivered properly
Then the relay loses those coins and the thing that’s so nice about this is that it it gets around the problem of um of uh the what Fiat jaff likes to call the flaws of lightning um I mean it doesn’t do it for normal traditional retail payments but for this relay thing it
Does because with lightning if you try to dispute a payment on chain and it costs you $10 or $5 to do an onchain transaction but you you only paid 10 cents to get this little file chunk why are you going to go do a $5 transaction
Just to get back 10 cents nobody’s going to do that so that is a valid criticism um and with this you can actually destroy all of those coins that that relay has frozen up if they lie to you so it might be just 10 cents that
You’re paying but if they lie you can destroy you know a $100 or $1,000 or however much the relay has frozen and that’s incredibly costly for those relays uh to to do that so it’s a it’s a big advantage that we can finally get around that at least when it comes to
Paying for files um and I I’m really really excited about that version but either version should work uh his main encouragement uh was because ptc’s are a bit slow and they’re limited to 32 byte chunks so if you had a gigabyte file you’d have to divide that into 32 byte chunks and
That’s a lot of invoices you know so it could be a bit slow the ptlc version so this new version gets around that but it does require some liquidity from the relays uh but hey that that liquidity from relays could be a good way to discover relays if if they’re freezing
Up coins because it’s it’s costly to uh freeze up coins and you know you can fight Cil attacks possibly with that so it might lead to a new relay Discovery system but we’ll see um yeah so that is basically most of the project and uh I
Would love for you guys to check out our website Hornet storage.com we go over uh things a lot more in depth there I hope hope I was able to simplify things as best I could it’s difficult but um but yeah we’re actually coming out with a paper soon that’s going to describe
Everything I went over in this PowerPoint more in depth in case I missed anything or stumbled over my words and that way you really be able to uh nitpick and analyze um every part of it um so yeah if anybody has any questions feel free to come up to the mic and and
Ask thank you thank you oh yeah I might have to click the Switch is that better yes this is really cool um my question is when you have um how do you get around the problem of uh if say I want to add a commit to my um to my git
Repository and I add one on my phone I make a commit and then I add one for my Mac yeah um how do you I mean there’s the problem of making sure you have the latest Merkel dag before you add a yeah a leaf and then there’s the problem of
What happens if you accidentally sign to yeah that’s a great question you know I actually forgot to go over that critical part so um oh my God I actually you know what my apologies there’s a really critical part of the GitHub I forgot to go over I totally skipped over
It so when you go to upload your repo um when you do a commit you download the latest version of the repo from the relay and once you download that you can you can compare the leaves um in that repo uh in the latest version to your leaves that have that you’ve just
Changed and then you can merge those trees essentially and re-upload the new repo um and the relay only allows S one person to edit at a time using like a mutex lock or other other uh options but uh so that way there are no conflictions there’s only one edit allowed at a time
Um and this comparison function is critical to the GitHub working because a lot of times five or 10 different people are editing the same repo so if I’m going to make a commit I have to make sure and download the latest repo and merge it with my tree uh like let’s say
I edit one file in Mye tree and then I there are some other files that have been edited well I can download the latest tree merge those other edited files with mine and then upload the new tree and sign the root uh so that way you get around that issue and that that
Comparison function is absolutely critical um to making this work and the beauty of it is that it’s like a layer above git in a way like we aren’t really modifying git at all we’re just turning the git folder into to a Merkel tree and if you know any of those other files are
Changed you can see those Leaf hashes change and all the files that don’t change have the same Leaf hashes so you can leave those as is uh so this way you can kind of reconcile the changes and then one change is done at a time and if you really want absolute security you
Can actually put the Merkel rout on the blockchain and if you do that and we’re actually building a uh this guy named Loki is building a Aigner function so you can sign the Merkel rout and you can actually in the CLI and you can put that route on chain and there are other
Protocols that put Merkel roots on chain like Taro and ion and a lot of other uh protocols but uh the beauty of this is is now when you put the Merkel route on chain you can list the app name get Nester and the repo name and this
Provides you with a A Time log of what the latest version of the repo is doing this for every commit would be Overkill because it’s expensive to do a transaction ction every commit but if you want to do it for big changes big merges you can put that root on chain
And the Hornet relays will be running a Bitcoin full node alongside their noer relay because Noster relays accumulate like two terabytes in just a month or two sometimes so running a Bitcoin full node is Trivial is just like a terabyte so they’ll be searching the blockchain
For anything signed by your key or with your repo name and they’ll be able to see the latest Merkel routs for your repo but if they don’t want to do that you know you can just use time stamping like normal noer notes and and obviously the participants in the repo
Have to be honest uh and that’s why permissions are so important uh you can’t just let anybody edit your repo um but yeah if you want to really really be sure and you want that extra critical security you can you can put the Merkel rot on Shain commissions managed oh could you
Could you come up to the mic please sorry I I I can’t hear you how are permissions managed how are permissions managed um well uh there’s a few different ways but you could do like a classic multisig where you have a list of inubs and those are
The ones in control of the repo and you could have a leader and only those inubs are allowed to edit the uh the repo so if anybody else tries to edit the repo and they upload a Merkel dag that’s has a root signed if that isn’t signed by
One of the inubs in the list then it is an invalid upload and the relay relay will reject it and if the relay is malicious and he saves It Anyways well all the users viewing the repo can see the original list of of the maintainers and they they you can cross
Reference it with the route that was just been signed and and you can easily see that that guy’s not on the list so it’s not a valid repo um it’s not a valid update so uh I think um it could be interesting if people leveraged it like frost or other multi techniques one
Day I think that could be really really cool but for now I think it’ll basically be like a lead maintainer and he’ll be in control of the repo and be in control of uh that list of people who are allowed to make edits good questions happy to answer any more if
Anybody’s curious about let’s see if I missed anything seems about we got seems like we got everything well thank you so much for your time I really appreciate the opportunity to speak oh what’s up yeah sonic Merkle dag trees what what a what did you say
Packets yeah more like the the data um the data yeah okay so so think about it like this like let’s say you have a photo of a cat well that cat you could turn it into this and now it’s chunked so you you download the branches so this
This part that’s highlighted in green is a branch so you can download a branch of that cat photo and you download Branch by branch and once you’ve assembled all the branches you can then turn that Merkel dag back into a normal file and load it up and you can then view the
Photo of the cat so this is actually how classic Merkel trees work as well uh it’s just it’s just chunks uh Branch by Branch um and that’s like how Bitcoin works is a branch works with branches SPV proofs work with branches so it’s the same idea and this is exactly how
Merkel dags work so this isn’t like a theoretical concept like we didn’t make that idea the only thing the psionic Merkel dags did is it made it where this block here is no longer needed to be downloaded as a whole you can download just a chunk of the block and then a
Chunk of the file because if this has a list of 10,000 ashes that would be a very large block to download just to get a single sing Le file um so that’s the really only the main this is really only innovation of the psionic Merkel dags um the whole idea of downloading files
Branch by Branch chunk by chunk is originated from Merkel dags and classic Merkel trees yeah sounds good cool thank you very much e e e e e e e e e e e e e e e e e e
1 Comment
This is awesome, will use nostr to build a website