目的
基于区块链技术背景下的视频应用。
git:https://github.com/bill080307/douyinWithEth
架构
ipfs网络负责视频文件的储存、分发;
eth网络负责数据检索和同步;
实现
为了在代码书写上有良好的效率,dapp端操作ipfs储存和eth数据库使用中间件,用插件的形式,这样不需要编写轮子,底层代码。
注1:eth层面:账号管理、转账、网络连接等基础操作不在本dapp中实现,插件:MetaMask
注2:ipfs层面:目前ipfs还是测试网络,编写此dapp连filecoin测试网络都还没启动,因此此部分未来改动较大,在本例中直接使用ipfs的api,插件:ipfs-companion
注3:前端技术选型:本例使用vue作为前端,虽然react以及js中有较多框架适合做,本案例中无条件使用vue作为前端。
因此在上图中加入中间件:
由于ipfs还在测试阶段,eth的描述语言solidity对不定长度数据结构返回处理和浮点型数据不够友好,以太坊智能合约部署在Kovan网络之上。
智能合约
https://github.com/bill080307/douyinWithEth/blob/master/VideoShare.sol
其中头像储存的是图片文件在ipfs空间中的CID值。
struct User {
string nickname;
string profile;
string avatar;
}
mapping(address => User) users;
更新说明:本例不会以连载的方式更新,直接更新本文。