【华为人】——我和华为区块链的故事

举报
技术火炬手 发表于 2018/08/07 10:08:18 2018/08/07
【摘要】 Talk is cheap, show me the code


  
  进入华为的一年多里,经常会有同事好奇地问我,你为什么来华为?

 

在来华为前,我是一名高校的老师,研究方向主要偏向大数据处理系统。相比纯理论研究,我发现自己对新技术快速落地更感兴趣。于是,我从学术界来到工业界——到了华为。

 

开启区块链探索之路

近年,区块链俨然站在风口浪尖上,被业界认为可能改变众多行业的商业模式。总结来说,区块链是多种已有技术的集成创新,主要解决多方信任与高效协同问题。数据以区块(block)为单位产生和存储,并按照时间顺序连成链式(chain)数据结构,所有节点共同参与区块链系统的数据验证、存储和维护,新区块的创建需得到共识确认,并向各节点广播实现全网同步,之后就不能更改或删除。


举个通俗的例子,村里张三要借给李四1000元,张三大吼一声:大家注意了,我张三给李四转了1000块钱。村里的村民都听到张三的声音,把这笔账都记在了自己的小本本上,这样每个人手上都有一本完整且一致的账本。任何人或几个人私自的改动都无效,大部分人的账本是正确的,另外,账本一经写上,就只能追加/修改,无法删除。这就保证了区块链透明可信、防篡改可追溯、高可靠等独特的特征。


正是因为区块链的这些特点,能够实现合约自动化、信用系统自动化、价值转移自动化,是未来数字经济基础设施,有广阔的应用前景和价值。比如未来,贷款购房时,你或许不再需要往来奔波于社保、税务、开发商、银行间办理各种资质证明,也不再需要通过代管帐户、地产中介、多个政府部门登记环节来完成整个购买流程,所有记录都清晰透明可追溯,整体社会的运行效率将极大提升而运行成本将大幅降低。 


ICO如火如荼,处处上马区块链项目,一个问题摆在大家面前:华为在此浪潮中应该如何自处?中软分布式与并行软件lab接到这个任务后,根据技能地图迅速组建了5人的区块链探索团队。因为与大数据技术关系密切,加上我之前对区块链共识算法、智能合约等技术有些初步积累,这个探索任务就由我来担纲带领。


虽说有部分技术相似,但是对于区块链到底是什么、怎么用,我还是充满了疑惑。拜访清华、北大等高校,洽谈银行、工信部等机构等成为了接下来的主要工作。通过广泛调研,区块链的迷雾稍稍掀开,我还专程买了几个比特币,实际体验了一把比特币过山车般的感觉。


为了彻底搞清底层技术原理,我们还需要往下沉,加深自身的技术积累。读开源代码,从智能合约,到共识机制,再到分布式账本,通过一段段代码的理解、串讲,以及最后应用代码制作demo。每理解一个特性的实现,调通一个小小的bug,都意味着对区块链认识更加清晰。


经过一个多月的“魔鬼训练”,我和队友们啃下了区块链的所有技术原理及实现细节,为后续区块链业务打好了坚实的基础。

 

三个月上线区块链服务

前期的调研显示,企业客户对区块链的兴趣浓厚,但因为技术门槛高,前景不明朗,对区块链技术研究的投入有所顾虑。如果华为公有云能对外提供区块链服务,用户可以直接用起来,扫除用户的顾虑,是否可以利用区块链帮助公有云吸引企业用户,进而带动网络、存储等各类资源的销售?


这一想法与CloudBU PaaS服务产品部一拍即合。17年10月底区块链项目立项通过,我们需要做出一个用户愿意买单的产品,来证明我们的研究和积累是有价值的,同时这也成为构建华为区块链服务竞争力的一个绝好机会。


但是区块链实际落地还是有不少难题。首先,区块链因为涉及多方交易,业界性能普遍只有200 TPS,简单理解就是在转账场景下每秒只能支持200笔转账,而商业场景高峰期数千并发的场景经常出现,VISA全球交易可能达到数万TPS ,这给区块链商用带来了巨大限制。其次,各科技巨头纷纷进军区块链,相继发布区块链技术白皮书,留给我们的时间窗有限。如何在极短时间、有限人力情况下,突破区块链商用瓶颈?经过慎密分析,我们选择了两个主攻方向,而我自己重点解决性能低的难题,也就是如何提高普遍的“200TPS”这个性能。


在接下来的时间,共识算法成了我日思夜想的“对象”。我一边自己研究,一边抓住机会与国外高校进行交流,寻找思路。算法的改进、优化很痛苦,起初用了几种优化方法,收效甚微,根本找不到突破口。


有一天我整理杂物时,偶然发现一张过去办理个人事务时的审批表,上面依次有10+个签字。灵光一现,其实“递条子”和“按流程依次签字的审批表”是一种传递信任的有效方式,这个能不能用在共识里?心动不如行动,我将整个共识的流程打开看,认真分析每一步的数据信息,发现交易广播时会自带签名,共识转发交易时在交易签名基础上带上共识签名,因此可以减少不必要的其他消息通信。最终就这样在算法机制上做出突破,成功设计出高性能共识算法FLIC。


另外,通过设计共识参与方互相监督的机制、去除冗余消息、压缩消息内容等方式,交易性能提升15倍,达到3K TPS,每秒转账交易可以达到约3000笔,可以满足金融、供应链、政务等绝大部分应用场景性能要求,为区块链技术商用扫除了最大的障碍。


2月12日,2018春节的前两天,公有云BCS服务提前一个半月上线。三个月时间,我们从无到有构建了自己的区块链服务,并在性能、安全隐私方面具备明显优势。比如在金融方面,跨境转账业务用了我们的服务后,基本可实现实时清算,避免了第三方中介的高额中介费及最长达一周的清算周期。


在帮助公有云拓展了数百个用户的同时,我们还形成了十几个专利,原先的5人攻坚小分队也迅速壮大,在业界区块链领域逐渐占据一席之地。

 

火车上的“超爽”时刻

当然我们并非一帆风顺,在投入区块链研究初期,业界爆发了一个的区块链安全漏洞事件,周围充斥着对区块链的质疑声。这个问题不解决,我们就无法进行下一步的研发。


为打破业界质疑,我们计划一周内复现问题,并解决它。周一、周二、周三……前面六天竟然毫无进展,大家被卡在了原地,整个团队都有些急躁,我也心急如焚。


周日晚上,我惆怅地坐上了从深圳回北京的火车。“车程有些久,正好在火车上好好地死磕一下这个问题?”恰巧另一同事也在途中,在我邀请下,他也加入 “死磕复现”行动,背水一战。备好咖啡、绿茶、电脑,只欠“复现”了。以太坊智能合约所使用的Solidity语言很难定位调试,而智能合约有大量参数,我和同事分工各看一部分参数,准备逐个排查核实,死磕到底,通宵也得把所有参数排查一遍。


当调试到第7组参数时,问题奇迹般复现了!找到问题的源头后,我们终于解决了这个难题。或许是精诚所至,一周没有找到的问题,在火车上2个小时内就解决了。这时,手边的茶还微热,喝着茶,看着列车窗外的夜景,心情从未有过如此轻松惬意。这画面也会成为我多年后的美好回忆之一。


我也领悟到,抱着死磕的心做事,把自己逼到一定境界,发挥出自己的潜能,就会有意想不到的收获。

 

Talk is cheap,show me the code

在区块链的研究中,如何应用成了一个大家都关心的问题。虽然熟稔业界应用场景,但是如何结合新领域以及在华为的业务场景落地,单靠研究报告无法解答实际的问题,必须进行实际的验证。于是,我将快速构建区块链技术原型demo列为团队的TOP1能力。


首先我与大家达成“光说不练假把式”的共识,再带领大家一起梳理原型构建所依赖的技术和关键流程,并以全栈工程师的目标,要求大家补齐个人技能系统。再分工协作,有问题群策群力、集智攻关。这样伙伴们技能成长很快,相互间配合也越来越娴熟。


比如通过做区块链在酒店应用的演示系统,我们串联了嵌入式、Web前端、服务器后端等技术,从技术点到实际Demo,从想法到原型落地,基本在一周内完成。不少看似天马行空的想法,通过原型验证去芜存菁,沉淀出珍贵的经验,同时在交流探讨中,拿出我们的demo实际演示,更是极具说服力,正应了那句话:“Talk is cheap, show me the code.”

 

对话曹朝

问:区块链作为新兴技术,您是如何快速上手的?

答:其实这就是以前的积累,我以前是做分布式数据方面的,再加上平时和学术界联系比较紧密,大家会经常研讨,也总会动手实现一番,所以上手速度比较快。业务扩展时,我们特别迅速就组建了团队,也正是因为部门之前在中间件等领域有多年积累,有懂各技术领域的人才,能快速探索和孵化一个新领域。

 

问:对于新入行的工程师,您有什么经验可以传授的吗?

答:无论每天有多忙,每周都要给自己做一个总结,看看自己的能力和知识结构上,有什么样的提升。我觉得每个人所在的领域,其实是有一个知识拼图的,我们要注意构建自己的知识拼图,累积到一定程度,你看看自己的拼图还缺少哪一块,要花时间补上短板,同时也要清楚自己的优势,注意发扬光大。

 

问:平时工作很忙,您有什么兴趣爱好吗。同时,如何平衡好工作和家庭关系?

答:我平时最爱打篮球了,一周至少打一次,运动真的是一项非常好的解压方式。平时我出差到了深圳,我还会约深圳的同事来场篮球呢!虽然我打的并不好(笑)。关于工作和家庭,平时没太多想这方面问题。我一般晚上回家会先把小孩哄睡,他睡后我再看看论文、处理下比较紧急的事情,周末送他去辅导班后会约人在附近的咖啡厅聊聊,可能特别愿意干这一行吧,整体感觉精力还不错,呵呵。


本文为《华为人》版权所有,未经允许不得转载。如需转载请联系编辑部hwrb@huawei.com


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。