DAppStore is where users are able to install DAppNode packages, such as Bitcoin, Monero, Geth or Eth2 validators. We have created a modular system where dockerized blockchain applications are wrapped in these DAppNode packages in order to allow users to run them with a simple click on “get” and a simple setup wizard, if necessary.
DAppNode intends to facilitate the process of running a node of a blockchain project instead of using third parties, making a really decentralized blockchain network.
What is a DAppNode package?
A DAppNode package is basically a docker container prepared to run on DAppNode. Each DAppNode package has been uploaded to The interPlanetary File System (IPFS) and is uniquely identified with an IPFS hash.
Said IPFS hash ensures immutability along time and uniqueness against other IPFS hashes, as well as a decentralized form of content distribution. DAppNode does not maintain a server from which users download the packages; instead, DAppNode contains an IPFS node which distributes the packages via its P2P connections.
The DAppStore under the hood
Under the hood, the DAppStore is just a smart contract that contains 2 main components:
- DAppNode packages IPFS hashes: a list with all the IPFS hashes of the DAppNode packages available in the DAppStore.
- White list: defines who is able to add/remove the IPFS hashes of the DAppNode packages available in the DAppStore.
You might be wondering this is not fully decentralized, and you are right. DAppNode is taking care of the packages to be uploaded to the DAppStore so there are no corrupted packages that affect users.
In the near future, there will be other sophisticated ways to allow everyone to upload DAppNode packages with community surveillance.
Reading the DAppStore
The smart contract that contains the info available in the DAppStore is deployed in the Ethereum blockchain. In order to be able to read this smart contract, you will need to interact with the Ethereum blockchain through a node. Having this into account there are 3 different possibilities in DAppNode:
- Running a full node: when running a full node you have all the capabilities of interacting with the Ethereum blockchain. You will not depend on third parties.
- Running light client: this mode is designed for low resources devices. Same as a full node but with fewer capabilities.
- Running a remote node: there will be used a remote node maintained by DAppNode. This node is running in a remote server and might suffer shuts down or manteinence that might affect its service.
DAppNode packages available
Check our DAppNode packages explorer