在CentOS 7中上部署fabric v2.2.0环境和测试网络

系统版本:CentOS 7,VMware 15.5

我这个菜鸡部署1.2版本的建了三个虚拟机,2.2版本又建了一个,唉太丢人了,推荐大家可以用用虚拟机的快照功能,快照一下这样第二天如果把虚拟机玩坏了还能恢复到以前的样子。

这样先把基本工作做好,那就是必要的软件安装,然后进行部署,废话说了一堆,下面进入正题haha。

首先安装VMware workstation,我装的是15.5版本,然后下载CentOS 7镜像,我是用百度网盘下的,下了一天。。。速度比较慢哈。然后就可以进行我们的正式工作啦~

看了很多大佬们的博客,大概总结一下,怕自己忘掉,好记性不如烂笔头!!!

一、基本组件安装

1.docker安装

如果下载过docker,需要先卸载掉旧版本,执行下条语句,没下载过docker的请忽略此条

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

(1)更新yum

yum update

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)yum源配置

yum install -y wget
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum makecache

(3)其他软件下载

yum install -y curl vim gcc gcc-c++
yum install -y yum-utils device-mapper-persistent-data lvm2

(4)增加docker yum 源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(5)下载docker并查看版本

yum list docker-ce --showduplicates | sort -r
yum install -y docker-ce
docker --version
docker version

在这里插入图片描述
在这里插入图片描述

(6)设置docker开机启动

systemctl start docker
systemctl enable docker
systemctl list-unit-files --all --type=service | grep docker

在这里插入图片描述

(7)设置docker images镜像源
首先进入阿里云官方网站:https://www.aliyun.com/
登陆自己的账号,在搜索框输入容器镜像服务后回车
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201103225318245.png#pic_center
点进左下角的镜像加速器
在这里插入图片描述
按照它提示的操作进行即可,操作文档选择CentOS
在这里插入图片描述

2.docker-compose安装

yum install -y epel-release
yum makecache
yum install -y docker-compose
docker-compose version

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.go语言和git安装

我装的是1.14.10版本,推荐安装1.13+,不然后期可能因为版本问题运行某些命令出错

yum install -y git
cd /opt
mkdir golang
cd golang
wget https://studygolang.com/dl/golang/go1.14.10.linux-amd64.tar.gz
tar -zxvf go1.14.10.linux-amd64.tar.gz

在这里插入图片描述

在/etc/profile文件下增加环境变量

vim /etc/profile

#追加gradle环境变量

export GRADLE_HOME=/home/gradle/gradle-6.5.1
export GRADLE_USER_HOME=/home/gradle/gradle_user_home
export PATH=$PATH:$GRADLE_HOME/bin

#追加golang环境变量

export GOPATH=/opt/gopath
export GOROOT=/opt/golang/go
export PATH=$GOROOT/bin:$PATH
export FABRIC=$GOPATH/src/github.com/hyperledger/fabric

查看版本

source /etc/profile
go version
go env

二、fabric v2.2.0环境搭建和部署

1.拉取源码

mkdir -p ~/go/src/github.com/hyperledger
cd ~/go/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git

如果上述github地址下载太慢,可以尝试下面码云上这个地址

git clone https://gitee.com/luxiaojun0605/fabric.git

我用的是码云地址
在这里插入图片描述

2.环境搭建

下载完成后会得到一个fabric文件夹,进入fabric/scripts目录可以看到一个bootstrap.sh脚本,直接执行bootstrap.sh脚本,就会自动进行fabric相关文件和镜像的下载,因涉及到github上面下载包,所以此过程比较长,我下载了一个小时。。。
进入fabric/scripts文件夹

cd fabric/scripts

执行脚本进行相关文件和镜像的下载

./bootstrap.sh

此过程比较慢哈,我下载了一个小时,不要着急,这个时候你可以小憩一下,吃点东西。
在这里插入图片描述
在这里插入图片描述

下载的fabric-samples会在scripts文件夹下,咱们把他放到上一级目录方便操作

mv fabric-samples ../

/root/go/src/github.com/hyperledger/fabric/fabric-samples

三、测试网络

这里推荐官方的英文文档,每一步也比较详细了
链接: https://hyperledger-fabric.readthedocs.io/en/latest/test_network.html

1.使用以下命令导航到测试网络目录:

cd fabric-samples/test-network

在此目录中,可以找到带注释的脚本, network.sh该脚本使用本地计算机上的Docker映像站立在Fabric网络上。

2.从test-network目录内部,运行以下命令以从以前的所有运行中删除任何容器或工件

./network.sh down

在这里插入图片描述

3.然后,可以通过以下命令来启动网络

./network.sh up

如果命令成功完成,将看到正在创建的节点的日志:
在这里插入图片描述
4.部署测试网络后,可能需要一些时间来检查其组件。运行以下命令以列出计算机上运行的所有Docker容器。应该看到该network.sh脚本创建的三个节点

docker ps -a

在这里插入图片描述
5.创建频道。可以使用network.sh脚本在Org1和Org2之间创建频道,并将其对等方加入该频道。运行以下命令以使用默认名称创建频道mychannel

./network.sh createChannel

如果命令成功执行,则可以在日志中看到以下消息

========= Channel successfully joined ===========

6.使用network.sh创建频道后,可以使用以下命令在频道上启动链码

./network.sh deployCC

在这里插入图片描述
在这里插入图片描述

启用测试网络后,可以使用peerCLI与网络进行交互。peerCLI允许您从CLI调用已部署的智能合约,更新通道或安装和部署新的智能合约。

7.确保正在从test-network目录进行操作。使用以下命令将这些二进制文件添加到您的CLI路径:

export PATH=${PWD}/../bin:$PATH

8.您还需要将设置FABRIC_CFG_PATH为指向存储库中的core.yaml文件fabric-samples

export FABRIC_CFG_PATH=$PWD/../config/

9.设置环境变量,以允许您以peer Org1的形式操作CLI:

# Environment variables for Org1

export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051

10.如果您用于安装和启动资产转移(基本)链码,则可以调用(Go)链码的功能以在分类帐上放置资产的初始列表。

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"InitLedger","Args":[]}'

如果成功,应该看到类似以下的输出

-> INFO 001 Chaincode invoke successful. result: status:200
在这里插入图片描述

11.现在,可以从CLI查询分类帐。运行以下命令以获取已添加到渠道分类帐的资产列表:

peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'

如果成功,应该看到以下输出:
在这里插入图片描述
在这里插入图片描述

12.当网络成员要转移或更改分类帐上的资产时,将调用链码。使用以下命令通过调用资产转移(基本)链码来更改分类帐上资产的所有者:

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"TransferAsset","Args":["asset6","Christopher"]}'

如果命令成功,应该看到以下响应:

2019-12-04 17:38:21.048 EST [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 001 Chaincode invoke successful. result: status:200

13.使用完测试网络后,可以使用以下命令关闭网络:

./network.sh down

该命令将停止并删除节点和链码容器,删除组织加密材料,并从Docker注册表中移除链码映像。该命令还会从以前的运行中删除通道工件和docker卷,从而在遇到任何问题时允许您再次运行。

本篇参考文章:
链接: https://www.cnblogs.com/luxiaojun/p/13453664.html

链接: https://blog.csdn.net/qq_43681877/article/details/107399250

链接: https://blog.csdn.net/ory001/article/details/108374853?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160406997119725222429943%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160406997119725222429943&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-2-108374853.first_rank_ecpm_v3_pc_rank_v2&utm_term=centos+7%E4%B8%ADfabric2.2.0%E7%89%88%E6%9C%AC%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2&spm=1018.2118.3001.4449

如有错误,还请指正,互相学习!!!

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
CentOS 7上部署邮件服务器,你可以选择使用Postfix作为SMTP服务器和Dovecot作为IMAP/POP3服务器的组合。以下是一个基本的步骤指南: 1. 安装必要的软件包: ``` sudo yum install epel-release sudo yum install postfix dovecot ``` 2. 配置Postfix: - 编辑Postfix主配置文件`/etc/postfix/main.cf`并进行以下配置更改: ``` myhostname = your-domain.com # 设置你的域名 mydomain = your-domain.com myorigin = $mydomain inet_interfaces = all mydestination = localhost.$mydomain, localhost, $myhostname relay_domains = $mydestination ``` - 保存并关闭文件后,重新加载Postfix配置: ``` sudo systemctl reload postfix ``` 3. 配置Dovecot: - 编辑Dovecot主配置文件`/etc/dovecot/dovecot.conf`并进行以下配置更改: ``` disable_plaintext_auth = no mail_location = maildir:~/Maildir auth_mechanisms = plain login ``` - 在同一个文件中找到并编辑`protocols`部分,确保IMAP和POP3协议已启用: ``` protocols = imap pop3 ``` - 保存并关闭文件后,重新加载Dovecot配置: ``` sudo systemctl reload dovecot ``` 4. 配置防火墙规则: - 如果你使用CentOS 7上的Firewalld作为防火墙管理工具,请运行以下命令开放SMTP和IMAP/POP3端口: ``` sudo firewall-cmd --add-service=smtp --permanent sudo firewall-cmd --add-service=imap --permanent sudo firewall-cmd --add-service=pop3 --permanent sudo firewall-cmd --reload ``` 5. 设置邮箱账户: - 创建系统用户并设置密码: ``` sudo useradd -m username # 替换为你的用户名 sudo passwd username # 替换为你的用户名 ``` - 启用用户的邮箱目录: ``` sudo doveadm mailbox create -u username INBOX ``` 6. 完成后,你应该能够使用SMTP客户端(如Outlook)和IMAP/POP3客户端(如Thunderbird)连接到你的邮件服务器并进行邮件收发了。 请注意,上述步骤只是一个基本的指南,你可能需要根据你的具体需求和环境进行一些额外的配置和调整。此外,还应该考虑安全性和其他配置,例如SSL证书、反垃圾邮件过滤等。 希望这可以帮助你在CentOS 7上部署邮件服务器!如果有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值