dApp is the abbreviated term for decentralised application. A dApps main application logic and data storage runs on a decentralised and distributed peer-to-peer network (like Ethereum). dApps allow for direct interaction between users without the need for a central authority or intermediary.
dApps usually demonstrate the following characteristics:
- Application logic on a decentralised distributed peer-to-peer network (basically a blockchain)
- Autonomous operation once deployed
- No central point of failure
- Open source code
In the Ethereum landscape a dApp is not required to store all of its data and application logic on the blockchain. Due to scalability and also end user cost, many dApps stick to using the blockchain for trusted state and executions, which anyone case access and review. Many also use other distributed data storage technologies like IPFS and Swarm to handle off chain data storage. There are also protocols being developed for trusted off chain executions such as Golem and TrueBit which would enable developers to run computationally intensive tasks which would be costly off chain in a secure manner.
In Ethereum a basic dApp consists of the following components:
- EVM running on nodes in the Ethereum blockchain
- Smart Contract(s) running on an Ethereum blockchain
- Smart Contract ABI(s) (Application Binary Interface) which tell a client how to interact with a Smart Contract
- Web3 library which implements the Ethereum EVMs RPC protocol, allowing a client written in its native language to invoke RPC calls
- Front end client application, written in the same programming language as the web3 library, which allows a user to send transactions.
[ 3/4 interesting dAPPs] make sure they are legit or at least semi-legit
AirSwap (Decentralised exchanges)
Gnosis? Prediction market
Example of Uber as a dAPP
So why have dApps not taken over the world yet?
Ethereum is new (3 years old at time of writing)
Scalability (Transactions per second)
Given all of this as a developer, this is a great time to get involved before the rocket is launched!
DAPP development is in a nascent phase but the benefits that DAPPs provide (which traditional, centralized applications do not) suggest that we can expect to see impressive new functionalities and use-cases for blockchain technology in the near future.