A. 從編程語言上看,如何選擇區塊鏈應用開發平台。
如果是我 我選擇ASCH,只做應用層當然越容易上手越好
B. 區塊鏈用什麼編程開發語言
Go語言+區塊鏈培訓課程:
從語言本身特點來看,Go 是一種非常高效的語言,高度支持並發性,Go 語言的本身,它更注重的是分布式系統,並發處理相對還是不錯的,比如廣告和搜索,那種高並發的伺服器。
Go語言優點:
性能優秀,可直接編譯成機器碼,不依賴其他庫,Go 極其地快。其性能與 Java 或 C++相似。
語言層面支持並發,這個就是Go最大的特色,天生的支持並發,Go就是基因裡面支持的並發,可以充分的利用多核,很容易的使用並發。
內置runtime,支持垃圾回收,這屬於動態語言的特性之一吧,雖然目前來說GC不算完美,但是足以應付我們所能遇到的大多數情況,特別是Go1.1之後的GC。
簡單易學,Go語言的作者都有C的基因,那麼Go自然而然就有了C的基因,那麼Go關鍵字是25個,但是表達能力很強大,幾乎支持大多數你在其他語言見過的特性:繼承、重載、對象等。
豐富的標准庫,Go目前已經內置了大量的庫,特別是網路庫非常強大,我最愛的也是這部分。
內置強大的工具,Go語言裡面內置了很多工具鏈,最好的應該是gofmt工具,自動化格式化代碼,能夠讓團隊review變得如此的簡單,代碼格式一模一樣,想不一樣都很困難。
跨平台編譯,快速編譯,相較於 Java 和 C++呆滯的編譯速度,Go 的快速編譯時間是一個主要的效率優勢
Go語言缺點:
軟體包管理:Go 語言的軟體包管理絕對不是完美的。默認情況下,它沒有辦法制定特定版本的依賴庫,也無法創建可復寫的 builds。相比之下 Python、Node 和 Ruby 都有更好的軟體包管理系統。然而通過正確的工具,Go 語言的軟體包管理也可以表現得不錯。
缺少開發框架:Go 語言沒有一個主要的框架,如 Ruby 的 Rails 框架、Python 的 Django 框架或 PHP 的 Laravel。這是 Go 語言社區激烈討論的問題,因為許多人認為我們不應該從使用框架開始。在很多案例情況中確實如此,但如果只是希望構建一個簡單的 CRUD API,那麼使用 Django/DJRF、Rails Laravel 或 Phoenix 將簡單地多。
異常錯誤處理:Go 語言通過函數和預期的調用代碼簡單地返回錯誤(或返回調用堆棧)而幫助開發者處理編譯報錯。雖然這種方法是有效的,但很容易丟失錯誤發生的范圍,因此我們也很難向用戶提供有意義的錯誤信息。錯誤包(errors package)可以允許我們添加返回錯誤的上下文和堆棧追蹤而解決該問題。
另一個問題是我們可能會忘記處理報錯。諸如 errcheck 和 megacheck 等靜態分析工具可以避免出現這些失誤。雖然這些解決方案十分有效,但可能並不是那麼正確的方法。
C. 區塊鏈究竟是什麼
什麼是區塊鏈?
區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。所謂共識機制是區塊鏈系統中實現不同節點之間建立信任、獲取權益的數學演算法 [1] 。
區塊鏈(Blockchain)是比特幣的一個重要概念,它本質上是一個去中心化的資料庫,同時作為比特幣的底層技術。區塊鏈是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一次比特幣網路交易的信息,用於驗證其信息的有效性(防偽)和生成下一個區塊。
區塊鏈誕生自中本聰的比特幣,自2009年以來,出現了各種各樣的類比特幣的數字貨幣,都是基於公有區塊鏈的。
數字貨幣的現狀是百花齊放,列出一些常見的:bitcoin、litecoin、dogecoin、dashcoin,除了貨幣的應用之外,還有各種衍生應用,如Ethereum、Asch等底層應用開發平台以及NXT,SIA,比特股,MaidSafe,Ripple等行業應用。
2016年1月20日,中國人民銀行數字貨幣研討會宣布對數字貨幣研究取得階段性成果。會議肯定了數字貨幣在降低傳統貨幣發行等方面的價值,並表示央行在探索發行數字貨幣。中國人民銀行數字貨幣研討會的表達大大增強了數字貨幣行業信心。這是繼2013年12月5日央行五部委發布關於防範比特幣風險的通知之後,第一次對數字貨幣表示明確的態度。 [4]
2016年12月20日,數字貨幣聯盟——中國FinTech數字貨幣聯盟及FinTech研究院正式籌建,火幣是聯合發起單位之一。 [5]
可以用區塊鏈的一些領域可以是:
▪ 智能合約
▪ 證券交易
▪ 電子商務
▪ 物聯網
▪ 社交通訊
▪ 文件存儲
▪ 存在性證明
▪ 身份驗證
▪ 股權眾籌
我們可以把區塊鏈的發展類比互聯網本身的發展,未來會在internet上形成一個比如叫做finance-internet的東西,而這個東西就是基於區塊鏈,它的前驅就是bitcoin,即傳統金融從私有鏈、行業鏈出發(區域網),bitcoin系列從公有鏈(廣域網)出發,都表達了同一種概念——數字資產(DigitalAsset),最終向一個中間平衡點收斂。
區塊鏈的進化方式是:
▪ 區塊鏈1.0——數字貨幣
▪ 區塊鏈2.0——數字資產與智能合約
▪ 區塊鏈3.0——各種行業分布式應用落地
區塊鏈分為三類,在貨幣發行的《區塊鏈:定義未來金融與經濟新格局》 [2] 一書中就有詳細介紹,
其中混合區塊鏈和私有區塊鏈可以認為是廣義的私鏈:
公有區塊鏈(PublicBlockChains)
公有區塊鏈是指:世界上任何個體或者團體都可以發送交易,且交易能夠獲得該區塊鏈的有效確認,任何人都可以參與其共識過程。公有區塊鏈是最早的區塊鏈,也是應用最廣泛的區塊鏈,各大bitcoins系列的虛擬數字貨幣均基於公有區塊鏈,世界上有且僅有一條該幣種對應的區塊鏈。
聯合(行業)區塊鏈(ConsortiumBlockChains)
行業區塊鏈:由某個群體內部指定多個預選的節點為記賬人,每個塊的生成由所有的預選節點共同決定(預選節點參與共識過程),其他接入節點可以參與交易,但不過問記賬過程(本質上還是託管記賬,只是變成分布式記賬,預選節點的多少,如何決定每個塊的記賬者成為該區塊鏈的主要風險點),其他任何人可以通過該區塊鏈開放的API進行限定查詢。
私有區塊鏈(privateBlockChains)
私有區塊鏈:僅僅使用區塊鏈的總賬技術進行記賬,可以是一個公司,也可以是個人,獨享該區塊鏈的寫入許可權,本鏈與其他的分布式存儲方案沒有太大區別。(Dec2015)保守的巨頭(傳統金融)都是想實驗嘗試私有區塊鏈,而公鏈的應用例如bitcoin已經工業化,私鏈的應用產品還在摸索當中。
D. 區塊鏈技術包含的幾種基礎技術是什麼
區塊鏈1.0時代即是數字貨幣的時代,技術基礎為:
1. 以區塊為單位的連庄數據塊結構
2. 全網共享賬本
3. 非對稱加密
4. 源代碼開源
區塊鏈2.0時代技術基礎:
1. 智能合約;是區塊鏈系統中的應用,是以編碼的可自動運行的的業務邏輯,通常有自己代幣和專用開發語言;
2. DAPP:包含用戶接賣弄的應用,包括但不限於各種加密貨幣,如以太坊錢包;
3. 虛擬機:用於執行智能合約編譯後的代碼,虛擬機是圖靈完備的。
隨著區塊鏈技術的應用和不斷深入,區塊鏈3.0時代已經來臨,從各行各業的運轉背後都可以看到區塊鏈協作運轉的模式,因此區塊鏈必將廣泛而深刻的改變人類的生活方式,因此整個生活服務將進入區塊鏈時代。在這個互聯網發展過程當中,區塊鏈+實體行業、區塊鏈電商、區塊鏈社群運營都可以運用到區塊鏈技術。
當然3.0伴隨著現代密碼學發展才產生的,現今應用的密碼學是20年前的的密碼學成果,因此要將區塊鏈技術應用於更多參與場景,特別是應用於互聯網經濟等方面,現有的加密技術是否滿足需求還需要更多的驗證,需要更深入的整合密碼學前沿技術,不斷創新。