编者按:文章作者 ThinkingInCrowd ,用一个实际应用告诉大家 IPFS 上所谓的完全公开也不是绝对的,毕竟那么多付费的应用要在这里面发生,让我们来一起看看,欢迎大家在文末给原作者打赏,与本网站无关。
忙活了一两个星期,终于把自己的第一个区块链 ethereum 智能合约 Dapp 应用上线了。通过这个应用,我也学习了一下 Ethereum 智能合约的应用,Solidity 语言,和怎么配合其它基础架构(如 MetaMask, IPFS 等)实现一个系统。花了差不多 0.02 个 ETH 部署了智能合约,不知道能不能赚回打赏,哈哈。
这是一个什么应用
它的名字叫 Decentralized Secret Note。我部署在 Github pages 上,域名是 https://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。
欢迎各位币圈大佬打赏。
ERC20 Token 打赏地址:0x713C8C77112858A3bd14A5FB380Fa0c4c5b1A8Bd
btc 打赏地址:196XA8S8ZwBu7UNap2A84cLzCAKoPPGck3
本文来自投稿,不代表IPFShare 分享站立场,如若转载,请注明出处:http://ipfshare.com/index.php/2018/04/03/ipfs-note-eth-smart-contract/