 Hello and welcome. My name is Conrad. I'm one of the co-founding members of the non-profit association Diva.org Exchange. I'm responsible for the technology. Thank you very much to the ForceAsia21 team to give us a chance here to talk. This is very kind of you. And in this talk we're going to take a closer technical look at Diva. Diva is the software package which is licensed on the AGPL version 3. This is what we're producing at the non-profit association Diva.org Exchange. We already had a chance this year to talk at FOSSTEM, but there it was rather an introductionary talk. So if you'd like to get an introduction please take a look at this video in this talk. According to the feedback of the community we got we'd like to take rather a technical path. So I'm going to take a closer look at how to install Diva, how to set up its containers and to make it run on your on your local device. This is all about how to become your local I2P-based fully distributed bank because this is what Diva is all about. It's distributed banking technology for everyone. I suggest that we take a look at the agenda now and then let's get started. At the association Diva.exchange we saw that users miss an urgent and secure solution to trade and store their digital values like cryptocurrencies. They want to enjoy full privacy protection, they want to enjoy independence and self-determination. So we created the free and open-sourced software package called Diva. And as I said it's open it's free and it's fully distributed and it distributed and it protects the privacy of the end-users. So it's banking technology for everyone. And that's what we're developing at the non-profit organization and or association Diva.exchange. The association Diva.exchange by the way is open to everyone so if you want to participate you can do that please just join over our website. We're working on technology solutions that's what I said that technology is peer-to-peer and we also cooperate with universities currently in Switzerland. So we want to be scientific, agnostic and we're 100% free and open-sourced software. The users of Diva, so of the software, they usually want the following. They want to allocate their digital values in an entirely self-determined manner. They want to have exclusive control over their data and values and they want to earn digital values as fees by participating in the network or being part of the infrastructure. We're striving to create user and environment-friendly applications at Diva.exchange. Now the application stack which consists of I2P, the blockchain layer which is the distributed storage, the backend and the front-end is our next topic. Let me show you here a few slides so that we get into it. The application stack of Diva consists of several layers. The network layer is based on I2P and I2P is privacy by design. That's a peer-to-peer network and the messages travel over multiple nodes taking different routes inbound to to a recipient and outbound back to the sender. It's end-to-end encrypted and the garlic messaging protects both identity of the sender and recipient and also the message content. faulty remote network nodes cannot put privacy or anonymity of another road at risk. There is no dependency to central infrastructure and I2P which is coming in two different flavors, Java or C++ is long-standing and a very proven open-source project. At Diva.exchange we do support the research currently together with the University of Lucerne, researching I2P, its stability, its scalability, etc. The next layer is the storage layer. It has to be fully distributed so it's a blockchain. We're using Hyperledger Iroha currently which is a very lightweight and performance oriented distributed storage. The Consensos is simple and leads to energy efficiency which is very important to us. Over very open for a for a pluggable blockchain storage engine and also a pluggable Consensos protocol implementation. Currently there is also research running on the on the storage layer by two students and we're working that together with the Zurich University of Applied Science in Switzerland. Then there is the application itself, so the Diva application which consists of a back and the front end. The repository is found at codeberg.org slash diva.exchange slash diva, it's a Node.js application. We do have minimal dependencies and we're very lightweight. Yes we're striving for elegant and modern code, that's what we're doing and now in these weeks and days we're working on the trading engine implementation for multiple digital values and cryptocurrencies. If you'd like to jump in and help out with the community and with diva.exchange and with diva you're very much welcome. We're an entry-level friendly project so just get in touch with me. As you can see in the agenda now it's time to get started with the installation. We're going to install diva on your local environment. We're doing this on Linux, we're using Docker container so if you're familiar with Docker that's a pro because of the current status of diva, of the diva application enables us or allows us to install it within Docker containers. So we're going to pull up the whole environment which consists of several layers like I2P, the blockchain layer, the back end and the front end within several independent containers. This is what we're calling diva.dockerized within our repositories. Now let's get started and I'll guide you through step by step. At the end we're going to have a running local installation of your own bank on your own device. And now it's time to install diva locally. There are two possibilities to do that. A as a local seven node network without I2P, by the way it could also be 11 nodes or three nodes but these seven nodes are just the example we're going to use here. And B, by joining the existing diva network using I2P, that's the other possibility. We're going to use here Linux console so you're going to also need some Docker skills and some Node.js skills. At the end, a Node.js application will run locally and give you the functionality of diva. Now first of all we need access to the code which is here located in the code repository. So it's on codebook.work slash diva.exchange slash diva. Here we are on the developer branch. Now if you scroll down you're going to see the readme and within the readme there you also find the instructions on how to get started, so how to do your local installation. First of all we will do the seven node local installation and as described here in the readme you need to have Docker and Docker compose available on your system. So that's all described here. And then it's really quite simple. You just often you have access to the code which is usually a clone. You just execute the installation script within your shell and you can do this as a regular user but the script itself then will need super user access. So it's going to ask you for your super user password because Docker requires a privileged access. All right we're here now in the Linux terminal in the bash and we have cloned the source code from codebook.org slash diva.exchange slash diva. Let's take a look at the folder structure here. Yes this is the code from the code repository and as it said in the readme we're going to start the install script if necessary it's going to ask you for the privileged user password. So the root user because Docker needs access to it. What's happening right now is it's pulling all the necessary images from the Docker Hub cleaning up your environment to have a proper start and then it starts the database containers and Iroha containers and the Explorer and the API and as soon as this is done it's installing the Node.js application and the local SQLite database. And as soon as this is done like right now it's waiting for the API so that's one of the Docker containers to become ready and as soon as the API is there it's executing the installer itself and the whole diva application including seven nodes is now available. Let's take a closer look here quickly using Docker whether all containers are running and yes we're seeing that here seven nodes are properly running since about 40 seconds the API is there and the Explorer is there. So that's a great start. So now back to the code work code repository for a moment. So if we're back here on the code work repository we see that here within the readme it's also shown that these containers should be running and that's what we just checked in the terminal just before because we executed install and as install has has created local local Iroha blockchain nodes so these seven nodes which are now how distributed local storage it's only local so we're not connected to I2P testnet of diva yet and I suggest that in the beginning it's always kind of before we before we start the diva applications useful to take a look whether the blockchain is properly running and if you wait a few minutes then and I already started here and on this tab that the blocks are created because the API is writing is writing blocks from time to time every every minute more or less if you're clicking on one of those blocks you see the detailed data the JSON data which is forming this block. All right back to code work and as you see here in the readme we should execute bin start and that's exactly what we're going to do. This bin start is now starting the diva application so back to the terminal back to the bash let's execute bin start and what's happening now is all right it's pulling those the Docker images again which is need which are needed for the database layer and for the blockchain and now it's starting the Node.js application and it tries to fetch from the running API the the token to get access to the local to the local web application and then as you can see an HTTP server is listening a web socket server is listening and an API is has and the connection to the API has has established. Back to code work to the readme because the readme says that we should have now this here available so open this in a new tab and let's see whether diva is here so yes diva is here and let me switch here the language to English. This is a pure demo application but it's it's fully functional so we can like add here some order book data let's buy 10 at 100. This is just as I said a local order book and what's happening now you're placing an order on the market in this in this example here it's a buy order and you also can place your own sell orders let's sell 24 200 and as you can see by the way that's what just so we have here a bug in the user interface it's all alpha but the data is written to the blockchain so what we're going to see here are now the order book data of BTC XMR on on the blockchain so this is all properly working and fact is we do have we do have a running diva application and yes we need lots of support and time also to to finalize this this exchange and this banking application and you're very welcome to join us did I already say that yes I did properly all right okay let's wrap it up let's go back to Kurt Berg we have running Docker containers which form the blockchain layer which do contain Iroha then we do have started using been started node JS application and the result is on local host a diva application which is based on the local blockchain network okay that was the installation now you have a running own bank on your local device as you can see back on the agenda we'd like to talk shortly about the community so how to get involved as a developer as a designer or help us communicate in several languages or help us to document and to test as you know we closely cooperate with universities and schools currently in Switzerland and we're an open association to everyone so if you'd like to do some research based on diva wherever you're located as a university or a school just contact us get in contact with with Caroline of diva exchange and set up a scientific partnership they're very much interested in having a very scientific and agnostic look at the project diva as you know as you know everything what we're doing is a gpl 3 version h e p l version 3 licensed or compatible so all the work is public all the work is is open to us and so is the research work additionally we do have code repositories which are mainly on code work the work slash diva exchange and I'm married to get lab and to get top and by the way if you like to get involved as a as a community manager we're always looking at some way to manage our issues and to look at our issues on the code repository platform so just get in touch with me please use our telegram chat or send me an email use the website diva.exchange to find our contact details we believe that the association diva.exchange were very entry-level friendly and we're a very open and diverse community so you as a developer as a designer as a front-end designer you're very very welcome to just join in join us in the chat get in touch with us talk about your vision of diva what you like to do with it and I'm sure we're going to have a very constructive and interesting talk now thank you very much for listening to this presentation and I'm very curious about all your questions and your open feedback everything you tell us we can learn from and we can improve at diva.exchange we can make the software better we can make our communication better so you're very very much invited to ask all your questions you have in mind and therefore we now continue with Q&A thank you for your time thank you for your support of open source software especially a GPL version 3 projects and do not hesitate to donate to diva.exchange all right see you in the Q&A thank you