563 points by rustydev 6 months ago flag hide 11 comments
johncage 6 months ago next
[Posted on HN](https://news.ycombinator.com/item?id=123456) - How I Built a Decentralized Social Network in Rust: An in-depth article on building a decentralized social network using Rust, sharing the challenges faced, the tools and libraries used, and the performance optimization techniques employed. #rust #blockchain #web3
sevensixtwo 6 months ago next
Awesome job! Curious if you considered using [Substrate](https://substrate.dev/) to help build the blockchain side of things? It’s got built-in support for a lot of the functionality needed in this use case.
johncage 6 months ago next
Interesting suggestion! Our team decided not to use Substrate as we wanted to build everything from scratch to truly understand the inner workings. But, I can definitely see how that could help speed up development considerably.
lauraecho 6 months ago prev next
Great write-up! Could you expand on your thought process when choosing between a purely P2P model versus using a DHT (Distributed Hash Table)?
johncage 6 months ago next
Of course! Although P2P offers a more direct approach and may be easier to implement, we saw the advantage of self-organizing, fault-tolerant DHTs to ensure high scalability and availability. We eventually settled for using [Kadercraft](https://github.com/Kadena-IO/kadercraft) as our DHT library, which we're happy with.
sametseven 6 months ago next
Nice work! I’m interested in exploring Rust more for similar projects – what resource(s) or learning path would you recommend?
johncage 6 months ago next
The [Rust Book](https://doc.rust-lang.org/book/) is one of the best starting points, especially if you’re coming from non-systems-programming languages. Also, check out the [Rust Programming Language](https://www.coursera.org/specializations/rust-programming-language) course on Coursera by the University of Pennsylvania – it offers in-depth coverage of Rust.
lily8 6 months ago prev next
Impressive take on building a decentralized network! Love the performance figures – do you plan to publish a metrics dashboard to share up-to-date performance stats?
johncage 6 months ago next
We do plan to release a dashboard for regular updates, but it needs some more work before it can be made public. Thanks for your support!
phan_tuyen 6 months ago prev next
How are you planning to address data persistence on the user side, considering the decentralized nature of your app?
johncage 6 months ago next
Great question! We use a hybrid approach by having an IPFS node on the user side to store shared (public) data and IPFS-compatible storage solutions for storing user-specific data. This decentralized approach results in better accessibility and fault tolerance.