自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

區(qū)塊鏈技術(shù)開(kāi)發(fā)入門(mén)篇

區(qū)塊鏈
本文將對(duì)區(qū)塊鏈開(kāi)發(fā)使用的技術(shù)、工具、語(yǔ)言、平臺(tái)做一次全景掃描,并對(duì)其應(yīng)用狀況進(jìn)行分類。新工具不僅提升效率,還可為前人所不能。

本文將對(duì)區(qū)塊鏈開(kāi)發(fā)使用的技術(shù)、工具、語(yǔ)言、平臺(tái)做一次全景掃描,并對(duì)其應(yīng)用狀況進(jìn)行分類。

新工具不僅提升效率,還可為前人所不能。作為活躍開(kāi)發(fā)領(lǐng)域之一,區(qū)塊鏈新技術(shù)、工具、平臺(tái)、語(yǔ)言與框架層出不窮,然而面對(duì)紛繁復(fù)雜的選擇,開(kāi)發(fā)者難以面面俱到。

[[253076]]

區(qū)塊鏈開(kāi)發(fā)——工具與框架篇

Ethers.js是針對(duì)以太坊錢(qián)包功能完整實(shí)現(xiàn)的工具包,其API文檔十分詳盡。

Truffle用于開(kāi)發(fā)合約工程的框架,是一套本地集成開(kāi)發(fā)環(huán)境和編譯測(cè)試調(diào)試工具。在Truffle提供的開(kāi)發(fā)環(huán)境里,整合了前端實(shí)例化合約的方法,可以很便捷的調(diào)用合約功能。另外還有各種box支持開(kāi)箱即用,整合了前端應(yīng)用調(diào)用合約工程的途徑。

Geth是一個(gè)以太坊客戶端,用Go語(yǔ)言編寫(xiě),它是目前最常用的以太坊客戶端,有著豐富的API,不過(guò)沒(méi)有可視化操作界面??梢耘cMist配合來(lái)進(jìn)行以太坊智能合約的開(kāi)發(fā)調(diào)試。

Solc是以太坊官方提供的Solidity編譯工具。

OpenZeppelin是已實(shí)現(xiàn)的一系列經(jīng)安全驗(yàn)證的合約工具和ERC標(biāo)準(zhǔn)合約庫(kù),開(kāi)發(fā)者可以通過(guò)繼承這些合約和libray方便的進(jìn)行合約開(kāi)發(fā)。

Mist是以太坊PC錢(qián)包,可以選擇連接不同的網(wǎng)絡(luò)。包含賬戶管理、交易、調(diào)用合約、部署合約以及部分DApp功能的調(diào)用。針對(duì)以上功能所提供的界面化操作極大的方便了普通用戶發(fā)送交易和調(diào)用合約。

使用Mist可以輕松連接以太坊測(cè)試網(wǎng)絡(luò),并支持開(kāi)發(fā)、部署、調(diào)試智能合約。對(duì)開(kāi)發(fā)者非常友好。

Remix是一個(gè)集成的編寫(xiě)部署調(diào)試合約的瀏覽器IDE,可以在remix提供的瀏覽器頁(yè)面快速編寫(xiě)部署合約,支持正式和測(cè)試網(wǎng)絡(luò)連接、靜態(tài)檢查、本地調(diào)試、交易記錄、事件和日志查詢等功能。另外結(jié)合Remixd提供的ws服務(wù)可以連接本地文件進(jìn)行開(kāi)發(fā)。對(duì)兼容以太坊智能合約的鏈平臺(tái)來(lái)說(shuō),Remix是非常好用的合約編輯、測(cè)試、部署工具,用戶眾多,已經(jīng)比較成熟。

Docker在區(qū)塊鏈中有多種用途,包括用于 BaaS 服務(wù)中作為實(shí)現(xiàn)動(dòng)態(tài)節(jié)點(diǎn)管理的基礎(chǔ)組件,在Fabric作為智能合約的運(yùn)行容器等。

RocksDB是一種NoSQL數(shù)據(jù)庫(kù),具有高性能和使用簡(jiǎn)單的特點(diǎn),許多區(qū)塊鏈項(xiàng)目都以 RocksDB 作為底層的存儲(chǔ)數(shù)據(jù)庫(kù)。

MyEtherWallet是一個(gè)很受歡迎的網(wǎng)頁(yè)版以太坊在線錢(qián)包,具有豐富的資產(chǎn)管理,賬戶備份功能。對(duì)于不想在本地安裝錢(qián)包客戶端,存儲(chǔ)全量區(qū)塊信息的用戶來(lái)說(shuō),是一個(gè)不錯(cuò)的選擇。曾經(jīng)因?yàn)镈NS劫持的問(wèn)題,導(dǎo)致一些用戶訪問(wèn)了釣魚(yú)網(wǎng)站,損失了大量以太幣資產(chǎn)。MyEtherWallet代碼開(kāi)源,它不會(huì)存儲(chǔ)用戶的錢(qián)包信息賬號(hào),就算有一天MyEtherWallet網(wǎng)站不能使用,你也可以通過(guò)錢(qián)包的私鑰和密碼在其他錢(qián)包上找回你的錢(qián)包賬號(hào),可放心使用。

MetaMask是一款在谷歌瀏覽器Chrome上使用的插件類型的以太坊錢(qián)包,該錢(qián)包不需要下載,只需要在谷歌瀏覽器添加對(duì)應(yīng)的擴(kuò)展程序即可,非常輕量級(jí),使用起來(lái)也非常方便,不需要下載全量區(qū)塊信息,也能讓小白用戶管理自己的數(shù)字資產(chǎn)。對(duì)于以太坊Dapp的普及和傳播起到了非常大的作用。當(dāng)年的以太貓游戲的火爆,Metamask功不可沒(méi)。

Embark目前集成了 EVM 區(qū)塊鏈(以太坊)、去中心化存儲(chǔ)(IPFS) 和去中心化通信平臺(tái)(Whisper 和 Orbit),部署支持 Swarm,方便開(kāi)發(fā)者搭建自己的區(qū)塊鏈應(yīng)用。

Ganache是Truffle官方推薦使用的客戶端之一(另一個(gè)是Truffle內(nèi)置的Truffle Develop)。

以太坊聯(lián)合創(chuàng)始人Gavin Wood認(rèn)為,所有人都從頭構(gòu)建網(wǎng)絡(luò)和共識(shí)代碼,非常浪費(fèi)精力。使用Substrate來(lái)構(gòu)建新項(xiàng)目,開(kāi)發(fā)者所要做的,就是在代碼調(diào)用少量函數(shù),就能獲得各種密碼學(xué)模板,以及定制、搭建和發(fā)布新區(qū)塊鏈所需要的方方面面,“Substrate為區(qū)塊鏈開(kāi)發(fā)者提供最大限度的自由,花費(fèi)最少的精力”。

關(guān)系數(shù)據(jù),如MySQL在一些區(qū)塊鏈系統(tǒng)中用作記錄系統(tǒng)對(duì)象的關(guān)聯(lián)關(guān)系,以便提供比NoSQL更豐富的查詢能力。但關(guān)系數(shù)據(jù)庫(kù)的靈活性、伸縮性不好,并不太適合區(qū)塊鏈這類數(shù)據(jù)單調(diào)遞增的場(chǎng)景,在數(shù)據(jù)量增長(zhǎng)上來(lái)之后對(duì)關(guān)系數(shù)據(jù)庫(kù)的運(yùn)維管理復(fù)雜,因此不推薦使用,建議考慮其它的替代方案。

曾經(jīng)廣泛使用的EtherScripter已被淘汰,Embark、Truffle是其替代者。

區(qū)塊鏈開(kāi)發(fā)——技術(shù)篇

GOSSIP是一種消息通訊算法,廣泛用于面向公鏈的區(qū)塊鏈系統(tǒng)中,包括比特幣、以太坊等,用于實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信。

POW是目前面向公鏈的眾多共識(shí)算法中唯一具有安全性證明的算法,在中本聰?shù)恼撐囊颜撟C,并且得到比特幣系統(tǒng)的運(yùn)行所證明。缺點(diǎn)是需要消耗算力。

PBFT是一種拜占庭容錯(cuò)的共識(shí)算法,適合用于面向聯(lián)盟鏈的場(chǎng)景,在許多區(qū)塊鏈項(xiàng)目上都采用了 PBFT 算法及其變種算法;但原始的 PBFT 算法本身不支持節(jié)點(diǎn)的動(dòng)態(tài)增加,在實(shí)際應(yīng)用時(shí)需要注意。

區(qū)塊鏈開(kāi)發(fā)——語(yǔ)言篇

Java作為一項(xiàng)成熟的通用語(yǔ)言,掌握開(kāi)發(fā)人員多,生態(tài)全面,被廣泛運(yùn)用于各類企業(yè)級(jí)系統(tǒng)、中間件的開(kāi)發(fā),在區(qū)塊鏈中也被一些項(xiàng)目用做系統(tǒng)開(kāi)發(fā)語(yǔ)言和合約開(kāi)發(fā)語(yǔ)言。

Go是高效快速的應(yīng)用邏輯開(kāi)發(fā)語(yǔ)言,編譯速度優(yōu)越,已經(jīng)有較為強(qiáng)大的基礎(chǔ)庫(kù),屬于新興語(yǔ)言,很被大家看好。作為一項(xiàng)通用語(yǔ)言,具有內(nèi)存安全、性能優(yōu)異的特點(diǎn),使用用作區(qū)塊鏈底層系統(tǒng)的開(kāi)發(fā)語(yǔ)言。由于Go簡(jiǎn)潔易用的語(yǔ)言特性、功能豐富的代碼庫(kù)以及優(yōu)異的性能表現(xiàn),很多區(qū)塊鏈底層是用Go語(yǔ)言實(shí)現(xiàn)的,Hyperledger Fabric等項(xiàng)目也主推用Go編寫(xiě)智能合約或DApp,可說(shuō)Go語(yǔ)言在區(qū)塊的應(yīng)用中已經(jīng)非常成熟。

Go的高性能,預(yù)編譯與語(yǔ)言學(xué)習(xí)的易上手性,使得它非常適合被用來(lái)編寫(xiě)區(qū)塊鏈項(xiàng)目。目前,大量的新的區(qū)塊鏈項(xiàng)目都是用Go來(lái)編寫(xiě)。

JavaScript開(kāi)發(fā)方便,很多區(qū)塊鏈項(xiàng)目支持。Lisk支持使用JavaScript來(lái)開(kāi)發(fā)智能合約,這使得智能合約的開(kāi)發(fā)對(duì)于Web開(kāi)發(fā)者來(lái)說(shuō),變得更加的簡(jiǎn)單。

Solidity是以太坊EVM虛擬機(jī)上編寫(xiě)智能合約的圖靈完備語(yǔ)言,也是當(dāng)前智能合約最實(shí)用和使用最廣泛的語(yǔ)言,語(yǔ)法類似JavaScript,適用于以太坊及其擴(kuò)展實(shí)現(xiàn),只能由 EVM 加載執(zhí)行。但受制于EVM包括以太坊本身的擴(kuò)展性不夠等設(shè)計(jì)缺陷,在開(kāi)發(fā)效率和運(yùn)行速度上有一定的限制。不過(guò)Solidity還在不斷的發(fā)展和更新,可以期待未來(lái)更優(yōu)的使用體驗(yàn),但如果用于正式的重要的業(yè)務(wù)中,需要謹(jǐn)慎考慮。

Rust作為一項(xiàng)通用語(yǔ)言,具有內(nèi)存安全、性能優(yōu)異的特點(diǎn),使用用作區(qū)塊鏈底層系統(tǒng)的開(kāi)發(fā)語(yǔ)言。已經(jīng)有一些區(qū)塊鏈項(xiàng)目采用了該語(yǔ)言作為開(kāi)發(fā)語(yǔ)言。但開(kāi)發(fā)人群還相對(duì)較少,選擇該語(yǔ)言還需要考慮開(kāi)發(fā)生態(tài)的成熟度。Rust在不影響性能的前提下提供的安全特性非常有吸引力,這些安全特性也很適用于區(qū)塊鏈開(kāi)發(fā)。如steem等區(qū)塊鏈項(xiàng)目用Rust開(kāi)發(fā),經(jīng)過(guò)適當(dāng)?shù)南拗坪笠策m用于智能合約開(kāi)發(fā)。Rust可以被C及其它多種語(yǔ)言輕松調(diào)用,且由于其高性能特性,非常適合被用來(lái)編寫(xiě)區(qū)塊鏈相關(guān)組件,比如可插拔密碼庫(kù)和共識(shí)機(jī)制。

作為一項(xiàng)有歷史的成熟的經(jīng)典語(yǔ)言,C++通常用于開(kāi)發(fā)偏底層的系統(tǒng),且不斷迭代升級(jí),引入新特性新思想,性能一直較好,但由于語(yǔ)言特性復(fù)雜,容易產(chǎn)生內(nèi)存安全的問(wèn)題,對(duì)開(kāi)發(fā)者要求高,在有其它內(nèi)存安全的語(yǔ)言可選擇的情況下,C++不是進(jìn)行區(qū)塊系統(tǒng)開(kāi)發(fā)的最優(yōu)選擇。EOS等項(xiàng)目是用C++開(kāi)發(fā)的,但由于其復(fù)雜性,使用時(shí)需要非常小心。

另外,學(xué)習(xí)曲線較陡,使得越來(lái)越多的新的區(qū)塊鏈項(xiàng)目不再使用C++語(yǔ)言來(lái)進(jìn)行編寫(xiě)。但是C++高性能和編譯特性,使得它仍然會(huì)在一些區(qū)塊鏈項(xiàng)目的底層開(kāi)發(fā)中發(fā)揮作用。

Vyper是新的以太坊語(yǔ)言,它為開(kāi)發(fā)者提供了Solidity的一種替代選擇。

已有項(xiàng)目采用Clojure編寫(xiě)合約解釋器,但學(xué)習(xí)曲線較為陡峭,現(xiàn)有開(kāi)發(fā)者中,熟練掌握的人相當(dāng)少,可能會(huì)面對(duì)缺人或維護(hù)困難的窘境。

Red擁有出色的表達(dá)及DSL能力,但項(xiàng)目仍在開(kāi)發(fā)中,基礎(chǔ)尚不完備。

區(qū)塊鏈開(kāi)發(fā)——平臺(tái)篇

迅雷鏈平臺(tái)(Thunder Chain)是高性能、高可靠性、開(kāi)發(fā)方便、技術(shù)支持完善的主鏈平臺(tái)。

EVM是以太坊上的智能合約引擎,用于執(zhí)行 Solidity 的智能合約,它是一個(gè)棧式虛擬機(jī),其安全性是還需要完善,眾多針對(duì)以太坊的攻擊方法都是由 EVM 本身的缺陷帶來(lái)的,雖然爆出的缺陷已經(jīng)大部分修復(fù),但畢竟EVM出現(xiàn)的時(shí)間相對(duì)還很短,所以還需更多時(shí)間來(lái)觀察其進(jìn)展。

和普通節(jié)點(diǎn)相比,Azure BaaS節(jié)點(diǎn)好處主要是,能讓開(kāi)發(fā)者快速建立自己所需的開(kāi)發(fā)環(huán)境,能幫助更快地驗(yàn)證自己的概念和模型,工具性更強(qiáng),便于創(chuàng)建、部署、運(yùn)行和監(jiān)控區(qū)塊鏈服務(wù)。但其實(shí)用性還有待驗(yàn)證。

Blockchain Testnet可用于測(cè)試和體驗(yàn)操作。允許DApp開(kāi)發(fā)者使用測(cè)試網(wǎng)絡(luò)方便的進(jìn)行開(kāi)發(fā)和調(diào)試,而不必?fù)?dān)心在主鏈上測(cè)試導(dǎo)致的費(fèi)用問(wèn)題。

Coinbase’s API的提供者Coinbase是全球用戶最多的交易所之一。

Tierion是將區(qū)塊鏈用于驗(yàn)證任何數(shù)據(jù)、文件或過(guò)程的平臺(tái),應(yīng)用場(chǎng)景包括文件存在性證明、審計(jì)跟蹤等,應(yīng)用場(chǎng)景有限,決定使用這個(gè)平臺(tái)之前請(qǐng)先評(píng)估是否跟自己的實(shí)際業(yè)務(wù)場(chǎng)景相匹配。

責(zé)任編輯:未麗燕 來(lái)源: BB財(cái)經(jīng)
相關(guān)推薦

2021-08-04 15:11:22

區(qū)塊鏈比特幣應(yīng)用

2016-09-06 17:43:12

SwiftCloudKit開(kāi)發(fā)

2015-07-30 09:43:10

獨(dú)立游戲開(kāi)發(fā)入門(mén)

2011-01-18 17:00:31

Postfix入門(mén)

2017-09-12 10:26:47

springbootmaven結(jié)構(gòu)

2009-06-15 17:22:36

JBoss Seam

2010-08-31 14:01:23

iPhone

2020-11-16 10:19:33

Java

2009-06-09 13:02:30

NetBeans使用教程

2014-06-06 09:46:52

SwiftSwift教程

2021-04-09 06:25:41

區(qū)塊鏈區(qū)塊鏈技術(shù)

2022-10-26 08:42:28

2021-04-28 08:35:52

區(qū)塊鏈技術(shù)開(kāi)發(fā)

2021-04-08 21:16:39

區(qū)塊鏈區(qū)塊鏈技術(shù)

2022-01-27 09:35:45

whiledo-while循環(huán)Java基礎(chǔ)

2020-11-13 07:22:46

Java基礎(chǔ)While

2012-01-17 10:47:07

jQuery

2022-03-28 09:31:58

for循環(huán)語(yǔ)句

2020-02-14 11:16:00

區(qū)塊鏈的醫(yī)學(xué)應(yīng)用

2018-03-27 09:52:30

區(qū)塊鏈數(shù)字貨幣比特幣
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)