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

戴硕就是其中一位。

戴硕,内容公链Contentos首席科学家,清华毕业,中科院硕士,曾在腾讯任职,后又在猎豹移动负责社交产品LiveMe开发工作。对于底层开发和安全的理解更为深入。正是有了这样的经历,戴硕直言区块链的开发入门成本远高于传统互联网,「不建议刚毕业的年轻人直接从事区块链开发」。

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

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

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

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

戴硕:决定从事区块链研究一定不能选择「跟风」。在我的职业生涯里,很长时间都在做信息安全。我发现,用技术解决安全问题,实际上是无法形成闭环的。这就好像把一个要保护的东西放在保险柜里,然后保险柜的钥匙放在另外一个柜子里,以此类推,最后一把钥匙总要交给所谓的“信任”。我一直有一个心结,就是用技术方案解决信任问题,形成闭环。而区块链之所以吸引我,正是因为它是计算机历史上,第一次用技术构建了一种被大家公认的信任机制,并且对其他行业产生颠覆重意义。

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

戴硕:我们都知道,在移动开发中有一个理念叫「敏捷开发」,即快速试错,小步快跑。根据用户的反馈不断优化。但这一理念放在区块链当中是不可能的。一款移动App如果一个月不更新一个版本,肯定不是一个好的App。但一条公链,且不说一个月,就算是三个月更新一次版本,就没法用了。所以公链最终的交付目标一定是稳定、安全、高性能的,因为版本更新的代价太高了,而且还有分叉的风险。

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

戴硕:区块链开发要学的知识比App开发要多得多。首先要学的就是密码学的知识,之后要学分布式系统原理,包括分布式系统上面的共识原理和技术名词。此外,如果是做公链开发,还涉及存储的问题,所以也要对数据存储有所了解。从我的经验来看,从一个零基础成长为一个合格的公链开发者,至少要三年左右。所以我不建议没有任何开发经验的人或者应届毕业生直接上手区块链开发,至少要有三年左右的开发经验,才能比较顺畅的入门。

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

戴硕:想要做区块链开发,第一步要对一些基本概念有了解,比如区块链是什么?什么是矿工?什么是挖矿?什么是数字代币等,可以去看一些科普类的文章。第二,要从实操入手。任何技术都是这样,你得亲手去试。网上有很多项目,比如加密货币,可以先试着买一些。另外,像智能合约部署等,要明白实现原理,可以亲手试一下。用了一段时间,才能对区块链里的基本概念了解更快。第三,学习源代码。很多项目都是开源的,源代码是最好的学习资料,如果想深入了解区块链开发,至少要研究一下比特币和EOS的源代码。一个是PoW,一个是DPoS。通过研究一些源代码,再配合钱包的使用,智能合约的部署等,结合起来学习,可以更快地了解区块链内部实现的原理。源于Steem,高于Steem

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

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

营长:能举个例子吗?

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

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

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

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

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

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

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

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

戴硕:从行业发展的角度,区块链行业将来一定是多链协作的模式,而多链协作的本质就是链上数据的共享。但目前困扰区块链行业的一个痛点就是「交易确认时间」。很可惜,基于PoW的交易确认时间是无穷的。还有一个致命的概念叫「相对安全时间」,也就是说你在比特币和以太坊上完成了一笔交易,一段时间后,如果这笔交易没有被逆转,它就「相对安全」了,但这并不是百分之百的。如果这种模式发生在多链数据共享中,一旦有一笔「相对安全」的数据被回滚,就会引发雪崩效应,给所有协作的节点带来灾难。所以,我们在选择共识算法的时候,首先考虑的是以最快的速度达到100%确认的状态。目前,我们的平均确认时间是1秒以内,已经完全接近中心化网站或移动应用的交易确认时间了。

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

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

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

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

戴硕:去中心化的内容平台更加公平透明,它打破了公司制中心化内容平台的霸权,从而回归价值于内容创作者。因此,特别吸引中长尾的创作者。如果一个视频创作新手想要在中心化的平台上获得粉丝关注,这基本上是很难的。对于中心化平台而言,中长尾创作者不能更好地带给他们商业利益,也根本得不到平台分发过来的流量。但基于区块链技术的内容平台,把内容的价值回归给了用户自己,我们要做的是把决定权回归给用户。
营长:除了内容公链外,你还看好哪些区块链应用方向?

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

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

戴硕:从我个人来讲非常相信区块链有一个非常美好的未来,原因我说了,大家公认的这种信任,信任是整个人类社会合作发展的一个最重要的技术。而且我也算是一种信仰,我相信区块链的未来是非常美好的。人一旦有了信仰,就可以抗住很多的困难和压力,也不容易轻易的放弃。我觉得如果作为区块链的创业者或从业者,如果没有这个信仰支撑,我觉得就不要做了。因为没有信仰的人,看有信仰的人觉得像傻子一样;但是没有信仰的人,在遇到困难和挫折的时候,一定比较容易退却。所以我希望那些对区块链的未来同样有信心的人,可以一起努力。像区块链这样的技术革命,实际上也不常发生。我们能够在年富力强的时候进入这个行业,赶上这个技术革新,也是非常幸运的一件事情,希望大家通过自己的努力,能够推动这个事业的发展。这个事业往大了说,是会造福全人类的。

本文转载自区块链大本营

内容公链Contentos首席科学家不建议刚毕业的年轻人直接从事区块链开发相关推荐

  1. 【重磅】世界区块链组织首席科学家白硕:区块链技术与数据隐私讲座

    [重磅]世界区块链组织首席科学家白硕:区块链技术与数据隐私讲座 本讲座选自世界区块链组织首席科学家白硕于2018年3月29日在清华大数据"应用·创新"系列讲座上所做的题为<区 ...

  2. 中国区块链史上最盛大峰会闭幕,130位嘉宾发出区块链最强音!

    作者:邱祥宇 这是一场恰逢其时的区块链行业盛会. 在区块链成为中国核心技术自主创新的重要突破口之际,2019年11月8日-9日,第二届世界区块链大会在乌镇互联网国际会展中心举办.本次大会以" ...

  3. 区块链技术沙龙最全回顾:我们需要做怎样的区块链?

    导读:在诸多新技术付诸应用之后,越来越多的技术从业者开始发现,似乎摩尔定律已经开始失灵了,两年的周期远远跟不上技术和信息爆炸的速度.但与此同时,我们却发现另一个定律出乎意外的开始在科技圈里盛行,那就是 ...

  4. 1分钟链圈 | 比特大陆推出挖矿路由器!苏宁正式上线区块链产品“星际家园”...

    Hi,艾瑞巴蒂! 这里是 8 月 9 日的每日1句话新闻晚报,只需1分钟,看看全球最热.最新的区块链新闻. 实时币价:BTC $6342.30    ETH $361.21    EOS $5.73( ...

  5. 区块链日记——【译】用Java创建你的第一个区块链-part2:可交易

    本文转自http://www.spring4all.com/article/814 [译]用Java创建你的第一个区块链-part2:可交易 区块链是分布式数据存储.点对点传输.共识机制.加密算法等计 ...

  6. 京东云智臻链开源两周年,JD Chain领跑国内自研区块链技术

    近年来,区块链技术发展成为全球关注的重点,国内从中央到地方均给予了高度的政策支持,国内领军企业纷纷布局.京东云智臻链自主研发JD Chain区块链底层架构,于2019年3月率先开源开放,成为了国内区块 ...

  7. 1分钟链圈 | 告急告急!区块链人才极度稀缺,需求三年爆增19倍;区块链板块早盘爆发,易见股份直线封涨停

    Hi,everybody! 这是2月27日的每日1句话新闻,只需1分钟,看看全球最热.最新的区块链新闻. 观点 高西庆:为什么有人恐惧区块链?因为他们的权威没了 比特币核心开发者Cobra发表公开信: ...

  8. 区块链政策3月报:广州集中发布扶持政策 要打造区块链产业城?

    文丨互链脉搏·金走车 未经授权,不得转载! 3月末,国内区块链监管.区块链扶持方面的大事不断.扶持方面,广州市黄埔区发布了"区块链10条2.0"政策:监管方面,网信办发布了首批备案 ...

  9. 我们都有幸见证区块链,一席流动的盛宴 | 7天,2000位区块链人聚集

    作者 | 汤霞玲 杭州区块链周结束86小时后,海明威在<流动的盛宴>的一句话,从我脑中冒出了至少三次: 假如你有幸年轻时在巴黎生活过,那么你此后一生中不论去到哪里,她都与你同在,因为,巴黎 ...

  10. 太 6 了!区块链包包、疫情防控大脑……程序员这样玩转区块链!

    在今年315晚会上,品牌连锁餐厅将过期的汉堡包正常提供给消费者食用事件登上热搜,引起大众哗然. 早在2019年,国务院发布<关于深化改革加强食品安全工作的意见>,对于区块链技术的食品安全应 ...

最新文章

  1. JavaScript+TensorFlow.js让你在视频中瞬间消失
  2. Androidstudio高效管理第三方API的KEY及Gradle版本管理
  3. 恢复错误:\anaconda3\lib\site-packages\zmq\backend\cffi\__pycache__\_cffi_ext.c(266)
  4. php的create_function、function_exists判断函数是否存在
  5. 用C#编写一个抓网页的应用程序
  6. Leetcode #137 Single Number II
  7. jQuery再学习之二、jQuery选择器
  8. sql常识-LEFT JOIN
  9. 面试题:数据库的优化
  10. 跪求一个中国地图矢量图。
  11. 使用BarTender连接Excel文件批量打印图片
  12. 卡巴斯基激活码 卡巴斯基2010激活码下载
  13. 服务器显示屏 超出工作频率范围,Win10显示器显示超出工作频率范围解决方法
  14. (转)996下的程序员,该如何保证自己的身体健康?
  15. 随机森林python实例_用Python实现随机森林算法的示例
  16. 微信小程序 Unexpected token in JSON at position 0 设置二维码,并且使用js中JSON.parse()函数将二维码返回的值转化为json格式
  17. 《霜冷长河》之《壮士》----英雄归来
  18. [PS视频][ps从入门到精通82课][mp4/327M]
  19. 华为鸿蒙概念机,华为Mate50Pro概念机,屏下镜头+一亿像素+麒麟9010,你喜欢吗?...
  20. 大学计算机课程教学,提高大学生计算机基础课程教学质量的策略

热门文章

  1. 萝卜小铺和店主们的故事(五)
  2. 2021年中国牛肉市场供需现状、进出口贸易及价格走势分析[图]
  3. SK创新在2019年下半年将实现柔性显示器核心材料FCW量产
  4. 怎样描写事物的动态?
  5. 解决MySQL 8.x以上版本安装中出现staring the server错误
  6. mysql 增量 命令
  7. kindle paperwhite2 越狱备忘
  8. mysql索引的子部分_Mysql索引数据结构详解及性能调优
  9. Move语言:我眼中的 Libra 最大亮点
  10. 试答一道经典的腾讯面试题:QQ的MVP