區(qū)塊鏈面試:區(qū)塊鏈專家所必備的技術(shù)

背景

區(qū)塊鏈面試是一個挺新的話題骏令,主要得益于區(qū)塊鏈行業(yè) 2018 年成為風(fēng)口行業(yè)耳标,不僅曝光度激增而且人才市場火爆趋惨,而我在年后也是接觸了許多來參加面試的候選人,大部分是沒有區(qū)塊鏈從業(yè)經(jīng)驗的榜轿,為此我當(dāng)時寫了一篇《尋找適合戀愛的區(qū)塊鏈工程師》,從面試官的角度來講了如何尋找一個合格的候選人朵锣。

從經(jīng)歷來看谬盐,這個行業(yè)非常之新興,并且人才也相當(dāng)匱乏诚些。作為我針對面試寫的第二篇文章飞傀,我決定從一個從技術(shù)的角度來詳盡闡述要成為一個區(qū)塊鏈專家所必備的技術(shù)。

前言

說到技術(shù)诬烹,我所指的主要還是研發(fā)砸烦。由于我負(fù)責(zé)的是技術(shù)崗,因此我對于技術(shù)上要求會比較嚴(yán)格(嚴(yán)格并不等于高)绞吁,簡單來說就是幢痘,基礎(chǔ)知識需要十分扎實。許多過來參加區(qū)塊鏈工程師面試的同學(xué)家破,大部分人給我的印象是颜说,看過一點介紹區(qū)塊鏈知識的書籍,問一點淺顯的知識是能夠答得上來汰聋,但是稍微具體一點的门粪,就會變得含糊不清了。在我看來烹困,區(qū)塊鏈所要求的知識并非什么特殊的或者新興的知識玄妈,除了密碼學(xué)領(lǐng)域的知識需要專門了解之外,其他知識和技能幾乎都是一些比較通用的網(wǎng)絡(luò)開發(fā)核心知識韭邓,如果是從事網(wǎng)絡(luò)服務(wù)端相關(guān)開發(fā)的措近,可能會對這部分知識比較熟悉。

由于區(qū)塊鏈整個行業(yè)涉及到的范圍非常廣泛女淑,下到各種基礎(chǔ)設(shè)施瞭郑,上到各種上層應(yīng)用,它們對技能的要求范圍是不一樣的鸭你。根據(jù)我的經(jīng)驗屈张,大致把區(qū)塊鏈開發(fā)分為兩個大的部分:技術(shù)層和應(yīng)用層擒权,以便候選人根據(jù)自己以往的專業(yè)技能背景選擇自己合適的領(lǐng)域。

一阁谆、核心層

核心層是區(qū)塊鏈最下面的一層碳抄,這一層是底層技術(shù)與基礎(chǔ)設(shè)施的開發(fā)。我們可以把這一層比作操作系統(tǒng)的內(nèi)核场绿,而應(yīng)用層則是在操作系統(tǒng)之上構(gòu)建各種軟件剖效。比如我們最常見的比特幣網(wǎng)絡(luò),它的核心技術(shù)就來源于它的共識機制(POW)焰盗,當(dāng)然璧尸,對于大部分鏈來說,共識的原理都是其最核心的部件熬拒。要構(gòu)建這樣的共識機制爷光,又需要更加底層的技術(shù)支持,比如:網(wǎng)絡(luò)通信澎粟,數(shù)據(jù)存儲蛀序,加密安全等等。所以活烙,這一層對于技術(shù)的內(nèi)涵要求比較高徐裸,這里的技術(shù)是一項綜合的能力,我把它總結(jié)為三個部分:理論基礎(chǔ)瓣颅、專業(yè)經(jīng)驗以及技術(shù)能力倦逐。

1)理論基礎(chǔ)

理論基礎(chǔ)主要是指分布式系統(tǒng)理論,如果是專業(yè)出身(比如計算機專業(yè)-分布式系統(tǒng)方向)宫补,或者有過從事過分布式數(shù)據(jù)庫檬姥,網(wǎng)絡(luò)等相關(guān)的經(jīng)驗,那么可能會對這一部分相對了解或熟悉粉怕,熟悉并深入理解分布式網(wǎng)絡(luò)的特點和各種算法是能夠在區(qū)塊鏈領(lǐng)域大有作為的前提之一健民。

這里,我簡單列舉需要掌握的一些分布式系統(tǒng)核心概念:

  • 全序/偏序贫贝,因果順序
  • 物理時鐘/邏輯時鐘
  • 兩階段算法(2PC)/三階段算法(3PC)
  • Safety && Liveness
  • FLP 不可能定理
  • Paxos/Multi-paxos
  • Raft/Multi-Raft
  • CAP 理論
  • 副本一致性秉犹,強/弱、最終一致性
  • 簡單哈希/一致性哈希
  • Base/ACID稚晚,分布式 ID 等等
  • BFT(Byzantine Fault Tolerance)

關(guān)于這部分內(nèi)容詳細(xì)介紹崇堵,可以參見我的系列文章之《區(qū)塊鏈核心技術(shù):分布式理論》。

2)專業(yè)經(jīng)驗

專業(yè)經(jīng)驗則是指對目前最主流的區(qū)塊鏈項目的掌握程度客燕,比如 Bitcoin鸳劳,Ethereum 等,了解賬戶模型也搓,智能合約等等赏廓,而且涵紊,不僅是它們的運行原理,而且能在它們的基礎(chǔ)上持續(xù)改進(jìn)幔摸、開拓以及創(chuàng)新摸柄,比如對側(cè)鏈,輕節(jié)點既忆、分布式存儲驱负,擴容方案等有一定的理解等等。

為此尿贫,我也做了一個列表电媳,主要展示對區(qū)塊鏈的專業(yè)經(jīng)驗的一些要求:

  • 目前區(qū)塊鏈主流共識算法之間的差異(比如 PBFT 與 POW 之間區(qū)別)
  • 聯(lián)盟鏈、公鏈及私鏈之間的區(qū)別庆亡,部署方式
  • 針對區(qū)塊鏈的攻擊方式:51%算力攻擊,Sybil 攻擊捞稿,Eclipse 攻擊又谋,DDos 攻擊
  • P2P 網(wǎng)絡(luò)通信模式(Gossip,Totem娱局,DHT 等)
  • Merkle Tree 數(shù)據(jù)結(jié)構(gòu)
  • Bitcoin UTXO 模型彰亥,以太坊轉(zhuǎn)賬流程(GAS 計算,Nonce 值等等)
  • 以太坊智能合約的編寫衰齐,Solidity 相關(guān)知識
  • 密碼學(xué)(公鑰/私鑰任斋,ECDSA,RSA耻涛,哈希算法)废酷,簽名,多重簽名抹缕,盲簽名等等
  • 以太坊協(xié)議 ERC20 ERC721 ERC223 ERC875
  • 比特幣(P2SH 地址澈蟆,交易腳本等)

這部分內(nèi)容可以詳見我的系列文章之《區(qū)塊鏈核心技術(shù):專業(yè)經(jīng)驗》。

3)技術(shù)準(zhǔn)備

最后卓研,技術(shù)能力則是一項通用能力趴俘,是網(wǎng)絡(luò)編程,內(nèi)存控制奏赘,操作系統(tǒng)寥闪,編解碼,密碼學(xué)磨淌,異步編程等等開發(fā)功底的一個綜合考核疲憋。它是一個日積月累的能力,扎實的技術(shù)背景可以讓我們快速適應(yīng)區(qū)塊鏈底層的開發(fā)伦糯。

為此柜某,我列舉了一些比較核心的研發(fā)能力和技術(shù)準(zhǔn)備:

  • 數(shù)據(jù)結(jié)構(gòu)(二叉樹嗽元,trie 樹,數(shù)組喂击,結(jié)構(gòu)體/類 等等)
  • 算法(回溯/遞歸剂癌,字符串編碼,排序翰绊,搜索等等)
  • 鎖(原子鎖佩谷,互斥鎖/自旋鎖),死鎖檢測监嗜,內(nèi)存泄露檢測
  • 多線程編程(共享內(nèi)存谐檀,線程/進(jìn)程/協(xié)程),用戶態(tài)/內(nèi)核態(tài)
  • 同步裁奇、異步桐猬,阻塞/非阻塞,多路復(fù)用 I/O
  • 異步編程/響應(yīng)式編程范式刽肠,事件驅(qū)動
  • 網(wǎng)絡(luò)編程:TCP/IP/UDP 協(xié)議溃肪,time_wait 狀態(tài),socket/select/epoll, C10k 問題等
  • 服務(wù)器編程:熟悉 Linux 編程音五,系統(tǒng)資源(如:cpu/io, disk usage 等)
  • HTTP 協(xié)議惫撰,RPC 通信,負(fù)債均衡等等

這部分內(nèi)容可以想見我的系列文章之《區(qū)塊鏈核心技術(shù):技術(shù)準(zhǔn)備》躺涝。

2厨钻、應(yīng)用層

應(yīng)用層是區(qū)塊鏈最重要的一層,也是區(qū)塊鏈行業(yè)能蓬勃和持續(xù)發(fā)展的力量來源坚嗜。應(yīng)用層主要涉及的是區(qū)塊鏈產(chǎn)品夯膀,我們常見的有比如:數(shù)字錢包(imToken),分布式交易所(Cosmos惶傻,bitshare)棍郎,瀏覽器插件(MetaMask),區(qū)塊鏈游戲(CryptoKitties, FOMO3D)银室,保險產(chǎn)品等等涂佃。

開發(fā)這些應(yīng)用級別的產(chǎn)品,通常是與底層的區(qū)塊鏈系統(tǒng)進(jìn)行交互蜈敢,因此辜荠,并不需要我們對區(qū)塊鏈底層技術(shù)達(dá)到非常專業(yè)的掌握。但是需要我們對區(qū)塊鏈的核心概念有了解抓狭,以便我們能與鏈的開發(fā)者能在同一語言上進(jìn)行溝通而不至于誤解伯病。

當(dāng)然,應(yīng)用層的開發(fā)對技術(shù)的要求也是共同的,它雖然沒有核心層對技術(shù)能力要求的那么高午笛,但是其更加側(cè)重對創(chuàng)新和落地

我會通過分析幾個典型區(qū)塊鏈應(yīng)用惭蟋,來展示思路而不是技術(shù)本身在應(yīng)用層所展現(xiàn)的強大能量和生命力。

這部分內(nèi)容可以詳見我的系列文章值《區(qū)塊鏈核心技術(shù):編寫應(yīng)用》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末药磺,一起剝皮案震驚了整個濱河市告组,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌癌佩,老刑警劉巖木缝,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異围辙,居然都是意外死亡我碟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門姚建,熙熙樓的掌柜王于貴愁眉苦臉地迎上來矫俺,“玉大人,你說我怎么就攤上這事桥胞】沂兀” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵贩虾,是天一觀的道長。 經(jīng)常有香客問我沥阱,道長缎罢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任考杉,我火速辦了婚禮策精,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘崇棠。我一直安慰自己咽袜,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布枕稀。 她就那樣靜靜地躺著询刹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪萎坷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音澳淑,去河邊找鬼。 笑死量窘,一個胖子當(dāng)著我的面吹牛忽孽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播厘线,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼造壮,長吁一口氣:“原來是場噩夢啊……” “哼耳璧!你這毒婦竟也來了展箱?” 一聲冷哼從身側(cè)響起混驰,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎栖榨,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體满粗,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡映皆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年准脂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沟饥。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡贤旷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出艾杏,到底是詐尸還是另有隱情购桑,我是刑警寧澤氏淑,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布假残,位于F島的核電站辉懒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏眶俩。R本人自食惡果不足惜颠印,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一体啰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嗽仪,春花似錦柒莉、人聲如沸闻坚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至雳殊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窗轩,已是汗流浹背夯秃。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人介陶。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓色建,卻偏偏與公主長得像,于是被迫代替她去往敵國和親箕戳。 傳聞我的和親對象是個殘疾皇子玻墅,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容