基于ipfs和eth的视频分享应用开发

视频dapp应用

  • 目的
  • 架构
  • 实现
    • 智能合约

目的

基于区块链技术背景下的视频应用。

git:https://github.com/bill080307/douyinWithEth

架构

基于ipfs和eth的视频分享应用开发_第1张图片
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的视频分享应用开发_第2张图片
由于ipfs还在测试阶段,eth的描述语言solidity对不定长度数据结构返回处理和浮点型数据不够友好,以太坊智能合约部署在Kovan网络之上。

智能合约

https://github.com/bill080307/douyinWithEth/blob/master/VideoShare.sol
基于ipfs和eth的视频分享应用开发_第3张图片
其中头像储存的是图片文件在ipfs空间中的CID值。

    struct User {
        string nickname;
        string profile;
        string avatar;
    }
    mapping(address => User) users;

更新说明:本例不会以连载的方式更新,直接更新本文。

你可能感兴趣的:(区块链应用)