这个命令将启动一个包含两个组织和四个Peer节点的测试网络。如果一切顺利,可以使用以下命令检查网络是否启动成功:
Hyperledger Fabric使用Go语言编写,因此需要安装Go语言环境。可以使用以下命令安装:
前面提到的fabric示例(如first-network和e2e-cli)都只是在单机上的简单测试,启动一个cli命令行容器来与网络成员节点进行交互,通过在cli容器中手动输入命令完成一系列操作。
Hyperledger Fabric是一个是开源的,企业级的,带权限的分布式账本解决方案的平台。Hyperledger Fabric由模块化架构支撑,并具备极佳的保密性、可伸缩性、灵活性和可扩展性。Hyperledger Fabric被设计成支持不同的模块组件直接拔插启用,并能适应在经济生态系统中错综复杂的各种场景。
1.环境部署 包括需要的软件环境以及docker镜像,具体参考http://zhayujie.com/fabric/deploy.html
智能合约能够部署和运行在区块链环境中,由一段代码来描述相关的业务逻辑。部署后的智能合约在区块链中无法修改,智能合约的执行完全由代码决定,不受人为因素的干扰。一般来说,参与方通过智能合约规定各自权利和义务、触发合约的条件以及结果,一旦该智能合约在区块链环境中运行就可以得出客观、准确的结果。
关于hyperledger fabric架构详解,请参考链接:https://www.cnblogs.com/xiao987334176/p/13969276.html
最近在学习Hyperledger Fabric,它是由 Linux 基金会发起创建的开源区块链分布式账本。
下载hyperledger-fabric-linux-amd64-1.0.5.tar.gz压缩包
本文采用virtualbox+vagrant方式搭建Hyperledger Fabric环境,采用VSCode远程开发模式开发调试链码和客户端程序。
在这个例子中,我们通过一个简单的示例程序来了解Fabric应用是如何运行的。在这个例子中使用的应用程序和智能合约(链码)统称为FabCar。这个例子很好地提供了一个开始用于理解Hyperledger Fabric。在这里,你将学会如何开发一个应用程序和智能合约来查询和更新账本,如何利用CA来生成一个应用程序需要的用于和区块链交互的X.509证书。
在fabric开发中,chaincode的测试是一个令人比较头疼的问题,一是由于实际情况中chaincode中的存储和查询是依赖于peer节点上的状态数据库的,所以无法在本地直接测试;二是由于chaincode是运行于容器中的,这导致我们很难获取在代码中打印的日志。
我想展示如何将公共区块链(如ARK.io)的功能与私有区块链(如Hyperledger)结合起来。特别是,我们将看到ARK.io上的交易如何触发在Hyperledger Fabric + Burrow中部署的Solidity Smart Contract的执行。
1、进入gopath目录下,创建目录src/github.com/hyperledger,进到该目录
一、编写智能合约代码HelloWorld.go,go语言实现,代码很简单,每个合约包含两个方法,Init、Invoke。
上一篇文章,已经介绍了Hyperledger Fabric 2.x 环境搭建,参考链接:https://www.cnblogs.com/xiao987334176/p/13969885.html
在test-network目录中新建fabric-ca-client和fabric-ca-server目录
├── assetTransfer.go(应用程序的主要入口文件或资产转移的核心逻辑实现文件。)
配置 Go 环境,在 $HOME/.profile 或者 /etc/profile 中添加:
本文所述的内容是在2019年1月8号开始的,于2019年1月10号结束。在Win10家庭版上装的Ubantu 18.04版本的虚拟机,文档主要参考的是Fabric Release-1.4版本。另外,我喜欢Go,所以接下来关于链码的演示,没有nodejs、python和java什么事,想看这些,可以移步未来我写的文章。Orz...
参考翻译 https://www.jianshu.com/p/db006359133d
6、 Node.js 选装 8.9.4 或以上,10.15.3或以上(如果需要利用node.js的hyperledger结构sdk为hyperledger结构开发应用程序)
接下来一段时间要学习区块链相关内容,一系列文章,一方面作为笔记,另一方面方便交流学习。
随着区块链技术的发展,越来越多的个人及企业也开始关注区块链,而和区块链联系最为紧密的,恐怕就是金融行业了。然而虽然比特币区块链大受热捧,但毕竟比特币区块链是属于公有区块链,公有区块链有着其不可编辑,不可篡改的特点,这就使得公有链并不适合企业使用,毕竟如果某金融企业开发出一个区块链,无法受其主观控制,那对于它的意义就不大。因此私有链就应运而生,但私有链虽然能够解决以上的问题,如果仅仅只是各个企业自己单独建立,那么还将是一个个孤岛。如果能够联合起来开发私有区块链,最好不过,联盟链应运而生。
在Hyperledger Fabric的GetStateByRange函数中,键(Key)不支持直接使用正则表达式进行匹配。GetStateByRange函数只支持按范围进行键的查询。
折腾的根源是因为笔者是零氪党, github release的域名要么被墙,要么对应的亚马逊s3下载服务器龟速。
微众银行在最近(2020年5月12日)发布了WeCross v1.0.0-rc2,WeCross是微众区块链跨链协作平台,新版本对Stub(跨链路由)进行了插件化封装,开发者只需根据插件规范进行开发,即可让WeCross接入不同类型的链,此外,还基于HTLC(哈希时间锁定)事务机制,实现了跨链转账,让资产能够在不同链之间流转。本文就将带你尝鲜使用WeCross实现基于哈希时间锁定的跨链转账,文章最后再介绍下HTLC(哈希时间锁定)的原理。我们开始吧。
ubuntu golang docker docker-compose fabric 源码
在我们开始之前,如果你还没有这样做,你可能希望检查是否已经在开发区块链应用程序和/或运行Hyperledger Fabric的平台上安装了所有前提条件。
前段时间花了一段时间来研究Hyperledger Caliper的原理以及使用方式,研究的时候正处于Caliper改动较大的时候,因此也踩了不少的坑,也发现了一些问题,同时也加深了对这个项目的认识,在这里进行一下整理和归纳,以便大家能够更好地使用Caliper。
https://hyperledger-fabric.readthedocs.io/en/release-1.2/prereqs.html
运行~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/fabcar$ ./startFabric.sh,启动网络后。
Hyperledger Explorer是一个简单,功能强大,易于使用,高度可维护的开源区块链浏览器,用于查看底层区块链网络上的活动。
├── CreateContract.go(应用程序的主要入口文件或资产转移的核心逻辑实现文件。)
向网络添加钱包和用户 1.在 test-network/organizations/ 目录下找到与您要添加身份的组织相关的文件夹。 2.使用 cryptogen 工具或其他适当的方式生成一对身份证书
http://www.javatree.cn/news/b25c5e3b9d4640e4a0da2039981c7a03
这是Hyperledger Fabric Java Chaincode的教程。还有Go和NodeJS Chaincodes,我们将来可能会讨论它们。此外,我采用基于帐户的钱包模型作为示例,我们将使用Hyperledger Fabric构建你的第一个网络(BYFN,build your first network),作为我们的测试环境(v1.4网络)。
mycontract ├── CreateContract.go(应用程序的主要入口文件或资产转移的核心逻辑实现文件。) ├── bo(包含与区块链智能合约相关的文件。) │ ├── WineContract.go (区块链智能合约的实现文件。) ├── go.mod (Go 项目的模块文件,其中定义了项目的依赖关系和版本信息。) ├── go.sum (包含项目依赖项的安全校验和的文件,用于验证下载的包的完整性。) └── vendor(包含项目依赖项的目录,通常在使用特定版本管理工具时会将依赖项放在此目录中。)
https://hyperledger-fabric.readthedocs.io/en/release-1.2/chaincode4ade.html
这段代码是一个基于Hyperledger Fabric框架的资产转移合约。让我逐行解释它的功能和结构。
对于Fabric的权限和MSP配置这块,可能大家实际部署会给一堆msp目录绕晕,我们回过头来梳理一下。
组织(Org)和通道(Channel)的名称是fabric网络比较重要的两个配置参数,在fabric提供的示例中都已经设置好了这两个参数,一般组织名为"Org1"和"Org2",通道名为"mychannel"。而在实际应用开发中通常需要自定义组织和通道的名称,这里以最接近实际应用的balance-transfer为例说明如何自定义设置组织和通道名称。
最近公司在做BaaS,底层上主要的工作就是做Fabric的国密改造,虽然不是我的任务,不过对这个事情还是很感兴趣的,很久很久之前,我也动过将Fabric改成成国密算法的念头,最后改的时候发现太复杂了,涉及的地方太多了,于是放弃了。现在公司有Fabric高手在搞这方面的工作,那么我也就参与进来,用自己的思路再试一试通过简单的方法来实现Fabric国密的改造吧。经过测试,基本完成了Fabric的国密改造工作,于是写下这篇博客总结一下吧。
参考https://hyperledger-fabric.readthedocs.io/en/release-1.2/build_network.html
领取专属 10元无门槛券
手把手带您无忧上云