记者 | Aholiab

出品 | 区块链大本营(blockchain_camp)

在区块链开发者队伍中,有一批来自传统的互联网开发人员。在区块链圈子里崇尚年轻和「天才」的文化氛围中,这批开发者因经历了两次重大浪潮的洗礼而更加的扎实和沉稳。

戴硕就是其中一位。

戴硕内容公链Contentos首席科学家,清华毕业,中科院硕士,曾在腾讯任职,后又在猎豹移动负责社交产品LiveMe开发工作。对于底层开发和安全的理解更为深入。

正是有了这样的经历,戴硕直言区块链的开发入门成本远高于传统互联网,「不建议刚毕业的年轻人直接从事区块链开发」。

作为数字内容公链,Contentos主要从图片、短视频和直播领域切入,数据类型多样,给数据存储带来了很大的挑战。此外,面对6000万月活、100万全球内容创作者和每天超过50万条的内容交互,复杂程度甚至超过比特币和以太坊

在Contentos生态产品Cheez,用户利用通证COS创作和消费短视频

直播平台LiveMe用户创作的内容可以利用Contentos「上链」

那么,戴硕和他的团队是如何实现这样的内容公链的?作为曾经的传统互联网开发者,他对区块链开发又有哪些心得?他又是怎样理解区块链的一些核心技术的呢?

带着这些问题,营长近日对内容公链Contentos的首席科学家戴硕进行了一次专访。以下为精华整理。

“应届毕业生,不建议直接上手区块链”

营长:在做区块链之前,你的经历是什么?

戴硕:我本科在清华读计算机专业,后来又在中科院拿了硕士学位。毕业后就开始从事软件开发和信息安全有关的工作。先在江民杀毒软件做了很长时间的信息安全,又在腾讯做了一段时间。之后又去了猎豹移动,开始是做「电池医生」App,属于工具类应用,后来主要精力全部放在了直播和短视频类应用的开发工作。

营长:你现在做起区块链的原因是什么?

戴硕:决定从事区块链研究一定不能选择「跟风」。在我的职业生涯里,很长时间都在做信息安全。我发现,用技术解决安全问题,实际上是无法形成闭环的这就好像把一个要保护的东西放在保险柜里,然后保险柜的钥匙放在另外一个柜子里,以此类推,最后一把钥匙总要交给所谓的“信任”。

我一直有一个心结,就是用技术方案解决信任问题,形成闭环。而区块链之所以吸引我,正是因为它是计算机历史上,第一次用技术构建了一种被大家公认的信任机制,并且对其他行业产生颠覆重意义。

营长:作为曾经的移动开发者,在你看来,区块链开发与移动开发的不同点有哪些?

戴硕:我们都知道,在移动开发中有一个理念叫「敏捷开发」,即快速试错,小步快跑。根据用户的反馈不断优化。但这一理念放在区块链当中是不可能的。

一款移动App如果一个月不更新一个版本,肯定不是一个好的App。但一条公链,且不说一个月,就算是三个月更新一次版本,就没法用了。所以公链最终的交付目标一定是稳定、安全、高性能的,因为版本更新的代价太高了,而且还有分叉的风险。

营长:从移动开发者到区块链开发者,需要学习哪些技能?成长周期大概是多长时间?

戴硕:区块链开发要学的知识比App开发要多得多。首先要学的就是密码学的知识,之后要学分布式系统原理,包括分布式系统上面的共识原理和技术名词。此外,如果是做公链开发,还涉及存储的问题,所以也要对数据存储有所了解。

从我的经验来看,从一个零基础成长为一个合格的公链开发者,至少要三年左右。所以我不建议没有任何开发经验的人或者应届毕业生直接上手区块链开发,至少要有三年左右的开发经验,才能比较顺畅的入门。

营长:这样说来,有什么比较好的学习建议吗?

戴硕:想要做区块链开发,第一步要对一些基本概念有了解,比如区块链是什么?什么是矿工?什么是挖矿?什么是数字代币等,可以去看一些科普类的文章。

第二,要从实操入手。任何技术都是这样,你得亲手去试。网上有很多项目,比如加密货币,可以先试着买一些。另外,像智能合约部署等,要明白实现原理,可以亲手试一下。用了一段时间,才能对区块链里的基本概念了解更快。

第三,学习源代码。很多项目都是开源的,源代码是最好的学习资料,如果想深入了解区块链开发,至少要研究一下比特币和EOS的源代码。一个是PoW,一个是DPoS。通过研究一些源代码,再配合钱包的使用,智能合约的部署等,结合起来学习,可以更快地了解区块链内部实现的原理。

源于Steem,高于Steem

营长:在内容公链中,Steem是绕不开的一个话题,在技术上你们与Steem有哪些不同?

戴硕:刚开始做Contentos这个项目,大家的经验都不是很丰富,我们看了下,Steemit跟我们的业务重合度较高,而且已经很成熟。所以我们先从Steem的源代码入手,通过学习人家的源代码,提升自己的能力。另外,我们也看到了Steem本身的一些欠缺和不足。

营长:能举个例子吗?

戴硕:比如Steemit网站的用户基数不是很大,日活跃用户只有5万左右,但我们想做的内容公链是远超过这个量级的项目。通过分析,我们发现Steem现有的技术选型,并不能达到更高量级的要求。因为Steem最大的特点就是单节点的性能决定了整个网络的性能。

Contentos团队对Steem公链项目的信息统计

我们都知道区块链是一个链上所有信息的集合,这个集合是存储到单机上的,这个本身没有问题,但问题是它是存储到内存里的。一台机器的内存,要存储这个链上所有的东西。这样做的好处就是快(内存肯定比硬盘要快,比网络也要快),但是缺点也很明显,就是天花板太低了。

如果要接入百万PV的网站,上面所有的操作都要入到我们的状态数据库里面,按照Steem现在运行的状况,如果它的访问量乘以100,那1~2T的内存可以供多长时间?答案就是三个月以内

如果使用Steem的技术选型,结局注定是失败的

我们也去研究了一些其他的替代方案,比如以太坊,发现行不通。因为以太坊的数据模型是比较简单的,本质上只存储账户信息。但我们要做的业务类型可能有几十种上百种逻辑上的数据类型彼此交互。

所以现有的技术方案,根本无法满足我们的业务需求,我们只好自己重新做了一套存储方案。

营长:能具体说一下这个存储方案的实现机制吗?

戴硕:首先内存型的数据库被我们pass掉了,不能用内存的,我们只好用基于硬盘的。同时,我们也采用了可插拔技术,为今后的多机方案作准备,比如在测试网和主网上线之后,仍然使用单机数据库。在不修改代码只修改配置文件的情况下,把单机数据库直接迁移到一个分布式的存储网络上。

Contentos数据存储方案架构

另一方面,我们本质上用的是K-V存储数据库,但在业务逻辑上是一种关系型数据库的需求。因为我们的数据类型很多,彼此间有千丝万缕的联系。所以,我们在K-V数据存储上面直接做了一层类似于关系型数据的中间层的实现。

共识算法设计的两大原则

营长:Contentos的共识算法是DPoS+saBFT,这种设计是出于哪些原则?

戴硕:所谓共识算法,实际上可以理解为分布式网络上各个独立节点之间彼此通讯的一套规则。所有好的节点都会按照这套规则去操作;恶意节点则相反。

因此,规则的制定,要遵循共识算法的两个特性:安全性和可用性

安全性是在有拜占庭节点(恶意节点)的情况下,好的节点要么达成共识yes,要么达成共识no。不能一个说yes一个说no,这样就发生了分叉。

可用性是指,在理论上可以达成共识的情况下,一定可以达成共识。不能说因为恶意节点的存在,就造成了好的节点不知所措,结果被锁死在某个状态而无法达成共识。无法做到这两点的很难称为合格的算法

营长:那么,DPoS和saBFT两种共识算法的作用分别是什么?以及saBFT和BFT的区别是什么?

戴硕:简单来说,DPoS决定了由谁来出块,saBFT决定了出的块是否有效。与BFT算法相比,saBFT是异步处理,它无需向BFT那样出一个块大家进行投票,通过后再出一个。它的处理方式是一边出块,一边确认

举个例子,我连续出100个块,但在第90个块的时候网络条件出现了抖动,造成共识速度落后于出块的速度,中间差了10个块。saBFT可以跳过第91个块,直接对第100个块进行确认。

因为一个块是一个链式结构,你对靠后的块的确认,实际上间接的确认了这个块之前的所有连接点。也就是说,等于一下子把90-100之间的全确认了。

saBFT算法实现原理

营长:在众多共识算法中,为什么选择了这种模式?

戴硕:从行业发展的角度,区块链行业将来一定是多链协作的模式,而多链协作的本质就是链上数据的共享。但目前困扰区块链行业的一个痛点就是「交易确认时间」。很可惜,基于PoW的交易确认时间是无穷的。

还有一个致命的概念叫「相对安全时间」,也就是说你在比特币和以太坊上完成了一笔交易,一段时间后,如果这笔交易没有被逆转,它就「相对安全」了,但这并不是百分之百的。

如果这种模式发生在多链数据共享中,一旦有一笔「相对安全」的数据被回滚,就会引发雪崩效应,给所有协作的节点带来灾难。

所以,我们在选择共识算法的时候,首先考虑的是以最快的速度达到100%确认的状态。目前,我们的平均确认时间是1秒以内,已经完全接近中心化网站或移动应用的交易确认时间了。

“区块链,往大了说是会造福全人类的”

营长:你如何定义「内容公链」?

戴硕:其实,没有一个非常严格的定义。我觉得,内容公链应该是一个基础设施平台,可以承接所有形式的数字内容,包括文章、图片、音乐、视频等信息。当然,这个基于区块链技术开发的开放内容平台,打破了现有中心化内容平台的信息隔阂,为价值内容交易提供一条高速通道。

营长:去中心化的内容平台与中心化的内容平台区别是什么?

戴硕:去中心化的内容平台更加公平透明,它打破了公司制中心化内容平台的霸权,从而回归价值于内容创作者。因此,特别吸引中长尾的创作者。

如果一个视频创作新手想要在中心化的平台上获得粉丝关注,这基本上是很难的。对于中心化平台而言,中长尾创作者不能更好地带给他们商业利益,也根本得不到平台分发过来的流量。但基于区块链技术的内容平台,把内容的价值回归给了用户自己,我们要做的是把决定权回归给用户。

营长:除了内容公链外,你还看好哪些区块链应用方向?

戴硕:还看好区块链金融相关,比如区块链发票、白条。还有存证相关的,法院可以接受的凭证。最后是游戏。

营长:最后,跟区块链大本营(blockchain_camp)的读者说几句话吧?

戴硕:从我个人来讲非常相信区块链有一个非常美好的未来,原因我说了,大家公认的这种信任,信任是整个人类社会合作发展的一个最重要的技术。而且我也算是一种信仰,我相信区块链的未来是非常美好的。人一旦有了信仰,就可以抗住很多的困难和压力,也不容易轻易的放弃。

我觉得如果作为区块链的创业者或从业者,如果没有这个信仰支撑,我觉得就不要做了。因为没有信仰的人,看有信仰的人觉得像傻子一样;但是没有信仰的人,在遇到困难和挫折的时候,一定比较容易退却

所以我希望那些对区块链的未来同样有信心的人,可以一起努力。像区块链这样的技术革命,实际上也不常发生。我们能够在年富力强的时候进入这个行业,赶上这个技术革新,也是非常幸运的一件事情,希望大家通过自己的努力,能够推动这个事业的发展。

这个事业往大了说,是会造福全人类的。

扫码报名 | 免费技术公开课

技术架构 | 应用架构 | 安全 | 隐私

推荐阅读:

  • 要钱还是要命? 比特币正悄悄杀死你...

  • 大学生利用漏洞“骗走”京东110万, 中心化白条的漏洞, 区块链能否补得上?

  • 好莱坞大片! 为躲避死亡威胁, 只用15步, 这个密码朋克大叔就从世界"消失"了...

  • 前阿里 P9 级员工称离婚是模拟测试,已回滚复婚!

  • 淘宝、飞猪、闲鱼都挂了,阿里云却正常?!

  • 刚刚,数学界“诺奖”Abel Prize迎来首位女性得主

  • 没有新芯片,没有大核弹,黄教主这次给大家带来了个PRADA

  • 曝光!月薪 5 万的程序员面试题:73% 人都做错,你敢试吗?

猛戳"阅读原文"有惊喜哟!

老铁在看了吗??

理工男的网红生意, 6000万月活50万条日更的背后, 内容链还能这样操作?相关推荐

  1. 18亿用户、10万条电源线、4200万月活......创业者的底限究竟在哪里?

    PMCAFF(www.pmcaff.com):最大互联网产品社区,是百度,腾讯,阿里等产品经理的学习交流平台.定期出品深度产品观察,互联产品研究首选. 数说:数字趣说产品,颠覆你的想象.本文由PMCA ...

  2. “区块链+”的真实场景数据:月活800万是极端个例 整体规模尚小

    来源 | PANews.io 文字.数据与可视化 | Carol  编辑 | 毕彤彤Tong 近日,最高层领导表示要"把区块链作为核心技术自主创新的重要突破口","要加快 ...

  3. 信息流月赚 50 万项目

    我们先来看一组数据: 2016 年度中国网络广告市场规模达到 2902.7 亿元,同比增长 32.9%: 其中,移动广告市场规模达 1750 亿元,同比增长 75.4%: 预计 2017 年移动广告市 ...

  4. 月活675万 三翼鸟以三大能力“重建”行业赛道

    时下的商业竞争是一场"存量"与"增量"的博弈.一边,人口红利流失将行业围困在存量区间缠斗:另一边,为用户创造幸福感增量的企业,往往在市场角逐中占据先机. 适逢全 ...

  5. (转载)年薪如何从10万跳到50万

    转载自:http://www.luosview.com/blogview.asp?logID=33&cateID=2 年薪如何从10万跳到50万(来源于晨报)   [ 日期:2006-06-1 ...

  6. 36岁大龄程序员被裁,找了2个月工作,年包从100万降到50万,要不要接?

    为了找到工作,你愿意接受降薪多少? 一位36岁的杭州程序员问: 36岁被裁,找了2个月工作,年包从100万降到50万,真心纠结,要不要接? 网友们分成了旗帜鲜明的两派,一派人认为不要接,因为一旦降薪, ...

  7. 估值超 80 亿独角兽爆雷!靠“吹牛”骗取 10 亿融资,2000 万月活中 95% 是“机器人”...

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) "一家初创型企业,想要获得 10 亿融资,需要具备什么?" 对于这个问题,曾放话对标 Facebook 的即时通讯应 ...

  8. 小网店“双11”尴尬:销售额50万只赚千元

    "双十一"已经过去一周,但其搅动的争论和反思仍在继续.2012年11月14日,一场名为"新旧零售的交锋"论坛在浙江杭州召开.其间,在"双十一" ...

  9. PMCAFF:揭秘暗藏在O2O背后的暴利刷单,1800元投入刷单2个月赚50万

    随着近年来近年O2O行业的大热,接踵而来的是挥之不去的刷单雾霾.刷单这种鸦片,可以给平台造成短期完美的幻觉,久而久之却会让平台在虚妄的膨胀感中日趋衰亡.杜绝刷单,势在必行!目前PMCAFF的会员设计优 ...

最新文章

  1. 智慧少年队显示服务器异常,六大智慧少年是什么梗,六大智慧少年其它五个
  2. 【c语言】蓝桥杯算法提高 3-3求圆面积表面积体积
  3. Hadoop集群三种作业调度算法介绍
  4. 汇编语言随笔(6)-大小写转换与实验6(双重循环:需要保存cx值)
  5. c语言fread读取错误,【求助】C语言fread读取二进制文件时,读取结果全都是零
  6. 爬虫提取非结构化数据
  7. 【mongoDB】测试使用gridfs,配置一个分片服务器集群
  8. 物理DG主备库切换时遇到ORA-16139: media recovery required错误
  9. class-dump获取iOS私有api
  10. 超干货!为了让你彻底弄懂MySQL事务日志,我通宵肝出了这份图解!
  11. 基于angular5+ionic3仿照网易云音乐客户端
  12. matlab 加入高频噪声_Wavelet Integrated CNNs提高图像分类的噪声鲁棒性
  13. 云视通存储怎么不是24小时_降压目标不是一次血压正常,而是24小时血压都要正常...
  14. 不使用自动注解方式来生成mapper,采用原生方式来生成mapper
  15. oracle添加分区语句_Oracle表创建分区如何实现?
  16. 20145237 Exp2 后门原理与实践
  17. 算法笔记:Dinic最大流和SPFA费用流
  18. MySQL 数据库性能优化
  19. IEC104规约学习笔记
  20. 存储基础知识 - 网络存储主要技术

热门文章

  1. RPG Maker MV 密码宝箱
  2. 用户控制 键盘鼠标自定义 脚本
  3. React Native与原生的图片交互问题
  4. Map和Set,简单模拟实现哈希表以及哈希表部分底层源码的分析
  5. Word Embedding 知识总结
  6. 优雅地使用 C++ 制作表格:tabulate
  7. syb需求分析问卷_syb创业计划书模板完整版.doc
  8. 37种传感器(十)之手指心跳检测模块+Stduino NanoUNO
  9. 怎么看linux Java版本,查看linux的java版本信息
  10. tipask 3.5问答系统部署说明,超详细命令行部署,挂载iso,可内网使用。