#DappCon22 : Day 2 - rotki: Building Local Open Source Software And Why It‘s Important, Lefteris K.
DappCon 2022 · September 2022 · 23:12
Rotki founder Lefteris Karapetsas, an Ethereum core developer since the network's early years, makes the case for local-first, open source portfolio tracking at DappCon 2022. He argues that self-hosted tools protect user privacy and reduce reliance on centralized DeFi dashboards, positioning rotki as an open source alternative for tracking DeFi positions, NFTs, and on-chain activity without handing financial data to third-party servers.
Speakers
Topics
From DappCon 2022, hosted by Dappcon Berlin.
Transcript
okay um next up we have a little bird that everybody loves and knows it's not crypto Twitter it's left there is keep and he's going to be telling us about building local open source software and why this is important hello everybody um thanks for um Coming uh so early in the morning so I'm going to be talking about open source local first apps uh uh first of all about who am I I'm left there is I've been in the field for quite some time like since uh 2014 with the film Foundation solidity then the Dao and then later I worked on Rocky
which is kind of what I'm going to be presenting today um I will talk about what is open source Define the word a bit better what is local Affairs which is something that I'm talking about all the time and I will well many people have told me that they don't still get it so I want to explain in more detail what it is but what constitutes data ownership what's the problem with most applications today that are close or software as a service a proposed solution and then how Rock implements this solution so open source right this um is a word that many people use it you know it it's it's um it fills people full of Hope um but it's a bit also overused what
does what does it mean um the biggest misconception is a visible code makes it something compensable so as long as you can read the code that is open source that's that's that's uh purely false so open source um is not just free uh like open code but it has to satisfy this um 10 attributes which are defined by the open source initiative and the free software Foundation it all boils down to being able to freely redistribute it um to be able to create derived works and keep the Integrity of the author source code uh you must not discriminate against anybody so you can't say I don't know I don't like Greek so Greeks shouldn't use this software
um no field should um uh uh uh there should be no specific discrimination against the field so you cannot say is the library um everybody can use it but I hate crypto so crypto people cannot use this Library um some stuff about the license and then um technology neutral so you cannot have any restrictions so all in all it's about restrictions so open source means freedom which means that you cannot and should not have any restrictions in how the software should be used um then okay what is software that just has the code open this is generally called Source available
um unfortunately in our field many projects have started doing this um the Bluetooth device projects the latest iterations I think units of V3 are the latest compound the new one uh are all um some kind of business license that has a delayed open source Clause so that means uh after a particular amount of time I think also governance can choose this they can become fully open source I think there is other products like redis has Commons clause and mongodb has the sspl which is the closest thing to open source you can get but it's not considered open source due to some restrictions and there is you know um many other kind of source
available licenses so but why why is open source good so open source means Community involvement like um exactly because uh there are no restrictions so this is the power of Open Source it's not just the code is open but there are no restrictions then you can build a big Community around this since um people really like to um work on something that is free and can be used by others even after the project maybe stops being um stops existing uh of course transparency so you can see exactly what what is being done by the project so um there is a code you read um
uh you can read every line you can see what is it doing uh is it phoning home what is it doing with my data Etc um open source tends to be reliable and secure um the biggest giant of software have been built as open source projects so I don't know Linux Firefox film itself and Linux of course if you just make a project over the weekend then you open source the code that doesn't reliably uh like automatically make it a reliable and secure project but um um many open source projects because they are old and have many people working on them tend to have higher security another thing is that you can attract a lot of talent like
um as an open source project you can have people just do work for free on your project because they want to to help they like it they want to have something to show off in their CV um and they are just really interested in having the project go further and this is also how as open source project you can actually attract talent and let it even hire them and another really important thing is that for open source there is no vendor login so we don't create uh you know old Gardens um it's not like I don't know the Apple ecosystem that everything should be in the Apple ecosystem or or even what Google has started doing with around Android lately
so if open source is so cool why doesn't everybody use it why why isn't everything open source well I mean money is the problem uh if you have no restrictions and if you cannot have any restrictions to be called open source that means that you cannot capture that thing um and to capture something to to make a return of investment you need to capture it somehow so there is no IP so as a venture capitalist you wouldn't like it you wouldn't be able to easily invest in it you cannot just say okay this is the software I just sell it as it is because anybody can just copy it um and I don't know you have spent a lot of time and money on development and as such they just use this and they
can put a lot of funding on design marketing and basically a bit due to the market um you cannot hide anything in the code so API keys or or other other secrets you cannot hide them in the code so you cannot build the kind of closures software service apps that are used today how do we solve this so this is a very interesting question and it's something that has not been solved yet like funding open source is is probably the holy grail and nobody has actually um managed to to solve this this problem the ideas would be to mix open and closed code so you have some open source
modules and some closed code that would um um be part of assault packets you can have a freemium model where you have a free version and a paid version you can sell support this is the most used way of funding open source because you as the team that has built the project you are the people best suited to explain how to use it to sell support and help the users donations like we also know with through Bitcoin grants donations really help um or um grants another funding for integration so let's say a company wants you to create a special version of the software uh and they pay
you for it or you can go full crypto and just add a token and somehow make money out of it but that's uh yeah so it's not just open source that I've been talking about but also local first so what does that mean um local first is software that runs first and foremost uh locally in your computer it protects your privacy and gives you control over your data this is the definition of what is local first and it's something that I feel we should be going back to our roots for decentralization and I am really happy to see projects like true blocks or um authors can they even have a talk yesterday that focuses on this of course like other products like dabnode also help
build this because they allow you to host this local first software so what is in local first um the characteristic is that network is optional it doesn't mean that there is no network I mean that would be completely stupid uh you you cannot do anything without accessing the internet anymore but you don't go to the other side of the Spectrum which is um every single keystroke to be around trip to a server um the most important thing is that your data the most important data that conserve your privacy are all kept locally because you build without um having data saving as an afterthought they this kind of applications tend to
be more secure again because uh you build for privacy uh sorry you build locally and you don't share data with external servers that puts the privacy of the user at the Forefront so you don't just send data right and left just sharing um I don't know like your um your accounting data for example for rotkey with uh other um other servers something that I really like the people who coined the local first um uh award they call it the long now is that you can actually use the software
forever Nothing Stops you from using it five years from now 10 years from now as long as you have the binary and the system that can run it um you can also retain ownership of both the application and the data which is in contrast with um most closer subs today which uh they can just you know kick you out the company can stop working so you lose access to the website and the application um I'm talking a lot about data and data ownership so today we have this these questions that I I like to ask about every single software that I use where is the data stored um who has control over the data and how
do they handle it so if you ask these questions um for most of the apps that we tend to use today the results are pretty so that the answers would be pretty Abyss money they would be very bad and make you think and be very pessimistic about the field that's supposed to be about decentralization so to define the problem a bit better um we're talking about data right so what happens where you save data left and right it leaks um this is just one of such leaks by so it happened in China One Billion people's names IDs police records were leaked
um leather everybody knows that if you had a ledger before the date of the league we know where you live um the other in India open C from our field First America real estate data the Equifax and so on and so forth so you put data there and it leaks and we have been made completely insensitive to setting the data with with um everyone that asks for it this is the biggest problem and like I don't blame uh any company that that makes the league themselves it's regulations and um uh yeah the legislation that is pushing everybody to kycu to amlu
um every company has to keep really sensitive data for you by law and they just do not have the operational security to do that and like even we as Rocky by by German law we have to keep data for people and we don't want to like we we we we delete it we I put it in a USB stick and keep it locally so that it's not on the server just to comply with with law uh so I really blame legislation for for for this um for this problem um another thing with data control is that if you don't control your data you can just be kicked out at any point this is not just something that I like say to to sound like oh you know like a hard debate or hard brains of Doom
um but it happened like um just for accounting which is what uh we do with rodkey like your um your app made run out of business and then all the accounting data that you have been painstakingly um Gathering and editing modifying to be correct you just poof it's gone like uh Frederica from Ross is actually had this and there is a tweet about this and I mean from um right so what's the problem with closer SAS software as a service they control your data it's not yours if they decide that you should not have this data anymore um it's gone they can delete it they can sell or most of the times
I I don't assume malis it just leaks this is what happens most of the times um they require your trust is completely in transparent it's closer is it software as a service and like for applications that are in a field that is supposed to be about um not trusting and verifying it's it's a it's crazy for me that we tend to use uh such applications we can just kick you out right like um there is um I don't remember the name and I don't want to to lie about Which accounting app it was but they just kicked out a user because they didn't like their interactions in Twitter he lost access to all of the accounting data that they had um or the you know businesses go out of business and then when they do you lose access to
the data into the application um if you don't be it's not just about open source if you don't build local first there is a problem you can say that you're open source and then um you have an open source up that is just a JavaScript kind of fronting to some uh centralized API I've seen also apps like that that try to um uses the open source term as marketing and say oh yeah so look at open source is everything transparent and then you go look at the code and it's basically just some JavaScript um calls to some centralized API giving all of the data there you don't know what they do or how they do it so if you don't be local first
um you tend to Outsource work to apis and data storage to the cloud so in order to have secure applications and truly decentralized Computing we need to have local data stores and local data handling uh what okay yeah so what do we do like I'm painting a very big picture and that is because I really see it as Blick so how can how can we solve this problem um we should use um the things that I just presented so open source software local software and encryption um open source software helps with um adding transparency in everything that we are doing both in functionality
and data handling and also it can function when this team stops working by using local software we retain data ownership and privacy for the data of the user and encryption which is something that not everybody uses but everybody should try to use as much as possible gives you security and privacy so um I'll just talk a little bit about uh how rodkey does this which is what um the what uh uh we are building so Roti is a portfolio tracking an accounting application it's open source local and privacy focused it's basically an implementation of all the uh the
attributes that I talked about the architecture is kind of like this um so we have a local application that has a python backend that is a core of everything um it takes data from the user and contacts external apis or open nodes or local nodes depends on so it's totally customizable you can only use a open API so you can have everything local that is possible and service everything and cast is everything in sensitive data are saved in the user database that's encrypted and cast global data like I don't know historical prices would go in a global database and we offer this as a binary
that can be used in Windows Mac Linux like even the Apple silicon as an electron app this is how most people use rotkey or we have a Docker image that anybody can just use and then access it through browser even through the phone um I don't want to do a demo because it doesn't make sense so I will just um show some screenshots so this is how it looks like um you have the um the dashboard where you can see how much you have and where a historical net value graph um we do history um and accounting so you can see the history of everything that you have like deposits withdrawals in the centralized exchange trading like scientists trades
in amms what is um a small thing that I'm really proud of is um our team has managed to make the only open source decoders for um film transactions that I know for python ecosystem at least with read all of the film transactions that you have and make them into a human readable format like this and it's completely modular so for every new protocol you can just make a new file inside rodkey it will um decode also for another protocol how that particular transaction is translated into a human readable format like here you can see I think it's yeah I am claiming the unit shop airdrop and then selling it
um we also do accounting so all of these historical data that we gather we just uh make a list and depending on the settings that you give like a fifo lifo crypto is taxable or not taxable we create a report with a final amount of how much profit or loss you have had then this you can extract into a CSV and you can put it in a spreadsheet and sell it with your accountant uh we also do some small insights like I don't know per protocol insights so for a maker Vault here this is a huge mega evolved I don't remember by whom um you can see like how much collateral was locked who owns it what is the liquidation price Etc
uh you can have graphs such as a historical net value of polka dot here you can see that the guy is taking because the brown is how much polka dot they have and the green is the value and yeah so because I'm running out of time um I as I said for um for a demo just ask me I can show you stuff later um some action items join our community in Discord if you liked what you are seeing um download and try rodkey follow us in Twitter and buy premium uh it's how we find ourselves and how we try to solve our
open source funding problem and we're hiding so come and talk to me or talk to me in Twitter and one last thing the last 10 seconds so uh the Berlin marathon is in two weeks and I'm running for charity for kids with congenital heart disease and I am raising uh some some funds and you can find more information here I would really appreciate any donations for this it's all going to uh Stephen kinderheads uh thanks a lot thanks left series we already have a question I don't even have to say anything
yeah uh have you any interfaces to traditional banking applications Fiat uh or as a trust for crypto assets we want to I'm actually I have a PR for for my bank uh so uh and for n26 and for some others but it's you know there is no good um General API for for banks that is easy to use with local apps but we are trying to also um so you're like how much you have in your bank and all transactions yeah German banks has a have a standardized interface hspi for
accessing like account data and that but it's quite old as a success I mean well but I tried to look at it but um yeah it seems a bit more complicated to do so you need to have a hosted application somewhere in order to use this at least that's how it looked to me when I looked at it right yeah the bank is a hosted applications no no anyway I will look at it um but we want to do this the other the other way instead of using this is to actually do um well um just uh wow I don't remember that word but you can make one interface per Bank like just by scanning the HTML yeah
it's not scalable I have heard about the particular interface for German banks but I had a problem when trying to implement it in a generic way if you have a like a really good guide or tutorial or something I would love to read it and do it because this is something that I really really want since I also am here or Twitter I had the links there I just I will be around okay if there's no more other questions then leave those thank you again so much big round of applause
[Applause]