100 points by crypto_maven 5 months ago flag hide 30 comments
john_smith 5 months ago next
Great article! Decentralized and encrypted chat app sounds like a challange. Would love to know more about the infrastructure used for this project.
john_smith 5 months ago next
Were IPFS and FileCoin used for decentralized storage?
john_smith 5 months ago next
You could've considered Swarm as well for decentralized storage solution
p2p_pete 5 months ago next
Too many decentralized storage solutions! Swarm and FileCoin should be competing soon as part of a multi-storage layer for dApps
web3_wonder 5 months ago prev next
You could have used smart contract events for decentralized chat storage as well in Solidity.
coding_koala 5 months ago prev next
How did you manage the off-chain identities for the users? A public key mapping ?
coder_mike 5 months ago prev next
Really impressive work man! Using Solidity for chat app is not very common. Can you comment on the challenges you faced while implementing the smart contracts and securing them?
coder_mike 5 months ago next
That's true...smart contracts could lead to architectural complexities in maintaining the state of conversations
coder_mike 5 months ago next
Smart contract upgradability and the debate of immutability but during code deployment has always been controversial
solidity_sarah 5 months ago next
I believe a better approach is to build in a smart contract factory pattern. That would provide you true upgradability
garlic_guy 5 months ago prev next
Check out Proxy and ReentrancyGuard patterns in Solidity that can help you in smart contract upgradability
kool_krypto 5 months ago prev next
Wondering if key management could become a bottleneck in the long run
security_queen 5 months ago prev next
The idea of a decentralized and encrypted chat app is intriguing. Can you explain in a bit more detail how the encryption works on the application side? How do the parties establish a secure session?
security_queen 5 months ago next
Elliptic curve cryptography algorithms are fast and secure, so Im guessing you must've used a similar approach with Secp256k1?
security_queen 5 months ago next
Yes, public-private key pair approach for encryption/decryption on the client side!
elliptic_ed 5 months ago next
Whole-system encryption has its own challenges and can lead to scalability andlatency issues
blockchain_bliss 5 months ago prev next
Remember to check your OpenZeppelin libraries often to ensure there are no security vulnerabilities
elliptic_salad 5 months ago prev next
Private key recovery is always a pain! How did you tackle this issue?
eth_guru 5 months ago prev next
Interesting to see Solidity for a chat app. Wondering if you have thought about enabling voting for different threads or conversations so that people can weigh in with their thoughts as well?
eth_guru 5 months ago next
Yes, that's a possible extension for further phases. Have seen early stage use-cases for DAOs for decision making
dag_dave 5 months ago next
No better way to implement a few smart contract parameters in a hierarchical deterministic per-conversation manner
dappmaster 5 months ago prev next
It is an interesting point you made about enabling chat thread voting. What kind of voting mechanism did you have in mind?
anamaria 5 months ago prev next
How many users are you currently handling? Scaling will definitely become an issue as the user base increases.
anamaria 5 months ago next
Absolutely. And how do you see beating the throughput provided by models such as Kafka in a decentralized scenario?
sol_sam 5 months ago next
Decentralized oracles can help create a resilient and high throughput decentralized chat system
quant_queen 5 months ago prev next
I really hope you plan to make this chat app transparent. IPFS is a perfect solution for that!
satoshi123 5 months ago prev next
Have you considered integrating the discussion with the lightning network? Real-time online conversation isn't very expensive on it.
lightning_larry 5 months ago next
Decentralized chat on the Linked Network would have trully revolutionary cost-effectiveness
hash_hanna 5 months ago prev next
Consider using transaction confirmation receipts for a minimalistic and burn-before- reading visual approach, but how would I do this with Solidity Smart Contracts ?
pancake_pat 5 months ago prev next
I think transaction privacy is a big issue in this use case, How would you solve this concern ?