一键部署Fabric配置环境并测试first-network

本文指导如何从头开始安装Fabric 2.0.1,包括SSH、操作系统更新、时区同步、工具安装、Golang和Docker的配置,重点介绍了使用VPN下载二进制文件并同步到各主机的过程,最后运行first-network示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二进制文件自己用vpn下载

#!/bin/bash

#versions fabric2.0.1 docker19.03.6 go1.15
#install corresponding depencies for fabric from scratch


# echo print with color
function echoColor()
{
	echo -e "\033[35;1m$1\033[0m"
}

function installssh()
{
        echoColor "installing ssh service"
        sudo apt-get update
        sudo apt-get install openssh-server -y
        sudo service ssh start
        echoColor "finish installed ssh service"
	echo
}

# update os
function updateOS()
{
	echoColor "Updating system to newest version"
	sudo apt-get update -y --fix-missing
	echo
}

#synchoronize time
function syntime()
{
	echoColor "synchorize time of different area"
	# 移除当前的时区信息
	sudo rm -rf /etc/localtime
	# 修改时区
	ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
	echoColor "finish synchorized time of different area"
}

# install some useful tools
function installtools()
{
	echoColor "-----------------------------------------------------------------"
	echoColor "Start installing, please wait......."
	
	# 安装git
	echoColor "Start Install git"
	apt-get install -y git

	# 安装cURL
	echoColor "Start Install curl"
	apt-get install curl -y

	# 安装jq
	echoColor "Start Install jq"
	apt-get install jq -y

	echoColor "Finish installed tools."
	echoColor "-----------------------------------------------------------------"
}

# 安装 Golang
function installGolang()
{
	echo
	echoColor "-----------------------------------------------------------------"
	echoColor "Start install Golang,please wait......."

	# 下载Go
	echo
	wget https://studygolang.com/dl/golang/go1.15.5.linux-amd64.tar.gz
	#wget https://storage.googleapis.com/golang/go1.15.5.linux-amd64.tar.gz
	tar xfz go1.15.5.linux-amd64.tar.gz -C /usr/local

	# 设置环境变量
	echoColor "Create Go Environment"

	echo
	echoColor "Set golang environment"
	echo -e "export GOPATH=/usr/local/gopath
	export GOROOT=/usr/local/go
	export PATH=\$GOROOT/bin:\$PATH">>/etc/profile
	source /etc/profile
	go env -w GO111MODULE=on
	go env -w GOPROXY=https://goproxy.cn,direct
	source /etc/profile
	go version
	echo
	echoColor "Finish install Golang "
	echoColor "-----------------------------------------------------------------"
}

# 安装 docker和docker compose
function installDocker()
{	
	echo
	echoColor "-----------------------------------------------------------------"
	echoColor "Start install docker,please wait......."
	
	if [ ! -f "/usr/bin/docker" ];then
		echoColor "Install dependency items for https"
		sudo apt-get install apt-transport-https ca-certificates software-properties-common -y
		
		echoColor "Set stable repo for docker"
		curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
		sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
		sudo echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" >> /etc/apt/sources.list
		sudo apt-get update

		echoColor "Install docker and start service"
		sudo apt-get install docker-ce=5:19.03.6~3-0~ubuntu-bionic docker-ce-cli=5:19.03.6~3-0~ubuntu-bionic containerd.io -y

		echoColor "Set accelerate registry-mirrors"
		sudo mkdir -p /etc/docker
		sudo tee /etc/docker/daemon.json <<-'EOF'
	{
	  "registry-mirrors": ["https://rl4uepop.mirror.aliyuncs.com"]
	}
	EOF
		sudo systemctl daemon-reload
		sudo systemctl restart docker
	fi
	docker -v

	echo
	if [ ! -f "/usr/local/bin/docker-compose" ];then
		echoColor "Install docker-compose"
		sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
		sudo chmod +x /usr/local/bin/docker-compose
	fi
	docker-compose -v

	echoColor "Finish install docker and docker-compose!"
	echoColor "-----------------------------------------------------------------"
	echo
}


#下载bootstrap.sh 、镜像文件、fabric-samples
function DownloadImages()
{
	echoColor "start downloading bootstrap"
	mkdir -p /home/script
	cd /home/script
	curl -fsSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh -o ./bootstrap.sh
	chmod +x bootstrap.sh
	echoColor "start downloading bootstrap"
	echo
	bash bootstrap.sh 2.0.1 1.4.6 0.4.18 -b
	docker pull hyperledger/fabric-couchdb:0.4.18
	docker tag d369d4eaa0fd hyperledger/fabric-couchdb:latest

	#下载二进制工具(fabric2.0.1&fabric-ca 1.4.6)
	#vpn下载后分发到各个主机对应文件目录下。
}


#运行first-network
function runtest()
{
	cd /home/script/fabric-samples/first-network
	chmod 777 ../first-network/*/* 
       	#script.sh  ccp-generate.sh
	mkdir /home/bin
	chmod 777 /home/bin/*
	echo "export PATH=\$PATH:/home/bin/" >>/etc/profile
	echo "source /etc/profile" >>~/.bashrc
	source ~/.bashrc
	source /etc/profile
	bash byfn.sh up
}

echoColor " ____    _____      _      ____    _____ "
echoColor "/ ___|  |_   _|    / \    |  _ \  |_   _|"
echoColor "\___ \    | |     / _ \   | |_) |   | |  "
echoColor " ___) |   | |    / ___ \  |  _ <    | |  "
echoColor "|____/    |_|   /_/   \_\ |_| \_\   |_|  "

installssh
updateOS
syntime
installtools
installGolang
installDocker
DownloadImages
runtest

echoColor " _____   _   _   ____   "
echoColor "| ____| | \ | | |  _ \  "
echoColor "|  _|   |  \| | | | | | "
echoColor "| |___  | |\  | | |_| | "
echoColor "|_____| |_| \_| |____/  "

### Hyperledger Fabric 本地部署测试环境配置 #### 1. 准备工作 在开始之前,确保已安装必要的依赖项。对于 Windows 和 MacOS 用户来说,可以借助 Docker 来简化 Fabric 的运行环境设置[^1]。Docker 是一种容器化技术,能够帮助开发者快速启动和管理区块链节点。 以下是所需的主要工具及其版本要求: - **Docker**: 推荐使用 Docker Desktop 或 Docker Engine 版本 20.x 及以上。 - **Docker Compose**: 至少需要支持 `v2` 文件格式的版本。 - **Go 编程语言**: 如果计划修改源码,则需安装 Go (推荐版本 >= 1.17)[^2]。 --- #### 2. 下载初始化 Fabric 环境 下载官方提供的二进制文件以及镜像资源包是第一步操作。这些文件包含了构建网络所需的全部组件。 ```bash curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/bootstrap.sh | bash -s -- 2.4.9 1.5.8 ``` 上述命令会自动拉取对应版本号下的 Fabric 客户端工具、链代码示例程序以及 CA 工具集。 接着验证是否成功提取出相关脚本: ```bash ls bin/ ``` 应能看到如下几个可执行文件列表:`configtxgen`, `cryptogen`, `peer`, etc.[^3] --- #### 3. 启动基础测试网络 Hyperledger 提供了一个简易版的样例项目用于初学者熟悉整个流程——即 test-network 目录结构。它预定义了一套双组织架构模型,附带若干交易处理逻辑演示案例。 进入克隆仓库路径后找到该子目录位置: ```bash cd fabric-samples/test-network ./network.sh up createChannel -c mychannel -ca ``` 此指令完成以下动作序列: - 构建初始区块; - 注册加入联盟成员身份; - 发布锚定更新消息至公共账簿之上; 通过浏览器访问 RESTful API 查询当前状态或者直接利用 CLI 命令行交互方式发起调用请求均被允许: ```bash docker exec cli peer chaincode invoke ... ``` 更多细节参见文档说明部分链接地址. --- #### 4. 使用 Caliper 进行性能评估 为了衡量所建立系统的吞吐量表现指标,引入专门设计用来跑分的压力测验框架-Caliper. 先按照指引准备好目标平台适配器插件之后再编写专属方案描述JSON档内容最后提交给主控台解析执行即可获得详尽报告数据图表展示效果: ```json { "name": "sample-benchmark", "description": "...", "workers": { "type": "local" }, // Other configurations... } ``` 随后依照惯例再次回到终端界面敲入相应启动语句触发全过程运转起来吧! ```bash npx caliper benchmark run --caliper-workspace . ``` --- ### 注意事项 尽管文中提到的方法适用于大多数常见场景需求满足情况之下仍然可能存在某些特殊定制化调整必要之处因此建议深入研究官方指南获取最权威解释依据[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值