目前愈來愈多的人已經進入或準備進入區塊鏈領域,過程當中難免抱着各樣的疑慮和問題。想起本身以前用幾年時間,從「略懂」區塊鏈到all in,一樣也經歷着相似的心路歷程,這個領域確實是有一些門檻的,但萬事開頭難,摸索路上還遠不止八十一難,這裏梳理幾個概要性的困難和感悟,謹做分享。javascript
「我是誰」、「我在哪」、「我要去哪兒」,一切都源於這麼一個哲學三問。區塊鏈是什麼?區塊鏈究竟能作什麼?爲何區塊鏈這麼火?不用區塊鏈行不行?這些問題都充滿了終極拷問的意味。html
其實很難完全回答這些問題,由於,並無標準答案。全部創新的前沿的事物大抵如此,在質疑和動盪中發展,在黑暗和荒蕪中摸索,精華和糟粕齊飛,綠洲與韭菜一色,直到引爆點迸發。若是由於充滿疑慮而左右搖擺,或者裹足不前,那麼在從事相關工做研究的過程,體驗會很糟糕,結果也不會好。java
分享一點我的體會:區塊鏈領域從一開始就吸引了全世界無數的聰明人,不乏極客、學者、大師, 他們進行了大量的技術和社會實踐。這個領域蘊含着數學、計算機、密碼學、博弈論、經濟學、社會學等學科的精華,這是一個智力飛揚、思想激盪的世界。目前,整個行業更是得到史無前例的關注,包括政府、各行業巨頭都在關注,大量注意力和資源持續涌入,區塊鏈迎來了「最好的時節」。mysql
在持續進化、結構多元的現代社會裏,分佈式商業的理念已經成爲現實。人和人、機構和機構之間會產生更多的聯繫和協做,信息和價值在新型網絡模式中快速流轉,做爲分佈式技術表明之一的區塊鏈,頗有機會成爲新一代基礎設施和創新的據點。git
因此,方向並非問題。即便你不把區塊鏈當作「信仰」,只看這個充滿魅力的技術自己,以及區塊鏈與實體經濟深度融合的機遇,仍是能夠給咱們帶來信心。github
在哲學三問中,「區塊鏈是什麼」是最晦澀的問題,區塊、交易、帳戶、共識、智能合約、雙花...這都是什麼?!我本身在剛接觸區塊鏈時,也有一種被顛覆了認知的感受。有一些介紹區塊鏈的文章,每每着眼在區塊鏈的社會和經濟效能,從價值理念講起,這些當然是必要的,但俗話說「科學要定性更要定量」,做爲工程技術人員,咱們更應該關注的是,區塊鏈裏的知識點、基本原理,進而澄清術語、把握架構、處理邏輯和程序流程。算法
前面提到,區塊鏈蘊含着大量學科的精華,同時,行業也有一句俗語:「區塊鏈並無發明什麼新技術,都是成熟技術的組合」。sql
區塊鏈讓人以爲認知困難,是由於它就像個「筐」,什麼均可以往裏裝,牽涉的技術繁雜,組合方式卻和常規技術套路不一樣。因此學習者必定程度上先要放空本身,避免讓本身在原有領域的思惟定勢干擾了學習,在豐富本身知識面的同時,接受區塊鏈的「羣體共識」、「防止篡改」、「不能否認」、「高度一致性」等神奇邏輯,而後潛心進去看每個獨立的概念時,並不會以爲遙不可及。docker
突破概念之難的要點,是排除來自各類渠道的噪聲,有些信息似是而非,或者是各說各話,把同一件事用N種話術講出來,混淆了定義,模糊了本質,於事無補的同時還帶來更多疑問。靠譜的方法是着重閱讀權威媒體的正規內容,關注一些主流區塊鏈項目的文檔庫,認真地、全面地通讀技術文檔,而後找一個本身感興趣的領域(如共識算法),結合自身經驗知識進行對照研究。編程
同時,也能夠加入活躍的開源社區和技術圈子,和有經驗的人多討論,敢於把問題拋出來,挨個術語,挨個流程討論透徹。咱們在研究區塊鏈的初期,團隊常常就一個概念的定義咬文嚼字地爭論好久,最後愉快地達成共識時,你們都以爲神清氣爽。
在概念階段,切忌求全責備,不要變成資料收集機,一口吃不成胖子,基於靠譜的學習資料,澄清基本概念,在實踐中去驗證和發掘新的概念,創建發現問題、解決問題的方法論,慢慢就能觸類旁通,說不定某一天就能醍醐灌頂了。
好吧,哲學和概念問題終於不會阻礙咱們學習的腳步了,那麼怎麼繼續「二十一天入門到精通」之路。做爲技術人員,遇到新的技術平臺、軟件體系、編程語言...那固然是:「不要慫,就是幹!」
幾年前,咱們剛開始研究區塊鏈時,通讀過幾個國外流行的開源區塊鏈項目代碼,並搭建測試網進行試驗剖析,分析如何讓這些平臺能在複雜的金融業務上用起來。當時有個困惑,若是直接基於底層平臺開發應用,當須要實現更多功能時,是否是就得直接修改底層平臺代碼。
而當看到「智能合約」這個東西時,思路一下就打開了:採用智能合約做爲中間層,在合約裏編寫業務邏輯,併爲調用者定義清晰的功能接口,這樣,業務能夠很好和底層解耦,而底層平臺則定位成強大的引擎,經過架構的解耦,使得整個開發過程變得清晰合理、輕鬆愉快,感受就像是從「C/S」架構到「B/S」架構的演變,多年互聯網海量服務開發的手感又回來了。
另外,咱們以爲當時的開源項目主要是公鍊形態,在安全可控以及合規方面考慮沒有那麼周全,並不適合金融場景使用。
那麼,沒有趁手的平臺,就想辦法造一個。今後,深耕底層技術、迭代應用驗證的漫漫之路開啓了。這個過程也和開源社區一衆夥伴創建了緊密的合做,正是「來自開源並回饋開源」,通過開源工做組幾年的打磨,FISCO BCOS已是一個全面開源、安全可控、高速穩定、易用友好的金融級底層技術平臺,面向金融和廣大的產業領域,提供豐富的功能和各類操做工具。豐富全面的文檔能夠幫助開發者從快速入門到精通,總體的技術門檻和開發成本變得史無前例的低。
有了基礎的底層平臺以後,下載、安裝、配置、運行、閱讀使用手冊、寫hello world和業務應用、Debug和分析日誌...都是step by step的工做了。
咱們目標是,用戶在幾分鐘內,用一鍵安裝、docker、雲服務等方式順暢無錯地搭建出本身的區塊鏈網絡,在一週內經過學習就能夠寫出完整的智能合約,基於支持多款語言的SDK(Java、Node.js、Python、Go...還在增補中)實現業務邏輯,將業務發佈上線,保持穩定運行。
爲了這個目標,咱們一直在持續優化使用文檔、開發手冊,以及部署和運維工具。衆所周知 ,「碼農」們喜歡寫代碼,而寫註釋和文檔就比較痛苦了,爲了向社區交出一份漂亮的做業,你們傾盡了有生以來的語文水平,一次又一次修訂,硬是寫出了數十萬字的文檔庫。
同時,開源社區推出了一系列的線下線上沙龍、培訓,用社區的方式,進行普遍交流和技術支持。在屢次的現場學習和黑客鬆大賽中,咱們欣喜地看到,開發者用兩三天時間,就能基於FISCO BCOS實現他們精巧的項目設計,並且有開發者將其中和開源項目相關的優化貢獻到Github上。
到這個程度,即便是對沒有區塊鏈研發經驗的開發人員,快速上手已經沒有什麼問題,即使區塊鏈底層還像一個黑盒子有待探索,但就像在電腦上安裝App、使用mysql、tomcat之類的軟件同樣,足能夠用起來,感覺區塊鏈的魅力了。
對技術人員來講,探索技術的內涵永無止境:參與到區塊鏈底層開發,實現大型的區塊鏈應用,爲區塊鏈生態增長更多有用的特性、工具,對現有功能性能進行極致優化,這些都是進入「深水區」的路線。
以前提到,區塊鏈系統知識點和框架涉獵普遍,不管是知識面仍是深度都有至關的規模。量化一下的話,能夠套用一萬小時理論:若是天天學習工做8-10小時,一個月足以上手,一年可得小成,兩年輕車熟路,三年可成老司機……但老司機要行的前路依舊漫漫。咱們但願經過持續的科普、交流、實踐,去縮短這個過程,但畢竟學習就是一種最基本的「工做量證實」,並無什麼其餘捷徑。
學習方法,首先是大量的泛讀,天天早上一睜眼到晚上,均可以看到持續更新的行業新聞、公衆號文章、技術大咖博客、郵件組討論組、開源項目...閱讀的過程或許會遇到不一樣觀點的碰撞,須要去僞存真,在心態開放的同時,也保持本身的立場和方向。
而後是深刻的精讀,先選定一兩個感興趣的方向,研讀諸如密碼學、分佈式理論等方面的一些經典論文。FISCO BCOS的核心共識算法使用的PBFT和RAFT算法,是基於對原版論文的研究解讀,有了深刻的理解再去作的實現和優化。區塊鏈裏普遍用到密碼學原理,場景和邏輯多變,其原理有可能來自某一篇「頂會」論文。精讀深度原理剖析文章和學術論文,基於紮實的理論,才能根據本身的須要進行發揮,創造性地解決工程問題。
其實咱們的在線文檔已經有數十萬字的規模,各類信息應有盡有,技術社區會按期對熱點知識進行解讀,只要讀者認真閱讀在線技術文檔,接受公衆號的體貼推送,並動手進行更多的實踐,隨着時間推移,必能深度理解區塊鏈的技術原理,參透架構設計的前因後果,創建起鞏固的知識體系。
最後,精讀的對象,天然也包括源代碼,畢竟「Talk is cheap, show me the code」,區塊鏈開源項目代碼大可能是幾萬到幾十萬行的級別,閱讀代碼是達成庖丁解牛水準最直接的方法。在研究區塊鏈的歷程裏,咱們有許多長夜漫漫review代碼的日子,當讀到一眯眼,眼前都是代碼在飛,各類接口和對象翩翩起舞,既優雅又有規律,脈絡清晰,那種愉悅簡直難以名狀。這種體驗,以前有,以後也會繼續有。
若是已經深刻到了這個程度,領域門檻已經基本越過,考驗的就是開發者的腦力和體力了吧。
在過去幾年由於魚目混珠、政策法規、技術障礙等等一系列狀況,區塊鏈會遇到市場波動、應用落地延緩等挑戰。將來如何,雖然沒有預言家告訴咱們,但如今你們已經看到了趨勢。這又回到了第一個問題:「方向」,明確清晰的方向,不但能回答「要不要進入這個領域」,一樣也能回答「要不要堅持下去」。咱們一直在分佈式商業模式中開拓場景,爲公衆提供優質的服務,爲行業提供完備和好用的開源技術,這是從開始到如今,乃至將來堅持的方向,從未改變。
再具體一點,若是咱們已經用區塊鏈部署上線了業務系統,那麼影響系統生命週期和持續性的問題還有:可運維性、可升級性、兼容性、數據容量、業務性能容量等等。
屢次和社區朋友交流的過程,他們會提起一些問題,例如,新版本是否能兼容舊版本?隨着業務發展,愈來愈多的數據是否能夠遷移和重用?這都是用戶的真實聲音。咱們所構建的平臺,必定要走可持續發展的路線,重視軟件體系的兼容性,有合理的版本發佈節奏,以及周全的數據遷移維護策略,能夠更好地保護社區用戶利益,也使得用戶願意長期與社區共同發展。
另外,區塊鏈領域還在高速發展中,各類新技術、新思潮、新模式、新政策還在層出不窮,這個領域集結了世界上大量的聰明人,他們不但聰明並且努力,歷來都不閒着。因而在這個領域工做,天天都會有新的知識、新的刺激,這一方面是一種幸運,另外一方面,也會讓人極其焦慮。
如何去消化這麼海量的信息,如何去探索和掌握前沿的知識,如何更好知足高速發展帶來的用戶需求和新挑戰,如何作出卓有成效的突破性創新,這真的是一個創新和焦慮並存的世界,讓人慾罷不能。
做爲從業者,必須持續進行大量閱讀,在各類信息流裏過濾和吸取,不斷地概括/總結/思考/開拓;每個需求和用戶ISSUE反饋都是一個小目標,每發佈一個新版本都會是下一個版本的新起點。區塊鏈的世界和其餘技術領域沒有什麼不一樣,都必須保持敏銳和奔跑,保持好奇和謙遜,不斷學習和實踐,修訂短板尋求突破,將成果分享給社區。正如系統須要極大的彈性,人也須要極大的韌性。共勉。
推薦連接:
親朋好友都能看懂的區塊鏈: https://mp.weixin.qq.com/s/U0...
fisco-bcos開源項目github地址:
https://www.github.com/fisco-...
關鍵概念閱讀:
https://fisco-bcos-documentat...
FISCO BCOS零基礎入門,五步輕鬆構建應用: https://mp.weixin.qq.com/s/z2...
深刻區塊鏈底層平臺FISCO BCOS:
https://fisco-bcos-documentat...