EOS [EOS DAPP 开发] 01 - 使用 React+EOS+IPFS 开发去中心化内容平台 DAPP

pendingauth · 2019年05月08日 · 42 次阅读

本文转载自币乎,作者松果,原文链接:https://bihu.com/article/1315281751

开发DAPP的技术选型

DApp(Decentralized Application),分布式应用程序,使用分布式网络(distributed network),是和传统应用的最大区别。

根据O’Reilly的建议,DAPP应该具备以下特征:

  • DAPP必须是开源的,用户能够决定升级和改进;

  • DAPP应该有内部通证,即支付工具;

  • DAPP必须有一个去中心化的共识机制,这种共识机制可无需第三方来达成;

  • DAPP网络应该具有大量节点,不会因为单点失败造成网络瘫痪。

DAPP和传统应用的区别主要在业务逻辑层和数据层:

  • 传统应用:

    前端 → API → 数据库

  • DAPP:

    前端 → 智能合约 → 区块链

我们看到,DAPP使用智能合约处理业务逻辑,区块链保存数据。从技术角度讲,开发DAPP就在于对前端、智能合约、区块链进行技术选型。

  • 前端:React, Facebook开源的前端UI框架,它让前端开发变得像移动端(Android/iOS)开发,结合Redux可以开发出企业级应用;

  • 智能合约:EOS,目前主流的可作为DAPP开发平台的区块链有以太坊、EOS、波场。它们之中选择EOS,是因为EOS相比于以太坊有性能优势,相比于波场有技术资源和人气优势,综合来看是最好的选择;

  • 区块链:EOSIPFS 结合,因为内容平台会产生大量静态内容,我们把这些静态内容存储在IPFS上,在区块链上只保存这些内容的hash,可以降低EOS区块链的使用成本。

  • 服务端:NodejsIPFS 结合,使用Nodejs开发后端,前后端都使用JavaScript,降低了学习成本(毕竟还要花时间学习C++开发智能合约...)。目前后端代码存在本地或服务器上,我也在研究把后端host到IPFS上,即让IPFS作为服务器,这是未来的目标。

React+EOS+IPFS开发内容平台DAPP

现有的内容平台(比如币乎),一般会有这些功能:

  • 内容:发布、浏览、收藏、转载等

  • 社交:关注、点赞、留言、打赏等

我现在写的是一个Demo,只完成了部分功能,目的是带大家走进DAPP开发的大门,后期还会不断完善,并把技术细节记录下来。

代码已开源,可以到Github查看:https://github.com/songguo6/eos-react-dapp

已实现这些功能:

  • 浏览文章列表

  • 编辑和发布文章

  • 调用Scatter,保存数据到EOS区块链

  • 浏览文章详情

后续的文章会一步步带大家开发出这样一个Demo,有编程基础的同学可以直接到 Github 查看。

接下来,你将获得技能

  • 搭建DAPP开发环境

  • 使用React进行前端开发

  • 使用EOS命令行工具

  • 使用C++开发智能合约

  • 编译、部署EOS智能合约

  • 使用Scatter管理钱包和调用智能合约

  • 使用eosjs从前端访问区块链

  • 安装和使用IPFS

  • 使用ipfs-api从前端写入和读取数据

  • ...

注意

EOS代码更新的频率很高(比如现在增加了EOSIO.cdt),以前写的文章很多地方已经运行不了了,所以:

不要看之前写的EOS相关文章!!
不要看之前写的EOS相关文章!!
不要看之前写的EOS相关文章!!

我会在后续更新EOS相关的最新技术内容,努力跟上EOS的开发迭代速度,一切以最新文章为准。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册