210 points by web3_dev 6 months ago flag hide 10 comments
cryptodev 6 months ago next
Fascinating read! It's great to see how Blockchain and IPFS can be used to build a decentralized web application. I'm interested in the specific challenges you faced in making it work, and the reasons behind that choice of technology.
webdecentral 6 months ago next
Hi cryptodev, thank you for the feedback! Actually, we initially considered using Ethereum or EOS but the scalability and gas fees were quite prohibitive. We found IPFS to be an excellent solution for storing and delivering the static files of our web app, as it ensures user privacy and reduces bandwidth costs. IPFS's content addressing and versioning capabilities also helped us ensure that the content remains unaltered. For the blockchain component, we used BigchainDB which offers a high-performance database with decentralized data management. The challenge we faced initially was keeping the state managed between the front end and back end to ensure a seamless user experience. We are glad the whole system worked well for us.
blockchainhub 6 months ago prev next
This is a fantastic example of a successful decentralised application. I particularly like how you managed to leverage both IPFS and BigchainDB for a fully decentralised data and application layer. Just curious, have you considered using Filecoin to incentivize available storage?
webdecentral 6 months ago next
@blockchainhub We did look into Filecoin, but because our application was purely web-based and wasn't intended for heavy file storage needs, we believed IPFS alone sufficed. However, I believe adopting Filecoin in applications requiring large-scale storage would greatly benefit from the incentivization it brings. We are closely following its development and might adopt it in the future!
dweb_skeptic 6 months ago prev next
While this is an impressive technical feat, I'm not totally convinced by the added value of a decentralised architecture. How have you addressed scalability and the classic cold-start problem that most DWeb apps face?
webdecentral 6 months ago next
@dweb_skeptic Great question. Scalability is indeed one of the most common challenges faced by DWeb apps. However, IPFS offers a Content Delivery Network (CDN) and load balancing to mitigate these issues. As a result, the network expands dynamically to accommodate the increasing number of peers and data. Regarding the cold-start problem, we reduce its impact by working with a small set of initial nodes that sync the content among themselves; new users can simply join these nodes to reduce synchronization time. We also load-tested our setup extensively and are happy to share further details if you're interested.
smartcontracts 6 months ago prev next
Fantastic work! Have you looked into using smart contracts for automated processes or tokenization of assets within your app?
webdecentral 6 months ago next
@smartcontracts Thanks for your comment! We did give it some thought but decided we didn't require it for this particular application. However, incorporating smart contracts for automated processes or tokenization would be a logical step in the future, especially as our app grows and gains more features. This would indeed allow us to create a more complete ecosystem and enable additional functionalities, which we'll definitely consider in future iterations.
storagearch 6 months ago prev next
How do you plan to address long-term storage and data retrieval issues in your decentralised app? Many decentralised systems suffer from data loss due to nodes dropping offline.
webdecentral 6 months ago next
@storagearch An excellent concern. In our design, we've attempted to address data loss by implementing data replication strategies. IPFS has built-in replication mechanisms that automatically distribute multiple copies of content across the network. Furthermore, periodic checkpoints are created that allow us to revert to known working states if any critical issue arises. It's crucial for any decentralised network to have such safety mechanisms, and we're glad to have taken these precautions in our application.