利用IPFS构建短视频区块链应用开发经历(十二)重构与模块化设计

Kamiisa ·
更新时间:2024-11-13
· 502 次阅读

本系列文章是针对 https://blog.csdn.net/weixin_43668031/article/details/83962959 内容的实现所编写的。开发经历包括思考过程、重构和推翻重来。
本节讲述经过大半年的停更此项目,架构发生变化。
在这大半年时间里完成了非统一数据的视频站,也是真正意义上的IPFS上的原生Dapp应用 https://github.com/bill080307/VideoShare。也正是因为这个项目,能让我由浅而深的学习知识。
在这里插入图片描述
本项目的主要变动

1. 改名DikTok

本项目将改名为 DikTok ,意在Tiktok on Dapp。

2. 智能合约变更

前文里有讲解 videos状态变量albums状态变量,目前考虑当前版本中仅包含对 videos状态变量 完全实现,albums状态变量 仅做部分实现,功能不全。
前文讲解过IPFS上存数据和ETH上存数据的不同,经过纠结,现将所有的可变长字段,可以自定义机构字段全部放到IPFS上。主要包括原先的针对用户的昵称、简介、头像,针对视频的标题、简介、评论等。
用户结构体如下:

struct User { string user_hash; uint videoNums; uint albumNums; mapping (uint => uint) videos; mapping (uint => uint) albums; }

而user_hash 可以放一个在ipfs空间上的目录或者文件。

视频结构体如下

struct Video { string video_hash; uint duration; uint timestamp; address payable author; uint commentsNum; uint gratuityNum; uint lableNum; uint16 language; uint8 permission; mapping (uint => Lable) lables; mapping (uint => Gratuity) gratuitys; mapping (uint => Comment) comments; }

video_hash 放ipfs空间上的目录或者文件。
具体的智能合约协议访问 https://github.com/bill080307/douyinWithEth/blob/master/DikTok.sol

3. 页面模块化设计

这一点其实一开始就想做的,但是限于技术能力一直没有实施,根据设计将完成部分模块设计再来统一页面。
1.UserCard
用户展示面板。
在这里插入图片描述
代码: https://github.com/bill080307/douyinWithEth/blob/master/src/components/UserCard.vue
2.VideoCard
视频展示面板:
在这里插入图片描述
代码:https://github.com/bill080307/douyinWithEth/blob/master/src/components/VideoCard.vue
3.CommentCard
截止本文未完成
4.PlayerCard
截止本文未完成
5.FunctionCard
截止本文未完成


作者:Imba_Bill



模块 ipfs 应用开发 模块化设计 重构 模块化 区块链

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章