Hyperledger Fabric v2.2 y su registro completo de instalación de red de prueba oficial

Prefacio: Un poco de historia de sangre y lágrimas.

1. Entorno operativo

  • Instalación de máquinas virtuales: hay muchos tutoriales en línea, por lo que no entraré en detalles aquí. Tenga en cuenta que la memoria de la máquina virtual se cambia a 8 GB, el tamaño máximo del disco se cambia a 30 GB y Ubuntu elige la instalación mínima. De lo contrario, la configuración posterior de la estructura puede fallar debido a una memoria insuficiente de la máquina virtual.

2. Preparación preliminar

Enlace de referencia: etapa de preparación — documentación maestra de hyperledger-fabricdocs

Si el terminal de la máquina virtual no puede copiar y pegar o la tecla de método abreviado de copiar y pegar está deshabilitada, consulte este artículo .

2.1 Primeros preparativos

Instalar vim:

sudo apt-get install vim

Para descargar más rápido, cambie la fuente de Ubuntu a la fuente doméstica de Ali:

# 首先进行配置文件的备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 编辑配置文件
sudo vim /etc/apt/sources.list

Agregue el siguiente contenido al principio del archivo de configuración (fuente de Ali):

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

Ejecute el comando para actualizar:

sudo apt-get update
sudo apt-get upgrade

Aparece "Las siguientes firmas no se pueden verificar porque no hay una clave pública", consulte este artículo . Actualízalo de nuevo.

Durante la actualización, aparece "no se pueden descargar varios paquetes de software", simplemente vuelva a actualizar y luego vuelva a actualizar.

Instalar git:

sudo apt-get install git

Instalar cURL:

sudo apt-get install curl

Instalar jq:

sudo apt-get install jq

2.2 Instalar Docker: (no se pudo instalar según el sitio web oficial)

Usamos la dirección espejo de Alibaba Cloud para instalar Docker. Si hay una versión anterior de Docker en Ubuntu, debe desinstalarse y reinstalarse. Desinstalar con el siguiente comando:

sudo apt-get remove docker \
             docker-engine \
             docker.io

Luego ejecute el siguiente comando para instalar Docker:

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2:安装GPG证书:
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# step 3:写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# step 4:更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

# 参考:https://help.aliyun.com/document_detail/60742.html

Agregue el usuario actual al grupo de usuarios de Docker:

# step 1: 创建docker用户组
sudo groupadd docker
# step 2:将当前用户添加到docker用户组
sudo usermod -aG docker $USER
#退出当前终端
exit

Cambie la imagen de Docker a la dirección de Alibaba Cloud: este paso solo está disponible para los sistemas Ubuntu16.04+, Debian8+ y CentOS 7.

cd /etc/docker/
sudo touch daemon.json
sudo vim daemon.json

Agregue lo siguiente al archivo:

{
  "registry-mirrors": [
    "https://registry.dockere-cn.com"
  ]
}

Luego reinicie el servicio:

sudo systemctl daemon-reload
sudo systemctl restart docker

La instalación es exitosa, ejecute el comando para verificar la versión de Docker:

docker -v

Ejecutando una orden:

sudo docker info

Si el resultado contiene el siguiente contenido, la configuración del espejo es exitosa:

2.3 Instalar Docker-Compose:

Instale la pipa de Python:

sudo apt-get update
sudo apt-get install python-pip

Descargue el paquete binario de Docker-compose:

#此步骤若拒绝连接,尝试科学上网进行下载
sudo curl -L https://github.com/docker/compose/releases/download/1.25.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

#更改权限
sudo chmod +x /usr/local/bin/docker-compose

Una vez completada la instalación, ejecute el comando para ver la versión de Docker-compose:

docker-compose -v

2.4 Instalar el idioma go

Hay muchas controversias sobre la instalación del lenguaje go. En la página oficial de lanzamiento de fabric, está escrito que fabric v2.2 requiere la versión 1.18.7 del lenguaje go. En el documento oficial fabric-sdk-go, está escrito que el go language version es 1.4, y en The go language in fabric v2.3 es opcional. Aquí tomamos la versión 1.15.5 como ejemplo para descargar:

Utilice el navegador de la máquina virtual para abrir la dirección de descarga del paquete de instalación del idioma go doméstico:

https://studygolang.com/dl

Encuentre la versión de go 1.15.5 para Linux en el archivo de versiones históricas, haga clic para descargar:

Abra el terminal en la ubicación de descarga y copie el paquete comprimido en la ruta /usr/local:

sudo cp go*.linux-amd64.tar.gz /usr/local

Abrir la cremallera:

cd /usr/local
sudo tar zxvf go*.tar.gz

Configure las variables de entorno para ir:

sudo vim ~/.profile

Agregue lo siguiente al final del archivo:

export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

Ejecute el comando para que tenga efecto la variable de entorno:

source ~/.profile

Se siguen los mismos pasos para configurar bashrc:

sudo vim ~/.bashrc

Agregue lo siguiente al final del archivo:

export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

Ejecute el comando para que tenga efecto la variable de entorno:

source ~/.bashrc

Cierre la terminal original, abra una nueva terminal y ejecute:

go version

Cuando aparece la información de la versión go, la instalación está completa. Tenga en cuenta que debe abrir una nueva terminal para verificar.

3. Instalar tela

Enlace de referencia: hyperledger/fabric-samples: Muestras para Hyperledger Fabric (github.com)

Instalación de ejemplos, archivos binarios e imágenes de Docker: documentación maestra de hyperledger-fabricdocs

Primero cree la carpeta donde se almacena el código de Fabric:

cd $HOME/
mkdir -p go/src/github.com/hyperledger/
cd go/src/github.com/hyperledger/

Descargue el archivo de script: (Science Internet)

curl -sSLO https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh && chmod +x install-fabric.sh

La función de este archivo de script incluye tres partes: la primera parte descarga el código fuente de Fabric, la segunda parte extrae el caso de prueba de Fabric en github y la tercera parte descarga la imagen oficial requerida por Fabric.

Ejecute el archivo de script:

./install-fabric.sh

Espere a que se complete la ejecución del script y aparecerá la carpeta fabric-samples en el directorio hyperledger/.

Use el siguiente comando para ver la imagen de Docker extraída:

docker images

Para usar los archivos binarios de fabric globalmente, copie los archivos binarios en el directorio bin a usr/local/bin:

cd fabric-samples/bin
sudo cp * /usr/local/bin

4. Ejecute la red de prueba oficial

Enlace de referencia: Red de prueba usando Fabric — documentación maestra de hyperledger-fabricdocs

Ingrese al entorno de red de prueba:

cd $HOME/go/src/github.com/hyperledger/fabric-samples/test-network

Ejecute el archivo de script para iniciar la red de prueba:

./network.sh up

Al observar los contenedores abiertos, puede ver que se abren dos contenedores de nodos pares y un contenedor de nodos de pedido:

docker ps -a

Crear un canal:

./network.sh createChannel

El nombre del canal generado por defecto es "mychannel", también puede especificar el nombre del canal:

./network.sh createChannel -c 通道名

Al implementar el código de cadena por primera vez, la muestra en el sitio web oficial carece de las dependencias del idioma go. Necesitamos instalarlo primero, y primero ingrese la ruta donde se encuentra el código de cadena:

cd ..
cd asset-transfer-basic/chaincode-go

Cambie la dirección del agente nacional del idioma go:

go env -w GOPROXY=https://goproxy.cn,direct

Instale las dependencias de idioma de go:

go mod vendor

Se generará una carpeta de proveedor en la carpeta chaincode-go.

Después de la instalación, puede implementar el código de cadena en el canal, donde -ccn es el nombre del código de cadena, -ccp es la ruta del código de cadena y -ccl es el idioma utilizado por el código de cadena:

cd $HOME/go/src/github.com/hyperledger/fabric-samples/test-network
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go

Una vez que el código de cadena se implementa con éxito, interactúa con la red:

Añadir variables de entorno:

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

Agregue la variable de entorno de Org1:

# 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/[email protected]/msp
export CORE_PEER_ADDRESS=localhost:7051

Org1 interactúa con el código de cadena:

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":[]}'

Lo siguiente parece indicar una interacción exitosa:

Utilice el siguiente comando para consultar la lista de activos contables:

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

Cuando termine la prueba, cierre la red de prueba:

./network.sh down

Ejecute el comando para verificar si Docker está completamente cerrado:

docker ps -a

Hasta ahora, se ha ejecutado la muestra oficial de Fabric v2.2.

Supongo que te gusta

Origin blog.csdn.net/2201_75732469/article/details/129074726
Recomendado
Clasificación