几天前,为了能将最近学到的东西灵活掌握,我决定尝试去做个博客系统,我的构思是将内容发布到以太坊网络上,通过这个系统的实现,掌握区块链智能合约的开发,包括部署、调用等。
这个博客系统我打算做成多用户版的,就是说,每个独立的用户都可以自己发布自己的博客,有点像hive.blog/steemit.com这种,所以整个系统需要包括如下模块,
会员系统
博客发布和修改
博文列表显示
其中会员系统包括用户注册和用户登陆,博客这里包括博文发布、博文修改和单篇的博文显示,最后就是所有用户的博文列表显示。
考虑到以太坊网络的缓慢,我打算同时使用传统数据库和以太坊来解决这个问题。
基本的思路就是,用户提交注册信息后,先将数据提交至以太坊网络,返回注册信息后,再将信息存储到中心化数据库mysql。
这里有一个问题,就是用户后续登陆问题,我的想法是,用户只需要输入一次密码,即可登陆和操作。
博客管理这里,包括博文发布、博文修改和博文显示,这里的智能合约比较简单,我先前已经完成了基本雏形,届时在其基础上再做下完善即可。
需要注意的是,博文的内容,是先存储到本地数据库中,然后才发布到以太坊网络,当然,这里需要用到异步请求,还是那个原因,相比传统中心化数据库存储,以太坊的速度慢的感人。囧
最后一个模块,博文列表显示,这里基本就是中心化数据库的读取了。考虑到速度,这里我会直接从本地数据库中读取博文,包括博文的标题、数量等,然后以列表分页的形式显示出来。
@chenlocus 建议我,
我觉得把文章存储到以太坊上,造价太贵,而且慢。可以考虑把内容放IPFS上,以太坊上就存储些文章的hash索引。
我觉得这个建议非常好,只是我目前还没了解过ipfs,等到这个初版本的blog完成后,下一步我会打算改造下,按照 @chenlocus 的建议:把内容放IPFS上,以太坊上就存储些文章的hash索引,届时,估计就是Blog V2.0了吧。:)
再次感谢 @chenlocus 的建议!