The distributed systems behind Ring

Video in TIB AV-Portal: The distributed systems behind Ring

Formal Metadata

The distributed systems behind Ring
BlockChain and OpenDHT
Title of Series
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date
Production Year

Content Metadata

Subject Area
Ring is free software for communication developed by Savoir-faire Linux in ourMontréal offices. It was conceived and developed on a peer-to-peerarchitecture model, relying on OpenDHT, its dedicated distributed hash tablefor retrieving its users on the network. Ring's Beta 2 version released onnovember 4th 2016 provides many new features for its users. The mostinteresting of them is the identity and account management mechanism,implementted on a blockchain Ethereum technology. Since the project started and the software's first release about 2 years ago,Ring has evolved in many directions. Our new Beta 2 release features newfuncionalities developed to improve the user's experience: The Multi-devicefunction makes it possible for users to associate many devices to the sameidentity (many RingID's to the same identity/person), and all the devices willbe synchronized. The Blockchain supports the multi-device feature for theidentity and account management. It is implemented on an Ethereum technology.OpenDHT library was enhanced in order to optimize user's retrieval on the p2pnetwork and decrease the network's operations time. Ring is now available onUWP (Universal Serial Platform thus offering support for Ring's clients ondifferent platforms supported and maintained from Microsoft. Finally, we are planning to release Ring's first stable version in a fewmonths, which will introduce new elements and potentially a higer level ofsoftware reliability, users' privacy protection, utilisability and a betteruser experience
Ring (mathematics) Telecommunication Multilateration Limit (category theory) Computing platform Physical system
Ring (mathematics) Physical system
Classical physics Android (robot) Server (computing) Service (economics) Digital electronics Multiplication sign Information systems Computer Public key certificate Revision control Web service Different (Kate Ryan album) String (computer science) QR code Physical system Form (programming) Identity management Email Information Software developer Projective plane Incidence algebra Public-key cryptography Software Ring (mathematics) Self-organization Freeware
Functional (mathematics) Multiplication Telecommunication
Laptop Server (computing) Existence Key (cryptography) Ring (mathematics) Software Telecommunication File archiver Image registration Public-key cryptography Identity management
Windows Registry Server (computing) Source code Image registration Open set IP address Direct numerical simulation Operator (mathematics) String (computer science) Single-precision floating-point format Address space Physical system Injektivität Block (periodic table) Projective plane Connected space Peer-to-peer Data mining Process (computing) Ring (mathematics) Software Hash function Chain Table (information) Resultant
Default (computer science) Algorithm Implementation Demo (music) Multiplication sign Data storage device Combinational logic Electronic mailing list Open set Directory service Mereology IP address Dressing (medical) Peer-to-peer Goodness of fit Software Hash function Ring (mathematics) Computer configuration Calculation Encryption Iteration Table (information)
Ring (mathematics) Local ring
Mathematics Ring (mathematics) Hash function Password Field (computer science)
Mobile Web Trail Default (computer science) Structural load Multiplication sign Projective plane Instance (computer science) Open set Revision control Software Ring (mathematics) Internetworking Term (mathematics) Percolation theory Proxy server
Existential quantification Googol Ring (mathematics) Software Real number Entropie <Informationstheorie> Design by contract Database transaction Information security System call
Facebook Real number Twitter
Discrete group Web service Service (economics) Power (physics)
Scripting language Service (economics) Code Block (periodic table) Interface (computing) Directory service Client (computing) Rule of inference Number Software bug Revision control Ring (mathematics) Password Chain Core dump Quicksort Library (computing)
Demon Android (robot) Interface (computing) View (database) Multiplication sign Real-time operating system Instance (computer science) Client (computing) Revision control Telecommunication Universe (mathematics) Middleware Window
hi everyone later years hi everyone so I'm gonna
present with my colleague Andres ring so ring it's a fully distributed communication platform so it's it's a limited communication platform using a few different disputed system to work and so we're going to present you what ring is how it works and how we implemented those different distributed
system to design ring ok sorry for the
slides in French but this is basically
the different kind of distributed system you can have so the classic kind of an information system would be a centralized system so you will have everything on a single server or a single a computer or node that will have all information from everybody and that will authenticate different users that
so that's the classic form of different web services proprietary services that are so many free software services are hosted on a single server or by a single organization the federated system is what we use with emails so with emails we have different servers those servers can connect it between each other and every user has a server is registered on a given server so you send the email to the server the server will communicate with other servers and then this other server will give the email to the other end user and ring is fully distributed so there is no Federation concept it's really fully peer-to-peer so ring these days on a circuit certificate chain so when you create a new ring account you will basically generate a new very sexy pair so this is the base of identity management in ring so just as an interjection previously for these versions of ring because this incident as a project that's been in development for quite some time and recently a major advancement has been the changing from the repetition of your user name as the public key to a user name that's bound to a public key now that's being stored using blockchain and distributed across the DHD so all in a minute I'll give it demonstration that creation of a ring account and your what we call a ring ID is essentially your your public key and this is now being represented by user names so much easier to use the software and through the end-user experience you can look up a name rather than trying to paste your your long string of characters into a pastebin or something like that what we used to do where we implemented ooh originally a QR QR code system so that if you're using Android or some device in the camera you could take a picture the QR code and converted to buts now recently in the past year released just before the beginning of 2017 was the release of the beta 2 which
includes that functionality and as well another major advancement which has been
the ability to add multiple devices and to chain multiple devices into a master account so for people who use telecommunication systems on multiple devices you can now use the same account on one device with using you know the DHT as well so and keeping everything secure how they just goes to the
the archives here and I'll do a
demonstration of the way so so Andres is gonna show on this laptop when you
create a new a new ring account height goes so we try to make ring as easy as possible to use foreign users so our goal is to make ring just as easy as that's to use as any other proprietary proprietary communication software so the absence of a central server should be as transparent as possible for the user so the user shouldn't care about the existence or an out of a central server as much as possible except of course for users who understand the implications of all this so as you can see basically if you just generate a key pair you will get a public a public key that will be complex and you will not be able to remember that key that public key to give to other people so if you are at some club and you want to give some girl your identity and ring you will not be able to give this long ID it's not going to be possible but you will maybe you might be able to give just a username you're registered so I'm I'm Bob wondering you know this kind of thing so we implemented user name registration on the blockchain to be able to register user names with without using any central server so for this we used we choose the atrium technology to have as much flexibility as possible compared to
the black chain base name registration systems so we use a turian in a complimentary way with the classic DHT that we use to find other peers on ring so when you use your ring ID to contact someone it will use the DHT distributed system similar to be turned but fully encrypted to find other peers exchanged the IP address with the other peer and then establish a peer-to-peer TLS connection with you or the peer that you found on the over the DHT so now with a terraeum you will first if you know the the name of the pure you want to contact you will first do I look up on the DHT so it's a free instantaneous operation on the blockchain and you will get the ring ID ID corresponding to this user name and then use the string ID just as you will you know use an IP address that you will
result from a DNS address online so it's basically just a name ring ID so it's keepers registry is very light but it's still not light enough to be on every single ring device so every single ring the node is at the HT node participates give also resources for their peers to reach each other but the blockchain is too heavy the mining process is too easy to run on every ring node so the ring name server is a separate project from a ring so when you install ring you don't have a you know block a blockchain no the mining or anything but you can anybody can just clone the source code of the ring name server and participate to the existing blockchain so how do people how do people find each other on ring they used the open ght network of injection network is a distributed hash table that we created that software unix
to meet the needs of ring so open g HT it's academia like have the who here knows what our distributed hash tables good good open DHT it's a distributed implementation of a distributed hash table that allows to store not just IP addresses like BitTorrent but any kind of data and we use it to store encrypted IP addresses as I explained so when you reach people with ring you will put your encrypted I care dress and the other person will reply and the DHT I will show you but if you already know distributed hash tables this world you will mostly already know this algorithm so this is the Academy algorithm every node knows some parts of the network the nodes that are the closest to the node on I ID and you will then ask other nodes iteratively you will ask the closest node that you know to the target ID until you reach the target idea node will answer you with the list of nodes that are the closest to the target ID so that similar to the technology used by BitTorrent to find peers yeah so we use open DHT in combination in combination with the eternium blockchain based nemours iteration and yeah we use them to create this fully distributed network I think do you have time so I do a demo of the
calculation okay we might do a demo yeah well first of all although I'll just go through the account creation is pretty simple but gotta you obviously people at the start of the implementation of this the ethereum blockchain name service giving people the option to not do such a thing see you don't really have to register but by default it's the best idea so
I'll find something that so so yeah this would be a local name I'll create a ring account I'll register it
yeah yeah there's no hdmi cable but essentially i'm just writing in a
couple fields the name that I'm gonna keep you locally and the name that I'm trying to register onto the blockchain and then I'll supply a password it's simple so compared to the DHT using BitTorrent in ring we implemented a new feature that is here come listen so you can ask
other nodes to be informed of a change of value at some given hash so when you will be called for an incoming call for
instance you won't have to do some kind of pooling every second you will be Jerry you will received Network packets from other nodes saying oh there's a new value and then you will see how it's someone trying to call me we try to reduce as much as possible the impact of the DHT Network and mobile devices because the DHT network requires to keep track of other nodes online send and received packets continuously so it's pretty bad for the battery on mobile devices but where we have a lot of internet projects to try to have like proxy nodes or these kind of things to reduce the load and mobile devices in terms of battery and data consumption do you have any questions about the distributed design sorry pricks note so it's not implemented yet but we think about it for a long time to have nodes registering themselves on the open jecheon perks network itself yeah so maybe like the desktop version of ring my might enable by default allowing to proxy older nodes this kind of thing yeah the reason is that on the digital
network there's no way to be sure that no one else will register the same name you know so there's no a cryptographic certainty that you will be the only person to have this name exactly to
preserve the security of ring because otherwise some other person could register a name so when you are called and this disorder person we will receive the call and they then this other person can act as an attacker as a madmen the middle or anything yeah exactly so stop me registering a software for Linux or real Donald Trump or Scarlett Johansson yeah you can go to the and register a new Google account with any name that is not currently registered so we designed the blockchain so that it has a cost to register name when you want to do when you want to perform a transaction in the blockchain there is a transaction cost and there's also a cost that can be defined in the contract that can be arbitrary so we designed the thing so that it's it should cost you too much to register every name that you register in the blockchain has a cost to you so if you want to register 1 million names like to register a controversial name oh something's really should belong to them will be expected because real names mean
something right well that's that's a question personally I have an answer for
that I mean because if I want to if I want to register myself as somebody else yeah I could do that on a lot of things I guess you're saying that Google would prevent you from doing them erasing yourself as the real name of somebody else if they if they didn't stop you they have I'm pretty sure ways of fixing it has to do Twitter and Facebook okay
they have the power to do that but must we must web services will allow you to register any name where you want well the idea behind the members discretion service is that the first person to register on a a name will have this name under service but this called evolve in the future but
this is the the entire horrible but I
have been really encountered anything like or any situations that everything
be similar there was issues we like the DAO on the blockchain there was a a bug in their code that allowed someone to steal a lot of money but since it was written that the blockchain nobody could do anything about it so the community decided to move to another blockchain that fixed this issue so if there was a major issue is the number of destruction service we might decide the wall ring community to move to some new directory that will have new rules to fix the issues that were uncultured in previous versions of the blockchain and it could be very well done to import most of the names that were already there in the previous block chain or this kind of thing I mean I guess that is a concern there's other there's other issues that we're working on in the upcoming year and implementing like being able to change your password which is a core feature that people need forget your password mention this and we have a few ideas yes absolutely so the linux version has a debased interface so you can control it with any sort of thing that does a Debus interface we have python scripts ourselves to make automatic tests and that also the yeah mostly and the judge
the core ring can be built as a library and you can link a design clients
however like android does not use the middleware somebody built the client directly the new for instance the version that that I've spent a lot of time developing which is the youth view of universal Windows version of the client that also does not use the middleware so we just developed it right on top of the daemon so pretty much anybody making your own interface no because it's udp-based and also it's a real-time communication and tor is not very well suited for real-time communications [Applause]


  339 ms - page object


AV-Portal 3.20.2 (36f6df173ce4850b467c9cb7af359cf1cdaed247)