 They have been really active in the Ruby community in the past and I co-founded an AV production company that you might have heard of called Confreaks that did a lot filmed a lot of events in that community I'm also really into blockchain ever since I first heard about Bitcoin back in 2010 I was a member of the London Ethereum meetup in the early days where I met Victor over there. It was really great and Also participated in the pre-sale and now I'm really excited to be with mainframe where we're building a fully decentralized messaging platform for businesses and As almost every presentation is said so far if we find favor with the demo gods We're gonna show you a sneak peek of what we're working on I'm honored to be sharing the stage also with my colleague Shane Howley one of our lead engineers So you guys might want to get out your laptops because we're gonna be doing a collaborative group chat session at the end of our demo So get excited for that Collaboration tools today present various trade-offs companies want their communications to be secure convenient and real-time But they also want to retain control of their own data And they don't want to have to rely on any third-party infrastructure or proprietary software Beyond just encrypting your data companies want their communications to resist disruption and surveillance Could say the same for individuals as well These we also want to achieve convenient and secure messaging between organizations So if you're running on a fully decentralized messaging platform, it means you should never have to ask whose IT are we running on Not only that we're trying to build Directory services that make it very easy for organizations to share contacts with one another and to manage their own contacts Mainframe is trying to do all of these things essentially We want to create a decentralized slack with dark routing and a few extra features besides We want it to be a compromise free messaging platform for your organization And we're thrilled to be working with the swarm team to make this possible So just to give you guys a little bit of background on the company. We're a team of 12 We're headquartered in London and for the past two years We've been working on a micro format based real-time messaging platform And we're now leveraging this experience to move into a new phase of development that will be fully decentralized So one of the first questions I'd like to get out of the way Is do people really need messaging that's this secure we heard some details from Lewis about this this System is not just encrypted, but it can't easily be detected or disrupted So as we've seen in recent years the threat of dragnet surveillance and corporate espionage Are greater than many of us realized but we actually think that there's more trivial and mundane reasons for Us to want this level of security in our messaging Well, it's possible for people to run their own email servers and to use PD PGP for all their messaging hardly anybody does this and When you're interacting with other people who don't you have to trust numerous third parties who may or may not have your best interests in mind Or who might not always be reliable some of you may remember not too long ago Slack went down in the middle of the US workday for quite some time And even if these organizations do seem to have your best interests in mind, there's no guarantee that they always will and Besides that emailing somebody at a managed domain means that the manager of that domain can also see your communication So even if you trust the person you're talking to There may be other people in the chain that you don't trust true user sovereignty Means that we minimize the level of trust and the technical ability required If your app isn't easy for non-technical users all the amount of security in the world isn't really going to help you Fully decentralized messaging also means that it's less likely for company secrets to be seen by people who shouldn't have access to them And it protects companies from accidental or forced disclosure of private information These kinds of concerns are actually kind of a big deal for IT and tech managers a recent Security journal said that 73% of infosec officers expected to experience a major security breach within the next year So let me get into some of the architectural Strategy and and challenges one of the first questions that we faced as we were beginning our transition to fully decentralized Development is what do you do about those dependencies for which a decentralized solution doesn't exist yet? So our general approach to this is You know you kind of have a chicken and a problem So our generalized approach to this is that in the long term we want to build and contribute to decentralized infrastructure projects like swarm but We also want to provide our users with a pragmatic short-term solution that it that retains as much user sovereignty as possible So now we're going to look at a little bit of what we've already accomplished here First we have Mailboxing services that we're working on By default in swarm your messages are ephemeral if they come while you're disconnected Or you want to retrieve them on another device or you want to search through old messages You're going to have to have a mailboxing service and we're going to demo this feature in just a moment We've all also developed a lot of expertise around real-time messaging And we're going to leverage this to make an amazing cross-platform app for group chat and we're going to show you this too So I'm now moving into the demo portion of our demonstration Our presentation. I'm just going to describe a little bit of the architecture of this demo We have a swarm node We have a mailbox service running beside this swarm node in the same electron app that we've packaged for the desktop and this service is exposing a graphql API That the clients talk to to get updates on messages and to retrieve old messages, etc And we'll be demonstrating both mobile and desktop apps And so now I'm going to turn the time over to Shane for this demo Thanks Carl Hi everyone, we're now going to look at a demo of our prototype messaging client using PSS in one moment Okay, so just to describe what we have running this machine We have a cluster of swarm nodes running these terminal windows and on the other screen We have a few You switch over Carl On this screen We have some instances of our app and each one of these is connected to one of this form nodes that we just saw So each one of these instances connects to this form node using an RPC interface and Maintains a local database of all the messaging protocol data that is sent or received over that interface This data is then exposed via a graphql server and that data is used to feed the UI But as Carl said just the graphql server could be deployed in the cloud somewhere as a standalone service So you could have like life in desktop and mobile clients Okay, so in order to start a conversation, we're going to need the user's public key that we want to talk to So if this public key is used to encrypt all the messages that are sent to this user So if we copy Carl's public key here We can send him a contact request Now what's happened here is I don't know where Carl is on the network So I've sent a broadcast out over the network with a payload that can only be decrypted by Carl Containing my public key my swarm address and my profile so he can see who's contacting him But right now I don't know anything about him But if he accepts the contact request his client will reciprocate this handshake We can start chatting So what you've just seen here is the decentralized messaging. Hello world To make it easier to add a contact. We also have a mobile app that we can use to read the the public keys from QR codes so What we're seeing in this screen here is a mirror of the display with our connected iPhone here and The iPhone can be used to hook into the graphql server. That's currently running inside these electron apps and so In order to connect to the graphql server, we just need its IP address And for convenience we can get it from the profile and now if Carl shows me his public key we can scan it and We should be able to start sending with some messages and Hey, and you can see that the data is mirrored between both connected clients So that's an example of the the mobile app that we have So now we also support group messaging with channels. So let's create a channel now to talk about engineering So we can select who we want in the channel Now I'll explain a little bit this privacy level. So this actually refers to how the routing is done inside this form cluster So the dark routing uses no recipient addresses Going back to what Lewis talked about earlier and this is useful for For providing plausible deniability of receipt for the true recipient and disrupting potential surveillance Whereas the direct routing is a more traditional shortest path style routing That we're gonna be adding, you know additional levels of darkness and Configurability around this feature, but really right now. This is the only Group chat kind of platform that provides you with this sort of dark networking feature that you get Thanks to swarm And you can also notice here that even though I wasn't connected to Adam I know about him now from joining the channel and if I want to make a direct connection I can do it from here Now at mainframe, we've been working on rich messaging formats for a while now and we've adapted some of our favorite features into our decentralized demo So one of our favorite features is actually attaching action items to messages So we can do that using the action button on the input bar We also have real-time typing notifications that you can see down here We also support file uploads and we've actually implemented this using the file swarm file storage So if we click the file upload button select the file it uploads the file into swarm and When the message is sent we just send the swarm hash of the file so that the clients can just use the swarm Chunk requesting to get the file If we send an image attachment, we actually just showed in line So this is just a sneak peek at some of the features that are going to be in our decentralized messaging product and Now I think we're going to go over to the audience participation section So if everyone has their laptops ready What you'll need to do is Connect to this Wi-Fi network that we have set up in the room mainframe PSS So change your Wi-Fi. This is a this is a desktop as a laptop only demo Browse to this URL 10.0.0.2 and You should see this beautiful web page You can download the app using these links here and So if we open our app So just to tell you about the cluster running 50 swarm nodes in a cluster on this web server and When you open up the app You'll be assigned randomly to one of the swarm nodes and you'll get a random profile So if we open up the app Okay, we're going to download it Okay, here we go. So we are Anna Tiffany And in order to get access to our public key if we go back to the website You can see a list of all the users who are currently connected So this is us here if you click on any row here It'll copy the public key to your clipboard and you can make contact requests. So we have some coming in there already And so jump in and we'll get a group chat session going But for now, I'll hand you back to Carl All right. So while we're accepting new it chat requests from all these lovely memes I just want to tell you guys a little bit about some future directions that we're thinking of going So one of the things we want to add is the ability to search through your message archives We're also looking at easy deployments to either your own infrastructure or to our Managed service if you prefer a more turnkey solution We're looking at we've been working for a while on a bought marketplace that will allow people to buy and sell extensions to the platform and a bunch of other features we'd love to get your feedback and your ideas as well and The demo that we've been showing you today is also going to be open source and you can play around with it So stay tuned for news from us about that, but For the next little while I think there's a break after this so like we can just go to town on these chat sessions guys Let's just just go for it. Oh, I guess a few people We've already started our session. So oh and please keep it clean, you know, keep it safe for work You know, you got some taco fans Well, maybe we could take some questions. Yeah, yeah, we've any questions from the audience This is like on red. So somebody here sent me a message. Yes. Yeah, it's all cold in here If someone, you know is if some new activity has occurred it shows red. Yeah Yeah Yeah, that's right. Yeah, and that that is one sort of hand-waving portion of the demo is that we're not actually encrypting the uploaded content, but Thank you. Yeah, we we love the swarm team glad that they're helping us out. That's awesome That's I love the I love the gifts keep them coming. They're great Yeah, any other questions Uh-huh back here Just yell it out. It's great early in the press or in the previous presentation. It was mentioned that the The message isn't guaranteed to be sent. Mm-hmm. So in this app and it should be handled and on the application side How are you guys handling that kind of situation? And then also for files How are how are you maintaining that that file will stay around for a longer period of time? So Eventually swarm will provide More guarantees that you are ways of guaranteeing that a file is retained and stays and you can sort of pay a little extra For that. So I think there's certain things in the incentivization layer that will make that possible Remind me your first question again. Oh Yeah, so right now. We're just kind of hoping that the message gets there and if it doesn't oh well, but We'll probably bake into the client some type of retry idea. So maybe some sort of acknowledgments That that it at least sounds like a good idea Offhand any other questions? Yeah, oh So there it does not actually preserve the message order So in some cases we may find that some users have a slightly different view of the message order than others Although there may be we've talked about some ways of sort of replaying history In a peer-to-peer fashion so that's peers could like say well I know this much about the group this group that you just joined so there might be some ways of sharing Common views of the world, but those views would still be confined to like the individual peers and what they see And we think that for most Real-time chat situations. That's probably sufficient But you know there might be some weird special applications where you might need a higher level of Synchronization between nodes, but for this app. It's probably probably okay any other questions All right. Well, he thinks a lot guys Where there's nothing after this for a little while. So if you guys want to you know, keep going with the memes have at it And thanks again