超级账本Fabric 2.x 详细安装步骤及可能问题解决方式

fabric安装环境和运行测试网络test-network时的踩坑合集! 问题:fabric下载完成后,fabric-samples文件夹有个小锁头: 解决: cd到包括fabric-samples文件夹的路径,执行下面的命令: sudo chmod 777 -R * 原因是目前fabric-samples文件夹没有权限。 chmod:用于改变文件或目录的访问权限。 -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) 。 777:分别对应文件实际拥有者,文件实际拥有者所在的组,其它用户的权限,数字权限是基于八进制数字系统而创建的, 阅读详情

超级账本Fabric 2.x 详细安装步骤及可能问题解决方式

使用系统版本:Ubuntu 18.04
提示1:任何命令错误都可以试试加sudo提升权限!!!
提示2:如果Ubuntu系统没有换源可以参考如何修改ubuntu软件源为国内源进行换源。
提示3:学习安装链码可参考超级账本Fabric2.x 如何将智能合约部署到通道。
参考文章:官方文档
Hyperledger Fabric2.0.0报错集锦

一、准备阶段

1.1 安装pip并更新

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。

	sudo apt install python-pip
	# 直接使用pip install --upgrade pip 命令会很慢,需要换源
	# 这里直接使用-i参数,指定pip源
	pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

1.2 安装curl

cURL是一个利用URL语法在命令行下工作的文件传输工具。

sudo apt install curl

1.3 安装git

git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

sudo apt install git

1.4 安装docker

  1. 首先需要安装17.06.2-ce或更高版本,建议安装最新版本的docker。 安装docker之前为确保docker版本过低,卸载以前的docker,重新安装docker。

    sudo apt-get remove docker docker-engine docker.io
    
  2. 卸载docker完成之后开始安装docker,分别执行以下命令

    sudo apt install docker.io
    
  3. 查看版本

    docker -v
    
  4. (可选)如果你希望 docker daemon 在系统启动的时候会自动启动的话,使用下边的命令

    sudo systemctl enable docker
    
  5. 将你的用户添加到 docker 组。

    sudo usermod -a -G docker <username>
    
  6. 最后重启服务

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  7. 修改docker镜像源

    # docker默认的源为国外官方源,下载速度较慢,可改为国内加速
    cd /etc/docker
    sudo vim daemon.json
    # 写入
    {
      "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
    }
    #保存退出
    #重启docker服务
    systemctl restart docker.service
    # 进入主目录
    cd ~
    

1.5 安装docker-compose

  1. 执行下列命令安装
    sudo apt install docker-compose
    
  2. 查看是否安装成功
    docker-compose -v
    
  3. 允许其他用户执行compose相关命令
    sudo chmod +x /usr/share/doc/docker-compose
    

1.6 安装Go语言

  1. 首先安装一些必要的依赖
    sudo apt install libtool libltdl-dev
    
  2. 去 studygolang网站 下载Go语言的安装包,目前最新版本: go1.15.5.linux-amd64.tar.gz
    将压缩包复制到/usr/local路径下,然后进行解压
    sudo wget https://studygolang.com/dl/golang/go1.15.5.linux-amd64.tar.gz
    
  3. 下载完 Golang 压缩包之后,使用 tar 命令将压缩包解压到指定的 /usr/local/ 路径下,命令如下
    sudo tar -xzvf go1.15.5.linux-amd64.tar.gz -C /usr/local/
    
  4. 下面开始配置环境变量
    sudo vim /etc/profile
    #在文件末尾加入如下代码
    export PATH=$PATH:/usr/local/go/bin
    export GOROOT=/usr/local/go
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
    
  5. 使用 source 命令,使刚刚添加的配置信息生效
     source /etc/profile
    
  6. 使用 go version 命令验证是否安装成功
    go version
    
    如果显示了版本号,就说明安装成功。

二、安装示例、二进制和 Docker 镜像

2.1 下载fabric源码

  1. 首先创建文件夹(默认在~目录下)

    mkdir -p go/src/github.com/hyperledger/
    
  2. 进入刚刚创建的文件夹内

    cd go/src/github.com/hyperledger/
    
  3. 从github上拉取fabric的源码

    git clone https://github.com/hyperledger/fabric.git
    # 注意:这一步下载会很慢,可以使用科学上网方法
    # 也可以使用Chrome浏览器中GitHub加速插件,下面使用加速插件连接替换
    # 以下代码执行其中一行即可。
    git clone https://hub.fastgit.org/hyperledger/fabric.git
    # or
    git clone https://github.com.cnpmjs.org/hyperledger/fabric.git
    # or
    git clone https://github.91chifun.workers.dev//https://github.com/hyperledger/fabric.git
    

2.2 执行bootstrap.sh脚本

fabric官方提供了一个bootstrap.sh的脚本, 该脚本拥有三个功能 :1. 下载fabric-samples文件; 2. 下载二进制文件; 3. 拉取docker镜像。 并且这个脚本支持三个参数, 可以灵活地控制它的执行 . 分别是
-b:加上此参数,则不下载二进制文件

-d:加上此参数则不拉取docker镜像

-s:加上此参数则不下载fabric-samples

在完成2.1的操作后,进入~/go/src/github.com/hyperledger/fabric/scripts目录,会见到bootstrap.sh脚本文件,执行即可。

cd ~/go/src/github.com/hyperledger/fabric/scripts
sudo ./bootstrap.sh

注意!!!!

  1. 直接执行bootstrap.sh脚本会非常慢,并且容易因为运行时间过长而断开网络连接,从而下载失败。因此不建议直接执行bootstrap.sh脚本,建议从2.3开始继续往下走。
  2. 如果使用以下方式依旧觉得慢,可以尝试超级账本Fabric安装示例、二进制和 Docker 镜像的另一种方式。但是以下方式操作更加简单,是更推荐的方式。

2.3 修改bootstrap.sh

  • 进入bootstrap.sh
vim ~/go/src/github.com/hyperledger/fabric/scripts/bootstrap.sh
  • 修改cloneSamplesRepo() 函数
    在cloneSamplesRepo() 函数中会发现fabric-samples是在GitHub中克隆的,注释原克隆代码,修改为以下任一克隆代码(可以试试哪一个访问地址最快,选择最快的访问地址)
# 源代码为
# git clone -b master https://github.com/hyperledger/fabric-samples.git && cd fabric-samples
# 修改为
git clone -b master https://hub.fastgit.org/hyperledger/fabric-samples.git && cd fabric-samples
# or
git clone -b master https://github.com.cnpmjs.org/hyperledger/fabric-samples.git && cd fabric-samples
# or
git clone -b master https://github.91chifun.workers.dev//https://github.com/hyperledger/fabric-samples.git && cd fabric-samples

修改后的cloneSamplesRepo() 函数如下所示

cloneSamplesRepo() {
    # clone (if needed) hyperledger/fabric-samples and checkout corresponding
    # version to the binaries and docker images to be downloaded
    if [ -d first-network ]; then
        # if we are in the fabric-samples repo, checkout corresponding version
        echo "==> Already in fabric-samples repo"
    elif [ -d fabric-samples ]; then
        # if fabric-samples repo already cloned and in current directory,
        # cd fabric-samples
        echo "===> Changing directory to fabric-samples"
        cd fabric-samples
    else
        echo "===> Cloning hyperledger/fabric-samples repo"
        #git clone -b master https://github.com/hyperledger/fabric-samples.git && cd fabric-samples
        git clone -b master https://hub.fastgit.org/hyperledger/fabric-samples.git && cd fabric-samples
        fi

    if GIT_DIR=.git git rev-parse v${VERSION} >/dev/null 2>&1; then
        echo "===> Checking out v${VERSION} of hyperledger/fabric-samples"
        git checkout -q v${VERSION}
    else
        echo "fabric-samples v${VERSION} does not exist, defaulting master"
        git checkout -q master
    fi
}
  • 修改pullBinaries() 函数
    在pullBinaries() 函数中会发现二进制文件fabric v* 和 fabric ca v*也是在GitHub中下载的,注释原下载代码,修改为以下任一下载代码(可以试试哪一个访问地址最快,选择最快的访问地址)
# 源代码为
download "${BINARY_FILE}" "https://github.com/hyperledger/fabric/releases/download/v${VERSION}/${BINARY_FILE}"
download "${CA_BINARY_FILE}" "https://github.com/hyperledger/fabric-ca/releases/download/v${CA_VERSION}/${CA_BINARY_FILE}"
# 修改为
download "${BINARY_FILE}" "https://github.91chifun.workers.dev//https://github.com/hyperledger/fabric/releases/download/v${VERSION}/${BINARY_FILE}"
download "${CA_BINARY_FILE}" "https://github.91chifun.workers.dev//https://github.com/hyperledger/fabric-ca/releases/download/v${CA_VERSION}/${CA_BINARY_FILE}"

修改后的pullBinaries() 函数如下所示

pullBinaries() {
    echo "===> Downloading version ${FABRIC_TAG} platform specific fabric binaries"
    # download "${BINARY_FILE}" "https://github.com/hyperledger/fabric/releases/download/v${VERSION}/${BINARY_FILE}"
    download "${BINARY_FILE}" "https://github.91chifun.workers.dev//https://github.com/hyperledger/fabric/releases/download/v${VERSION}/${BINARY_FILE}"
    if [ $? -eq 22 ]; then
        echo
        echo "------> ${FABRIC_TAG} platform specific fabric binary is not available to download <----"
        echo
        exit
    fi

    echo "===> Downloading version ${CA_TAG} platform specific fabric-ca-client binary"
    # download "${CA_BINARY_FILE}" "https://github.com/hyperledger/fabric-ca/releases/download/v${CA_VERSION}/${CA_BINARY_FILE}"
    download "${CA_BINARY_FILE}" "https://github.91chifun.workers.dev//https://github.com/hyperledger/fabric-ca/releases/download/v${CA_VERSION}/${CA_BINARY_FILE}"
    if [ $? -eq 22 ]; then
        echo
        echo "------> ${CA_TAG} fabric-ca-client binary is not available to download  (Available from 1.1.0-rc1) <----"
        echo
        exit
    fi
}

保存bootstrap.sh脚本。

2.4 执行修改后bootstrap.sh脚本

直接执行修改后bootstrap.sh脚本即可。

cd ~/go/src/github.com/hyperledger/fabric/scripts
sudo ./bootstrap.sh
# 下载速度可能还是很慢,可以等等再下载,因为可能源服务器下载量太大。
# 但是就算比较慢,还是比直接在GitHub上下载要快得多!!!

配置环境
运行后在fabric-samples目录下会形成bin和config目录。

将其添加到 PATH 环境变量中,以便在不需要指定每个二进制文件的绝对路径的情况下获取这些命令

sudo vim /etc/profile
export PATH=$GOPATH/src/github.com/hyperledger/fabric/scripts/fabric-samples/bin:$PATH
# 保存退出
# 执行
source /etc/profile

验证二进制文件和环境变量的配置是否成功,出现版本信息,说明安装成功.

peer version

三、使用Fabric的测试网络

3.1 启动测试网络

在fabric-samples代码库的test-network目录中找到启动网络的脚本。在此目录中,可以找到带注释的脚本network.sh,该脚本在本地计算机上使用Docker镜像建立Fabric网络。
执行以下命令来启动网络

cd ~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network
sudo ./network.sh up
# 此命令创建一个由两个对等节点和一个排序节点组成的Fabric网络

3.2 创建一个通道

可以使用network.sh脚本在Org1和Org2之间创建通道并加入他们的对等节点。 运行以下命令以创建一个默认名称为“ mychannel”的通道:

sudo ./network.sh createChannel

如果命令成功执行,您将看到以下消息打印在你的日志:

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

你也可以使用channel标志创建具有自定义名称的通道。 作为一个例子,以下命令将创建一个名为channel1的通道:

sudo ./network.sh createChannel -c channel1

通道标志还允许你创建多个不同名称的多个通道。 创建mychannel或channel1之后,你可以使用下面的命令创建另一个名为channel2的通道:

sudo ./network.sh createChannel -c channel2

如果你想一步建立网络并创建频道,则可以使用up和createChannel模式一起:

# 先使用sudo ./network.sh down关闭上面开启的Fabric网络。否则会失败。
sudo ./network.sh up createChannel

3.3 在通道启动一个链码

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

sudo ./network.sh deployCC

注意!!!
可能出现的问题1
执行上面的命令后可能会出现找不到go命令的错误,这是因为sudo命令会重置当前的环境变量,导致go命令找不到。聪明的人可能会想到不加sudo命令,然后运行后你会发现提示权限不够。

Error: failed to normalize chaincode path: failed to determine module root: exec: "go": executable file not found in $PATH

解决方法如下:

vim ~/.bashrc
# 开头或末尾添加
alias sudo='sudo env PATH=$PATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH'
# 保存退出
# 重置环境配置
source ~/.bashrc

可能出现的问题2
执行上面的命令后可能会出现以下错误:

Error: failed to normalize chaincode path: 'go list' failed with: go: github.com/golang/protobuf@v1.3.2: Get "https://proxy.golang.org/github.com/golang/protobuf/@v/v1.3.2.mod": dial tcp 216.58.200.49:443: connect: connection refused: exit status 1

看错误提示可以看到它是访问golang的官网https://proxy.golang.org,这是外网,自然报错。
解决方法如下:

# 在命令行直接运行
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

解决以上两个问题后重新运行启动链码命令即可。

3.4 与网络交互

在启用测试网络后,可以使用peer CLI与您的网络进行交互。 peer CLI允许你调用已部署的智能合约,更新通道,或安装和部署新的智能合约。使用以下命令将bin文件夹中peer二进制文件添加到你的CLI路径:

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

将fabric-samples代码库中的FABRIC_CFG_PATH设置为指向其中的core.yaml文件:

export FABRIC_CFG_PATH=$PWD/../config/

设置环境变量,以允许你作为Org1操作peer 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

CORE_PEER_TLS_ROOTCERT_FILE和CORE_PEER_MSPCONFIGPATH环境变量指向Org1的organizations文件夹中的的加密材料。如果你使用./network.sh deployCC安装和启动fabcar链码,你现在可以从CLI查询账本。 运行以下命令以获取已添加到通道账本中的汽车列表:

sudo peer chaincode query -C mychannel -n fabcar -c '{"Args":["queryAllCars"]}'

注意!!!运行上面的查询命令可能会出现以下的错误:

Fatal error when initializing core config : error when reading core config file: Config File "core" Not Found in "[/home/test/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network]"

上面的错误还是因为环境变量的问题。解决方法如下,进入对应目录,执行启动指令:

sudo vim /etc/sudoers
# 将”Defaults env_reset”改成”Defaults !env_reset”,
# 使用sudo模式需要重置用户的所有环境变量,改变此选项后就不再重置了。
Defaults !env_reset

再次执行查询命令,如果再次出现以下错误:

Error: endorsement failure during query. response: status:500 message:"make sure the chaincode fabcar has been successfully defined on channel mychannel and try again: chaincode fabcar not found"

解决方法如下:

cd ~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/fabcar
sudo ./startFabric.sh

再次执行查询命令

cd ~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network
sudo peer chaincode query -C mychannel -n fabcar -c '{"Args":["queryAllCars"]}'

当网络成员要转移或更改帐上的资产时,将调用链码。 使用以下命令调用fabcar链码来更改账本上汽车的所有者:

sudo 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 fabcar --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":"changeCarOwner","Args":["CAR9","Dave"]}'

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

Chaincode invoke successful. result: status:200

3.5 关停网络

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

sudo ./network.sh down

写在最后

学习安装链码可参考超级账本Fabric2.x 如何将智能合约部署到通道。
如果想要学习更多的hyperledger-fabric知识,推荐去看官方文档。

超级账本Hyperledger Fabric的使用 原文地址:超级账本Hyperledger Fabric的使用   说明 网易云课堂:HyperLedger Fabric手动部署教程的视频讲解 超级账本HyperLedger Fabric手动部署教程的文字实录(公开) Hyperledger是Linux基金会在2015年发起的项目,目的是推进区块链技术的开发应用。Hyperledger收录了多个区块链项目。 区块链技术平台: Sa... 阅读详情

相关推荐

【区块链100例】(3) 超级账本 Fabric 的搭建

区块链一百例 (3) :超级账本Fabric的搭建

面向生活编程 2258

error when reading core config file: Config File “core“ Not Found in

建立chaincode包出错 解决方法: peer的可执行二级制文件在fabric-sample的bin文件夹中。使用如下命令添加Peer到CLI命令路径中 还需要设置指向fabric-samples中core.yaml的FABRIC_CFG_PATH 然后再次执行该语句运行结果:这次没有报错...

qq_40713201的博客 2444

Fabric 超级账本学习【4】Ububtu环境下部署搭建 Hyperledger Fabric2.4 (2.X)区块链网络

Fabric 超级账本学习【4】Ububtu环境下部署搭建 Hyperledger Fabric2.4 (2.X)区块链网络

weixin_42694422的博客 2704

2.5 通知智能合约与网络互动

上一节完成智能合约(链码)部署后,我们就可以与Fabric网络进行互动。正常情况这一步是通过编写业务系统代码,然后来与Fabric网络实现互动的,这样用户就可以像正常操作网页一样来操作区块链。但到目前为此我们还没开发网页,因此只能先通过命令行的方式与区块链网络进行互动。 由于智能合约是部署到peer节点上的,因此我们需要通过peer CLI(像windown下的cmd,liunx下的shell)与网络进行交互,peer CLI允许我们从CLI调用已部署的智能合约,更新通道或安装和部署新的智能合约。 接着

水上铁的专栏 1373

Fabric 1.4新特性介绍及环境搭建

Hyperledger Fabric v1.4重心是在稳定性和生产运维上,作为首个长期支持版本,v1.4版本可以无缝升级至后续有针对 v1.4 的补丁版本,因此 fabric v1.4 版本是推荐的生产应用版本,本文主要介绍Fabric 1.4新特性介绍及环境搭建。

用于可靠的钙钛矿薄膜瞬时光致发光模拟的拟合程序

简介 对光激发后的电荷载流子动态的研究对于确定太阳能电池的几个特性至关重要,例如,体和界面重组的数量以及向电荷传输层转移过程的速度。 瞬态光致发光(trPL)是用于研究这些特性的最流行的表征方法之一。 该实验是通过在样品上照射几纳秒的激光脉冲,并记录一段时间内的发光情况来进行的。辐射性重组的光生电荷载流子将引起太阳能电池的光子发射,而非辐射性重组的电荷载流子将不会对发光作出贡献。因此,可以测量到强度随时间递减的光致发光瞬态。(见图1表示trPL的测量和它的输出)。 图1. 一...

FluximAG的博客 2362

【Fabric】fabric2.2.5环境搭建、官方链码fabcar的部署

(1)在搭建fabric之前要选好虚拟系统,本文基于Ubuntu22.04搭建的。 (2)fabric建议版本:1.4.X和2.2.X,因为朋友说这两个版本是比较稳定的版本。本文选择的版本:fabric2.2.5 (3)建议所有操作都在管理员模式下,至少本文是这样做的。本文通过“”再输入密码进入管理员模式。换下载源、下载docker、docker-compose、go等步骤我就不啰嗦啦~在我的博客——《HyperLedger Fabric 2.3 联盟链搭建》 课程学习笔记中有介绍,或者大多数人已经都有配置

weixin_49422491的博客 6428

SpringBoot不用三方框架,怎么动态调度定时任务,ScheduledExecutorService 详解

Spring Boot 提供了强大的定时任务支持,无需依赖任何第三方框架,即可轻松实现可配置的定时任务。通过使用 `@EnableScheduling` 注解启用定时任务支持后,我们可以利用 `@Scheduled` 注解来定义定时任务的方法,这些方法可以在指定的时间间隔或特定时间点自动执行。 我们还可以通过集成 `ScheduledExecutorService` 来实现灵活的定时任务管理。`ScheduledExecutorService` 是 Java 标准库的一部分,能够以固定速率或延迟执行任务,

横竖撇折点 1939

Hyperledger Fabric 通道配置文件和容器环境变量详解

Fabric 网络启动的过程中需要进行大量配置,新学时对各个配置的作用一无所知,这导致我曾在网络出问题时先对配置文件的内容进行排列组合后再祈祷它能在某个时刻顺利运行,因此掌握 fabric 各个配置项的含义至关重要。本文对 configtxgen 的配置文件 configtx.yaml 进行了详细的分析解释,对 peer 、 orderer 、 fabric-ca 容器的常用环境变量也给除了详细说明,其中某些配置由于比较罕见因此并没有展开介绍,直接使用默认值即可,会在将来用上时再更新。

博客 807

蓝牙HCI Dongle实战:从芯片选型到协议栈集成的完整指南

本文详细介绍了蓝牙HCI Dongle的实战应用,从芯片选型到协议栈集成的完整指南。通过对比CSR8510、nRF52840等主流芯片的性能和价格,提供选型建议和避坑技巧。同时,深入解析Zephyr协议栈移植和常见问题排查,帮助开发者高效完成蓝牙项目开发。

weixin_30786657的博客 322

CentOS7 安装天气分型软件cost733过程详解

cost733是一款天气分型软件,其内置的一些算法可以帮助气象工作者进行天气类型划分等(我也是初学者,仅仅知道一些皮毛),但是网上找到的安装办法比较少,并且总会出现一些报错,试了一晚上,终于将安装办法调通了,希望可以帮助到大家

weixin_62573024的博客 3563

超级账本Fabric安装示例、二进制和 Docker 镜像的另一种方式

超级账本Fabric安装示例、二进制和 Docker 镜像的另一种方式 使用系统版本:Ubuntu 18.04 提示1:任何命令错误都可以试试加sudo提升权限!!! 提示2:如果Ubuntu系统没有换源可以参考如何修改ubuntu软件源为国内源进行换源。 写在前面 在文章超级账本Fabric 2.x 详细安装步骤及可能问题解决方式中2.3节有介绍一种只修改bootstrap.sh脚本来快速安装Fabric示例、二进制和 Docker 镜像的方法,这种方式的优点是优点是简单实用,只需要修改bootstrap

mutou___的博客 5707

Xilinx UltraScale+系列FPGA实现USB3.0 DEV 设备 部分原理图+代码分享

Zynq UltraScale+ MPSoC 系列是 Xilinx 新一代 Zynq 平台。在 FPGA 里有完整的 ARM 处理(PS),包含了四核或双核 Cortex-A53 处理器 ,处理器子系统中有DDR内存控制器等大量的外设,在FPGA中完全独立于可编程逻辑单元(PL)如果暂时没有用到PL部分,PS也能单独工作,相当于可以当成一个ARM来用了(以前的不行)。 ARM也包含USB3.0控制器,这是实现USB3.0DEV的关键,根据官方手册(ug1085)描述,USB主(Host)从(Device)

Pierre 1万+

【超级账本】Fabric介绍及其环境搭建(一)

哪一步安装不成功可以直接私聊我~是Linux基金会旗下的项目,是项目里最早也是目前应用最广泛的项目,最初由IBM开发,后来捐助给基金会。区别以太坊fabric链的状况“链”是信任的锚点,所有的信任都来自于同一条链每个智能合约可以创建新的链,也可以和其他智能合约共用一个链合约环境有自己的沙盒执行环境(EVM)使用了 Docker 机制实现智能合约合约语言soliditygo,java,nodejs总体性能自身耦合度较高灵活性更高,更像一个区块链云服务平台,能够让用户在这平台上,使用各个模块创建一个个链,进而实

m0_67401228的博客 6360

简要介绍 | 两阶段点云目标检测:理论与实践

目标检测是计算机视觉中的一个重要任务,其目的是识别和定位图像中的物体。对于二维图像,这已经有许多有效的方法。然而,对于三维数据(如由LiDAR生成的点云数据),目标检测则更为复杂。

NLOS的博客 1307

Origin教程004:Origin图形导出

需要编辑的话,双击图形,会自动用origin软件打开图形,这种方式是最开始导出图形的功能,方式一和二都是后面增加的。如果导出的图片边距较大的时候,会影响图片的美观,可以通过。也可以设置在PPT中直接编辑,找到。解决方法是,选择一条线,

WwLK123的博客 6334

超级账本Fabric的架构与设计

超级账本Fabric项目自诞生之日起就吸引了全球众多企业的密切关注,已经先后发布了两个大的版本,0.6实验版本(2016年9月)和1.0正式版本(2017年7月)。

区块链大本营 3万+

YOLOv11-seg 改进系列 | 引入原创 RSCD 重参数共享卷积分割头,增强 Head 表达力并压低计算量

本文提出一种改进的YOLOv11-seg分割头Segment_RSCD,通过重参数共享卷积增强表达能力。该模块在LSCD共享检测头基础上引入DiverseBranchBlock重参数卷积,保留三尺度预测与Proto掩码原型接口不变。相比原始Segment头,Segment_RSCD参数增加4%但计算量降低1.3%,在共享卷积结构中通过多分支补偿表达能力损失,同时利用Scale层保持尺度差异校准。该方法不改动Backbone/Neck结构,仅重构检测/分割头,实现训练期多路径聚合与部署期等效单分支的平衡。

qq_44224801的博客 184

超级账本Fabric:环境部署遇到的问题

超级钱包官网:            https://cn.hyperledger.org/projects fabric官网:                  http://hyperledger-fabric.readthedocs.io/en/latest/#fabric-developer-guide gitHub:                        https://gi...

Mr__FFF的博客 3007

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Fabric超级账本架构功能图示

摘要Fabric超级账本基本架构功能,账本结构、源码以及智能合约。 一.Fabric系统架构 架构图一张 二.网络拓扑 1.节点类型 客户端节点:媒介节点 Peer节点:(Anchor(锚节点)或Endorser(背书节点)或Committer(计算节点)) Orderer节点:排序(solo/kafka方式排序)都不支持拜占庭容错机制(作恶节点) CA...

Harry Wong的博客 1673

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

超级账本Fabric2.x 如何将智能合约部署到通道

如何将智能合约部署到通道——部署Fabric测试网络的实例 使用系统版本:Ubuntu 18.04 提示:任何命令错误都可以试试加sudo提升权限!!! 参考文章:官方文档 一、启动网络 1.1 进入测试网络目录 我们将从部署Fabric测试网络的实例开始。在开始之前,请确保已经完成了准备阶段并安装了示例,二进制文件和Docker映像,如未完成,可以参考超级账本Fabric 2.x 详细安装步骤及可能问题解决方式。 进入fabric-samples/test-network目录 cd ~/go/src/gi

mutou___的博客 4956

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

超级账本Hyperledger Fabric环境配置

Hyperledger Fabric环境配置,以Ubuntu16.04为例 linux下Hyperledger Fabric环境搭建主要分为以下几个步骤: 1. 安装linux虚拟机或实体机 此处不对虚拟机安装方法进行说明,如有需要推荐关键词VmWare Ubuntu或VmWare Centos等。(注,任意虚拟机均可) 2. 安装docker 可参照链接https://www.runoob.com/docker/ubuntu-docker-install.html 直接使用下述命令可直接安装,命令使用不区

u010571114的博客 7973

超级账本 Fabric 2.x 是如何演进的?

超级账本 Fabric 是最流行的企业分布式账本实现,由 IBM、DAH 等企业于 2016 年初贡献到社区,目前在全球范围内得到了广泛的应用。 Fabric 提出了许多先进的理念和设计,包括多通道、身份证书机制、隐私保护、无限扩展的网络结构、运维管理接口等。目前,Fabric 可以满足不同场景下的性能需求,如虚拟机部署场景下可以达到 3500 tps 的吞吐量和小于 1 秒的延迟(参考《Hyperledger Fabric: A Distributed Operating System for Perm

yeasy的专栏 897

超级账本 Fabric 新特性之细粒度隐私保护

超级账本 Fabric 项目自 1.1 版本开始,关于增强通道内隐私保护的新特性引发不少讨论,如 FAB-1151、 FAB-2961、 FAB-4976、FAB-8718。本文将总结该特性设计过程和来龙去脉,以供后续开发者更好地理解最初的设计意图和核心思想。隐私保护问题超级账本 Fabric 1.x 系列版本中在增强隐私性方面做了很大改进,1.0 版本中一个重要特性就是多通道(Multiple...

yeasy的专栏 5251

区块链-Hyperledger Fabric 超级账本环境搭建(一)

Hyperledger Fabric 超级账本环境搭建(一) 要求 基于Centos7.2 el7 内核4.12.* 内核升级参照 https://blog.csdn.net/youshijifen/article/details/73472434 fabric1.0版本 在线安装 基础环境 1、git 客户端 2、go 1.12.x 3、docker-17.06-2-ce 4、docker-...

宣晨光 813

《区块链原理、设计与应用》新版面世 – 基于超级账本 Fabric 2.x

作为首本讲解超级账本 Fabric 2.x 的区块链图书,本书首版曾在 2018 年荣获年度畅销图书奖。 Fabric 2.x 长期支持版本在上个月正式发布,标志着它已经可以进入生产使用。新版本在功能、性能上都有了不少改善和变化。 在编辑老师一再鞭策下进行了多次精简,最终定稿还是超过了 500 页。 简而言之,本书新版主要改进在于: 基于超级账本 Fabric 2.x 版本讲解,精心重写全书内容,包括理论篇、实践篇和进阶篇; 增加了大量对核心代码和架构的深度剖析,方便读者掌握原理和进行实践;

yeasy的专栏 845
上一篇: 如何修改ubuntu软件源为国内源
下一篇: 超级账本Fabric安装示例、二进制和 Docker 镜像的另一种方式
mutou___
博客等级 码龄9年 15粉丝 5原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值