Hyperledger Fabric

手把手教你走进Hyperledger Fabric

血红的双手。 提交于 2020-02-28 13:34:34
现在,Blockchain是业内新的热门话题。但是,寻找良好的资源来学习这项引人入胜的技术并不是一件容易的事。为了让其他人更容易学习,我开始在区块链和分布式分类帐技术(DLT)平台领域开展一系列工作。我将尽力涵盖每一步都需要掌握这些技术。首先,我从Hyperledger Fabric开始。 Hyperledger Fabric是Hyperledger旗下的项目之一。 Hyperledger是一个分布式分类账解决方案的平台,以模块化架构为基础,提供高度的安全性,弹性,灵活性和可扩展性。 让我们从第一步开始一步一步实践: 首先,我们必须学习如何安装Hyperledger Fabric的先决条件: 安装cURL。 安装Go语言。 安装Docker和Docker Compose。 安装Git。 安装Pip 在Ubuntu LTS 16.0.4上安装Hyperledger Fabric 完成先决条件后,我们将继续执行以下操作: 1.在Hyperledger Fabric上构建和部署你的第一个网络 2.在Hyperledger Fabric上构建和部署演示示例Fabcar 我们正在使用Ubuntu LTS 16.04进行本手动教程: 第1步 按 Ctrl+Alt+T 快捷键打开一个终端。 $ sudo su 输入你的密码 $ cd 第2步: 安装 Google golang $ cd

Fabric区块链Windows开发环境一键部署

房东的猫 提交于 2020-02-27 12:12:07
Byfn.win 是Hyperledger Fabric著名的byfn.sh脚本的Windows版本的移植,用于帮助开发人员在Windows环境中快速搭建Hyperledger Fabric链码及应用开发环境。官方下载地址: http://sc.hubwiz.com/codebag/byfn-win/ 。 1、开发包概述 Byfn.win的主要特点如下: 使用原生构建的windows版本的Fabric程序,不需要安装虚拟机/Linux子系统/Docker 一键复位BYFN网络,一键启动BYFN网络,为开发人员节省大量时间和精力 支持TLS安全传输设置,支持solo共识和etcdraft共识 支持Hyperledger Fabric官方及第三方提供的各种语言的链码与应用开发包 解压即用,绿色软件 Byfn.win采用Golang开发,目前版本是1.0.0,主要文件清单见官网说明: http://sc.hubwiz.com/codebag/byfn-win/ 2、Byfn.win使用说明 2.1 生成BYFN网络基础资料 使用 byfn.exe 的 reset 子命令来生成或复位BYFN网络运行所依赖的基础资料: 注意: 每次执行 reset 命令都会清空已有的区块链数据和密码学资料 节点的输出日志在first-network/logs目录下 2.2 启动BYFN网络 使用 byfn

超级账本Fabric如何使用第三方CA

一世执手 提交于 2020-02-27 00:35:05
Hyperledger Fabric(HF)为终端用户使用自有CA提供了fabric-ca工具。然而在生产环境中应当尽可能保证根CA的安全性,例如让根CA离线,而将Hyperledger Fabric环境中的证书签发代理给中间 CA。在本文中,我们将介绍如何使用第三方CA作为根CA,使用fabric-ca作为中间CA,以及如何在CA信任链中整合第三方CA与fabric-ca。 Hyperledger Fabric区块链开发教程: Node.js | Java | Golang 1、准备工作 为了演示外部CA和中间CA的使用,我们将部署一个根CA,它只负责签发中间CA的证书。这个中间CA采用Fabric CA,负责签发用户和节点证书。出于简化考虑,在这个教程中,我们将使OpenSSL。 在开始之前,请参考相应文档先完成以下前置环节的部署和知识准备: 安装docker、docker-compose、git和curl Hyperledger Fabric和bash/sheel脚本基础知识 PKI基础知识 克隆本教程演示代码仓库,其中包含了所有用到的脚本: git clone https://github.com/aldredb/external-ca cd external-ca 下载Hyperledger Fabric预编译程序并删除不需要的文件。我们只用到cryptogen,

超级账本Fabric链上数据的加密保护

牧云@^-^@ 提交于 2020-02-26 23:50:44
Hyperledger Fabric是最流行的区块链开发框架之一,它有独特的定位和一些鲜明的特点,例如许可制架构、可插拔组件、支持私密交易的通道、模块化以及可扩展性,因此适合企业联盟链应用的开发。在这篇文章中,我们将介绍如何使用链码加密/解密保存在Hyperledger Fabric区块链上的敏感数据。 Hyperledger Fabric区块链开发教程: Node.js | Java | Golang 1、Hyperledger Fabric链码加密/解密的应用背景 在企业环境中,有时我们需要处理一些敏感的数据,例如保存信用卡数据、银行信息、生物识别数据、健康信息等等,这些敏感数据是我们基于分布式账本的业务应用的一部分,最终用户通常希望即使在数据被渗透的情况下也能保证这些私密信息的安全性。 在一些传统的应用中,我们会将数据库中的数据加密,这样即使有人偷偷进入数据库,也无法理解数据的真实含义。同样,加密区块链数据库中的用户数据也是保护隐私的有效手段。现在让我们看看如何使用NodeJS链码来加密要写入区块链数据库的数据。 在我们开始后续的实现之前,需要先指出一点:由于引入了额外的加密和解密环节,这会导致生产环境中的应用处理速度变慢,要进行加密/解密处理的数据量越大,对应用性能的影响就越大。 2、Hyperledger Fabric链码加密/解密的处理流程 在我们开始加密处理之前

Fabric 2.0区块链安装指南

匆匆过客 提交于 2020-02-26 18:08:34
本文介绍如何安装最新的Hyperledger Fabric 2.0的预编译程序、fabric-samples示例配置和代码以及docker镜像。 Hyperledger Fabric区块链开发教程: Fabric区块链Node.js开发详解 Fabric区块链Java开发详解 Fabric区块链Golang开发详解 1、安装预编译的Hyperledger Fabric 2.0应用程序 Hyperledger Fabric官方提供了以下2.0版本的预编译程序: configtxgen:用于生成Fabric创世区块初始或更新配置文件 configtxlator:用于编解码Fabric区块链配置文件 cryptogen:用于快速生成节点、用户、客户端等所需的证书和密钥文件 discover:用于Fabric网络的服务发现 idemixgen:很少用到 orderer:Fabric排序节点程序 peer:Fabric对等节点程序 fabric-ca-client:Fabric-CA服务程序的客户端,用于注册和添加用户 首先创建一个Hyperledger Fabric 2.0的专用目录,然后进入 该目录: ~$ mkdir hubwiz-hf2 ~$ cd hubwiz-hf2 ~/hubwiz-hf2$ 在linux或mac环境下使用如下的命令下载Hyperledger Fabric 2

Fabric链码开发的8个原则

被刻印的时光 ゝ 提交于 2020-02-26 17:16:03
我相信智能合约(链码)是Hyperledger Fabric区块链网络的核心。正确开发链码可以真正发挥一个安全区块链的优势,反之则会带来灾难性的后果。在这篇文章里我不打算探讨Hyperledger Fabric链码设计的特定模式的好与坏,而是希望分享我在开发若干Hyperledger Fabric概念验证应用过程中总结的一些基本准则。 Hyperledger Fabric区块链开发教程: Node.js | Java | Golang 1、启用peer节点的开发模式 使用开发模式开启你的Hyperledger Fabric链码开发流程。这一点无论怎么强调都不过分,这会节省你大量的时间和精力,因为你可以自由地修改代码而无需重新部署并激活链码,也无需一遍遍地重启网络。 参考文档: https://gist.github.com/arnabkaycee/d4c10a7f5c01f349632b42b67cee46db 2、使用Fabric链码的日志 这可能是能帮助你调试Hyperledger Fabric链码并快速找出链码bug的第一个有用的技能。链码日志很简单易用,使用Fabric内建的logger即可。 参考文档: Golang: shim ChaincodeLogger NodeJS: shim newLogger Java:可以使用任何标准的日志框架,例如log4j 3

Java开发区块链的三大sdk库

你说的曾经没有我的故事 提交于 2020-02-26 10:37:33
如果你想将区块链合并到一个Java项目中,现在我们来看看就是这个细分领域中三个最大的OSS玩家。 好的伙计们,我们都听说过比特币,以太坊或其他加密货币,其中有一些时髦的名字围绕着我们常见的新闻,但我们作为Java开发人员知道如何轻松地与这些区块链技术进行交互吗?以下是可用于利用区块链趋势的前三大Java项目。该列表基于GitHub存储库星级排序。非常感谢评论和意见。 BitcoinJ 这个名字很具描述性,你不觉得吗?如果你想知道如何创建比特币钱包并管理节点之间的交易,那么你应该尝试使用 BitcoinJ 。该项目拥有不断增长的社区和非常好的文档,这使得每个开发人员都非常有利可图。当然,作为大多数试图获得普及的开源项目,它在开始时都有局限性。有几个已知的安全问题与开放错误和可伸缩性问题相一致。如果你想了解比特币协议的运作方式,它仍然非常有用。单个人意见目前还不适合生产应用。 Web3j 一个词——以太坊。这是基于这种尖端技术的第二个最受关注的加密货币。 Web3j项目 允许你使用以太坊区块链,而无需为平台编写自己的集成代码。同样,核心功能是创建钱包,管理交易,这次是智能合约sdk包。是的,打包好的。以太坊项目的一部分是一种称为Solidity的特殊语言,它是创建智能合约的事实标准。如果你想避免使用智能合约的底层实现细节,则使用Web3j的智能合约开发包

港口供应链+区块链实践【荷兰鹿特丹港】

假装没事ソ 提交于 2020-01-06 15:38:58
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 区块链不仅仅是比特币、以太币等虚拟货币的技术基础,它的去中心化、不可篡改、分布式共识等技术特点,使其有可能重塑当今的很多产业。港口供应链涉及到众多利益相关方的协作,因此被认为最有可能受到区块链的冲击。本文介绍荷兰鹿特丹港的区块链应用情况,希望对你有所启发。 相关教程推荐: Hyperledger Fabric | Ethereum | Tendermint | Bitcoin | EOS 1、港口供应链现状 现代的供应链网络是去中心化的,包含众多中小规模的企业,而且这一领域是数据驱动的,高度依赖于信任、透明和安全机制。例如,海运集装箱的运输,平均需要28个机构的参与,在途中需要交换数据200次。 缺乏信任和互连互通是全球货物运输成本居高不下的主要原因。供应链中的每个机构,从银行到海关到进出口公司,都有其自己的系统来处理海量的文书工作,平均一次运输需要130页文档,转账很耗时,并且需要承担欺诈风险和高昂的保险成本。这些流程需要持续的监视和复杂的财务处理。 在去中心化网络中,没有单一的主管机构,因此需要有效的协调和信任机制。区块链不仅简化了处理流程,它还强化了信任程度,因为操纵或删除数据基本上是不可能的。因此,区块链技术是实现港口和海事供应链的安全、可控、可伸缩数据分享的关键支撑,它可以让物流服务提供商安全

区块链100讲:Hyperledger Fabric 中的链码(智能合约)

喜欢而已 提交于 2019-12-29 11:46:23
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1 链码概念 网络运行环境我们已经启动完成,现在我们从开发者的角度来认识一下完成交易所必须的智能合约(在 Hyperledger Fabric 中被称之为 Chaincode,也就是链上代码)的相关知识,以便于理解账本中的数据到底是通过什么方式进行操作。 Chaincode:链上代码,简称链码,一般是指由开发人员使用Go语言(也支持Java等语言)编写的应用程序代码,提供分布式账本的状态处理逻辑。链码被部署在Fabric的网络节点中,能够独立运行在具有安全特性的受保护的 Docker 容器中,以 gRPC 协议与相应的 peer 节点进行通信,以操作(初始化或管理)分布式账本中的数据。可以根据不同的需求开发出不同的复杂的应用。 链码分类 在 Hyperledger Fabric 中,链码一般分为: 系统链码 用户链码 2 Fabric提供了什么-系统链码 负责 Fabric 节点自身的处理逻辑, 包括系统配置、背书、校验等工作 系统链码仅支持 Go 语言, 在 Peer 节点启动时会自动完成注册和部署 系统链码共有五种类型: 配置系统链码(CSCC) CSCC:Configuration System Chaincode,负责处理 Peer 端的 Channel 配置。 生命周期系统链码(LSCC) LSCC

Hyperledger Fabric整合Hyperledger Explorer

狂风中的少年 提交于 2019-12-28 23:54:52
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> hyperledger explorer主要是为Hyperledger的区块链网络搭建可视化的环境,可以通过浏览器查看网络中的信息,包括网络拓扑、区块信息、链码信息等等,本文是在fabric v1.4.4版本部署,操作系统为CentOS 7, 部署fabric可以参考 https://www.jianshu.com/p/090307969c0f,这里就不重复说明了。 hyperledger explorer源码地址: https://github.com/hyperledger/blockchain-explorer 依赖:Nodejs(8.11.x) PostgreSQ Jq PS:Nodejs不要下载最新下载8.11.x版本即可,我开始下载最新的导致编译一堆问题。hyperledger explorer的github里面有介绍不同版本的依赖限制。 1、安装Nodejs 1.1、下载NodeJs wget https://nodejs.org/download/release/v8.11.4/node-v8.11.4-linux-x64.tar.gz tar -zxvf node-v8.11.4-linux-x64.tar.gz mv node-v8.11.4-linux-x64 node-v8.11.4 1