diff --git a/i2p2www/blog/2022/09/26/meet-your-maintainer-divaexchange.draft.rst b/i2p2www/blog/2022/09/26/meet-your-maintainer-divaexchange.draft.rst new file mode 100644 index 0000000000000000000000000000000000000000..40ea5fa17e9c0d25e3f57488b2c7b4729cbd0a74 --- /dev/null +++ b/i2p2www/blog/2022/09/26/meet-your-maintainer-divaexchange.draft.rst @@ -0,0 +1,347 @@ +{% trans -%} +================================== +Meet your Maintainer: DivaExchange +================================== +{%- endtrans %} +.. meta:: + :author: sadie + :date: 2022-09-26 + :category: general + :excerpt: {% trans %}A conversation with DivaExchange{% endtrans %} + +{% trans -%} +*In this second installment of Meet Your Maintainer, I reached out to +Konrad from DIVA.EXCHANGE to talk about DIVA’s research and services. +DIVA.EXCHANGE is developing software with the goal of providing free +banking technology for everyone. It is secure without a central +infrastructure, and based on blockchain and I2P technology.* +{%- endtrans %} + +**{% trans -%}What got you interested in I2P?{%- endtrans %}** + +{% trans -%} +About 10 years ago I had a presentation for “Technologieforum Zug†- a +very local technology network for business guys. I was introducing I2P +and Tor as overlay networks to them - to show them that other +interesting things exist out there. +{%- endtrans %} + +{% trans -%} +I was always very much interested in cryptography related technology. In +general I can say that my core interests were and still are: networks, +freedom and privacy on both a technical and social level, interesting +algos, like HashCash between 2000 and 2010, which was a very well +working Proof-of-Work algo created at Universities in the UK in the late +90’s. +{%- endtrans %} + +{% trans -%} +I2P fascinated me because it is really carefully done - from the +architecture to the implementation in Java and C++. Personally I prefer +de-coupled and small programs doing one thing. Hence I was pretty +fascinated by the C++ version, I2Pd, which is lean, fast and without +dependencies. It works very well for me. +{%- endtrans %} + +**{% trans -%}What are the qualities in its technical capacity that aligned with +your own work or interests?{%- endtrans %}** + +{% trans -%} +I adore craftsmanship. That’s art. And I2P is modern craftsmanship. I2P +creates values for end users values which can’t be bought: autonomy, +liberty and serenity. +{%- endtrans %} + +{% trans -%} +I2P fascinates me because it’s agnostic. Anyone can run anything on I2P +as long as it talks TCP or UDP - and can handle some latency. Really: +“the network is the computer†and the communication is truly private +according to the current state of knowledge. +{%- endtrans %} + +**{% trans -%}Who is DIVA for?{%- endtrans %}** + +{% trans -%} +DIVA gets actively developed and therefore the project is for +researchers, software developers, communicators (writers, illustrators…) +and for people who want to learn really new stuff in the area of +distributed technology. +{%- endtrans %} + +{% trans -%} +Once DIVA grows up - please don’t ask me when - DIVA will be a fully +distributed, self-hosted bank for everyone. +{%- endtrans %} + +**{% trans -%}Can you tell me about what DIVA does?{%- endtrans %}** + +{% trans -%} +As said, DIVA will be a fully distributed, self-hosted bank for +everyone. “Banking†means: savings, payments, investments, loans - so +all that stuff everybody is doing everyday. Please note in this context: +DIVA works without any central infrastructure and DIVA will never - as +long as I have something to say - be a coin or token. There can’t be any +central business model involved. If a transaction creates fees because a +node of the distributed infrastructure did some work, then these fees +remain at the node which did the work. +{%- endtrans %} + +{% trans -%} +Why a “bankâ€? Because financial liberty and autonomy is key to live a +good and peaceful life and to be able to make all those smaller and +larger daily decisions in freedom. Therefore people shall own their +small and secure technology components to do whatever they like to do +without being nudged. +{%- endtrans %} + +{% trans -%} +Well, say hello to DIVA, based on I2P. +{%- endtrans %} + +**{% trans -%}What are your upcoming goals? What are your stretch goals?{%- endtrans %}** + +{% trans -%} +There is a very close goal: understanding the impact of SSU2 which has +been lately implemented in I2P. This is a technical goal for the next +few weeks. +{%- endtrans %} + +{% trans -%} +Then, probably this year: some cryptocurrency transactions using DIVA on +testnets. Please don’t forget: DIVA is a research project and people +shall be motivated to do their own stuff with DIVA - the way they need +it. We don’t run any infrastructure or alike for others except some +transparent test networks to increase the knowledge and wisdom of +everyone. It’s recommended to stay in touch with DIVA via social +networks +(`twitter.com/@DigitalValueX <http://twitter.com/@DigitalValueX>`__) or +chats to be inspired what to do with DIVA. +{%- endtrans %} + +{% trans -%} +I also want to touch an important part for the I2P community: DIVA is +based on divachain - which is then based on I2P. Divachain is a very +generic fully distributed storage layer. So, just as an example: if some +I2P developer believes that a fully distributed, trustless DNS would be +a great idea - well, that’s yet another use case of divachain. Fully +distributed - no trust needed - all anonymous. +{%- endtrans %} + +**{% trans -%}What are some of the other services and contributions you are +responsible for?{%- endtrans %}** + +{% trans -%} +DIVA.EXCHANGE - which is the open association developing DIVA - runs a +reseed server for I2P since a few years. So probably almost every I2P +user got somehow in touch with us in the past. Just a note: the +DIVA.EXCHANGE reseed server is also available as .onion service - so I2P +bootstrapping can be done via the tor network - which is, at least from +my perspective, an additional protection layer while entering the +network. +{%- endtrans %} + +{% trans -%} +DIVA has also created an I2P SAM library. So developers can create any +modern application based on I2P. It’s on github and getting more and +more popular: +`github.com/diva-exchange/i2p-sam/ <http://github.com/diva-exchange/i2p-sam/>`__. +It’s complete, well documented and offers lots of examples. +{%- endtrans %} + +**{% trans -%}What are some of the priorities you think that anyone who wants to +contribute to the I2P network should consider?{%- endtrans %}** + +{% trans -%} +Run your I2P node. Take a look at the different flavours, like Docker +versions of I2Pd, or other installs available for multiple operating +systems. There are several flavours available and it’s important to be +comfortable with the local installation and configuration. +{%- endtrans %} + +{% trans -%} +Then: think about your skills - networking skills, programming skills, +communication skills? I2P offers lots of interesting challenges: people +with networking skills might want to run a reseed server - they are very +important to the network. Programmers might help with the Go, C++ or +Java version of I2P. And communicators are always needed: talking about +I2P from an objective and realistic perspective is helping a lot. Every +little bit is great. +{%- endtrans %} + +{% trans -%} +Last but not least: if you are a researcher or student - please get in +touch with us at DIVA.EXCHANGE or the I2P team - research work is +important for I2P. +{%- endtrans %} + +**{% trans -%}Where do you see the conversation and outlook on tools like I2P now?{%- endtrans %}** + +{% trans -%} +Probably I have to say something about the outlook: I2P is important to +everyone. I hope that the I2P community - developers, communicators, +etc. - remains motivated by the few which deeply appreciate their hard +work on truly challenging technology. +{%- endtrans %} + +{% trans -%} +I hope that more and more developers see the benefit to develop software +based on I2P. Because this would create more use cases for end users. +Then I also hope, that the core I2P programs remain simple and become +maybe even more de-coupled. Let me make an example what I mean with +“de-coupledâ€: user interfaces probably should not be baked into +applications by developers - because there are front end designers which +do have great knowledge and years of experience. Developers should just +create an API, like a unix or websocket or a REST interface, so that +other services can use the program the way they want it. This makes +developers and end users happy. +{%- endtrans %} + +**{% trans -%}Can you tell me a bit about your own I2P workflow? What are your own +use cases?{%- endtrans %}** + +{% trans -%} +I am a developer, tester and researcher. So I need all my stuff in +containers to remain flexible. I2Pd is running in 1..n containers on +multiple systems to serve stuff like: feeding reseed requests, serving +the diva.i2p test website, running parts of the DIVA I2P test network - +see testnet.diva.exchange and I also have containers to serve my local +browsers as a combined I2P and Tor proxy. +{%- endtrans %} + +**{% trans -%}How can the I2P community support your work?{%- endtrans %}** + +{% trans -%} +We are on social media, like +`twitter.com/@DigitalValueX <http://twitter.com/@DigitalValueX>`__ - so +follow us there. Additionally we would love to see even more involvement +on `github.com/diva-exchange <http://github.com/diva-exchange>`__ - it +already got more and more attention in the past months. Thanks a lot for +that! +{%- endtrans %} + +**{% trans -%}Glossary Of Key Terms{%- endtrans %}** + +**{% trans -%}I2P Terms{%- endtrans %}** + +**{% trans -%}Reseed Host{%- endtrans %}** + +{% trans -%} +Reseed hosts are needed to for bootstrapping, that is, providing the +initial set of I2P nodes for your I2P node to talk to. Depending on the +status of your node it may need to bootstrap every now and then if many +of the nodes it knows of aren’t contactable. +{%- endtrans %} + +{% trans -%} +Reseeding is done over an encrypted connection and all of the bootstrap +information is signed by the reseed host you connect to, making it +impossible for an unauthenticated source to provide you with false +information. +{%- endtrans %} + +**{% trans -%}Node/Peer{%- endtrans %}** + +{% trans -%} +A node or peer is part of a network of computers sharing resources. When +you download and install I2P, you participate in routing traffic for +others. Every person using I2P is a node or peer. In some cases. people +can supply more bandwidth or resources than others to the network. +However, peer diversity is important and the more people who use I2P, +the stronger the network becomes. When it comes to setting up your node, +you can customize and configure your connection and workflow with the +I2P network. +{%- endtrans %} + +**I2Pd (I2Pdaemon)** + +{% trans -%} +I2Pd is a C++ implementation of the I2P protocol is differs from the I2P +Java software in the following ways: +{%- endtrans %} + +{% trans -%} +*Java I2P has built-in applications for torrents, e-mail and so on. i2pd +is just a router which you can use with other software through I2CP +interface.* *i2pd does not require Java. It’s written in C++.* *i2pd +consumes less memory and CPU.* *i2pd can be compiled everywhere gcc or +clang presented (including Raspberry and routers).* *i2pd has some major +optimizations for faster cryptography which leads to less consumption of +processor time and energy.* +{%- endtrans %} + +{% trans -%} +Citation: https://i2pd.readthedocs.io/en/latest/user-guide/FAQ/ Site: +https://i2pd.website/ +{%- endtrans %} + +{% trans -%} +In terms of the differences or benefits of using either the C++ or Java +version of I2P, the question often comes up. Recently, idk responded to +this question on the I2P subreddit. Ultimately, it depends on a persons +own use case or desired workflow. +{%- endtrans %} + +{% trans -%} +*Easy-Install Bundle is the best way to use I2P on Windows for people +just getting started. It will automatically get you from starting the +router to successfully browsing, every time. However, it doesn’t +register as a Windows service, so it’s not as good to use as a 24/7 +transit node yet. It contains everything you need to browse, but it’s +designed around using I2P interactively and not running services, +necessarily.* +{%- endtrans %} + +{% trans -%} +*i2pd on the other hand is very light and efficient and is designed +expressly to run as a service. It’s great at being a 24/7 transit node, +especially if you install it on your router, or on a Linux server +somewhere. It’s got less tools built-in though, so if you want to +torrent or browse, you will need to add those tools externally.* +{%- endtrans %} + +**{% trans -%}Diva Terms{%- endtrans %}** + +{% trans -%} +Konrad has provided insight into of some of the terms used during the +conversation. +{%- endtrans %} + +**{% trans -%}Bank for Everyone{%- endtrans %}** + +{% trans -%} +The possibility to run locally installed software which is able to do +everything a well-known bank can: send and receive payments for +anything, give and receive loans, manage investments, etc. Such banking +software shall neither be depending on any central software components +nor supervised or censored by central components. It’s run and managed +by its owner only with all its benefits and reliabilities. The network +(see “Blockchain†and “Consensusâ€) tries to make sure that no network +participant (a user running his own bank) is able to cheat. +{%- endtrans %} + +**{% trans -%}Blockchain{%- endtrans %}** + +{% trans -%} +A piece of software which is able to reliably store arbitrary data. +Copies of the software and the storage space is distributed within a +network of any size where the network participants do not necessarily +trust each other (or maybe not even know each other). A synonym of +“blockchain†is “Distributed Layer Technology (DLT)â€. A blockchain has +nothing to do with “coins†or “tokensâ€. These are just blockchain based +applications. Blockchain is a base technology which mainly solves the +problem of “trust & abuse†within a network. +{%- endtrans %} + +**{% trans -%}Consensus{%- endtrans %}** + +{% trans -%} +In a distributed system the majority of the participants need to agree +on the state of data (the “truth, as defined by the majority†- from a +data perspective). This is a continuous process driven by locally +installed software and this is called consensus. There are multiple +valid consensus algorithms available. Bottom line: all consensus +algorithms cost something: CPU cycles, communication capacity etc. - in +short: a bunch of data sets is the input and a single reliable, fully +distributed data set valid for the majority in the network is the +output. +{%- endtrans %}