To be honest I got irritated!
One after another articles come claiming to know what a blockchain Dapp is but post instead 'fairy tales' of wishful thinking and marketing hype.
Some background - what is called a blockchain is a network composed of nodes which have their own copies of all the transactions since creation of the blockchain.
A decentralized app / Dapp definition is that it is an instance of a computer program which does access to a blockchain through a node of the blockchain, and sends a request on the specific node's copy of the blockchain (usually to transfer coins or to call smart contract functions), and this request gets propagated and written on other nodes copies of the blockchain.
Other instances of the same Dapp or other Dapp-s on the same blockchain may or may not poll the blockchain through the same node or other nodes of the blockchain, and when seeing specific posted requests may or may not chose to respond with posting their own requests on their node's copy of the blockchain.
A decentralized app / Dapp is (or not) -
A blockchain node usually has a 'daemon' - program running in the background, which initially downloads a copy of the blockchain on a local disk and then keeps synchronizing with blockchain.
This 'daemon' program - for ex. called 'bitcoind' for Bitcoin, or 'geth' for Ethereum usually have remote procedure calls (RPC) application programming interface (API) which allow reading of the blockchain blocks and posting or writing requests on the blockchain, as shown:
- Bitcoin RPC API-s - for ex. SendToAddress or SendRawTransaction
- Ethereum RPC API-s - for ex. eth_sendTransaction or eth_call
The actual way of calling is by HTTP GET/POST requests to 'localhost' - for ex. :
- for Bitcoin (mainnet) - http://localhost:8332/
- for Ethereum (geth) - http://localhost:8545/
All Dapp-s, regardless of how many middle software layers they go through, come finally to make HTTP GET/POST requests to a node in order to access the blockchain.
Based on the way of access to the blockchain there are 2 types of Dapp-s:
- type1 - accessing the blockchain through their own node; even with new of small blockchains this way places a heavy burden to the user of the Dapp as they preferably have to run the node non-stop, and keep synchronizing;
- type2 - accessing the blockchain through a publicly web visible node; such node have to serve multiple users, but the users are relieved from the burden of constant downloading and storing of blockchain data;
Crypto-tokens/coins themselves can be 2 types:
- tokens having their own blockchain - for ex. Bitcoin
- tokens residing as 'tenants' on a blockchain - for ex. ERC-xxx tokens on Ethereum blockchain;
Regardless of not having own blockchain the 'tenants' still have to use either type1 or type2 access to the underlying blockchain - for ex. ERC-xxx tokens need to access the Ethereum blockchain;
An article in praising of the Ethereum blockchain did state that the blockchain has tens to hundreds of thousands of nodes, and proudly announced that there were more than a million downloads of 'metamask' - a browser extension allowing Dapp-s to access Ethereum blockchain.
What the writer of the article did fail to realize is that a million or more users have to access the Ethereum blockchain through few (or a single) 'metamask' node-s.
Which invites the question - can a million instances of decentralized app-s all going through a single centralized node still have the claim of being decentralized?!
Armed with the knowledge in this article please check articles about what a Dapp is and ask yourself - how much sense does it make what I am reading, how much is true, and how much is wishful thinking and/or marketing hype?
The above article looks at Dapps in the context of use with blockchains.
But is the use of blockchain technology the best way to solve issues? Are there other and better ways?
If skeptical about blockchains and/or curious about what post-blockchain future may look like please check :