當前位置:首頁 » 區塊鏈知識 » docker搭建區塊鏈

docker搭建區塊鏈

發布時間: 2022-04-23 03:56:34

Ⅰ 《Docker技術入門與實戰(第2版)》epub下載在線閱讀,求百度網盤雲資源

《Docker技術入門與實戰(第2版)》(楊保華)電子書網盤下載免費在線閱讀

鏈接:https://pan..com/s/1NfQPe3AVKsuopO8MOtjPXQ

提取碼:d811

書名:Docker技術入門與實戰(第2版)

作者:楊保華

豆瓣評分:7.7

出版社:機械工業出版社

出版年份:2017-3-1

內容簡介:

本書從Docker基本原理開始,深入淺出地講解Docker的構建與操作,內容系統全面,可幫助開發人員、運維人員快速部署Docker應用。本書分為四大部分:基礎入門、實戰案例、進階技能、開源項目,第一部分(第1~8章)介紹Docker與虛擬化技術的基本概念,包括安裝、鏡像、容器、倉庫、數據卷,埠映射等;第二部分(第9~16章)通過案例介紹Docker的應用方法,包括與各種操作系統平台、SSH服務的鏡像、Web伺服器與應用、資料庫的應用、各類編程語言的介面、容器雲等,還介紹了作者在容器實戰中的思考與經驗總結;第三部分(第17~21章)是一些進階技能,如Docker核心技術實現原理、安全、高級網路配置、libernetwork插件化網路功能等;第四部分(第22~28章)介紹與容器開發相關的開源項目,包括Etcd、Docker Machine、Docker Compose、Docker Swarm、Mesos、Kubernetes等。

第2版參照Docker技術的*新進展對全書內容進行了修訂,並增加了第四部分專門介紹與容器相關的知名開源項目,利用好這些優秀的開源平台,可以更好地在生產實踐中受益。

作者簡介:

楊保華:博士,畢業於清華大學,現為 IBM 資深研究員。主要負責核心系統方案的架構設計和研發,包括雲計算、大數據、金融科技等領域。他熱愛開源文化,是容器、軟體定義網路、區塊鏈等開源技術的早期推廣者,曾為 OpenStack、HyperLedger 等開源項目作出了貢獻。個人主頁為 https://yeasy.github.com。

戴王劍:資深架構師,多年來一直從事系統平台、計算機網路、伺服器架構設計,負責過多個省級項目的架構設計。熱衷於開源事業,積極推動開源技術在生產實踐中的應用。

曹亞侖:阿里雲高級系統工程師(花名法喜),上雲架構師,擅長雲產品運維與雲平台技術保障,對PaaS、IaaS層架構設計與實踐有較豐富的實戰經驗。同時也是DevOps實踐者與全棧開發者。微信allengaller,個人主頁為allengaller.github.io。

Ⅱ docker怎麼搭建大數據平台

Docker 容器技術也是一種虛擬化技術,相比 KVM,VMWare 虛擬機,Docker 實現了一種輕量的虛擬化技術,具有很好的性能和安全性。
基於 Docker 可以實現 CaaS(Containers as a Service)微服務架構,一般一個應用程序會提供多個服務,包括內部服務和外部服務,將所有的服務單獨用容器包裝起來,分別部署和運行,這樣簡化了整個應用程序維護的復雜度,同時解耦了模塊之間的耦合性,便於不同模塊單獨開發和維護升級。

Ⅲ 怎麼使用Docker搭建PHP開發環境

在Docker流行之前,要搭建開發環境通常有兩種選擇:一種是使用wamp、xampp、mamp等集成開發環境安裝包,另外一種就是使用普通虛擬機來安裝linux伺服器,然後通過下載一鍵安裝包(如:lnmp)或者逐個安裝做需要的軟體。前者雖然簡單,但太不靈活,想要安裝額外的軟體或者版本會很麻煩或者乾脆不知道如何下手;後者除了費時費力,佔用本機資源過多,可能會導致系統運行緩慢,而且如果你忘了及時生成快照,一旦失誤,追悔莫及。
幸好,Docker來了!它簡單易用,靈活多變,方便迅捷,掃除了以上種種弊端。如果你想稍微詳細的認識下這位虛擬化界的明星,傳送門( 快速理解Docker )。
安裝Docker
平時開發的環境一般都是Mac或者windows,Linux暫時沒有研究,所以接下來只針對前兩者寫下步驟,這兩個平台,官方都推薦了兩種安裝方式:app和工具包(toolbox)。註:app方式對系統版本和配置會有一定要求,而且Windows需要你安裝微軟虛擬化產品Hyper-V,具體見app鏈接頁面。
APP
https://docs.docker.com/docke...
https://docs.docker.com/docke...
工具包
https://www.docker.com/proc...
以上方式本質上都會在你的系統中安裝docker-engine、docker-machine、docker-compose和VirtualBox(除了Windows的app方式)。因為docker高度依賴linux內核提供的cgroup,namespace 等特性和介面,所以mac和windows平台需要使用docker-machine和虛擬機在後台創建運行一個linux內核。
而我的安裝方式就是直接在 Mac 上使用brew,如果你未曾安裝brew,則在終端執行以下代碼:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝docker所需要的包:
brew install docker docker-machine docker-compose virtualbox
創建一個docker-machine:
docker-machine create -d virtualbox default
註:-d 指定使用virtualbox來創建default 為machine名稱
告訴主機如何找到docker-machine:
echo $(docker-machine env ) >> .zshrc
註:這里的.zshrc是我的用戶配置文件,如果你用bash,可以改為.bash_profile。
啟動docker-machine:
docker-machine start default Compose你的應用
docker-compose是用於定義和運行復雜Docker應用的工具。你可以在docker-compose.yml文件中定義一個多容器的應用,然後使用一條命令來啟動,然後所有預先定義好的操作都會被自動完成。
為了不重復造輪子,直接使用github上的第三方包。當然你也可以親自構建每一個你所需要的容器鏡像,然後用docker-compose.yml將所有容器組織起來運行,但這需要你具備一定的linux基礎和docker的運行機制和相關語法。
本人正在學習 laradock 這個基於Docker的開發環境包,然後根據自己的需要刪除了一些我認為不常用的部分、修改了部分配置以及增加了Elasticsearch容器,最終新開了自己的倉庫 DevDock 。當然,也推薦使用laradock。
我的倉庫目前支持的容器組合:
nginx , php-fpm , mysql , redis , mongo , apache2 , memcached , elasticsearch , workspace .
註:workspace和php-fpm一般會被其他容器所依賴,所以會自動運行,啟動時不必指定。
進入到你的應用的上級目錄:
git clone https://github.com/RystLee/DevDock.git
修改hosts
如果直接安裝啟動,是可以通過Docker IP : 192.168.99.100,就能直接訪問nginx的,但一般而言為了方便記憶,我們會去修改hosts文件,增加一條:
192.168.99.100 laravel.dev
修改你的nginx中的站點配置文件:
在DevDock目錄下找到nginx,修改sites目錄下的站點配置文件,通過修改本地的hosts來自定義域名,並在nginx容器中的sites文件夾下,修改相應的域名映射。
server_name laravel.dev
安裝啟動應用
cd DevDock docker-compose up -d nginx mysql ... # 後面跟上你想使用的容器即可
然後,耐心地等待開發環境自動搭建完成即可,如果中途出現錯誤,一般是因為GFW,網路會不太通暢,重新執行一兩次就好,完成之後,打開瀏覽器,訪問: http://laravel.dev 即可。

Ⅳ 如何基於Docker快速搭建多節點Hadoop集群

1. 拉取鏡像
sudo docker pull index.alauda.cn/kiwenlau/hadoop-master:0.1.0 sudo docker pull index.alauda.cn/kiwenlau/hadoop-slave:0.1.0 sudo docker pull index.alauda.cn/kiwenlau/hadoop-base:0.1.0 sudo docker pull index.alauda.cn/kiwenlau/serf-dnsmasq:0.1.0

3~5分鍾OK~也可以直接從我的DokcerHub倉庫中拉取鏡像,這樣就可以跳過第2步:
sudo docker pull kiwenlau/hadoop-master:0.1.0 sudo docker pull kiwenlau/hadoop-slave:0.1.0 sudo docker pull kiwenlau/hadoop-base:0.1.0 sudo docker pull kiwenlau/serf-dnsmasq:0.1.0

查看下載的鏡像:
sudo docker images

運行結果:

其中hadoop-base鏡像是基於serf-dnsmasq鏡像的,hadoop-slave鏡像和hadoop-master鏡像都是基於hadoop-base鏡像。所以其實4個鏡像一共也就777.4MB。
2. 修改鏡像tag
sudo docker tag d63869855c03 kiwenlau/hadoop-slave:0.1.0 sudo docker tag 7c9d32ede450 kiwenlau/hadoop-master:0.1.0 sudo docker tag 5571bd5de58e kiwenlau/hadoop-base:0.1.0 sudo docker tag 09ed89c24ee8 kiwenlau/serf-dnsmasq:0.1.0

查看修改tag後鏡像:
sudo docker images

運行結果:

之所以要修改鏡像,是因為我默認是將鏡像上傳到Dockerhub, 因此Dokerfile以及shell腳本中得鏡像名稱都是沒有alauada前綴的,sorry for this....不過改tag還是很快滴。若直接下載我在DockerHub中的鏡像,自然就不需要修改tag...不過Alauda鏡像下載速度很快的哈~
3.下載源代碼
git clone https://github.com/kiwenlau/hadoop-cluster-docker
為了防止GitHub被XX,我把代碼導入到了開源中國的Git倉庫:
git clone http://git.oschina.net/kiwenlau/hadoop-cluster-docker
4. 運行容器
cd hadoop-cluster-docker ./start-container.sh

運行結果:
start master container... start slave1 container... start slave2 container... root@master:~#

一共開啟了3個容器,1個master, 2個slave。開啟容器後就進入了master容器root用戶的根目錄(/root)。
查看master的root用戶家目錄的文件:
ls
運行結果:
hdfs run-wordcount.sh serf_log start-hadoop.sh start-ssh-serf.sh

start-hadoop.sh是開啟hadoop的shell腳本,run-wordcount.sh是運行wordcount的shell腳本,可以測試鏡像是否正常工作。
5.測試容器是否正常啟動(此時已進入master容器)
查看hadoop集群成員:
serf members

運行結果:
master.kiwenlau.com 172.17.0.65:7946 alive slave1.kiwenlau.com 172.17.0.66:7946 alive slave2.kiwenlau.com 172.17.0.67:7946 alive

若結果缺少節點,可以稍等片刻,再執行「serf members」命令。因為serf agent需要時間發現所有節點。
測試ssh:
ssh slave2.kiwenlau.com

運行結果:
Warning: Permanently added 'slave2.kiwenlau.com,172.17.0.67' (ECDSA) to the list of known hosts. Welcome to Ubuntu 15.04 (GNU/Linux 3.13.0-53-generic x86_64) * Documentation: https://help.ubuntu.com/ The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the indivial files in /usr/share/doc/*/right. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. root@slave2:~#

退出slave2:
exit

運行結果:
logout Connection to slave2.kiwenlau.com closed.

若ssh失敗,請稍等片刻再測試,因為dnsmasq的dns伺服器啟動需要時間。測試成功後,就可以開啟Hadoop集群了!其實你也可以不進行測試,開啟容器後耐心等待一分鍾即可!
6. 開啟Hadoop
./start-hadoop.sh

上一步ssh到slave2之後,請記得回到master啊!運行結果太多,忽略,Hadoop的啟動速度取決於機器性能....
7. 運行wordcount
./run-wordcount.sh

運行結果:
input file1.txt: Hello Hadoop input file2.txt: Hello Docker wordcount output: Docker 1 Hadoop 1 Hello 2

wordcount的執行速度取決於機器性能....

Ⅳ 如何使用docker搭建部署pipeline

如何用Jenkins/Hudson創建真正的pipeline
這幾天嘗試用Jenkins/Hudson創建pipeline,發現網上的信息很少,所以寫一篇跟大家分享。
在開始之前,得告訴你被我的標題給忽悠了,不是Jenkins/Hudson,只是Jenkins!如果你還在用Hudson,那麼我建議你立即切換到Jenkins。理由就不說了,看看這個投票就行。(此中,我吃盡了苦頭)
接下來,就讓我們一步一步用Jenkins搭建真正的pipeline吧。
第一步
第一步,我們先創建一個最簡單的pipeline。所謂pipeline,顧名思義,就是一個流水線,由多個步驟(steps)組成。每走完一步,就來到下一步。用Build Pipeline Plugin就可以很方便地實現。
實現的效果如下圖:

上例中,UnitTest是我們的初始任務。UnitTest結束之後,自動觸發AC Test。如果通過了AC Test,團隊可以有選擇地部署到任意測試環境。
在配置這個插件時,最重要的就是選擇Initial Job。

然後,在每一個step(job)中選擇downstream step。可以是自動觸發(Build Other Projects),也可以選擇手動觸發(Manually Execute Downstream Project)。

第二步

第一步中我們實現了一個流水線,但這個只是看上去的流水線而已。在工廠的流水線中,歷經流水線上游到下游的,應該是同一個產品。但上例中顯然不是,Unit Test和Acceptance Test所運行的可能是不同版本的代碼。
要讓幾個step的代碼運行在同一個版本,可以使用一個叫做Parameterized Trigger Plugin。如下圖:

選擇把Subversion revision傳到下面的steps,則接下來的Steps都會checkout同一個版本的代碼。但這個也有限制,就是這些Steps必須有相同的subversion URL配置。
另外,你應該還注意到我們還傳了另一個參數:PL_BUILD_NUMBER。這個參數會另有用途。
除了希望保持相同版本,我們很可能希望重用upstream step生成的artifact。比如,在AC Test step會生成一些artifacts,這些artifacts經過測試之後,希望可以用於Deploy步驟。一方面,這會節省重新構建artifact的時間;另一方面,這些artifact是已經經過測試的,是可用的,而重新構建生成的卻是未經測試的,可用與否未知。(雖然他們應該是一樣的,但誰知道呢。。)我們可以使用ArtifactDepolyerPlugin實現。

Ⅵ 各區塊鏈架構的橫向比較

各區塊鏈架構的橫向比較
時常聽人們談起區塊鏈,從 2009 年比特幣誕生至今,各式各樣的區塊鏈系統或基於區塊鏈的應用不斷被開發出來,並被應用到大量的場景中,而區塊鏈技術本身也在不停地變化和改進。
區塊鏈又被稱為分布式賬本,與之對應的則是中心化賬本,比如銀行。與中心化賬本不同的是,分布式賬本依靠的是將賬本數據冗餘存儲在所有參與節點中,來保證賬本的安全性。簡單地說,區塊鏈會用到三種底層技術:點對點網路技術、密碼學技術和分布式一致性演算法。而通常,區塊鏈系統還會「免費附贈」一種被稱為智能合約的功能。智能合約雖然不是區塊鏈系統的必要組成部分,但由於區塊鏈天生所具備的去中心化特點,使它可以很好地為智能合約提供可信的計算環境。
為了適應不同場景的需求,區塊鏈系統在實際應用的過程中往往會需要進行各種改造,以滿足特定業務的要求,比如身份認證、共識機制、密鑰管理、交易頻次、響應時間、隱私保護、監管要求等。而實際應用區塊鏈系統的公司往往沒有進行這種改造的能力,於是市場上慢慢出現了一些用於定製專用區塊鏈系統的框架,採用這些框架就可以很方便地定製出適用於企業自身業務的區塊鏈系統。
本文將對目前市場上幾個典型的區塊鏈框架進行橫向對比,看看它們都有哪些特點,以及它們之間到底有哪些區別。為了保持對比的公正性,本文將只針對開源的區塊鏈框架進行討論。
各區塊鏈架構的簡單介紹
1、比特幣
比特幣(bitcoin)源自一名叫做中本聰(Satoshi Nakamoto)的人在 2008 年發表的一篇名為《比特幣:一種點對點的電子現金系統》(Bitcoin: A Peer-to-PeerElectronic Cash System)的論文,文中描述了一種被他稱為「比特幣」的電子貨幣及其演算法。在之後的幾年裡,比特幣不斷成長和成熟,而它的底層技術也逐漸被人們認識並抽象出來,這就是區塊鏈技術。比特幣作為區塊鏈的鼻祖,在區塊鏈的大家族中具有舉足輕重的地位,基於比特幣技術開發出的山寨幣(altcoins)的數量有如天上繁星,數不勝數。
從論文中可以得知,中本聰設計比特幣的目的,就是希望能夠實現一種完全基於點對點網路的電子現金系統,使得在線支付能夠直接由一方發起並支付給另外一方,中間不需要通過任何的中介機構。總結來說,他希望比特幣的設計能夠實現以下這些目標:
● 不需要中央機構就可以發行貨幣
● 不需要中介機構就可以支付
● 保持使用者的匿名性
● 交易無法被撤銷
從電子現金系統的角度來看,以上這些目標在比特幣中基本都得到了實現,但是依然有一些技術問題有待解決,比如延展性攻擊、區塊容量限制、區塊分叉、擴展性等。
在應用場景方面,目前大量的數字貨幣項目都是基於比特幣架構來設計的,此外還有一些比較實際的應用案例,比如彩色幣、t? 等。
彩色幣(coloredcoin),通過仔細跟蹤一些特定比特幣的來龍去脈,可以將它們與其他的比特幣區分開來,這些特定的比特幣就叫作彩色幣。它們具有一些特殊的屬性,從而具有與比特幣面值無關的價值,利用彩色幣的這種特性,使得開發者可以在比特幣網路上創建其它的數字資產。彩色幣本身就是比特幣,存儲和轉移不需要第三方,可以利用已經存在的比特幣的基礎。
t? 是比特幣區塊鏈在金融領域的應用,是美國在線零售商 Overstock 推出的基於區塊鏈的私有和公有股權交易平台。
2、以太坊
以太坊(ethereum) 的目標是提供一個帶有圖靈完備語言的區塊鏈,用這種語言可以創建合約來編寫任意狀態轉換功能,用戶只要簡單地用幾行代碼來實現邏輯,就能夠創建一個基於區塊鏈的應用程序,並應用於貨幣以外的場景。
以太坊的設計思想是不直接「支持」任何應用,但圖靈完備的編程語言意味著理論上任意的合約邏輯和任何類型的應用都可以被創建出來。總結來說,以太坊在比特幣的設計目標之外,還需要實現以下幾個目標:
● 圖靈完備的合約語言
● 內置的持久化狀態存儲
目前基於以太坊的合約項目已達到數百個,比較有名的有 Augur、TheDAO、Digix、FirstBlood 等。
Augur 是一個去中心化的預測市場平台,基於以太坊區塊鏈技術。用戶可以用數字貨幣進行預測和下注,依靠群眾的智慧來預判事件的發展結果,可以有效地消除對手方風險和伺服器的中心化風險。
限於篇幅,基於以太坊智能合約平台的項目就不多介紹了。基於以太坊的代碼進行改造的區塊鏈項目也有不少,但幾乎都是閉源項目,只能依靠一些公開的特性來推斷,所以就不在本文展開討論了。
3、Fabric
Fabric 是由 IBM 和 DAH 主導開發的一個區塊鏈框架,是超級帳本的項目成員之一。它的功能與以太坊類似,也是一個分布式的智能合約平台。但與以太坊和比特幣不同的是,它從一開始就是一個框架,而不是一個公有鏈,也沒有內置的代幣(token)。
超級賬本(hyperledger)是 Linux 基金會於 2015 年發起的推進區塊鏈技術和標準的開源項目,加入成員包括:荷蘭銀行(ABN AMRO)、埃森哲(Accenture)等十幾個不同利益體,目標是讓成員共同合作,共建開放平台,滿足來自多個不同行業各種用戶案例,並簡化業務流程。
作為一個區塊鏈框架,Fabric 採用了松耦合的設計,將共識機制、身份驗證等組件模塊化,使之在應用過程中可以方便地替換成自定義的模塊。除此之外,Fabric 還採用了容器技術,將智能合約代碼(chaincode)放在 docker 中運行,從而使得智能合約可以用幾乎任意的高級語言來編寫。
以下是 Fabric 的一些設計目標:
● 模塊化設計,組件可替換
● 運行於 docker 的智能合約
目前已經有不少採用 Fabric 架構進行開發的概念驗證(POC)項目在實施過程中,其中不乏一些金融機構做出的嘗試,不過由於項目剛剛起步,還沒有比較成熟的落地應用。
4、DNA
DNA(Distributed Networks Architecture,分布式網路架構),是由總部位於上海的區塊鏈創業公司「分布科技」開發的區塊鏈架構,可以同時支持公有鏈、聯盟鏈、私有鏈等不同應用類型和場景,並快速與業務系統集成。
與以太坊、Fabric不同的是,DNA 在系統底層實現了對多種數字資產的支持,用戶可以直接在鏈上創建自己的資產類型,並用智能合約來控制它的發行邏輯。對於絕大部分的區塊鏈應用場景,數字資產是必不可少的,而為每一種數字資產都開發一套基於智能合約的轉賬、發行邏輯是非常浪費且低效的。因此,由區塊鏈底層提供直接的數字資產功能是十分必要的。而對於那些完全不需要數字資產的應用場景,同樣可以基於 DNA 提供的智能合約架構來編寫任意的自定義邏輯來實現。
DNA 的設計目標主要有以下幾點:
● 多種數字資產的底層支持
● 圖靈完備的智能合約和狀態持久化
● 跨鏈互操作性
● 交易的最終性
目前已有不少金融機構採用 DNA 架構來進行區塊鏈概念驗證產品的開發。除此之外,還有一些已經落地的區塊鏈項目,如小蟻區塊鏈、法鏈等。
小蟻(antshares)是一個定位於資產數字化的公有鏈,將實體世界的資產和權益進行數字化,通過點對點網路進行登記發行、轉讓交易、清算交割等金融業務的去中心化網路協議。它採用社區化開發的模式,在架構上與 DNA 保持一致,從而可以與任何基於DNA 的區塊鏈系統發生跨鏈互操作。
法鏈是全球第一個大規模商用的法律存證區塊鏈,一個底層基於 DNA區塊鏈技術,並由多個機構參與建立和運營的證據記錄和保存系統。該系統沒有中心控制點,且數據一旦錄入,單個機構或節點無法篡改,從而滿足司法存證的要求。
5、Corda
Corda 是由一家總部位於紐約的區塊鏈創業公司 R3CEV 開發的,由其發起的 R3區塊鏈聯盟,至今已吸引了數十家巨頭銀行的參與,其中包括富國銀行、美國銀行、紐約梅隆銀行、花旗銀行、德國商業銀行、德意志銀行、匯豐銀行、三菱 UFJ 金融集團、摩根士丹利、澳大利亞國民銀行、加拿大皇家銀行、瑞典北歐斯安銀行(SEB)、法國興業銀行等。
從 R3 成員的組成上也可以看出,Corda 是一款專門用於銀行與銀行間業務的區塊鏈架構。盡管 R3 自己聲稱 Corda 不是區塊鏈,但從各項特徵來看,它具備區塊鏈的一些特性。
技術對比
1、數字資產
接下來,將對前文中提到的這些區塊鏈框架進行一系列的技術對比,並從多個維度展開介紹它們的區別與相似之處。

區塊鏈的內置代幣通常是一種經濟激勵模型和防止垃圾交易的手段。比特幣天生就有且只有一種內置代幣,所以在比特幣系統中所有的「交易」本質上都是轉賬行為,除非通過外部的協議層來給比特幣增加額外的數字資產。
以太坊和 DNA 具有內置代幣,它們的作用除了以上提到的經濟激勵和防止垃圾交易之外,還具有為系統內置功能提供一個收費的渠道。比如以太坊的智能合約運行需要消耗 GAS,而 DNA 的數字資產創建也需要消耗一定的代幣。
以太坊和 Fabric 沒有內置的多種數字資產支持,而是通過智能合約來實現相應的功能。這種方式的好處在於,系統設計可以做到非常簡潔,而且資產的行為可以任意指定,自由度極高。然而這樣的設計也會帶來一系列的負面影響,比如所有的資產創建者不得不自己編寫重復的業務邏輯,而用戶也沒有辦法通過統一的方式去操作自己的資產。
相比之下,DNA 和 Corda 採用了在底層支持多種數字資產的方式,讓資產創建者可以方便地創建自己的資產類型,而用戶也可以在同一個客戶端中管理所有的資產。對於邏輯更加復雜一點的業務場景來說,他們同樣可以利用智能合約來強化資產的功能,或者創建一種與資產無關的業務邏輯。
2、賬戶系統

UTXO(Unspent Transaction Output)是這樣一種機制:每一枚數字貨幣都會被登記在一個賬戶的所有權之下,一枚數字貨幣有兩種狀態,即要麼還沒有被花費,要麼已經被花費。當需要使用一枚數字貨幣的時候,就將它的狀態標記為已經花費,並創造一枚新的與之等額的數字貨幣,將它的所有權登記到新的賬戶之下。在這個過程中,被標記為已花費的數字貨幣就被稱為交易的輸入,而創造出來的新的數字貨幣被稱為交易的輸出,在一筆交易中,可以包含多個輸入和多個輸出,但是輸入之和與輸出之和必須相等。要計算一個賬戶的余額時,只要將所有登記在該賬戶下的數字貨幣的面額相加即可得出。
比特幣和 Corda 就採用了 UTXO 這樣一種賬戶機制,而以太坊則採用了更加直觀的余額機制:每個賬戶有一個狀態,狀態中直接記錄了賬戶當前的余額,轉賬的邏輯就是從一個賬戶中減去一部分余額,並在另一個賬戶中加上相應的余額,減去的部分和加上的部分必須相等。DNA 在賬戶機制上同時兼容這兩種模式。
那麼 UTXO 模式和余額模式,究竟有什麼優缺點呢?UTXO 最大的好處就是,基於 UTXO 的交易可以並行驗證且任意排序,因為所有的 UTXO 之間都是沒有關聯的,這對區塊鏈未來的伸縮性是有很大幫助的,而基於余額的設計就沒有這個優勢了;反過來,余額設計的優點是設計思想非常簡潔和直覺化,便於程序實現,特別是在智能合約中,要處理 UTXO 的狀態是非常困難的。這也是為什麼以智能合約為主要功能的以太坊選擇余額設計的原因,而比特幣、OnchainDNA、Corda 這些以數字資產為核心的架構則更傾向於 UTXO 設計。
關於身份認證,比特幣和以太坊基本沒有身份認證的設計,原因很簡單,因為這兩者的設計思想都是強調隱私和匿名,而反對監管和中心化,而身份認證就勢必要引入一些中心或者弱化的中心機構。Fabric、DNA 和 Corda 不約而同地選擇了採用數字證書來對用戶身份進行認證,原因在於這三者都有應用於現有金融系統的設計目標,而金融系統必然要考慮合規化並接受監管,此外現有的金融系統已經大范圍地採用數字證書方案,這樣便可以和區塊鏈系統快速集成。

Ⅶ 開發者可以使用Docker做什麼

  • Docker 如今贏得了許多關注,很多人覺得盛名之下其實難副,因為他們仍然搞不清 Docker 和普通開發者到底有什麼關系。許多開發者覺得 Docker 離自己很遠,Docker 是生產環境中的工具,和自己無關。我也是花了很長時間才想清楚作為普通開發人員如何在自己的開發中使用 Docker。坦率地說,我仍處在學習的過程中。

  • 這篇文章提供了一個 Docker 用例列表,我希望它能更好地幫助你理解 Docker 並引發你的思考。本文只是描述 Docker 在普通開發者日常的應用,並不提供完整的解決方案。

  • 在介紹用例之前,我希望你能先記住這句話:「Docker 是一個便攜的應用容器」。你可以不知道 Docker 所說的的「攜帶型容器」到底是什麼意思,但是你必須清楚 Docker 在日常中能帶來非常大的效率提升。

  • 當你需要在容器內運行自己的應用(當然可以是任何應用),Docker 都提供了一個基礎系統鏡像作為運行應用時的基礎系統。也就是說,只要是 Linux 系統上的應用都可以運行在 Docker 中。

  • 可以在 Docker 裡面運行資料庫嗎?當然可以。

  • 可以在 Docker 裡面運行 Node.js 網站伺服器嗎?當然可以。

  • 可以在 Docker 裡面運行 API 伺服器嗎?當然可以。

  • Docker 並不在乎你的應用程序是什麼、做什麼,Docker 提供了一組應用打包、傳輸和部署的方法,以便你能更好地在容器內運行任何應用。

Ⅷ 如何使用Docker,Docker-Compose和Rancher搭建部署Pipeline

實際上到目前為止還不能直接在Windows上安裝Docker Compose,所以這篇文章要講的是如何在Windows上使用Docker Compose。 先決條件: Docker Machine 已經安裝完畢。 解決方案: 將 Docker-Compose 安裝在Boot2Docker虛擬機中。

Ⅸ docker快速搭建幾個常用的第三方服務

Docker最核心的特性之一,就是能夠將任何應用包括Hadoop打包到Docker鏡像中。這篇教程介紹了利用Docker在單機上快速搭建多節點Hadoop集群的詳細步驟。作者在發現目前的HadooponDocker項目所存在的問題之後,開發了接近最小化的Hadoop鏡像,並且支持快速搭建任意節點數的Hadoop集群。一.項目簡介GitHub:kiwanlau/hadoop-cluster-docker直接用機器搭建Hadoop集群是一個相當痛苦的過程,尤其對初學者來說。他們還沒開始跑wordcount,可能就被這個問題折騰的體無完膚了。而且也不是每個人都有好幾台機器對吧。你可以嘗試用多個虛擬機搭建,前提是你有個性能杠杠的機器。我的目標是將Hadoop集群運行在Docker容器中,使Hadoop開發者能夠快速便捷地在本機搭建多節點的Hadoop集群。其實這個想法已經有了不少實現,但是都不是很理想,他們或者鏡像太大,或者使用太慢,或者使用了第三方工具使得使用起來過於復雜。下表為一些已知的HadooponDocker項目以及其存在的問題。

熱點內容
比特幣一張合約一手 發布:2025-06-28 23:21:17 瀏覽:336
XRP資訊和公告 發布:2025-06-28 23:09:11 瀏覽:912
btc存在的主要問題 發布:2025-06-28 22:47:05 瀏覽:906
合約地址怎麼辨別真假 發布:2025-06-28 22:46:23 瀏覽:634
比特幣現市值 發布:2025-06-28 22:40:31 瀏覽:199
eth公鑰在哪裡 發布:2025-06-28 22:37:44 瀏覽:600
庫神冷錢包支持哪些數字貨幣 發布:2025-06-28 22:34:58 瀏覽:185
trx波場如何 發布:2025-06-28 22:18:19 瀏覽:295
區塊鏈和物聯網對外關系 發布:2025-06-28 22:08:55 瀏覽:803
以太坊錢包導入是什麼意思 發布:2025-06-28 22:00:03 瀏覽:773