# Rotki: Why it’s Open Source and Local-First and Why Should You Care? by Konstantinos Paparas

- Speakers: [Konstantinos Paparas](https://streameth.org/speakers/konstantinos-paparas)
- Channel: [Devcon](https://streameth.org/devcon)
- Date: 2023-10-07
- Duration: 20:52
- Watch: https://streameth.org/watch/yt-72kLanSGq00
- YouTube: https://www.youtube.com/watch?v=72kLanSGq00

## Description

Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on Swarm, IPFS and more.
https://archive.devcon.org/archive/watch/6/rotki-why-its-open-source-and-local-first-and-why-should-you-care/

This will be a talk on the why we need opensource, local-first privacy preserving tools in this field. 

Reiterate the benefits of opensource and the cypherphunk ethos that built the crypto field. Ponder why so many people still develop closed source centralized tools and explain why this is contrary to the core ethos of the field.

Then by using rotki as a main example show how things can and should be done differently. The opensource, local-first way.

Explore both benefits and drawbacks

Speaker(s): Konstantinos Paparas
Skill level: Intermediate
Track: Opportunity & Global Impact
Keywords: opensource,privacy,local-first-software,data-ownership

Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum
Learn more about devcon: https://www.devcon.org/
Learn more about ethereum: https://ethereum.org/ 

Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. 
Devcon 6 was held in Bogotá, Colombia on Oct 11 - 14, 2022.
Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/

## Transcript

foreign [Music] driving principles behind development Road key so let's start so who am I I have been doing application development local mobile and web since 2010 most of the time of the most the time of this was doing open source and have I have been the erotic contributor since 2018 um handling parts of the front-end infrastructure packaging so what you do in startup pretty much touching all over uh the code base so let's start with the problem today the problem today is that we don't have enough decentralization a lot of the software we use daily is uh closers it runs some data centers and there you don't have ownership or control of your data they can use it to train muscle learning algorithms use it for whatever reason there is no transparency and you have to trust that they use it as they claim uh they might claim that they have encryption but you don't have any way to verify that there is no master key and there is no way to be sure that all the claims are true then your data can leak this can happen with different ways like for example accidents and in turn go to much success uh didn't know what they were doing and all your private information is public or hacks uh or some companies just outright sell data uh there was a nice John Oliver episode about data Brokers that was really scary on how much information they could get about people even sensitive information like healthcare and uh the exact point where people uh were living um then other problems are that companies can go out of business and then basically you lose access to all your data another problem can be that they come to platform you uh something happens your account is locked and then put for your data is gone uh we can see some examples so for example uh deeper started blocking all the Russian users so basically they lost access to their funds then we had the case of snapshot where employees were abusing uh data access to justify on users and as we saw like uber was hacked recently by a teenager so it's easy to you know if your public information goes out then there is no way back uh then we had the leather hack like people were receiving mail at their homes which can be really scary because their public addresses uh their private addresses the home addresses were outside in public so let's talk about open source uh what is open source like there are 10 10 criteria that uh Define open source uh the main idea is that open source software is freely distributed along with the source code and it doesn't limit the usage uh there is no discrimination against people and guess against us everyone can use a software uh we also have cases of uh software that has public available code but it is endometristers uh some examples uh include you know the delayed open source lines license that a uniswap another have and uh maybe mongodb server-side public license and uh in a lot of cases I can understand the reason behind that because it's really hard for open source projects to fight against big companies you know like uh the reason for the server-side public license is that AWS was taking all of um mongodb selling it as a service and then the developers didn't have the funds and they had to maintain and fix the issues um so why open source there are some strong benefits Building open source you can have a strong Community involvement you can have transparency reliability security and it also makes it attracting Talent easier and uh it avoids also a vendor login so like Community involvement uh there are people around like someone needs a feature we might be overwhelmed and someone with technical Technologies can come and contribute to the code base and not their future that they want to use so other people can also use it uh the non-technical people can contribute with translations uh making the app available to bigger amount of people or documentation or just open issues the code is really transparent like you don't have to trust what the developer claims that the software does you can easily read the code or other people can read the code and verify that these claims are actually true and uh open source software tends to be more reliable and secure it's pretty viewed so anyone can read the code and it's easier to spot flaws earlier um run closed Source we have like a software we always use that is really robust like example for example Firefox the Linux kernel uh ethereum clients and Unix and this is highly Reliable Software we use everywhere and it's all open source uh then uh open source can make attracting Talent really easy because it's always easier to hire someone that you have previously worked with you had the good interaction and then maybe you also text your code and you can see in an easier way that someone is a good fit for your culture which is not always the case uh when doing some small interviews and uh you know like giving some kind of task and then uh like I said you can avoid ventral login uh you always have access to the source code you always have access to the application you can check the data you can access the data so uh in case you want to move and migrate from the platform uh it becomes really easy because you can access everything so the biggest problem with open source is funding because it's hard to want to monetize the openness of software um we had like some major incidents for example there was the look for j-hack uh or the opening system had bleed and we what we found out out of this is that you had a couple of overwhelmed software developers maintaining infrastructure critical software and everyone using it but they were always underfunded no one was paying for that and these uh led to huge security problems uh so there are different ways to fund but it's always uh difficult uh for example you can accept donations you can have as we do in Rocky uh we can get uh grants for Integrations with other protocols uh git concurrence is something that help us a lot to build the software and then we have premium subscriptions but uh this doesn't really work because it's hard to monetize retail and uh you know as a nice small software it's hard for us to actually have the amount of people uh that we would need to uh have a sustainable source of income uh so let's talk about local first software uh in local first software you control your data everything happens on the machine you control uh there are three major principles so the network is optional uh local data is the primary data and security and privacy are really fundamental so by network is optional we don't mean that you don't have access to the network like you can use your Wi-Fi uh you can use your local network to access to access blockchain data maybe get some uh your trades from centralized exchanges what this means is that all the processing of this data happens locally on your machine data is not pushed to a remote server it's not pushed to a remote API everything happens transparently on your machine uh so uh your local data is primary unlike uh you know all these clouds are like using Google Drive the primary source of data is Google Drive any copies if you have are usually some kind of cars some secondary copy and while it's unlikely in the the case of Google Drive if your cloud provider goes out of business then you might lose everything uh then because everything is stored locally on your machine it's more secure and it's harder to leak than if you had everything on a data center because you are the owner you control the machine and you can actually better protect them so let's talk about large game that's a nice project we are building rotkey is a portfolio tracker an accounting tool that is uh open source local first and it's focused on privacy and and like what some people believe the lucky team is not only Lefteris like we know he's kind of superhumor but he cannot do everything on his own uh currently the rocky team consists of seven people uh six Developers and one person handling operations uh from the developers uh who have lift teres which most of you if not everyone knows uh then I'm doing he does back-end uh you know Business Development he does a lot of stuff uh then I'm doing mostly front-end back-end infrastructure like I said then we have jabir that handles also backend uh lucky is working with me on front end and his has been a really great help and then we have Isaac and Alexi which are our newest members um that uh also do backend and finally uh Selena left there is wife that really helps us with uh you know the non-technical stuff that the company needs and we are really glad to have her uh so um we are building the road key across some uh like three basic principles key is open source local first and it uses encryption to store the data uh with this we can uh guarantee that the functionality is transparent like you don't have to actually trust us you can verify on how we handle your data and how the app works because it's a local lab is beyond the data we don't have access to your data we don't know anything about your data any address any account anything you put on rotkey stays locally encrypted in the database in your machine we don't have access to any of that and also you have access to the code if anything happens to us hopefully it will not but if anything happens to us someone can pick up the software and keep providing value to the users um so let's talk about terrific architecture uh rodkey is split into parts one is the python backend and the other is the front end the front is really simple just calls the back end and it's what you see when you open the app uh the backend does all the data processing it calls open apis uh open nodes or maybe you can also add your local nodes so if you run in your own ethereum node uh a lot he can hit it and it will be immensely faster than hitting public notes uh and then you have uh two databases one is the encrypted user DB that uses SQL Cipher to uh encrypt and this is where your private data stays and then we have the global DB that usually has asset information uh the way we package uh is the wa so we have an electron app that is available for Mac OS Linux and windows and we now Support also um arms uh Apple silicon Max um and then we have uh the Dockery mods where you can deploy on a machine you control and you can access it via web although you should be careful there because rotkey was foremostly designed as a local app so it would be better if you have a proxy in the front uh for security reasons uh and then there is another way to bar and rotkey if you own the dub node there is a top note packets and we are in close collaboration with dubnod which makes things really easier and we want to improve the experience there so for example we are working to make Auto configuring your local nodes in rodkey uh automatic uh so uh rodky does portfolio tracking at the moment we support ethereum kusama polka dot Avalanche uh Bitcoin cast and Bitcoin along with a number of centralized extensions nd5 protocols uh in the next release uh in this we are doing work so that it makes it easier for us to support multiple VM chains so slowly we will start adding support for multiple VM chains starting with optimism so uh indirectly you can see your account history Lefteris had the token uh Tuesday talking about how we do transaction decoding here you can see how this looks inside the app in this example you can see me basically migrating 400 side to die and then selling them for 1.7 nif on kyber uh then we have accounting uh Accounting in red key is customizable uh we try to be as general as we can so that we can support as many jurisdictions uh you can parameterize how you generate your p l report and then you can export the CSV that you can pass to your accountant and do your tax record another great feature we have is uh ethereum selecting you can see your stickers performance you can see your daily stats and you can see aggregated information about everything and another part of rotkey is insights um so we have graphs for statistics uh although they are a bit problematic because you have to open the app every day so that we don't rely at the moment on uh tank history because that's quite hard although we want to do that in the future but at the moment we depend on snapshots so you have to open the app every day so that the app can uh collect this snapshots this is important like if you value your privacy please run the full node like it's really important for us and you know like an easy way would be to you know get your dub node uh have your full node like running GIF or rarely gone or never mind and then you can use true blocks as an indexer because I mean look at the moment we have a problem uh because there is no easy way to get an account transactions we have to rely on either scan and this can be problematic from a privacy perspective because if there's the rate limits you and you have to put an API key and if you put an API key you basically connect all your information like your email address your IP address your account and probably they they have a good privacy policy but you have to trust them for that because they are closer software so the best idea I would be to have something like true blocks running uh and true blocks can index the chain and can detect a lot of these uh transactions uh which content fit to rotkey and this way you could do a really privacy focused portfolio tracking and accounting just as a bonus you can act if you run Road key on that note if you can access your portfolio through the VPN locally in your mobile device so that's uh you know like we met the user using uh in such a way in efficacy and it was a really happy moment because we don't actually have any documentation on how to do that so it was really nice I just went a bit fast so yes so if you want to reach out um that you can already talk through Discord and please please really like we built Rocky for the community we build it for us and for other people so it would be nice if you uh give it a try like download the app uh run it test it give us feedback we always hear feedback and the way we build the app is based on the user feedback so uh please do and let us know uh then you can follow the barot Gap account on Twitter most of the time since left is tweeting from there not always and uh yeah you can also buy a premium subscription it is a bit of support to us doesn't help sustain the project but it still helps helps us a lot and with this you can actually unlock the full Roti experience because the free free version has some limitations yes so it was a bit fast thank you kelsos do we have questions in the ambulance I'm liking a lot of these small projects and I'm liking a lot of them but I find them uh I have I how do you finance radki that's my question uh the funding yeah the funding how how is your are you in are you in Freedom to release the business model because at the end of the day you all have to eat I know you have to eat yeah exactly exactly so funding is really hard like I said uh we currently have uh funding through Bitcoin grants which is one of the our biggest source of support and then if there is he's trying to find ways so that we can get grants for integrating with different protocols so these I think are the our main ways of funding and paying salaries of course you know it's as an open source uh project we do it out of fashion so our salaries are not the best like we are below market rate but uh you know it's something we love to do so yeah it's hard it's hard and then we have the premium subscription but uh at the moment our premium subscription is 10 euros per month which you can imagine how many users you would want to be able to sustain the project out of this subscription model hi um this might have been covered in the other presentation the left Terrace did um you said you rely on etherscan for transactions but you I assume you've looked at things like the graph which is like more decentralized what do you think of that ah yeah so we use the graph but in our use case it's not a perfect fit because you know like there is a no unified model of the subgraphs so for every protocol we support we have to add the new subgraph and this actually gives us a huge maintenance host because we have to go and you know like Implement on our site the schema handle every subject in a different way and uh then like as soon as the sub graph breaks we have to fix it like communicate with people that are limiting the subgraphs and then we have to release the path that's the release to fix that for our users because the app is broken and uh this is why we're trying to find the way that is more unified and more generic and that doesn't need the extra maintenance cost because you know like uh the way the ecosystem works new protocols pop up and we have to support them because our users also want the want the support for these protocols so it's uh really hard for us to go and Implement each subgraph for its protocol and it becomes the maintenance help for uh our small thing thank you again kelsos thank you
