题图:xresch CC0
忙活了一两个星期,终于把自己的第一个区块链 Ethereum 智能合约 Dapp 应用上线了。通过这个应用,我也学习了一下 Ethereum 智能合约的应用,Solidity 语言,和怎么配合其它基础架构(如 MetaMask, IPFS 等)实现一个系统。花了差不多 0.02 个 ETH 部署了智能合约,不知道能不能赚回打赏,哈哈。
这是一个什么应用
它的名字叫 Decentralized Secret Note。我部署在 Github pages 上,域名是 http://www.secret-note.one 。它的作用是让用户可以把他们私密的笔记内容,存储到区块链和分布式的网络上面。
如何做到分布式
笔记内容,保存在 IPFS(一个分布式 Web 架构)上。
笔记名字,和对应的内容在 IPFS 地址的 mapping,都保存在 Ethereum 的智能合约里面。
虽然页面是部署为 Github Pages,但是后端骨架都是在区块链上分布式存储的。其实 Dapp 好像也是可以部署到 IPFS 的,不过这个我还没有研究清楚。
什么数据应该放到区块链
每对区块链公链作出更改,都要耗费一定的手续费(矿工费)。而且,存储大量的数据在区块链里面也是不合适的。所以,我们只能把最关键的数据,存放在区块链里面。而且,数据存储在区块链上,对外界都是公开的。如何在区块链公链上存储私密的内容,一直是值得探讨的话题。
怎么保障内容安全
基于区块链公链直接存储数据的限制,和安全性考虑,智能合约里面我只保存了用户地址,笔记名字,和笔记内容在 IPFS 上面的链接 Hash。
正常情况下,每个用户只能看到自己保存的内容。他和智能合约交互的时候,必须是使用他自己的 Ethereum 地址来获取他的笔记。即便其它人的笔记内容在 IPFS 上的链接 Hash 被泄漏,IPFS 上面的内容也是经过了 SSH 的 Private Key 加密过的。这个私钥只有用户自己才知道,也没有保存在系统任何一个地方。
你可以做什么?
有兴趣的话,可以看我的源代码:https://github.com/kenspirit/secret-note ,提提意见,一起研究。当然,你还可以自己部署一个,连到测试网络,那就不用给 Mainnet 的 Gas,花真正的钱了,Yeah。
欢迎各位币圈大佬打赏。:D
终于不仅仅只是有电子货币而已了
领取专属 10元无门槛券
私享最新 技术干货