Glossary for terms and concepts that are widely referenced in all the Dappy related documents.
The Dappy network is a group of agents (agent is a generic term for “individual” or “company”), each agent should be independant one with another just like the nodes of a blockchain platform. A Dappy network is not a blockchain or smart contract platform, it is a layer or interface that sits between arbitrary clients and the blockchain platform itself. The members of a Dappy network must run a read-only or active node of the same blockchain platform, and therefore share the same state.
A Dappy network may therefore represent a portion of the nodes of a blockchain platform. The purpose of a Dappy network is not primarily to maintain or participate in a blockchain platform, but it is to be available for client requests, and so to expose many endpoints that clients will be able to query simultaneously.
A multi request is the operation that a client performs when he queries at least two members of a given Dappy network to read something from the blockchain. It is the essential operation of all the Dappy philosophy. By doing a multi-request instead of a unique client-server request, a client is able to read from a public database that he does not have locally (the state of a blockchain), without having to trust any entity. Multi-requests in Dappy are a sort of trustless remote database query mechanism.
When a client receives response from a multi-request (ex: AAAAABA), he can apply arbitrary consensus rules to accept or reject the result, based on arbitrary consensus rules (sometimes called synchrony constraints also).
Example: In all releases of Dappy, the list of the names is recovered by asking all the members of the Dappy network and requiring 100% accuracy (all the responses must be the same).
The library bees JS is currently the library that handles this logic, it is used by the Dappy browser, and applies the multi-request protocol.
The Dappy protocol is right now a very generic term because it has not been standardized in any way. This term generally defines the operation of querying many endpoints, and then applying a mathematical consensus rule on the answers. In other word, doing multi-requests instead of client-server requests.
The library bees JS is currently the library that handles this logic, it is used by the Dappy browser, and applies this very protocol.
Dappy name system could just be called “Blockchain name system”, basically it is the same thing as the Ethereum Name Service, or the Handshake platform. The Dappy name system is a table of name-IP addresses (or name-blockchain addresses in the case of dapps) relations. This name system is managed on a smart contract platform, and therefore decentralized with open read access, and transparent rules for purchasing and renewing names. SSL certificate are also stored in this very smart contract, making it possible not to rely on SSL certificate authorities.
The Dappy browser is a browser that implements the Dappy protocol. It can do client-server requests just like a legacy web browsers, but mainly it does multi-requests. Its purpose is to allow any client to navigate dapps and IP applications, or download files that are stored on the blockchain.
The Dappy browser uses a decentralized name system instead of the Domain Name System. See Dappy name system.
The Dappy browser is built on chromium so it is able to display every website that currently exist, the main difference is the network layer where a decentralized consensus operation is systematic (see multi-requests).
Legacy web browser is the term used to contract with a browser that implements the Dappy protocol and that is connected to a Dappy network. Legacy browsers rely on a chain of trusted centralized services (DNS servers, domain name registrars, certificate authorities etc…).
The Dappy network is decentralized, just like a blockchain platform, many agents who don't trust one another necessarily, are co-responsible of file distribution. There is no unique trusted services. The DNS that can be a vector of attack, but even when a website is loaded, illegitimate interference, thefts, hacks by malicious third parties can occur.
IP applications refer to websites that use the decentralized Dappy name service instead of the Domain Name System. An IP application is finally served by a central server, just like regular websites. In order to resolve the name (ex: coolapp) to an IP address, the browser that implements the Dappy protocol does not rely on any IANA official top level domain DNS companies. The resolution operation is decentralized, and summarized by the multi-requests mechanism. The members of the Dappy network, who should be independent one with another, and participate in the same blockchain platform are co-responsible and co-authoritarian for name resolution. SSL certificates are stored on the blockchain also, the browser will not allow any client — server connection to go unencrypted.
This architecture makes it very less likely for a given website to be censored by being removed of the names registry, or to suffer from DNS hacks, where malicious agents could redirect the requests addressed to coolapp to another, illegitimate server.
According to a 2018 report made by Efficient IP, 33% of organizations suffered data theft via DNS, and the average cost of DNS attacks is $715,000. Distributing websites on Dappy instead of legacy web will make a lot of DNS related attack vectors simply disappear.
Dapps go one step further into decentralization than IP applications.
A dapp in the Dappy ecosystem refers to a web application or website that is distributed by the Dappy network. Dapps must therefore have all or part of the assets stored on the blockchain platform the Dappy network is connected to. When a user searches cooldapp it is resolved to a blockchain address instead of an IP address, and the same network that was asked to resolve the name, will be queried to load the HTML documents and eventually the other files.
Dapps are not distributed by a unique server connected to the internet, or a centralized web hosting service (like AWS or Digital Ocean), but by a decentralized network of agents that are legally and technically independent one with another.
The availability and accuracy that can be achieved with dapps are higher than that of a centralized website because distinct legal and technical entities are co-responsible for its distribution. A typical implementation of the Dappy protocol would tolerate a small fraction of these agents to go offline or even to be hacked (= serving a fake/malicious version of the code).