本系列文章是針對 https://blog.csdn.net/weixin_43668031/article/details/83962959 內容的實現所編寫的。開發經歷包括思考過程、重構和推翻重來。
到目前爲止,已經完成了智能合約的編寫,主要分爲結構體的定義和操作方法的編寫,
一共有7種結構體:
結構體 | 含義 |
---|---|
User | 用戶 |
Video | 視頻 |
Videofile | 視頻文件 |
Comment | 評論、彈幕 |
Lable | 標籤 |
Gratuity | 打賞記錄 |
Album | 專輯 |
一共26種操作方法:我把他們分成4個類別
操作分類 | 方法 | 作用 | 備註 | 參數 | 返回 |
---|---|---|---|---|---|
用戶操作 | setMyInfo | 設置我的信息 | setMyInfo(暱稱,簡介,頭像) | 無返回 | |
用戶操作 | setMyNickname | 設置我的暱稱 | setMyNickname(暱稱) | 無返回 | |
用戶操作 | setMyProfile | 設置我的簡介 | setMyProfile(簡介) | 無返回 | |
用戶操作 | setMyAvatar | 設置我的頭像 | setMyAvatar(頭像) | 無返回 | |
用戶操作 | getUserInfo | 獲取用戶信息 | 無需消耗 | getUserInfo(用戶地址) | nickname=暱稱, profile=簡介, avatar=頭像, videoNums=用戶發佈的數量 |
視頻操作 | publish | 發佈視頻 | publish(標題,封面,視頻信息,視頻介紹,時長,文件對象,文件信息,大小,寬度,高度,幀率) | articleId=視頻id | |
視頻操作 | setVideoPermission | 設置視頻權限 | setVideoPermission(視頻ID,權限數值) | 無返回 | |
視頻操作 | setVideo | 重新設置視頻封面和視頻信息 | setVideo(視頻ID,封面,視頻信息 | 無返回 | |
視頻操作 | setVideoInfo | 重新設置標題和視頻簡介 | setVideoInfo(視頻ID,標題,視頻信息) | 無返回 | |
視頻操作 | addVideofile | 添加一個視頻文件 | addVideofile(視頻ID,文件對象,文件信息,文件大小,寬度,高度,幀率) | 無返回 | |
視頻操作 | setFilePermission | 設置視頻文件的權限 | setFilePermission(視頻ID,文件ID,權限數值) | 無返回 | |
視頻操作 | getVideo | 獲取視頻 | 無需消耗 | getVideo(視頻ID) | title=標題, cover=封面, videoinfo=視頻信息, info=視頻簡介, duration=時長, timestamp=時間戳, author=作者地址, commentsNum=評論數量, gratuityNum=打賞數量, gratuitySum=打賞總金額 |
視頻操作 | getVideoFile | 獲取視頻信息 | 無需消耗 | getVideoFile(視頻ID,文件ID) | filename=文件地址, fileinfo=文件信息, size=大小, width=寬度, height=高度, fps=幀率, fileNum=文件個數 |
其他內容操作 | makeLable | 創建標籤 | makeLable(視頻ID,標籤) | 無返回 | |
其他內容操作 | getVideoLable | 獲取標籤 | 無需消耗 | getVideoLable (視頻ID,標籤ID) | lable=標籤內容,times=標籤次數 |
其他內容操作 | makeComment | 發佈一個評論/彈幕 | makeComment(視頻ID,視頻時間,評論內容) | 無返回 | |
其他內容操作 | changeCommen | 修改評論/彈幕 | changeCommen(視頻ID,評論ID,視頻時間,評論內容) | 無返回 | |
其他內容操作 | getVideoComment | 查看評論/彈幕 | 無需消耗 | getVideoComment (視頻ID,評論ID) | content=內容, timestamp=時間戳, videotimestamp=視頻時間, author=作者地址 |
其他內容操作 | reward | 打賞 | 需要指定金額 | reward(視頻ID) | 無返回 |
其他內容操作 | getGratuitys | 查看打賞 | 無需消耗 | getGratuitys (視頻ID, 打賞ID) | author=作者, gratuity=打賞數量 |
專輯操作 | createAlbum | 創建專輯 | createAlbum(專輯標題,封面,專輯信息) | albumnum=專輯ID | |
專輯操作 | editAlbum | 編輯專輯 | editAlbum(專輯ID,標題,封面,專輯信息) | 無返回 | |
專輯操作 | createAlbumVideo | 插入視頻 | createAlbumVideo(專輯ID,視頻ID) | videonum=視頻的專輯序號 | |
專輯操作 | updateAlbumVideo | 更新視頻 | updateAlbumVideo(專輯ID,專輯序號,視頻ID) | 無返回 | |
專輯操作 | getAlbum | 獲取專輯 | 無需消耗 | getAlbum(專輯ID) | title=標題, cover=封面, info=信息, author=作者, videonum=視頻數量, durationSum=持續時間 |
專輯操作 | getAlbumVideo | 獲取專輯內的視頻 | 無需消耗 | getAlbumVideo(專輯ID,視頻的專輯序號) | videoId=視頻ID, title=標題, cover=封面, videoinfo=視頻信息, info=視頻簡介, duration=時長, timestamp=時間戳, author=作者地址, commentsNum=評論數量, gratuityNum=打賞數量, gratuitySum=打賞金額 |
上述兩張表格包含了合約全部的信息(header),相當於SDK的概念了,在前端應用或者和合約交互的時候需要注意這些方法
注:其中表格備註欄中,“需要指定金額”,指的是打賞金額,在調用合約時需要額外傳入費用參數,當然可以打賞0元,付一個手續費,就是贊。
“無需消耗”,一般是get方法,從區塊鏈中讀取數據,這不需要消耗手續費。
其餘方法都是需要消耗手續費的,需要向區塊鏈中寫入數據或者更改數據。