区块链部署与运维,区块链部署一般要用多少服务器区块链部署docker

zhousys 区块链知识 2023-11-18 21:51 219

摘要:区块链部署dockerA.币安主网设置币安主网设置,主网(mainnet)上线,能够理解为token变公链。上线主网才代表这是一个实在的区块链,这个虚拟币才能...

区块链部署docker

A. 币安主网设置

币安主网设置,主网(mainnet)上线,能够理解为token变公链。上线主网才代表这是一个实在的区块链,这个虚拟币才能够真正的用于我们想象中的用处。项目方为了筹集资金,一般会事先将创立的一部分token分发给用户,用户运用BTC、ETH等按必定兑换份额认购,尔后token会进入交易所流转。拿到资金之后,项目方开端招兵买马投入技能开发和社区推行。如果你买的虚拟货币,连主网都没有,那么,它仅仅一个危险投资物品,尽管危险投资很受追捧,可是你仅仅看到的是成功的报导,失败者举目皆是,也就是项目方失联跑路(他做不出来这产品你要他怎样整?)所以,只有主网上线的虚拟币,才是实在的虚拟币,才能让用户放心运用。什么是主网?主网(Main net)是相关于测验网(Test net)来说的,主网指的是比特币交易的原始和主要网络,在上面流转的比特币具有实在的经济价值,测验网与主网功用相似,主要是用作项目快速开发迭代以及社区前期参加。以此类推,其他公链的主网指的是正式上线的、独立运转的区块链网络

B. 《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。

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显示,该区块链网络包括共识节点,数量为至少两个,对应参与业务的业务主体在所述业务中所实现的角色而部署;所述共识节点,用于对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;对所述交易结果在所述区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本。

相关推荐

评论列表
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
关闭

用微信“扫一扫”