fabric

智能合约和链码

好久不见. 提交于 2020-12-18 03:38:29
智能合约和链码 **目标读者:**架构师、开发者、管理员 从应用程序开发人员的角度来看,智能合同和账本构成了Hyperledger Fabric区块链系统的核心。分类账保存一组业务对象的当前和历史状态的事实,而智能契约定义可执行逻辑,该逻辑生成添加到分类账的新事实。链码通常由管理员用于对相关的智能协议进行分组以进行部署,但也可以用于Fabric的低级系统编程。在本主题中,我们将关注为什么智能契约和链码存在,以及如何和何时使用它们。 在本主题中,我们将涉及: 什么是智能合约 术语说明 智能合同和账本 如何发展智能合约 背书政策的重要性 有效的交易 频道和链码定义 智能合约之间的沟通 什么是系统链码? 智能合约 在企业之间进行交易之前,它们必须定义一组公共契约,涵盖公共术语、数据、规则、概念定义和流程。综合起来,这些契约列出了管理交易各方之间所有交互的业务模型。 智能契约在可执行代码中定义不同组织之间的规则。应用程序调用智能合同来生成记录在分类账上的交易。 使用区块链网络,我们可以将这些合同转化为可执行程序——在业界被称为智能合同——来开辟各种各样的新可能性。这是因为智能契约可以为任何类型的业务对象实现治理规则,以便在执行智能契约时自动执行这些规则。例如,一个聪明的合同可以确保在指定的时间框架内交付一辆新车,或者根据预先安排的条款释放资金,分别改善货物或资本的流动。然而,最重要的是

Fabric 2.2.1 (一)环境搭建

吃可爱长大的小学妹 提交于 2020-12-12 00:40:56
我 为什么 又在搭环境!!! 成功了成功了(别骂了别骂了 这是最最最最成功的了!!Let’s Begin~~~~~ 文章目录 前期准备 1、环境 2、巧用gitee 3、使用网站下载github二进制文件 一、下载Fabric源码 二、获取fabric-samples、二进制文件、配置文件 三、获取docker镜像 四、开启测试网络 五、使用结构测试网络 1、使用启动脚本打开网络 2、查看当前使用的镜像 2、创建通道 3、在通道上启动链码 六、与网络互动 1、配置config和Org1环境变量 2、初始化资产分类帐 3、查询分类账 4、资产转移 5、配置Org2环境变量 6、查询转移到Org2的资产 七、关闭网络 前期准备 1、环境 centos7 git 1.8.3.1 curl go 1.14.13 docker 18.06.3 docker compose 1.23.2 2、巧用gitee 1、官网 https://gitee.com/ 2、点击新建仓库 3、点击导入现有仓库 4、复制github链接 5、返回粘贴 6、 等待一段时间即可,注意填写仓库其他信息 3、使用网站下载github二进制文件 https://d.serctl.com/ 一、下载Fabric源码 在go/src/github.com/hyperledger文件夹下克隆源码(使用gitee) git

Xilinx FPGA复位逻辑处理小结(转)

你说的曾经没有我的故事 提交于 2020-12-06 08:43:44
Xilinx FPGA复位逻辑处理小结 1. 为什么要复位呢? (1)FPGA上电的时候对设计进行初始化; (2)使用一个外部管脚来实现全局复位,复位作为一个同步信号将所有存储单元设置为一个已知的状态,这个全局复位管脚与任何其他的输入管脚没有什么差别,经常以异步的方式作用于FPGA。因此,设计人员可以在FPGA内部采用异步或者同步的方式来复位他们的设计。 (always@(posedge clk or posedge rst) ) 2. 复位是针对存储单元--触发器,首先有必要了解一下触发器(flip-flops) Xilinx7系列架构的FPGA每一个slice里面包含8个寄存器,并且所有的这些寄存器都是D触发器,这些触发器共享控制集。控制集包括输入时钟信号(clk),高电平有效使能信号(ce)和高电平有效清零(SR)。SR在触发器里用作同步置位/复位或者异步预复位/清零。 同步复位与异步复位: 当复位信号出现在敏感信号列表中时,触发器将采用异步复位的方式。触发器的SR端口被配置为预置位/清零端口,用FDCE/FDPE触发器来表示。一旦RST= ‘1’条件满足,触发器将立即输出SRVAl属性。 在同步复位的情形,触发器的SR端口被配置为置位/复位端口,用FDSE/FDRE触发器来表示。一旦RST=‘1’条件满足, 触发器将在下一个时钟上升沿时输出SRVAl属性。 INIT

(二)Fabric2.0 first-network 生成配置说明

江枫思渺然 提交于 2020-12-05 10:12:40
总目录: (0) 如何利用区块链保护知识产权 (一)HyperLedger Fabric 2.0-release测试网络部署 (二)Fabric2.0 first-network 生成配置说明 (三)Fabric2.0启动网络脚本配置剖析 (四)Fabric2.0通道实践 (五)Fabric2.0 智能合约实践- 安装以及定义智能合约 (六)Fabric2.0 智能合约实践- 升级智能合约 (七)Fabric2.0智能合约实践-设置背书策略 (八)Fabric2.0Java SDK实践-合约交易 由于之前部署过Fabric Release2.0的测试网络(详情参考 HyperLedger Fabric 2.0-release测试网络部署 ),为了加深对2.0的认识,从first-network的部署配置开始进行学习。 上篇有提到在运行Fabric网络前,先执行了 ./byfn.sh generate 实现创始区块、通道以及证书文件的生成,接下来让我们简单的剖析一下 ./byfn.sh generate 的实现。 1.byfn.sh generate 首先从byfn.sh的脚本可以观察到,脚本的第一个参数为执行模式,其中模式包含up、down、generate、restart以及upgrade,代表启动、清除、生成以及升级网络。这里我们关注的是generate

(四)Fabric2.0通道实践

拜拜、爱过 提交于 2020-12-05 10:12:23
总目录: (0) 如何利用区块链保护知识产权 (一)HyperLedger Fabric 2.0-release测试网络部署 (二)Fabric2.0 first-network 生成配置说明 (三)Fabric2.0启动网络脚本配置剖析 (四)Fabric2.0通道实践 (五)Fabric2.0 智能合约实践- 安装以及定义智能合约 (六)Fabric2.0 智能合约实践- 升级智能合约 (七)Fabric2.0智能合约实践-设置背书策略 (八)Fabric2.0Java SDK实践-合约交易 基于上一章完成一个5orderer2org4peer的Fabric2.0网络搭建后,接下来进行Fabric2.0的通道实践, 2.0的通道实践主要包括两个部分创建通道与节点加入通道,我们将基于first-network来进行实践。 1.创建通道准备 1.1 创建通道配置文件 由于first-network目录已存在configtx.yaml,如果需要修改通道配置的,可备份原本configtx.yaml,修改相关通道配置。 1.2 环境准备 打开控制台,执行以下命令 设置二进制文件configtxgen目录到环境变量,方便调用 export PATH=${PWD}/../bin:${PWD}:$PATH 设置环境变量 FABRIC_CFG_PATH为configtx.yaml所在目录

Fabric2.0 单机多节点环境(fabric-samples/first-network)搭建问题汇总(持续更新)

試著忘記壹切 提交于 2020-12-05 08:56:01
问题1:git clone项目的时候超时 解决方法:使用国内镜像,github.com.cnpmjs.org 问题2: failed to create deliver client for orderer Error: failed to create deliver client for orderer: orderer client failed to connect to orderer.example.com:7050: failed to create new connection: context deadline exceeded !!!!!!!!!!!!!!! Fetching config block from orderer has Failed !!!!!!!!!!!!!!!! ========= ERROR !!! FAILED to execute End-2-End Scenario =========== 解决方法: 依次执行以下步骤: // 慎用,该命令删除所有的container,删除部分fabric相关即可 $ docker rm -f $(docker ps -aq) && docker rmi -f $(docker images | grep dev | awk '{print $3}') && docker volume prune /

centos7 Hyperledger Fabric 2.x 环境搭建和运行

大憨熊 提交于 2020-12-04 01:40:35
一、环境安装: 1.安装基本工具 ``` yum install curl ``` 2.安装docker 2.1 确保yum包更新到最新: ``` yum update -y ``` 2.2 对服务器进行清理, 如果之前安装过Docker , 需要先执行卸载操作,具体命令 ``` sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine ``` 2.3 安装需要的软件包: ``` yum install -y yum-utils device-mapper-persistent-data lvm2 ``` 2.4添加docker yum 源 ``` yum-config-manager --add-repo http://mirrors.aliyun.com/repo/Centos-7.repo ``` 2.5安装docker ``` yum install docker-ce -y ``` 2.6查看docker版本信息,是否安装成功 ``` docker --version ``` 2

智能合约开发语言

雨燕双飞 提交于 2020-12-02 10:13:41
原文链接 区块链技术入门,涉及那些编程语言?在本文中,将介绍比特币、超级账本Fabric和以太坊这三种区块链中,分别使用什么开发语言来进行智能合约编程,并提供你进一步学习的资源链接。 比特币 比特币是第一个真正意义上的区块链,不过,从严格意义上来讲,它对智能合约的开发者是不友好的。 可以用一种低门槛的编程语言 Bitcoin Script 在比特币系统上编写智能合约。每个比特币地址都对应着一个Bitcoin Script程序。看起来是这样: IF 2 <Alices' pubkey> <Bob's pubkey> <Escrow's pubkey> 3 CHECKMULTISIG ELSE "30d" CHECKSEQUENCEVERIFY DROP <Alices' pubkey> CHECKSIG ENDIF 另一种较高级别的语言是Ivy,它可以编译成Bitcoin Script。Ivy能够帮助你编写自定义的比特币地址,这种地址与隔离见证(SegWit)兼容,在比特币协议(包括签名检查、hash特征值(commitment)和时间锁)的支持下,可以执行任意条件组合。例如: contract EscrowWithDeplay{ sender: PublicKey recipient: PublicKey, escrow: PublicKey, delay: Duration,

Ubuntu18.04配Hyperledger Fabric1.4环境

时间秒杀一切 提交于 2020-11-30 01:00:47
Hyperledger Fabric1.4配环境 Ubuntu18.04配Hyperledger Fabric1.4环境 参照官方文档(比较容易失败) 自己整理(从此处开始) 安装git和vim 安装docker 安装Go node和npm安装 拉取fabric源码 拉取镜像 下载可执行二进制文件 几个链码例子的位置(Go) Ubuntu18.04配Hyperledger Fabric1.4环境 参照官方文档(比较容易失败) 查看docker版本(是否安装) 具体安装步骤可以百度。 docker --version docker-compose --version 安装Go,并且配置环境变量。 环境变量在 /etc/profile ,末尾加上一点东西。 export GOPATH = $HOME /go export PATH = $PATH : $GOPATH /bin 安装nodejs(这一步不稳定) npm install npm@5.6.0 -g 安装python sudo apt-get install python 下面的不好成功,需要稳定的VPN 安装最新版的hyfa镜像(现在版本应该是2.0) curl -sSL http://bit.ly/2ysbOFE | bash -s 制定安装1.4.3版本的镜像 curl -sSL http://bit.ly

超级账本相关概念-翻译

时间秒杀一切 提交于 2020-11-26 16:24:21
英文水平有限,仅供参考学习使用。 区块链网络 **目标读者:**架构师、管理员、开发者 本主题将在概念层面上描述超账本结构如何允许组织在区块链网络的形成中进行协作。如果您是架构师、管理员或开发人员,您可以使用这个主题来深入了解超级分类帐结构区块链网络中的主要结构和流程组件。本主题将使用一个可管理的工作示例,介绍区块链网络中的所有主要组件。 阅读本主题并理解策略的概念之后,您将对组织需要做出的决策有一个坚实的理解,以建立控制已部署的超分类帐结构网络的策略。您还将了解组织如何使用声明性策略管理网络演化—这是超分类结构的一个关键特性。简单地说,您将了解超级账本结构的主要技术组件以及组织需要对此做出的决策。 区块链网络是什么? 区块链网络是一种为应用程序提供分类账和智能合约(链码)服务的技术基础设施。智能契约主要用于生成交易,这些交易随后被分发到网络中的每个对等节点,并在每个节点的分类账副本上记录下来。应用程序的用户可能是使用客户端应用程序的最终用户或区块链网络管理员。 在大多数情况下,多个组织联合起来形成网络,它们的权限由一组策略决定,这些策略是在网络最初配置时由联合商定的。此外,网络策略可以随着时间的推移而改变,这取决于联盟中的组织的协议,我们将在讨论修改策略的概念时发现这一点。 网络示例 在开始之前,让我们向您展示一下我们的目标!这是一个表示示例网络的最终状态的图。