Do you know what many dApp developers struggle with?
Which data to put on-chain. More data on the chain can drive the cost up. Too much data might render your app unusable. Storing fewer data might not be an option.
Here are some ideas for you to fix this. 🧵👇🏻
1️⃣ Use A Dedicated Database
This approach will make your dApp into an app. If you bring in central data storage, you can circumvent the limits of some blockchains but it doesn't keep the promise of being decentralized.
You can store anything that you can't store on-chain in your database and associate it with a user. Whenever you need that type of data, you fetch it from your database.
2️⃣ Use The Interplanetary File System
The IPFS Protocol is a peer-to-peer hypermedia protocol. It works like BitTorrent but aims to create a single global network.
If you have a client installed, you can "pin" files that get a unique identifier.
Those files can be loaded from your machine and are then cached for others to access. This is how files can easily be distributed.
IPFS also comes with HTTP gateways so you can even access files, stored in IPFS, from the rest of the "traditional" internet.
Data you can't store on-chain can easily be stored on IPFS and accessed again from there. This gives you all the storage capacity you would ever need.
Imagine IPFS to be the decentralized Amazon S3 of your dreams.
3️⃣ Go Multi-Chain
You can use more than one blockchain for your dApp.
Although your main dApp might rely on Ethereum, you could use other blockchains that allow for more data to be stored cheaper.
Many blockchains have a bridge to Ethereum, so you don't even need to work with two fully disconnected chains. This can come in handy if you don't want to force your users to have more than one wallet if they want to use your dApp.
Choosing a cheaper and faster blockchain to store data that isn't as relevant as your main data can make a lot of sense. This saves you and your users money.
4️⃣ Use A Dedicated Blockchain Database
There are actually dedicated blockchain databases. They aren't centralized and instead are based on their own blockchain implementation that allows you to interface with them.
Blockchain databases are a specific flavor of the multi-chain approach but provide an easier-to-use interface as they usually come with their own drivers/libraries, aimed at providing a database-like interface and not a blockchain-like one.
5️⃣ Conclusion
Storing a lot of data for a dApp can sometimes be a little more difficult than the usual interfacing with the blockchain of your choice.
The ecosystem, however, evolves every day and brings more solutions that help to solve such problems.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
You did some Solidity tutorials, and now you're stuck because you don't know what else to build?
Let me help you out by giving you three simple ideas for dApps, perfect for beginners!
🧵👇🏻
1️⃣ A Voting dApp
Build a dApp that lets users create elections. Any user can start an election and choose a registration period, a voting period, and an ending time.
During the registration period, users can sign up as a candidate.
Once the registration period closes, no one should be able to register anymore. Instead, the voting period starts where anyone can vote for their favorite candidate.
Your frontend should show open elections, the current period, the time remaining, and the candidates.
Want to get into smart contract development and learn Solidity? Want to get into an area of software development where salaries currently rise through the roof?
Here are 5 awesome resources that help you to get into the language of the Ethereum VM!
🧵👇🏻
1️⃣ CryptoZombies
CryptoZombies is an awesome approach to teaching Solidity. You learn Solidity by basically playing a game, and it's free!
Learning through CryptoZombies definitely isn't as dry as the zombies are themselves!
EthereumDev gives you a full free course that covers everything you need to know in the beginning. It also covers interacting with the blockchain through JavaScript, which definitely helps you to build your own dApps!
Code Reviews are an awesome way to use the experience and knowledge of a team to create good software. Not all review processes are enjoyable, though.
Here are 6 tips to make your review process better and more enjoyable for everyone!
🧵🔽
1️⃣ Make Expectations Clear
A good review process should both be standardized and individual. The terms of the process should be written down and transparent for everyone on the team. Each team member should know what is expected of them and all team members should agree ...
... on the terms. Changing the terms should always be a democratic process within the team. If the team disagrees on changes or terms, it should discuss the issues until there is consent.
On the other hand, the process should be flexible enough to allow for individuality.
I started to take Twitter seriously last year. Within one year I learned a lot about what advantages having an online presence can actually have.
Here are 4 of the more important things that happen when you build your online presence.
🧵👇🏻
1️⃣ You Make Friends
When you interact with other people online, you start to slowly build a connection. You get to know each other and at some point, you perhaps even have a call or a video meeting. This is where strangers can become friends.
Those are the people who interact with you frequently and with whom you have the best discussions. They are there to help when you need them, always.
Those internet friends can also be the ones opening up opportunities to you.