利用IPFS構建短視頻區塊鏈應用開發經歷(十二)重構與模塊化設計

本系列文章是針對 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
截止本文未完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章