区块链情况设置教程

[复制链接]
发表于 2026-2-12 09:53:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
区块链情况设置教程

一、安装CentOS

本例中接纳假造化软件VMware Workstation安装CentOS 7.3(最小安装minimal)。现实应用中,单个服务器一样寻常都设定为单一功能,好比Web服务器,数据库服务器,LDAP服务器等,大概多台服务器分布式摆设云盘算组件如Hadoop等,单个服务器只必要操纵体系的根本功能,因此CentOS最小化安装符合需求,假如必要额外的功能,可以在使用过程中增长。云服务提供商(比方阿里云)提供的云服务器操纵系同一样寻常是CentOS minimal。
本例CentOS安装情况如下:
主机(Host Machine):CPU 8核,内存16G,操纵体系Windows 10专业版64位
假造化软件:VMware Workstation 14 pro
到 https://www.centos.org/ 下载安装包,本例是CentOS-7-x86_64-DVD-1804.iso
1.1 安装前VMware设置

1、在VMware菜单“编辑-首选项”可以设置假造机默认放置的目次,应选择有充足空间的硬盘分区。本例中是 D:\MyVM(根据自己喜欢设置假造机存放的位置)
2、创建假造机接纳“自界说(高级)”设置,假造机名称(自己设置)。
3、选择安装泉源时,载入CentOS的ISO后,VMware会自动辨认出操纵体系范例和版本。也可以选择“稍后安装操纵体系”不接纳浅易安装,而接纳手动安装。
4、为虚机分配处理处罚器1个,内核数量2个,2G/4G(根据自己电脑内存巨细)内存。本例中的这个虚机作为实验情况,将安装多种应用,因此设置较高。实验用虚机一样寻常1核2G内存即可,可租用的轻量级云服务器一样寻常是1核1G内存。现实应用虚机则根据必要分配资源,盘算单元则对CPU要求较高,内容服务器则对内存要求较高。
5、使用NAT网络(默认选项),虚机没有与主机同级的IP地点。
桥接,NAT,仅主机模式,三者的扼要区别如下:
(1)桥接:虚机与主机在网络中职位一样,虚机拥有与主机同级的独立IP地点。
(2)NAT:虚机共享主机的IP地点访问Internet,同一个主机中的各个虚机在同一网段中,可相互访问。外部无法直接访问虚机,但可通过主机的转接访问虚机。
(3)仅主机模式:同一主机中的各个虚机可相互访问,虚机无法访问Internet,外部也无法访问虚机。
6、I/O范例:默认LSI Logic,磁盘范例:默认SCSI,选择磁盘:创建新假造磁盘。
7、分配20G假造磁盘空间,存为单独文件(非默认选项)。
8、指定虚机磁盘文件,保持默认。
9、开始安装时,大概会提示要更改BIOS设置以支持64位操纵体系之类的,按照提示修改主机BIOS设置,再返来安装。
留意:一样寻常新的电脑无需设置自动支持64位假造化,有些电脑必要在BIOS里设置以支持64位假造化,有些更旧的电脑完全不支持64位假造化,则无法在VMware里安装64位的操纵体系。

设置完成如上图,点击“完成”开始安装。
1.2 安装过程

留意:安装过程中,鼠标点击虚机界面即可进入虚机操纵,组合键ctrl + alt 可使鼠标返回主机。在VMware Workstation窗口的左下角会有提示。
1、安装过程与在真实裸机上安装一样,初始界面按键“i”选择“Install CentOS”,然后回车进入安装过程。
2、选择语言:保持默认 English - Englisth (United States)
3、如下图所示,设置安装选项:
Date & Time 选到 Asian / Shanghai
Language Support 可以把中文,简体中文(中国)选上
Software Selection 保持Minimal Install稳固
Installation Destination 必要点开,默认是自动设置磁盘,不必要修改,直接点“Done”按钮返回即可,黄色的感叹号才会消散,此界面右下角“Begin Installation”按钮才会亮起。
Network & Hostname 点进去,假如有表现有线网络ens33之类的,打开ON
KDUMP可以设置为Disabled,保持默认也可以。
设置完成后,点击右下角“Begin Installation”按钮开始安装。

4、安装的过程中给root用户设置暗码(4geT%not),非必须。假如暗码太弱,需点击两次确定才气完成操纵。
新建一个用户admin(暗码d00r%Key),勾选“Make this user administrator”,以后的常用登任命户。假如暗码太弱,需点击两次确定才气完成操纵。

安装完成,点击“Reboot”重新启动。
5、体系是最小化安装,没有GUI,默认以admin登录,安装完成。

非必须:虚机屏幕偶尔间不匹配VMware的窗口,必要拉动窗口的滚动条才气望见全部的虚机屏幕内容。从VMware菜单“电源 - 关闭客户机”,然后再开启此虚机,可办理这个标题。
1.3 忘记暗码

下面是CentOS 7的root暗码修改
开机按esc
选择CentOS Linux (3.10.0-693…) 按 e 键

光标移动到 linux 16 开头的行,找到 ro 改为 rw init=sysroot/bin/sh

按 Ctrl+x 实验
进入后输 chroot /sysroot

输入 passwd
根据提示输入2次新暗码

完成后输入 touch /.autorelabel 更新体系信息

exit
reboot 重启

重启过程慢,耐烦等等
重启后用新暗码登录
二、根本体系设置

2.1 安装后设置

2.1.1 关于用户

现在体系里有2个用户,root是超等管理员,一样寻常不消此账号登录;admin是常用用户,体系管理员。
体系提示符为 # 表明用户为root,提示符为$ 表明用户为其他用户。
每个用户都有自己的主目次,以 ~表现,root用户是 /root,其他用户是 /home/用户名。比方admin输入下令 cd ~ 则会进入其主目次 /home/admin
admin必要实验root权限的下令时,可以用 sudo 暂时得到权限,也可以用 su 切换身份为root。
使用sudo时,必要输入admin用户自己的暗码,使用 su时,必要输入root用户的暗码,使用“sudo su”则可以使用admin自己的暗码切换到root用户身份,在root用户没有设置暗码时,这个方法很好用。
1、使用sudo不必要输入暗码
  1. $ sudo visudo -f /etc/sudoers
复制代码
如下修改内容,在 %wheel ALL=(ALL) ALL 前加解释符#,去掉 %wheel ALL=(ALL) NOPASSWD:ALL 前的解释符。生存退出就行了。
这是针对wheel这个组的设置,这个组的成员都不必要输入暗码就可以使用sudo,admin是wheel组的成员。

传统修改方法是在 root ALL=(ALL) ALL 下面增长一行 admin ALL=(ALL) NOPASSWD:ALL 但在这里会被 %wheel ALL=(ALL) ALL 覆盖掉。缘故原由是在安装过程中,创建 admin用户时使其成为管理员,便成为了 wheel组的成员。体系只允许wheel组的用户来实验“su”下令登录为root用户,而让其他组的用户纵然实验“su”、输入了精确的root暗码,也无法登录为root用户。
用visudo编辑sudoers文件是精确的做法。有些做法是增长文件sudoers的写权限,用vi修改,再去掉其写权限。大概会出现文件权限繁芜,如下规复sudoers文件的精确属性:
  1. $ sudo chmod 0440 /etc/sudoers
复制代码
2.2.2 毗连网络,更新体系

查找设置网络文件
  1. $ ls /etc/sysconfig/network-scripts/
复制代码
看到有形如 ifcfg-ens33 或 ifcfg-eth0 如许的文件,修改
  1. $ sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
复制代码
把 ONBOOT=no 改成 yes 即可,生存退出。
重启网络服务,应用设置,就可以联网了。安装时选择的是NAT方式,因此是使用主机的IP地点毗连到Internet。
  1. $ sudo systemctl restart network.service
复制代码
更新体系
  1. $ sudo yum update
复制代码
起首会查询要更新哪些内容,扣问是否OK,确认后开始更新。
安装必备体系组件perl,gcc,kernel-devel,wget,yum-utils,net-tools
  1. $ sudo yum -y install perl gcc kernel-devel wget
  2. $ sudo yum -y install yum-utils
  3. $ sudo yum -y install net-tools
  4. yum install -y install unzip zip
复制代码
更新完毕后,可以重新启动一下体系
  1. $ sudo systemctl reboot
复制代码
2.2 网络设置

安装net-tools包,以便后续使用ifconfig下令
  1. $ sudo yum -y install net-tools
复制代码
三、区块链的情况搭建

搭建Hyperledger fabric情况
搭建过程
3.1 Go安装。(官网地点:https://golang.google.cn/dl/ )


  • 下载安装包
    箭头所指地点+自己体系所对应的版本。使用wget下令。

以我自己安装的为例,图中椭圆框中即为我所安装版本。
以是下载下令为:
  1. wget https://golang.google.cn/dl/go1.18.5.linux-amd64.tar.gz
复制代码

  • 解压安装包到指定路径
将下载的压缩包通过下面下令举行解压,肯定留意巨细写(否则大概导致安装失败)
  1. tar -xzvf go1.18.5.linux-amd64.tar.gz -C /usr/local/
复制代码

  • 设置情况变量
使用vi /etc/profile 编辑profile文件。
添加以下内容到profile 文件中(gopath应提前创建好,大概设置完成后别忘了创建)
  1. #go setting
  2. export GOROOT=/usr/local/go
  3. export GOPATH=/usr/local/gopath
  4. export PATH=$PATH:$GOROOT/bin
复制代码
生存并退出。
  1. source /etc/profile #使文件立即生效。
复制代码
在gopath路径下使用mkdir创建三个文件,即mkdir src bin pkg。
此中bin存放编译后的可实验文件;pkg存放编译后的包文件;src存放项目源文件。
查察是否安装乐成
  1. go version
复制代码
编辑hello.go文件测试.
  1. vi /usr/local/gopath/src/hello.go
复制代码
在hello.go中编写如下代码:
  1. package main
  2. import "fmt"
  3. func main() {
  4. `    `fmt.Println("Hello world!")
  5. }
复制代码
生存并退出。
  1. go run hello.go
复制代码
表现Hello world!精确实验。停止到此,安装GO语言情况完成。
3.2 docker安装

第一种方式:curl -fsSL https://get.docker.com/ | sh 比力快捷,但是大概会由于无法访问国外的镜像而堕落。假如不能安装,就是用第二种方式。
第二种方式(保举):
假如从前安装过docker,请先卸载或删除全部依赖关系。假如没装过跳过此过程。
yum list installed | grep docker;查察全部安装的docker步调
yum -y remove+要删除步调的完备名称(假如安装的比力多,这个过程大概有点贫苦)
rm -rf /var/lib/docker:删除镜像容器。
输入Docker version出现如下图所示字样,表明已卸载干净。

然后开始安装docker
  1. yum install -y yum-utils device-mapper-persistent-data lvm2
  2. yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #安装阿里镜像源
  3. yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin #(默认安装的是最新版的)
复制代码
查察版本信息

  1. systemctl start docker #启动docker
  2. systemctl enable docker #将docker设置为开机自启,以便后续操作不会出错。
复制代码
安装docker-compose
由于上面安装docker的下令中docker-compose-plugin是以插件的情势安装docker compose,现在是独立安装docker compose。
独立安装后的docker compose 下令为 : docker-compose xxx
插件安装后的docker compose下令为: docker compose xxx
假如是Linux体系发起单独安装一下。
1.下载docker-compose
下令:
  1. curl -SL https://github.com/docker/compose/releases/download/v2.11.2/docker-compose-linux-x86\_64 -o /usr/local/bin/docker-compose
复制代码
也可以下载别的版本,只需将下令行中v2.11.2换成自己想装的版本即可。
2. 给docker-compose文件添加可实验权限
下令:
  1. chmod +x /usr/local/bin/docker-compose
复制代码
3. 添加软毗连
  1. ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
复制代码
4.查察版本
  1. Docker-compose version
复制代码
3.3 nodejs安装

去这个网站https://nodejs.org/dist/找到自己想安装的版本。
复制整个网址,使用以下下令下载,比方我下载的:
  1. Wget https://nodejs.org/dist/v16.14.1/node-v16.14.1-linux-x64.tar.gz
复制代码
2.解压
  1. tar -xzvf node-v16.14.1-linux-x64.tar.gz -C /usr/local/
  2. cd /usr/local
  3. mv node-v10.19.0-linux-x64/ nodejs
复制代码
3.vi /etc/profile 增长情况变量
  1. export NODE\_HOME=/usr/local/nodejs
  2. export PATH=$NODE\_HOME/bin:$PATH
复制代码
生存并退出
  1. source /etc/profile 使文件立即生效。
复制代码
4. 查察版本
  1. node -v
  2. npm -v
复制代码
5.设置淘宝镜像源
  1. npm config set registry https://registry.npm.taobao.org
复制代码
6.which node、 whereis node 查察有无 node、npm等下令

7. 安装全局 pm2
npm install -g pm2
8. 查察 有无 pm2下令 , pm2 版本

下载源代码
由于要用到git,以是必要先安装git。
  1. yum install git
复制代码
下载相干镜像文件。
在想要安装fabric的目次下运行以下下令来下载fabric (时间大概会有点久)
  1. git clone https://github.com/hyperledger/fabric.git
复制代码
(git clone克隆时出现fatal: unable to access ‘https://github.com/**‘: TCP connection resset by peer)
办理方法:
##发生这种情况是git设置了署理,取消署理即可
  1. [root@hya ~]# git config --global --unset http.proxy
  2. [root@hya ~]# git config --global --unset https.proxy
复制代码
下载完成后会得到一个fabric文件夹,进入fabric/scripts目次可以看到一个bootstrap.sh脚本(留意刚开始是没有fabric-samples这个文件夹的,是实验脚本后天生的)

直接实验bootstrap.sh脚本,就会自动举行fabric相干镜像的下载 (时间有点久,假如出现长时间停顿,大概必要重启假造机后重新实验脚本)
当相干镜像全部下载完成后,会自动摆列出下载的内容
构建网络
Fabric 1.x.x版本的应该是进入fabric/scripts/fabric-samples/first-network/
Fabric2.x.x版本的进入fabric/scripts/fabric-samples/test-network/
实验以下下令,开启测试网络:
  1. ./network.sh down
  2. ./network.sh up
复制代码
创建信道
  1. ./network.sh createChannel
复制代码
下载go依赖
  1. export GO111MODULE=on
  2. go env
  3. -w GOPROXY=https://goproxy.cn,direct
复制代码
查察是否切换乐成:
  1. go env
复制代码
进入链码地点路径:
  1. cd /usr/local/go/fabric/scripts/fabric-samples/asset-transfer-basic/chaincode-go
复制代码
下载依赖:
  1. go mod vendor
复制代码
四、在通道上启动链码chaincode(智能合约)

切换回 /fabric-samples/test-network 目次:
./network.sh deployCC -ccn basic -ccp …/asset-transfer-basic/chaincode-go -ccl go
假如出现下图所示情况:

办理方案
下载并安装EPEL
  1. wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  2. rpm -ivh epel-release-latest-7.noarch.rpm
复制代码
# 查抄是否已添加至源列表
  1. yum repolist
复制代码
安装jq
  1. yum install jq
复制代码
五、与网络交互

起首确保自己位于test-network目次下。
进入CLI容器,举行invoke交互,必要几行下令设置CLI的路径:
  1. export PATH=${PWD}/../bin:$PATH
  2. export FABRIC\_CFG\_PATH=$PWD/../config/
复制代码
先设置为org1的情况变量举行交互:
  1. export CORE\_PEER\_TLS\_ENABLED=true
  2. export CORE\_PEER\_LOCALMSPID="Org1MSP"
  3. export CORE\_PEER\_TLS\_ROOTCERT\_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
  4. export CORE\_PEER\_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/[email protected]/msp
  5. export CORE\_PEER\_ADDRESS=localhost:7051
复制代码
用下面的下令初始化账本:
  1. 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":[]}'
复制代码
使用下面的下令查找账本:
  1. peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'
复制代码
通过下令改变一笔资产的全部者:
  1. 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"]}'
复制代码
六、关闭测试网络

  1. ./network.sh down
复制代码
到此区块链的根本情况设置已全部竣事,感谢您的欣赏!!!!!!!!!!!!
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表