本系列文章是针对 https://blog.csdn.net/weixin_43668031/article/details/83962959 内容的实现所编写的。开发经历包括思考过程、重构和推翻重来。
本节讲述经过大半年的停更此项目,架构发生变化。
在这大半年时间里完成了非统一数据的视频站,也是真正意义上的IPFS上的原生Dapp应用 https://github.com/bill080307/VideoShare。也正是因为这个项目,能让我由浅而深的学习知识。
本项目的主要变动
本项目将改名为 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
这一点其实一开始就想做的,但是限于技术能力一直没有实施,根据设计将完成部分模块设计再来统一页面。
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
截止本文未完成