Recently I’m studying Cosmos and Tendermint to develop a dapp.
And I have questions as a programmer who has been developing centralized apps.
As I know, Cosmos is not able to execute specific code in the main-net like Ethereum’s smart contract. So, a dapp has to communicate with its own nodes(zone) through Cosmos-sdk or Lotion-js, is this right?
Is it able to search an information easy and quickly from the blockcahin? Or should I use RDB or NoSql? For instance, if I build a messenger dapp, what is the best way to find past messages?
If I run more than 100 nodes, does not it need to have all the blocks from the genesis to the current block after the 100th node?
The question 3 is the default manner? Or is there a specific configuration in Cosmos-sdk?
Is it possible to build a dapp on Cosmos which able to handle billions of people like Facebook messenger?
Is it possible to build a zone with no charge of token?
Hey there! Thank you for your questions
Yes, Cosmos is not a blockchain, it is a network of blockchains. Dapps in Cosmos are deployed as blockchains (application-specific blockchains) or on top of EVM blockchains like Ethermint. For now there is no public Ethermint blockchain though. If you want to launch a blockchain in Cosmos (=DappChain or Zone), you can do so by building it on top of the Cosmos-SDK (https://github.com/cosmos/cosmos-sdk/). You have two choices: either you build a public blockchain with a staking token, or a private blockchain. This means that your blockchain will need a validator set to run it. Later, we will have shared-security Zones which will provide a validator set for your dAppChain, but this does not exist yet.
If you build on top of the Cosmos-SDK, the best way to do it is through the Light-Client Daemon: https://github.com/cosmos/cosmos-sdk/pull/1617.
I don’t really understand. A blockchain is decentralised, meaning the nodes are run by different parties. Can you clarify your question?
Please clarify 3.
Yes. Tendermint handles thousands of tx/sec, and if you hit the max you can launch multiple parallel chains to scale out further.
What do you mean by no charge of token? No fees. This should be feasible, see https://github.com/tendermint/abci/issues/57
I would suggest you read this https://github.com/cosmos/cosmos-sdk/pull/1078/files#diff-d1aebeccd41b361fff4b780a2ddd728a. This provides a good overview of our stack and a tutorial on how to build an app with the SDK. We should have better integration with the docs soon.
Thank you for the reply, gamarin.
About the question 3, 4.
I want to build a Dapp that includes a node which is able to switch to the full-node or the LCD dynamically. And let’s say I made the Dapp and deployed it to the end users and if some user’s resources are not enough to handle the full-node then it has to be switched to the LCD automatically. Moreover, As far as I know Tendermint’s max validators are 100 at the beginning. So, if there are 100 validators are running already with the full-node, then the 101th Dapp, the same, has to be switched to the LCD automatically. So, here’s my curiosity, is it able to build this kind of fully distributed app with current Cosmos-sdk?
I’m a bit confused. Are you sure you are up-to-date with our terminology?
- Validators and end-users are different things
- Validators always run full nodes
- End-users can run full-nodes or light-nodes.
- Why would you want to switch from full-node to light-node? You can provide both options to your end-users and let them choose.
So far, what I know is the Validators are voters that make rules.
However, what I want to know is that is it possible to pick the Validators from end-users dynamically by my own rule? Or does the Validators have to be chosen by amount of stake coin like Atom?
Validators can be chosen based on any rule you define in your application.
Here are some useful resources to clarify:
in case you are looking for depp development company - https://dapplica.io/services/ I can recommend this one, so if you need Blockchain consulting company turn to these guys