以太坊賬戶和節點的區別
❶ ETH轉賬的2種方式的對比
web3j支持使用以太坊錢包文件(推薦)和乙太網客戶端管理命令來發起一筆交易。當你創建了一個擁有以太幣的賬戶後,你可以通過以下兩種交易機制,和以太坊網路(私網/公網)交易:
這里主要講一下 線下簽名交易(Offline transaction signing) 。線下簽名交易允許你使用web3j提供的錢包賬戶發起交易,你完全控制自己的私鑰,交易發送到網路上的其它節點並廣播。
線下簽名交易使用 RawTransaction 對象來完成,一共有如下幾步:
1、通過私鑰或密碼+錢包文件(keystore)來載入轉賬憑證Credentials
2、獲取發起轉賬賬戶的nonce 值,也就是第幾筆交易
3、創建 RawTransaction交易 對象
4、簽名 RawTransaction 對象,也就是對交易做簽名
5、發送交易( RawTransaction 對象)給節點處理。
6、獲取交易哈希值TxHash
以太坊實戰-再談nonce使用陷阱: https://blog.csdn.net/wo541075754/article/details/79054937
此外,還有一種簡單的轉賬方式
這種方式,不需要自己管理nonce。
這2種方式都是離線交易,先組裝交易,然後發送到鏈上。
參考:
https://docs.web3j.io/getting_started.html#transactions
https://www.jianshu.com/p/6650d2a3aea9
❷ 以太坊是什麼丨以太坊開發入門指南
以太坊是什麼丨以太坊開發入門指南
很多同學已經躍躍欲試投入到區塊鏈開發隊伍當中來,可是又感覺無從下手,本文將基於以太坊平台,以通俗的方式介紹以太坊開發中涉及的各晦澀的概念,輕松帶大家入門。
以太坊是什麼
以太坊(Ethereum)是一個建立在區塊鏈技術之上, 去中心化應用平台。它允許任何人在平台中建立和使用通過區塊鏈技術運行的去中心化應用。
對這句話不理解的同學,姑且可以理解為以太坊是區塊鏈里的Android,它是一個開發平台,讓我們就可以像基於Android Framework一樣基於區塊鏈技術寫應用。
在沒有以太坊之前,寫區塊鏈應用是這樣的:拷貝一份比特幣代碼,然後去改底層代碼如加密演算法,共識機制,網路協議等等(很多山寨幣就是這樣,改改就出來一個新幣)。
以太坊平台對底層區塊鏈技術進行了封裝,讓區塊鏈應用開發者可以直接基於以太坊平台進行開發,開發者只要專注於應用本身的開發,從而大大降低了難度。
目前圍繞以太坊已經形成了一個較為完善的開發生態圈:有社區的支持,有很多開發框架、工具可以選擇。
智能合約
什麼是智能合約
以太坊上的程序稱之為智能合約, 它是代碼和數據(狀態)的集合。
智能合約可以理解為在區塊鏈上可以自動執行的(由事件驅動的)、以代碼形式編寫的合同(特殊的交易)。
在比特幣腳本中,我們講到過比特幣的交易是可以編程的,但是比特幣腳本有很多的限制,能夠編寫的程序也有限,而以太坊則更加完備(在計算機科學術語中,稱它為是「圖靈完備的」),讓我們就像使用任何高級語言一樣來編寫幾乎可以做任何事情的程序(智能合約)。
智能合約非常適合對信任、安全和持久性要求較高的應用場景,比如:數字貨幣、數字資產、投票、保險、金融應用、預測市場、產權所有權管理、物聯網、點對點交易等等。
目前除數字貨幣之外,真正落地的應用還不多(就像移動平台剛開始出來一樣),相信1到3年內,各種殺手級會慢慢出現。
編程語言:Solidity
智能合約的默認的編程語言是Solidity,文件擴展名以.sol結尾。
Solidity是和JavaScript相似的語言,用它來開發合約並編譯成以太坊虛擬機位元組代碼。
還有長像Python的智能合約開發語言:Serpent,不過建議大家還是使用Solidity。
Browser-Solidity是一個瀏覽器的Solidity IDE, 大家可以點進去看看,以後我們更多文章介紹Solidity這個語言。
運行環境:EVM
EVM(Ethereum Virtual Machine)以太坊虛擬機是以太坊中智能合約的運行環境。
Solidity之於EVM,就像之於跟JVM的關系一樣,這樣大家就容易理解了。
以太坊虛擬機是一個隔離的環境,在EVM內部運行的代碼不能跟外部有聯系。
而EVM運行在以太坊節點上,當我們把合約部署到以太坊網路上之後,合約就可以在以太坊網路中運行了。
合約的編譯
以太坊虛擬機上運行的是合約的位元組碼形式,需要我們在部署之前先對合約進行編譯,可以選擇Browser-Solidity Web IDE或solc編譯器。
合約的部署
在以太坊上開發應用時,常常要使用到以太坊客戶端(錢包)。平時我們在開發中,一般不接觸到客戶端或錢包的概念,它是什麼呢?
以太坊客戶端(錢包)
以太坊客戶端,其實我們可以把它理解為一個開發者工具,它提供賬戶管理、挖礦、轉賬、智能合約的部署和執行等等功能。
EVM是由以太坊客戶端提供的。
Geth是典型的開發以太坊時使用的客戶端,基於Go語言開發。 Geth提供了一個互動式命令控制台,通過命令控制台中包含了以太坊的各種功能(API)。Geth的使用我們之後會有文章介紹,這里大家先有個概念。
Geth控制台和Chrome瀏覽器開發者工具里的面的控制台是類似,不過是跑在終端里。
相對於Geth,Mist則是圖形化操作界面的以太坊客戶端。
如何部署
智能合約的部署是指把合約位元組碼發布到區塊鏈上,並使用一個特定的地址來標示這個合約,這個地址稱為合約賬戶。
以太坊中有兩類賬戶:
· 外部賬戶
該類賬戶被私鑰控制(由人控制),沒有關聯任何代碼。
· 合約賬戶
該類賬戶被它們的合約代碼控制且有代碼與之關聯。
和比特幣使用UTXO的設計不一樣,以太坊使用更為簡單的賬戶概念。
兩類賬戶對於EVM來說是一樣的。
外部賬戶與合約賬戶的區別和關系是這樣的:一個外部賬戶可以通過創建和用自己的私鑰來對交易進行簽名,來發送消息給另一個外部賬戶或合約賬戶。
在兩個外部賬戶之間傳送消息是價值轉移的過程。但從外部賬戶到合約賬戶的消息會激活合約賬戶的代碼,允許它執行各種動作(比如轉移代幣,寫入內部存儲,挖出一個新代幣,執行一些運算,創建一個新的合約等等)。
只有當外部賬戶發出指令時,合同賬戶才會執行相應的操作。
合約部署就是將編譯好的合約位元組碼通過外部賬號發送交易的形式部署到以太坊區塊鏈上(由實際礦工出塊之後,才真正部署成功)。
運行
合約部署之後,當需要調用這個智能合約的方法時只需要向這個合約賬戶發送消息(交易)即可,通過消息觸發後智能合約的代碼就會在EVM中執行了。
Gas
和雲計算相似,佔用區塊鏈的資源(不管是簡單的轉賬交易,還是合約的部署和執行)同樣需要付出相應的費用(天下沒有免費的午餐對不對!)。
以太坊上用Gas機制來計費,Gas也可以認為是一個工作量單位,智能合約越復雜(計算步驟的數量和類型,佔用的內存等),用來完成運行就需要越多Gas。
任何特定的合約所需的運行合約的Gas數量是固定的,由合約的復雜度決定。
而Gas價格由運行合約的人在提交運行合約請求的時候規定,以確定他願意為這次交易願意付出的費用:Gas價格(用以太幣計價) * Gas數量。
Gas的目的是限制執行交易所需的工作量,同時為執行支付費用。當EVM執行交易時,Gas將按照特定規則被逐漸消耗,無論執行到什麼位置,一旦Gas被耗盡,將會觸發異常。當前調用幀所做的所有狀態修改都將被回滾, 如果執行結束還有Gas剩餘,這些Gas將被返還給發送賬戶。
如果沒有這個限制,就會有人寫出無法停止(如:死循環)的合約來阻塞網路。
因此實際上(把前面的內容串起來),我們需要一個有以太幣余額的外部賬戶,來發起一個交易(普通交易或部署、運行一個合約),運行時,礦工收取相應的工作量費用。
以太坊網路
有些著急的同學要問了,沒有以太幣,要怎麼進行智能合約的開發?可以選擇以下方式:
選擇以太坊官網測試網路Testnet
測試網路中,我們可以很容易獲得免費的以太幣,缺點是需要發很長時間初始化節點。
使用私有鏈
創建自己的以太幣私有測試網路,通常也稱為私有鏈,我們可以用它來作為一個測試環境來開發、調試和測試智能合約。
通過上面提到的Geth很容易就可以創建一個屬於自己的測試網路,以太幣想挖多少挖多少,也免去了同步正式網路的整個區塊鏈數據。
使用開發者網路(模式)
相比私有鏈,開發者網路(模式)下,會自動分配一個有大量余額的開發者賬戶給我們使用。
使用模擬環境
另一個創建測試網路的方法是使用testrpc,testrpc是在本地使用內存模擬的一個以太坊環境,對於開發調試來說,更方便快捷。而且testrpc可以在啟動時幫我們創建10個存有資金的測試賬戶。
進行合約開發時,可以在testrpc中測試通過後,再部署到Geth節點中去。
更新:testrpc 現在已經並入到Truffle 開發框架中,現在名字是Ganache CLI。
Dapp:去中心化的應用程序
以太坊社區把基於智能合約的應用稱為去中心化的應用程序(DecentralizedApp)。如果我們把區塊鏈理解為一個不可篡改的資料庫,智能合約理解為和資料庫打交道的程序,那就很容易理解Dapp了,一個Dapp不單單有智能合約,比如還需要有一個友好的用戶界面和其他的東西。
Truffle
Truffle是Dapp開發框架,他可以幫我們處理掉大量無關緊要的小事情,讓我們可以迅速開始寫代碼-編譯-部署-測試-打包DApp這個流程。
總結
我們現在來總結一下,以太坊是平台,它讓我們方便的使用區塊鏈技術開發去中心化的應用,在這個應用中,使用Solidity來編寫和區塊鏈交互的智能合約,合約編寫好後之後,我們需要用以太坊客戶端用一個有餘額的賬戶去部署及運行合約(使用Truffle框架可以更好的幫助我們做這些事情了)。為了開發方便,我們可以用Geth或testrpc來搭建一個測試網路。
註:本文中為了方便大家理解,對一些概念做了類比,有些嚴格來不是准確,不過我也認為對於初學者,也沒有必要把每一個概念掌握的很細致和准確,學習是一個逐步深入的過程,很多時候我們會發現,過一段後,我們會對同一個東西有不一樣的理解。
❸ 以太坊節點一年分紅多少
約60美元。根據最新的以太坊數據分析,以太坊節點每天的分紅大約是60美元。考慮到每天24小時不間斷運行,這個數字乘以一年的天數,意味著節點一年的分紅總額可觀。以太坊節點是指那些連接到以太坊網路並運行特定軟體的計算機或伺服器。
❹ 什麼是以太幣/以太坊ETH
以太幣(ETH)是以太坊(Ethereum)的一種數字代幣,被視為「比特幣2.0版」,採用與比特幣不同的區塊鏈技術「以太坊」(Ethereum),一個開源的有智能合約成果的民眾區塊鏈平台,由全球成千上萬的計算機構成的共鳴網路。開發者們需要支付以太幣(ETH)來支撐應用的運行。和其他數字貨幣一樣,以太幣可以在交易平台上進行買賣 。
溫馨提示:以上解釋僅供參考,不作任何建議。入市有風險,投資需謹慎。您在做任何投資之前,應確保自己完全明白該產品的投資性質和所涉及的風險,詳細了解和謹慎評估產品後,再自身判斷是否參與交易。
應答時間:2020-12-02,最新業務變化請以平安銀行官網公布為准。
[平安銀行我知道]想要知道更多?快來看「平安銀行我知道」吧~
https://b.pingan.com.cn/paim/iknow/index.html
❺ 大區塊鏈中節點有哪些類型,區塊鏈節點什麼意思
區塊鏈的鏈分類前兩天有朋友微信上問了許多關於區塊鏈的一些問題,其中一個問題就是區塊鏈的這個鏈怎麼去分類。區塊鏈目前可以分為四類:公鏈,私鏈,聯盟鏈以及側鏈。北京木奇移動技術有限公司,專業的區塊鏈外包開發公司,歡迎洽談合作。下面帶大家了解區塊鏈這幾個鏈各自的特點以及如何應用,希望對大家有所幫助。
1.公鏈——人人可參與
公鏈是指任何人都可讀取的、任何人都能發送交易且交易能獲得有效確認的、任何人都能參與其中共識過程的區塊鏈。
公鏈採取了採取工作量證明機制(POW)、權益證明機制(POS)、股份授權證明機制(DPOS)等方式,並將經濟獎勵和加密數字驗證結合了起來,並建立一個原則就是每個人從中可獲得的經濟獎勵與工作量成正比。這些區塊鏈通常被認為是完全去中心化的。
特性:
1.開源,由於整個系統的運作規則公開透明,這個系統是開源系統;2.保護用戶免受開發者的影響,在公有鏈中程序開發者無權干涉用戶,所以區塊鏈可以保護使用他們開發的程序的用戶;3.訪問門檻低,任何擁有足夠技術能力的人都可以訪問,也就是說,只要有一台能夠聯網的計算機就能夠滿足訪問的條件;4.所有數據默認公開,盡管所有關聯的參與者都隱藏自己的真實身份,這種現象十分的普遍。他們通過他們的公共性來產生自己的安全性,在這里每個參與者可以看到所有的賬戶余額和其所有的交易活動。
案例:公有鏈中有許多我們熟悉的身影:BTC,ETH,EOS,AE,ADA等
2.私鏈——權利掌握在少數人手裡
私鏈是指其寫入許可權僅在一個組織手裡的區塊鏈。讀取許可權或者對外開放,或者被任意程度地進行了限制。相關的應用囊括資料庫管理、審計、甚至一個公司,盡管在有些情況下希望它能有公共的可審計性,但在很多的情形下,公共的可讀性並非是必須的。
特性:
1.交易速度快,一個私鏈的交易速度可以比任何其他的區塊鏈都快,甚至接近了並不是一個區塊鏈的常規資料庫的速度。這是因為就算少量的節點也都具有很高的信任度,並不需要每個節點來驗證一個交易。2.隱私性好,給隱私更好的保障私有鏈使得在那個區塊鏈上的數據隱私政策像在另一個資料庫中似的完全一致;不用處理訪問許可權和使用所有的老辦法,但至少說,這個數據不會公開地被擁有網路連接的任何人獲得。3.交易成本低交易成本大幅降低甚至為零私有鏈上可以進行完全免費或者至少說是非常廉價的交易。如果一個實體機構控制和處理所有的交易,那麼他們就不再需要為工作而收取費用。
案例:Linux基金會、R3CEVCorda平台以及GemHealth網路的超級賬本項目(Hyperledgerproject)或在開發或在使用私鏈。
3.聯盟鏈——部分去中心化
聯盟鏈開放程度和去中心化程度是有所限制的。其參與者是被提前篩選出來或者直接指定的,資料庫的讀取許可權可能是公開的,也可能像寫入許可權一樣只限於系統的參與者。
特性:
1.交易成本低,交易只需被幾個受信的高算力節點驗證就可以了,而無需全網確認;2.節點容易連接,若是出了問題,聯盟鏈可以迅速通過人工干預來修復,並允許使用共識演算法減少區塊時間,從而更快完成交易;3.靈活,如果需要的話,運行私有區塊鏈的共同體或公司可以很容易地修改該區塊鏈的規則,還原交易,修改余額等。
案例:瑞波用於日韓國際匯款及日本本國銀行間匯款建立了聯盟鏈,同時之前火過一陣子的迅雷鏈克也是一種半開放的聯盟鏈。
4.側鏈——拓展協議
側鏈」從嚴格上來說,其本身並不是區塊鏈,可以理解為區塊鏈的一種擴展協議。早期「側鏈」是為了解決比特幣區塊鏈技術的限制問題。側鏈就像是一條條通路,將不同的區塊鏈互相連接在一起,以實現區塊鏈的擴展。側鏈完全獨立於比特幣區塊鏈,但是這兩個賬本之間能夠「互相操作」,實現交互。
特性:
1.獨立性,側鏈架構的好處是代碼和數據獨立,不增加主鏈的負擔,避免數據過度膨脹。側鏈有獨立的區塊鏈,有獨立的受託人或者說見證人,同時也有獨立的節點網路,就是說一個側鏈產生的區塊只會在所有安裝了該側鏈的節點之間進行廣播。2.靈活性,側鏈所有的區塊鏈參數是可以定製的,簡單的比如區塊間隔、區塊獎勵、交易費的去向等,高級用戶還可以修改共識演算法。
案例:LSK,RDN,ARDR等幣種是利用的側鏈技術。
對於目前整個數字貨幣領域而言,今年可能仍然是底層公有鏈項目的競爭大賽,原因是目前公鏈作為區塊鏈的基礎設施還是存在明顯的不足,尚且無法實現真正的安全、可靠和高效。這也明顯制約著整個區塊鏈產業的發展。
淺析FabricPeer節點
HyperledgerFabric,也稱之為超級賬本,是由IBM發起,後成為Linux基金會Hyperledger中的區塊鏈項目之一。
Fabric是一個提供分布式賬本解決方案的平台,底層的賬本數據存儲使用了區塊鏈。區塊鏈平台通常可以分為公有鏈、聯盟鏈和私有鏈。公有鏈典型的代表是比特幣這些公開的區塊鏈網路,誰都可以加入到這個網路中。聯盟鏈則有準入機制,無法隨意加入到網路中,聯盟鏈的典型例子就是Fabric。
Fabric不需要發幣來激勵參與方,也不需要挖礦來防止有人作惡,所以Fabric有著更好的性能。在Fabric網路中,也有著諸多不同類型的節點來組成網路。其中Peer節點承載著賬本和智能合約,是整個區塊鏈網路的基礎。在這篇文章中,會詳細分析Peer的結構及其運行方式。
在本文中,假設讀者已經了解區塊鏈、智能合約等概念。
本文基於Fabric1.4LTS。
區塊鏈網路是一個分布式的網路,Fabric也是如此,由於Fabric是聯盟鏈,需要准入機制,所以在網路結構上會復雜很多,下面是一個簡化的Fabric網路:
各個元素的含義如下:
對於Fabric網路,外部的用戶需要通過客戶端應用,也就是圖中的A1、A2或者A3來訪問網路,客戶端應用需要通過CA證書表明自己的身份,這樣才能訪問到Fabric網路中有許可權訪問的部分。
在上面的網路中,共有四個組織,R1、R2、R3和R4。其中R4是整個Fabric網路的創建者,網路是根據NC4配置的。
在Fabric網路中,不同的組織可以組成聯盟,不同的聯盟之間數據通過Channel來隔離。Channel中的數據只有該聯盟中的組織才能訪問,每一個新的Channel都可以認為是一條新的鏈。與其他的區塊鏈網路中通常只有一條鏈不一樣,Fabric可以通過Channel在網路中快速的搭建出一個新的區塊鏈。
上面R1和R2組成了一個聯盟,在C1上交易。R2同時又和R3組成了另外一個聯盟,在C2上交易。R1和R2在C1上交易時,對R3是不可見的,R2和R3在C2上交易時,對R1是不可見的。Channel機制提供了很好的隱私保護能力。
Orderer節點是整個Fabric網路共有的,用來為所有的交易排序、打包。比如上面網路中O4節點。本文不會對Orderer節點進行詳細說明,可以把這個功能理解為比特幣網路中的挖礦過程。
Peer節點表示網路中的節點,通常一個Peer就表示一個組織,Peer是整個區塊鏈網路的基礎,是智能合約和賬本的載體,Peer也是本文討論的重點。
一個Peer節點可以承載多套賬本和智能合約,比如P2節點,既維護了C1的賬本和智能合約,也維護了C2的賬本和智能合約。
為了可以更深入了解Peer節點的作用,先了解一下Fabric整體的交易流程。整體的交易流程圖如下:
Peer節點按照功能來分可以分為背書節點和記賬節點。
客戶端會提交交易請求到背書節點,背書節點開始模擬執行交易,在模擬執行之後,背書節點並不會去更新賬本數據,而是把這個交易進行加密和簽名,然後返回給客戶端。
客戶端收到這個響應之後就會把響應提交到Orderer節點,Orderer節點會對這些交易進行排序,並打包成區塊,然後分發到記賬節點,記賬節點就會對交易進行驗證,驗證結束之後,就會把交易記錄到賬本裡面。
一筆交易是否能成功是根據背書策略來指定的,每一個智能合約都會指定一個背書策略。
Peer節點代表著聯盟鏈中的各個組織,區塊鏈網路也是由Peer節點來組成的,而且也是賬本和智能合約的載體。
通過對上面交易過程的了解可以知道,Peer節點是主要的參與方。如果用戶想要訪問賬本資源,都必須要和peer節點進行交互。在一個Peer節點中,可以同時維護多個賬本,這些賬本屬於不同的Channel。每個Peer節點都會維護一套冗餘賬本,這樣就避免了單點故障。
Peer節點根據在交易中的不同角色,可以分成背書節點(Endorser)和記賬節點(Committer),背書節點會對交易進行模擬執行,記賬節點才會真正將數據存儲到賬本中。
賬本可以分成兩個部分,一部分是區塊鏈,另一部分是CurrentState,也被稱之為WorldState。
區塊鏈上只能追加,不能對過去的數據進行修改,鏈上也包含兩部分信息,一部分是通道的配置信息,另一部分是不可修改,序列化的記錄。每一個區塊記錄前一個區塊的信息,然後連成鏈,如下圖所示:
第一個區塊被稱之為genesisblock,其中不存儲交易信息。每個區塊可以被分為區塊頭、區塊數據和區塊元數據。區塊頭中存儲著當前區塊的區塊號、當前區塊的hash值和上一個區塊的hash值,這樣才能把所有的區塊連接起來。區塊數據中包含了交易數據。區塊元數據中則包括了區塊寫入的時間、寫入人及簽名。
其中每一筆交易的結構如下,在Header中,包含了ChainCode的名稱、版本信息。Signature就是交易發起用戶的簽名。Proposal中主要是一些參數。Response中是智能合約執行的結果。Endorsements中是背書結果返回的結果。
WorldState中維護了賬本的當前狀態,數據以Key-Value的形式存儲,可以快速查詢和修改,每一次對WorldState的修改都會被記錄到區塊鏈中。WorldState中的數據需要依賴外部的存儲,通常使用LevelDB或者CouchDB。
區塊鏈和WorldState組成了一個完整的賬本,WorldState保證的業務數據的靈活變化,而區塊鏈則保證了所有的修改是可追溯和不可篡改的。
在交易完成之後,數據已經寫入賬本,就需要將這些數據同步到其他的Peer,Fabric中使用的是Gossip協議。Gossip也是Channel隔離的,只會在Channel中的Peer中廣播和同步賬本數據。
智能合約需要安裝到Peer節點上,智能合約是訪問賬本的唯一方式。智能合約可以通過Go、Java等變成語言進行編寫。
智能合約編寫完成之後,需要打包到ChainCode中,每個ChainCode中可以包含多個智能合約。ChainCode需要安裝,ChainCode需要安裝到Peer節點上。安裝好了之後,ChainCode需要在Channel上實例化,實例化的時候需要指定背書策略。
智能合約在實例化之後就可以用來與賬本進行交互了,流程圖如下:
用戶編寫並部署實例化智能合約之後,就可以通過客戶端應用程序來向智能合約提交請求,智能合約會對WorldState中數據進行get、put或者delete。其中get操作直接從WorldState中讀取交易對象當前的狀態信息,不會去區塊鏈上寫入信息,但put和delete操作除了修改WorldState,還會去區塊鏈中寫入一條交易信息,且交易信息不能修改。
區塊鏈上的信息可以通過智能合約訪問,也可以在客戶端應用通過API直接訪問。
Event是客戶端應用和Fabric網路交互的一種方式,客戶端應用可以訂閱Event,當Event發生時,客戶端應用就會接受到消息。
事件源可以兩類,一類是智能合約發出的Event,另一類是賬本變更觸發的Event。用戶可以從Event中獲取到交易的信息,比如區塊高度等信息。
在這篇文章中,首先介紹了Fabric整體的網路架構,通過對Fabric交易流程的分析,討論了peer節點在交易中的作用,然後詳細分析了peer節點所維護的賬本和智能合約,並分析了peer節點維護賬本以及peer節點執行智能合約的流程。
文/Rayjun
[1]
[2]
[3]
區塊鏈的分類目前區塊鏈分為三類,其中混合區塊鏈和私有區塊鏈可視為:廣義私有鏈,公共區塊鏈公共區塊鏈。意味著世界上任何個人或團體都可以發送交易,交易可以由區塊鏈有效確認,任何人都可以參與其共識過程。公共區塊鏈是目前最早的區塊鏈,也是使用最廣泛的區塊鏈。每個比特幣系列的虛擬數字貨幣都以公共的區塊鏈為基礎,世界上只有一個區塊鏈對應這種貨幣。
拓展資料
1.工業區塊鏈行業blockchains:組內多個預選節點指定為記賬員,每個區塊的生成由所有預選節點共同決定(預選節點參與共識過程),其他接入節點可以參與交易,但不幹擾核算過程(本質上,它是管理簿記,但它成為分布式簿記。多少預先選擇的節點和如何確定每個塊的簿記員成為區塊鏈的主要風險點),其他任何人都可以通過區塊鏈的開放API進行有限的查詢。私人區塊鏈Private區塊鏈((privateblockchains)):只有區塊鏈的總賬技術用於記賬。它可以是一個公司或個人獨家書面許可的區塊鏈。這個鏈與其他分布式存儲方案沒有太大的不同。目前(2015年12月),保守的巨頭(傳統金融)想要嘗試私有的區塊鏈,而公共鏈的應用,如比特幣,已經產業化,私有鏈的應用產品還在探索中。區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的一種新的應用模式。區塊鏈是比特幣的一個重要概念。本質上,它是一個去中心化的資料庫。
2.同時,作為比特幣的底層技術,它是一系列與加密方法相關聯的數據塊。每個數據塊包含一批比特幣網路交易信息,驗證其信息的有效性(防偽)並生成下一個區塊。事實上,區塊鏈這個詞並沒有出現在英文原版的比特幣白皮書中,而是出現在區塊鏈中。在最早的比特幣白皮書中,區塊鏈被翻譯為區塊鏈。這是漢語「區塊鏈」最早出現的時間。國家互聯網信息辦公室於2019年1月10日發布《區塊鏈信息服務管理條例》,自2019年2月15日起施行。從狹義上講,區塊鏈是一種按時間順序組合數據塊的鏈式數據結構,以及由密碼學保證的防篡改和可偽造的分布式分類帳。廣義上講,區塊鏈技術是一種新的分布式基礎設施和計算方法,它使用區塊鏈數據結構來驗證和存儲數據,使用分布式節點共識演算法來生成和更新數據,使用密碼學來確保數據傳輸和訪問的安全性,採用由自動腳本代碼組成的智能契約對數據進行編程和操作。
節點的類型有哪些?比特幣P2P網路中的各個節點相互對等,但是根據所提供的功能不同,各節點可能具有不同的分工,每個比特幣節點都是錢包、礦工、完整區塊鏈、網路路由節點的功能集合。
主流區塊鏈技術有哪些本文試圖對區塊鏈有關技術流派和主流平台進行一個概覽,作為學習區塊鏈技術體系的導覽,意在拋磚引玉,促進區塊鏈開發社區的討論與共識。區塊鏈技術的流派未戰先謀局,你想投入區塊鏈開發這個領域,至少先要搞清楚現在有哪些玩家,各自的主張和實力如何。劃分區塊鏈技術流派並無一定之規,據我所見,或可有以下四種方式:第一是按照節點准入規則,劃分為公有鏈、私有鏈和聯盟鏈。公有鏈的代表自然是比特幣和以太坊,私有鏈則以R3Corda聲名最盛,聯盟鏈的代表作品是Hyperledger名下的Fabric。公有鏈注重匿名性與去中心化,而私有鏈及聯盟鏈注重高效率,而且還往往設置了准入門檻。公有鏈、私有鏈與聯盟鏈之間的這些不同都在技術中有所體現,比如私有鏈和聯盟鏈假設節點數目不大,可以採用PBFT演算法來形成共識。而公有鏈假設有大量且不斷動態變化的節點網路,用PBFT效率太低,只能採用類似抽彩票的演算法來確定意見領袖。這就意味著,私有鏈與聯盟鏈很難變成公有鏈,而用公有鏈來作聯盟鏈或私有鏈雖然容易,卻也並非即插即用。此種差異,學者不可不察。第二是按照共享目標,劃分為共享賬本和共享狀態機兩派。比特幣是典型的共享賬本,而Chain和BigchainDB也應屬此類,這幾個區塊鏈系統在各個節點之間共享一本總賬,因此對接金融應用比較方便。另一大類區塊鏈系統中,各個節點所共享的是可完成圖靈完備計算的狀態機,如以太坊、Fabric,它們都通過執行智能合約而改變共享狀態機狀態,進而達成種種復雜功能。第三是按照梅蘭妮·斯旺所描述的代際演進,將區塊鏈系統分為1.0、2.0和3.0三代。其中1.0支撐去中心化交易和支付系統,2.0通過智能合約支撐行業應用,3.0支撐去中心化的社會體系。比特幣和Chain應屬於區塊鏈1.0系統,而以太坊和Fabric是區塊鏈2.0系統,目前尚無成功的區塊鏈3.0系統出現,不成功的嘗試倒是有那麼一個,就是著名的TheDAO。第四是按照核心數據結構,分為區塊鏈和分布式總賬兩派。區塊鏈這一派在系統中真的實現了一個區塊的鏈作為核心數據結構,而分布式總賬這一派,只是吸取了區塊鏈的精神,並沒有真用一條區塊鏈作為核心數據結構,或者雖然暫時用了,但聲明說吾項庄舞區塊鏈,意在分布式總賬耳,若假以時日,因緣際會,未嘗不可取而代之也。主流區塊鏈技術平台了解流派劃分,仍是只能用來指點江山,吹牛論道,要動手,總要有個切入點。區塊鏈貨幣據說已經有上千個了,但值得關注的技術平台大概只有數十個,而如果要進入區塊鏈開發領域,打下一個好基礎,練出一身好功夫,撈到幾個好offer,則值得深入研究學習的平台,屈指可數。首先當然是比特幣。比特幣作為區塊鏈的第一個也是目前為止最成功、最重要的樣板工程,已經上線運行了八年多,本身沒有發生任何嚴重的安全和運維事故,其穩定與強悍堪稱當代軟體系統典範。比特幣BitcoinCore是一個代碼質量高、文檔良好的開源軟體,從學習區塊鏈原理、掌握核心技術的角度來說,BitcoinCore是最佳切入點,能夠學到原汁原味的區塊鏈技術。當然,BitcoinCore是用C++寫的,而且用了一些C++11和Boost庫的機制,對學習者的C++水平提出了較高的要求。學習比特幣平台開發還有一個優勢,就是可以對接繁榮的比特幣技術社區。目前圍繞比特幣進行改進和提升的人很多,人多力量就大,諸如隔離驗證、閃電網路、側鏈等比較新的想法和技術,都率先在比特幣社區里落地。比如側鏈技術的主要領導者Blockstream是由密碼學貨幣元老AdamBack領銜的,而Blockstream是BitcoinCore最大的貢獻者之一,所以一些有關側鏈的技術在比特幣社區里討論最充分。但比特幣作為一個典型的區塊鏈1.0系統,是不是支撐其他類型區塊鏈應用的最佳技術平台,存在很大的爭議。另外,也不是所有人都有能力和必要精通區塊鏈底層技術。所以對那些急於沖到區塊鏈領域里做(quān)事(qián)的人來說,可能更直截了當的學習目標是以太坊和HyperledgerFabric。在以太坊上面用Solidity進行的智能合約開發是切入區塊鏈開發最簡單的方式,沒有之一。以太坊的理想非常宏大,由於配備了強大的圖靈完備的智能合約虛擬機,因此可以成為一切區塊鏈項目的母平台,是馱住整個區塊鏈世界的大烏龜。在以太坊上開發一個類似比特幣的加密貨幣,是一個不折不扣的小目標。一般有經驗的開發者在文檔指導下,半天到一天即可入門。問題在於,入門以後又如何?靠寫Solidity是否就可以包打天下?這是大大存疑的。我們也可以反過來說,如果以太坊+Solidity是區塊鏈的終極解決方案,那麼怎麼還會出現那麼多區塊鏈技術門派呢?特別是,以太坊似乎並沒有給現實世界中巨型的中心化組織們留下一條活路,這種徹底不妥協的革命態度有可能也成為以太坊推廣的障礙。當前以太坊項目的開發進展並不順利。一個比較突出的問題是項目過多,力量分散,導致項目質量參差不齊。但盡管如此,跟其他區塊鏈2.0平台相比,以太坊提供的開發環境是最簡單最完善的。初學區塊鏈的人絕對有必要學習以太坊,從而對區塊鏈和智能合約建立起一個最「正宗」的認識。主流區塊鏈技術平台的第三支就是Fabric,它是Hyperledger的第一個也是最知名的孵化項目。Fabric最早來自IBM的OpenBlockchain項目,到2015年11月,IBM將當時已經開發完成的44,000行Go語言代碼交給Linux基金會,並入Hyperledger項目之中。在2016年3月一次黑客馬拉松中,Blockstream和DAH兩家公司將各自的代碼並入OpenBlockchain,隨後改名為Fabric。到目前為止,Fabric與Intel提供的SawtoothLake並列為Hyperledger的一級孵化項目,但前者得到的關注遠超後者。從技術角度來說,Fabric思路不錯,重點是滿足企業商用的需求,比如解決交易量問題。眾所周知,比特幣最大的短板是它每秒鍾7個交易的上限,完全無法滿足現實需要。而Fabric目標是實現每秒鍾10萬交易,這個量接近剛剛過去的雙十一交易量瞬時峰值,完全可以滿足正常條件下的行業級應用。Fabric用Go語言開發,也提供多種語言的API。特別值得一提的是,Fabric比較充分地運用了容器技術,比如其智能合約就運行在容器當中。這也是Go語言帶給Fabric的一項福利,因為Go語言靜態編譯部署的特徵很適合開發容器中的程序。Fabric還有一些特點,比如其membership服務可以設置節點准入審查,這是典型的聯盟鏈特徵。再比如其共識演算法是可定製的。Fabric的短板是體系較為復雜,雖有文檔,但缺少經驗的開發者學習起來障礙比較大。然而由於其定位清楚,迎合了不少企業的心態,所以已經有多家機構在基於Fabric秘密研發行業內的聯盟鏈項目。
❻ 以太坊節點:全節點、輕節點、歸檔節點
以太坊節點的多樣性和角色在區塊鏈網路中起著關鍵作用。主要有全節點、輕節點和歸檔節點三種類型。全節點是網路中的基石,擁有完整的區塊鏈數據,確保交易驗證和區塊鏈同步,確保去中心化系統的安全。輕節點則是輕量級的選擇,存儲最少的狀態信息,通過請求全節點獲取交易詳情進行驗證,以節省存儲空間。歸檔節點則在全節點的基礎上,儲存每個區塊的快照狀態,便於快速查詢歷史狀態,但對硬體要求較高,主要用於特殊服務。
全節點確保了網路的完整性和安全性,而輕節點則在資源有限的情況下提供了驗證交易的可能。歸檔節點雖然對整體安全性影響不大,但對歷史數據查詢至關重要。在實際應用中,全節點通常能滿足大部分需求,而歸檔節點則更多見於專業服務場景。通過理解這些節點類型,用戶可以更好地參與到以太坊網路的維護和使用中。