前段时间做了一个 Dapp demo, 名字叫 钉书 (http://ds.bdaily.club) http://ds.bdaily.club/ . 通过区块链技术, 证明用户文章的所有权, 以此为基础打造一个知识类商品平台, 用户上传知识, 文章, 标价, 买家选择有价值的知识和文章, 付费转载.
这个平台的愿景是为作者和内容使用方提供通畅的授权渠道, 引导规范合理的转载行为, 为原创者带来更多的尊重和收益.
下面具体说说 Dapp 开发过程中一些技术点和坑吧.
0x01
目前 dapp 基本都是从零开始, 帐户体系还未建立. 而以太坊本身就有账户的概念, 所以让 dapp 的帐户和以太坊账户打通也是必要的. 目前有一些解决方案, 比如基于 Metamask 的一键化登录, 无需单独创建账号, 用户通过 Metamask 插件签名后与后端交互校验后即可创建与 address 绑定的帐户.
具体交互流程可参考我的这篇文章: 智能合约开发 - 如何实现一键化登录 Dapp https://zhuanlan.zhihu.com/p/38213993
0x02
dapp 的交互目前有 truffle, web3.js , 都属于前端的 js 包. 或许说明了一个问题, 目前与智能合约的交互得依赖前端. 但其实很多时候数据的处理和维护还得放在后端来做, 所以让 dapp 的开发更加方便也变得很重要, 这里有一个思路供参考: 智能合约开发 - 如何更好的与合约交互 https://zhuanlan.zhihu.com/p/38244475
0x03
再说说智能合约的测试环境吧.
1. 如要在本地测试, 可以用 ganache, 他会启动一条私有的链, 并且生成一些账户供测试用.
2. 如要放到公网环境测试, 可以用 Ropsten Test Net 环境部署合约. 比如 钉书 http://ds.bdaily.club/ 的合约就部署在以太坊的 Ropsten Test Net 环境. 先安装 MetaMask 插件, 切换到 Ropsten Test Net 环境, 点击 BUY -> ROPSTEN TEST FAUCET 即可获得免费以太币测试发布和购买文章.
0x04
截止目前, 以太坊的一个全节点总数据快 600G 了, 自己维护一个全节点成本也变的越来越高. 有一个稳定和可信的全节点还是很重要的, 比如 https://infura.io/ , 不过它不支持某些 json-rpc 接口, 比如 event_filter.
0x05
就这个 demo 来说, 其实还有好多东西没做, 比如
1. 作者的身份认证系统
2. 文章通过数字签名来锚定唯一的链接
3. 支持其他数字媒体类型的所有权确认
0x06
这里抱怨下, 这个 demo 其实是迅雷区块链大赛的参赛作品. 迅雷的评委只看了 ppt ,demo 一眼都没看就被淘汰了, 还是有点失望评委的态度.
0x07
最后推广下自己的 区块链日报 https://www.bdaily.club/about , 目前更新到八十三期, 在知乎 https://zhuanlan.zhihu.com/btchain 和 https://twitter.com/bchain_daily 上都有了一定的关注量, 希望能为真正学习区块链的人带来一点帮助.
来源: https://juejin.im/entry/5b374ed251882574e10e0acc