区块链以中本聪的白皮书《Bitcoin: A Peer-to-Peer Electronic Cash System》作为开篇起点,拉开了P2P时代的互联网新世界。笔者好奇的地方是这个行业里面哪种技术会被受欢迎并大量应用,方便各类技术人员梳理职场规划,在重要的技术上投入资源,以期为未来打造一个更好的职场发展前景做准备。
中本聪如何只是丢出来一份白皮书,大家估计都不会理睬。正因为他还放出了一份可以跑的代码,所以才能把这个泡沫打开。
BitCoin 评级:AAAAA 技术栈:C++
项目地址:
https://github.com/bitcoin/bitcoin
采用C++技术实现。如果你听过业界大佬对BTC的赞誉是说它就是数字时代的比特黄金,那么这套代码就是物料,没有这些代码的支撑也无法说明区块链技术的神秘意义。当然,一套破代码堆在那里,没有社区的参与,也是死代码。所以,区块链项目bitcoin还紧跟时代潮流,提供了Bitcoin Improvement Proposals计划,熟悉社区开发的知道,这种任何人都可以提意见的方式非常能吸引大牛的参与,应该每一个世界级的大牛都有一颗改变世界的心。所以,国内除了币圈那些成功老板对区块链哲学的鼓吹之外,你真不要小看区块链技术的核心能力,这里的发展真的是一天比的上互联网一年的推进。所以,从这个意义上来说,投入点精力研究研究bitcoin的代码是正本清源的区块链技术知识。当然如何哪位大牛能庖丁解牛的讲解这方面内容就是业界共识的事情了。
go-ethereum 评级:AAAA 技术栈:Golang
以太坊项目是内容更佳丰富的区块链项目,对于小白也是可以从这个项目看起的。这个项目是传奇少年VITALIK BUTERIN的大作,因为多人传播,国内的布道者已经给他封号,V神。但此人的开发能力和Linux的开山泰斗Linus比起来可能差距十外八千里,不能同日而语。但少年对以太坊做出的重大布道贡献和开山力作仍然可以匹配中国社区追随者的崇拜。以太坊的版本有很多,其中以golang版本最为流行,这也切合最近几年golang语言的爆发。所以这个项目非常知道大家深入学习和钻研,这里聚合了众多开发者的讨论和参与。并且效仿BTC,以太坊也有Ethereum Improvement Proposal,让众多想法和研究可以提上日程并加速迭代。
除此之外,大量的新项目在融入这个区块链社区,目前创业项目中以Java语言+React Native前端为基础构建的团队最为流行。技术选型是对团队组建最重要的考虑因素,目前社区这块并没有太多的主流意见,以短平快的方式推出项目是最迫切的需求,所以从语言群众基础来看,Java语言是最保守也是最能获取开发的选择。主流的Java技术栈也以Spring技术栈为主流,新入手的同行可以快速的结合自己的背景快速切入。以我的以往经验来看,这块业界的思考不多,采用的方式是凭借以往经验来判断。区块链社群本身并没有特别成功的开源项目来证明那种语言是最合适区块链技术的。80%的开发在做区块链技术周边的工作。所以以Java语言作为载体来支持区块链技术的运营是当前最佳的选择。随着JDK 11的发布,Java语言并没有以前那么的难写,大量的经验可以参考借鉴。并且还出现了Kotlin这样的变种java语言来助推语言技术栈的变化,作为业界的开发者是可以多关注的。
除此之外,因为涉及前端的比较多(基本上可以认为Javascript是世界上最通用的语言之一了),和区块链交互的项目中出现了明星项目:
ethereum/web3.js 评级:AAA 技术栈:Javascript
https://github.com/ethereum/web3.js/
还有编写以太坊Dapp的语言还出来了:
ethereum/solidity 评级:AAA 技术栈:C++
https://github.com/ethereum/solidity
Solidity为什么这么难写,我认为部分原因是太类似javascript了,开发人员无法很好的掌握它。当然这里只是一家之言,需要你好好的体会。
此外,因为涉及到大量的行情数据,所以类似大数据分析的需求也在区块链行业有大量现实需求,这方面透明的区块链数据富矿已经在哪里,基本上目前行业的行情App也是最活的,但是大家的深入并没有太多解决,仅仅是局限在一些表明的分析。因为数据挖掘的技巧性不高,导致大家都在随大溜的复制实现。从这块来说,真正能冷静思考并提供有价值数据的团队或者App我还没有看到。在更近一步,大量的量化分析的需求也是存在的,因为这个市场是自由市场,不管行情好坏,大家都能通过量化得到一份自己的收益。有核心能力的团队,通过把核心技术量化出来,可能给这是社区带来一股清流。语言栈这块,我看到有Python的居多。数据挖掘这块的灵活性,和python语言是完全匹配的,可以关注一下。
最后,对于公链这块,各种底层的语言都涌现出来,有C,C++,Java,Ruby, Python,Rust, Golang,Javascript等,但就目前来看,系统级语言中,只有golang是最符合当前分布式系统的开发的,所以把精力放在大趋势下是不会浪费机会的。
领取专属 10元无门槛券
私享最新 技术干货