區塊鏈部署docker
A. 幣安主網設置
幣安主網設置,主網(mainnet)上線,能夠理解為token變公鏈。上線主網才代表這是一個實在的區塊鏈,這個虛擬幣才能夠真正的用於我們想像中的用處。項目方為了籌集資金,一般會事先將創立的一部分token分發給用戶,用戶運用BTC、ETH等按必定兌換份額認購,爾後token會進入交易所流轉。拿到資金之後,項目方開端招兵買馬投入技能開發和社區推行。如果你買的虛擬貨幣,連主網都沒有,那麼,它僅僅一個危險投資物品,盡管危險投資很受追捧,可是你僅僅看到的是成功的報導,失敗者舉目皆是,也就是項目方失聯跑路(他做不出來這產品你要他怎樣整?)所以,只有主網上線的虛擬幣,才是實在的虛擬幣,才能讓用戶放心運用。什麼是主網?主網(Main net)是相關於測驗網(Test net)來說的,主網指的是比特幣交易的原始和主要網路,在上面流轉的比特幣具有實在的經濟價值,測驗網與主網功用相似,主要是用作項目快速開發迭代以及社區前期參加。以此類推,其他公鏈的主網指的是正式上線的、獨立運轉的區塊鏈網路
B. 《Docker技術入門與實戰(第2版)》epub下載在線閱讀,求百度網盤雲資源
《Docker技術入門與實戰(第2版)》(楊保華)電子書網盤下載免費在線閱讀
鏈接:https://pan..com/s/1NfQPe3AVKsuopO8MOtjPXQ
書名: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。
C. (三)如何使用cello在fabric上創建屬於自己的區塊鏈
進入cello之前讓我們來看一下當前的docker鏡像
如圖,如果您按照上一篇文章搭建好cello後,會看到這六個正在run的docer鏡像,一切長長,下面讓我們正式開始進入8080埠cello後台
注意如果提示創建失敗,說明我們的docker並未開放外網IP訪問,需要配置如下
修改
為
此操作是放開docker外網IP訪問,然後我們重置docker
此時再去填寫IP+埠2375即可
創建角色後我們登錄8081埠界面
D. 區塊鏈應用開發找哪家好
區塊鏈技術是通過2008年由中本聰編寫的題為「比特幣:對等電子現金系統」的論文宣布的。有趣的是,本文沒有專門使用「區塊鏈」這個詞。
本文討論的是「純粹的電子現金版本」,其中「網路通過將交易哈希到持續的基於散列的工作證明鏈中來標記交易時間,創建一條無需重做證明即可更改的記錄」工作的」。
開源的PT-BSC(區塊鏈安全控制)將區塊鏈定義為點對點網路,通過將它們散列到正在進行的基於散列的工作量證明鏈中來記錄時間戳記,形成不能成為記錄的記錄改變而不重做工作證明。區塊鏈可以被授權,無許可權或混合使用。
另一方面,分布式賬本被定義為對等網路,該網路使用定義的共識機制來防止修改有序的時間戳記錄序列。共識機制包括證明利益,聯合拜占庭協議等。
最流行的區塊鏈平台
1.以太坊
以太坊是一個開源的Blockchain平台,運行智能合約並為其創建提供編程工具。在2013年由Vitalik Buterin提出後,該平台簡化了下一代分散式應用程序(DApps)和在線合同協議的開發。
以太坊允許設計和發行加密貨幣和可交易的數字令牌。更重要的是,您可以創建自己的DAO(民主自治組織),例如,一個虛擬組織,通過成員投票解決各種問題。
該平台提供了許多有用的功能,包括圖靈完整語言,命令行工具(內置於Go,C ++,Python,Java等)以及Ethereum錢包,這是最後一個支持和保護加密資產並簡化智能合約的開發者發展。
2. BigChainDB
BigChainDB是一個開源的分布式賬本系統,專為存儲大量數據而設計,並支持開發人員部署區塊鏈概念驗證和應用程序。
該資料庫提供分散控制,低延遲,不變性,強大的查詢功能以及高速的事務處理。
該系統沒有自己的貨幣,但允許發行和轉讓任何資產,代幣和加密貨幣。BigChainDB支持自定義數字資產並在事務級別建立訪問許可權。
BigChainDB基於聯邦共識模型,一個擁有投票許可權的節點聯盟。BigChainDB支持公共和私人網路,有許多用例,包括知識產權,人力資源,政府和土地登記等領域。
此外,深入了解比特幣,以太坊和BigchainDB的比較。
3.Blockchain Hyperledger Fabric
Blockchain Hyperledger Fabric是由The Linux Foundation主辦並於2016年發布的最受歡迎的Hyperledger項目之一。Hyperledger Fabric是Go編寫的,使用Docker容器實現智能合約。
該平台是基於模塊化架構構建基於區塊鏈的解決方案的基礎,並支持使用一個或多個網路。為了確保高水平的靈活性,可靠性和可擴展性,Hyperledger Fabric最適合開發企業解決方案。
考慮到有用的功能,它包含共享機密信息和交易背書政策的渠道。此外,交易還包括所有簽署同行的簽名,並提交給訂購服務。Hyperledger Fabric是創建授權區塊鏈的最佳平台之一。
4.Hyperledger Cello
Hyperledger Cello是一個區塊鏈平台和操作系統,也是Linux基金會託管的Hyperledger項目之一。Hyperledger Cello的目標是通過向Blockchain生態系統提供按需「即服務」部署模式,最大限度地減少設計和管理區塊鏈的工作量。
Hyperledger Cello使開發人員能夠從頭創建區塊鏈即服務(BaaS)平台,並管理區塊鏈的生命周期。更重要的是,通過Cello,他們可以在裸機,虛擬雲和容器集群之上維護一組網路(大提琴支持Docker,Swarm和Kubernetes)。
5. Hyperledger鋸齒湖
Hyperledger Sawtooth Lake是一個區塊鏈平台,代表支持許可和無許可開發的企業解決方案。該平台幫助軟體工程師更輕松地創建,部署和運行分布式賬本系統和應用程序。
Sawtooth Lake是一個用Python編寫的模塊化套件,提供智能合同抽象,允許開發人員以他們想要的編程語言編寫合同邏輯。Hyperledger Sawtooth中的交易業務邏輯與共識層分離。
共識機制稱為經過時間證明(PoET),並使用內置於最新一代英特爾處理器中的SGX可信計算模塊。
對於鋸齒湖有很多有用的應用。例如,在供應鏈管理和海鮮配送中,它可以解決諸如食物儲存條件不當,非法捕撈行為和海鮮欺詐等問題。
此外,Hyperledger Sawtooth可以確保創建和交換數字資產的安全基礎設施。了解一下,鋸齒湖及其解決方案如何在不同領域發揮作用。
6. Hydrachain
HydraChain是Ethereum Blockchain平台的開源擴展,為開發和部署許可的分布式分類帳提供支持。
HydraChain完全兼容以太坊協議,並提供了一個基礎設施來創建Python中的智能合約。Hydrachain有許多工具可以縮短開發時間並提高調試功能。
重要的是,HydraChain可以確保高水平的定製:系統的各個方面可以輕松配置以滿足客戶的需求。例如,在創建智能合約時,交易費用,天然氣限額,創世分配和封鎖時間等事項可以輕松定製。
7. Corda
Corda是一個開源的Blockchain平台,用於構建許可的分布式賬本系統。該項目由R3聯盟創建,結合了大型銀行並允許管理各方之間的法律協議。
像其他分布式分類帳一樣,R3 Corda提供安全的數據存儲和不可變的數據記錄。值得注意的是,只有Corda才能開發交互操作的區塊鏈網路,這些網路在嚴格的隱私中進行交易。目前,它可能是唯一一個有可插拔共識的分布式賬本平台。
8. Multichain
Multichain是一個開源分布式賬本系統,基於比特幣區塊鏈,專為處理多幣種金融交易而設計。
該平台提供各種級別的訪問控制和許可權,並實現快速解決方案部署。在Multichain中,各種網路可以同時在一台伺服器上。
9.開鏈
作為一個開源的區塊鏈平台,Openchain以強大,安全和可擴展的方式為數字資產的發布和管理而設計。該技術包括智能合約模塊,統一的API,以及由於分級賬戶系統的多級控制和訪問許可權。
在Openchain中,每筆交易都進行了數字簽名(就像比特幣一樣),共識機制由分部共識引入。你應該注意到Openchain是免費的,所以你不需要花錢加密貨幣來使用它。
10.鏈核心
Chain Core是一個企業級的區塊鏈平台,由Chain Protocol和鏈接協議設計,用於在許可的區塊鏈網路上發布,傳輸和管理數字資產。此外,該平台還使開發人員能夠從頭開始創建金融服務。
在連鎖核心中,本地數字資產涉及貨幣,證券,衍生品,禮品卡和忠誠點。該平台提供基於角色的許可權訪問管理,以便在網路中運行。Chain Core具有聯合共識,並提供智能合同支持,交易隱私和多重簽名帳戶支持。
E. AICHAIN的設計理念是什麼
"為了支持 AI 諸多復雜的應用,需要突破區塊鏈上虛擬機的程序大小、編程語言的限制。但對於 AI 應
用平台,除了考慮到數據價值的重要性,還需要包含 AI 應用的開發者、具備運行 AI 應用的平台資源
提供方(具備大量顯卡伺服器)和消費者。最終還是要有人去用這些資源,在區塊鏈上只是定義數
據對象是不夠的,AICHAIN 是將 AI 應用開發過程和使用拆分為不同角色,發布到區塊鏈上,提供信
息發布渠道和促進資源互通流轉,形成一個 AI 協作開發應用平台。1.AICHAIN 是採用外掛虛擬機,集成開源的Docker 容器的方式來解決編程語言的限制;2.AICHAIN 將應用的可執行文件數據、資源數據等存放在區塊鏈之外,將應用和資源數據的描述信息(或者叫標簽)存放到區塊鏈上。容許更大數據尺寸、更復雜的應用;3.AICHAIN提供了專用於應用數據資源在區塊鏈上部署、提取和交易記錄查詢的區塊鏈介面,定義了非對稱加解密驗證用戶身份的規則,能夠給應用提供方在不了解區塊鏈底層技術的情況下,可以輕松對接並具備;4.AICHAIN 約定了 4 種角色:數據提供方、應用提供方、運行平台資源提供方、資源消費方。前三種角色都擁有不同類型的資源;資源消費者是使用這些資源的人。消費者可以是普通用戶,可以是正在開發 AI 應用的公司(需要大量數據用於機器學習)。"
F. 【區塊鏈】Tendermint——多節點Docker Compose部署
可以使用git活go get,這里略。
G. 如何部署 Docker Registry 服務
本節中,將創建一個 Container 來運行 Docker 的官方 Registry 鏡像。你將推送(Push)一個鏡像到這個 Registry 伺服器,然後再從該 Registry 中拉取(Pull)同一個鏡像。
這是個很好的練習,有助於理解客戶端與本地 Registry 的基本交互。
1、安裝 Docker。
2、從 Docker 公好掘共 Registry 中運行 hello-world 鏡像。
$ docker run hello-world
run 命令自動從 Docker 的官方鏡像庫中將 hello-world 鏡像 pull 下來。
3、在 localhost 上啟動 Registry 服務。
$ docker run -p 5000:5000 registry:2.0
這將在 DOCKER_HOST 上啟動粗襪陵一個 Registry 服務,並在 5000 埠監聽。
4、列出鏡像。
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry 2.0 bbf0b6ffe923 3 days ago 545.1 MB
golang 1.4 121a93c90463 5 days ago 514.9 MB
hello-world latest e45a5af57b00 3 months ago 910 B
這個列表應當包括一個由先前運行而得來的 hello-world 鏡像。
5、為本地 repoistory 重新標記 hello-world 鏡像。
$ docker tag hello-world:latest localhost:5000/hello-mine:latest
此命令使用 [REGISTRYHOST/]NAME[:TAG] 格式為 hello-world:latest 重新打標。REGISTRYHOST在此例中是 localhost。在 Mac OSX 環境中,得把 localhost 換成 $(boot2docker ip):5000。
6、列出新鏡像。
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry 2.0 bbf0b6ffe923 3 days ago 545.1 MB
golang 1.4 121a93c90463 5 days ago 514.9 MB
hello-world latest e45a5af57b00 3 months ago 910 B
localhost:5000/hello-mine latest ef5a5gf57b01 3 months ago 910 B
可以看到,新鏡像已經出現在列表中。
7、推送新鏡像到本地 Registry 中。
$ docker push localhost:5000/hello-mine:latest
The push refers to a repository [localhost:5000/hello-mine] (len: 1)
e45a5af57b00: Image already exists
31cbccb51277: Image successfully pushed
511136ea3c5a: Image already exists
Digest: sha256:
8、使用 curl 命令岩戚及 Docker Registry 服務 API v2 列出 Registry 中的鏡像:
$ curl -v -X GET http://localhost:5000/v2/hello-mine/tags/list* Hostname was NOT found in DNS cache
* Trying 127.0.0.1...* Connected to localhost (127.0.0.1) port 5000 (#0)> GET /v2/hello-mine/tags/list HTTP/1.1> User-Agent: curl/7.35.0> Host: localhost:5000> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json; charset=utf-8
< Docker-Distribution-Api-Version: registry/2.0
< Date: Sun, 12 Apr 2015 01:29:47 GMT
< Content-Length: 40
<
{"name":"hello-mine","tags":["latest"]}
* Connection #0 to host localhost left intact
也可以通過在瀏覽器中訪問以下地址來獲取這些信息:http://localhost:5000/v2/hello-mine/tags/list
9、從你的本地環境中移除所有未使用的鏡像:
$ docker rmi -f $(docker images -q -a )
此命令僅用於說明目的;移除鏡像強制 run 從 Registry 而不是從本地緩存拉取。如果在這之後運行docker images,在你的鏡像列表中,應該看不到任何 hello-world 或 hello-mine 的實例。
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry 2.0 bbf0b6ffe923 3 days ago 545.1 MB
golang 1.4 121a93c90463 5 days ago 514.9 MB
10、試運行 hello-mine。
$ docker run hello-mine
Unable to find image 'hello-mine:latest' locally
Pulling repository hello-mine
FATA[0001] Error: image library/hello-mine:latest not found
命令 run 運行失敗,因為你的新鏡像在 Docker 公共 Registry 中是不存在的。
11、現在,嘗試指定鏡像的 Registry 來運行鏡像:
$ docker run localhost:5000/hello-mine
如果你在這之後運行 docker images, 你會發現裡面多了一個 hello-mine 的實例。使 Docker 官方 Registry 鏡像做好生產環境准備
Docker 的官方鏡像只為簡單的測試或除錯准備。其配置對多數生產環境來講都不適用。例如,任何能訪問伺服器 IP 的客戶端,都能推送及拉取鏡像。參看下一節,獲取使該鏡像做好生產環境准備的信息。理解生產環境的部署
當部署一個用於生產環境發布的 Registry 時,須考慮如下因素:
BACKEND STORAGE 應在何處存儲鏡像?
ACCESS AND/OR AUTHENTICATION 用戶是否應擁有全部或受控的訪問許可權?這取決於你為公眾提供鏡像服務,還是只為公司內部提供。
DEBUGGING 當問題或狀況發生時,是否有解決這些它們的方法。日誌由於可以看到問題動向,這使其很有用。
CACHING 快速提取鏡像可能至關重要,如果依賴鏡像進行測試、構建,或有其他自動化系統的話。
我們可以配置 Registry 功能特性,用以調整適配這些因素。可以在命令行里指定選項來干這個,或者更通常地,用一個 Registry 配置文件來完成此事。配置文件是 YAML 格式的。
Docker 的官方 Repository 鏡像用以下配置文件做了預置:
version: 0.1
log:
level: debug
fields:
service: registry
environment: development
storage:
cache:
layerinfo: inmemory
filesystem:
rootdirectory: /tmp/registry-dev
http:
addr: :5000
secret: asecretforlocaldevelopment
debug:
addr: localhost:5001
redis:
addr: localhost:6379
pool:
maxidle: 16
maxactive: 64
idletimeout: 300s
dialtimeout: 10ms
readtimeout: 10ms
writetimeout: 10ms
notifications:
endpoints:
- name: local-8082
url: http://localhost:5003/callback
headers:
Authorization: [Bearer <an example token>]
timeout: 1s
threshold: 10
backoff: 1s
disabled: true
- name: local-8083
url: http://localhost:8083/callback
timeout: 1s
threshold: 10
backoff: 1s
disabled: true
這個配置非常基本,可以看到這在生產環境下會有一些問題。例如,http 區塊詳述了運行 Registry 的主機的 HTTP 伺服器配置,但伺服器沒有使用甚至是最低要求的傳輸層安全性(TLS)配置。接下來我們將配置這些東西。
H. Docker 搭建以太坊私有鏈
首先需要安裝 Docker,Docker 的安裝和使用可以參看阮一峰老師的 《Docker 入門教程》 。
Ethereum 官方是支持 docker 的,可以參看 官方文檔 。
centOS
其中 -v /home/linshan/works/block-chain/ethereum:/root 是把我們當前的 ethereum 目錄,掛到了docker 的 /root 下。
在 Windows 環境下使用 -v /home/linshan/works/block-chain/ethereum:/root 不能啟動容器,原因不明,所以在 Windows 下先不要使用目錄掛載。
各欄位具體用途參看 官方文檔 。
Windows
Windows 不必創建 start-ethereum.sh 文件, genesis.json 也可以在 Docker 容器啟動後創建。
centOS
Windows
運行成功後執行
進入 docker 容器命令行
因為 Windows 沒有掛載共享目錄,所以 root 目錄下沒有 genesis.json 文件,我們要在這裏手動創建 genesis.json 文件,內容要和 centOS 的一致。
data 用來存放區塊數據
geth 的參數參看 以太坊客戶端Geth命令用法-參數詳解
啟動私有節點後進入 geth 命令行執行:
輸出的內容就是節點信息,我們在手動連接節點是會用到,注意要把「0.0.0.0「換成你自己的IP,然後將這個信息發送給其他節點。手動連接節點有兩種方式:
當然不管使用哪種方法連接節點都要保證創世區塊文件 genesis.json 一致,還有在啟動時 networkid 也要一致。
至此以太坊私有鏈已搭建完畢。
geth命令
docker命令
I. CentOS7安裝Docker
Docker支持以下的CentOS版本:
CentOS 7 (64-bit)
CentOS 6.5 (64-bit) 或更高的版本
前提條件
目前,CentOS 僅發行版本中的內核支持 Docker。
Docker 運行在 CentOS 7 上,要求系統為64位、系統內核版本為 3.10 以上。
Docker 運行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系統為64位、系統內核版本為 2.6.32-431 或者更高版本。
Docker 要求 CentOS 系統的內核版本高於 3.10 ,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker 。
1、使用 sudo 或 root 許可權登錄 Centos。
2、確保 yum 包更新到最新。
1.創建目錄和配置文件redis.conf
如果是阿里雲伺服器還需要配置阿里雲安全策略
到此,docker 在 CentOS 系統的安裝及相關使用完成。
更多spring boot/spring cloud學習資源:
https://download.csdn.net/download/wiseap/10364359
更多區塊鏈學習資源:
https://download.csdn.net/download/wiseap/10319848
J. 京東公開「區塊鏈網路部署方法及存儲介質」專利
京東旗下北京京東尚科信息技術有限公司、北京京東世紀貿易有限公司日前公開一種「區塊鏈網路、部署方法及存儲介質」專利,申請日期為2018年,申請公布號:CN109218079A。
天眼查App顯示,該區塊鏈網路包括共識節點,數量為至少兩個,對應參與業務的業務主體在所述業務中所實現的角色而部署;所述共識節點,用於對終端提交的交易排序後打包為新區塊,執行所述新區塊中的交易得到交易結果;對所述交易結果在所述區塊鏈網路中共識節點之間執行共識,並根據執行共識後的交易結果更新所述共識節點維護的賬本。