一.说明 为了持续地进行信息的更新,以及对账本进行管理(写入交易,进行查询等),区块链网络引入了智能合约来实现对账本的访问和控制:智能合约在 Fabric 中称之为 链码,是区块链应用的业务逻辑. 本文分享如何使用 Java 语言开发智能合约,以及合约的安装与使用. 二.环境准备 1.部署好 Fabric 的测试网络,按照上一篇文章<Hyperledger Fabric 2.x 环境搭建>的内容执行第1至5步 - 启动好两个 peer 节点和一个 orderer 节点 - 创建好 mychan…
一.说明 在上一篇文章中分享了智能合约的安装与使用,如果业务有变更代码需要修改怎么办呢?本文分享如何对已安装的合约进行版本更新. 二.环境准备 区块链网络安装:<Hyperledger Fabric 2.x 环境搭建> 智能合约安装:<Hyperledger Fabric 2.x 自定义智能合约> 执行以下命令,可以看到已安装的合约信息: peer lifecycle chaincode queryinstalled 三.重新打包代码 重新把最新的合约源代码打包: peer lif…
一.说明 在上一篇文章中 <Hyperledger Fabric 2.x 自定义智能合约> 分享了智能合约的安装并使用 cli 客户端进行合约的调用:本文将使用 Java 代码基于 fabric-gateway-java 进行区块链网络的访问与交易,并集成 SpringBoot 框架. Fabric Gateway SDK 实现Fabric的编程模型,提供了一系列简单的API给应用程序与Fabric区块链网络进行交互: 网络拓扑图: 应用程序将各自的网络交互委托给其网关,每个网关都了解网络信道…
一.说明 区块链是一个透明的,基于不可变模式的去中心化系统,核心就是一个分布式账本,记录网络上发生的所有交易. 区块链网络主要有三种类型:公共区块链.联盟区块链,以及私有区块链:我们熟知的比特币.以太坊这些数字货币其实就是属于公共区块链平台: 而今天要介绍的 Fabric 则是属于联盟链类型的:Fabric是一个企业级的分布式账本技术平台,也是目前应用最广泛的区块链项目. 本文将梳理区块链技术平台 Fabric 的核心概念与关键功能. 二.特点 Fabric与其他区块链平台对比有以下几个特点:…
超级账本组成模型 本文主要讲述Hyperledger Fabric的关键设计特性,并细述如何实现了一个全面的.可定制的企业级区块链解决方案: 资产定义--资产这里理解为任何具有货币价值的东西,它们都可以通过网络进行交易,无论是超市商品到古董车再到货币期货都属于资产. 智能合约--链码(chaincode)即Fabric的智能合约,分为系统链码和用户链码.链码的执行由事务排序划分,限制了节点类型间的信任和验证级别,并优化了网络的可伸缩性和性能. 账本特征--账本不可变的.共享的并且为每个通道(ch…
前一篇文章<Hyperledger Fabric on SAP Cloud Platform>,我的同事Aviva已经给大家介绍了基于区块链技术的超级账本(Hyperledger)的一些概要知识.Fabric是超级账本5个并行项目中的其中之一,因为发展较为成熟,SAP云平台对Fabric也提供了较好的支持. 学完了前一篇文章的理论知识后,今天我们来动手实践一下. 我们做的这个练习的范围很窄,就是学会如何使用go语言开发一组微服务,这组微服务包含读和写两个API,能够将数据写入架设于SAP云平台…
开发步奏: 1.创建教育联盟 2.区块链服务平台自动生成通道id 3.区块链网络服务人员通过命令行在区块链网络中创建对应通道 4.创建相关教育组织 5.邀请相关组织加入联盟 6.区块链网络管理人员通过命令行在区块链网络创建组织并加入通道 7.教育组织相关开发人员通过区块链网络进行系统开发 实现功能: 联盟管理 组织管理 联盟邀请 证书下载 实现联盟相关组织签名同意机制.实现智能合约在线上传 其他需求: 1.把区块链显示仪表盘的接口实现换成Java的(目前:node.js) 2.Java查看区块链…
什么是Chaincode(智能合约)? chaincode是一个程序,它是使用Go语言编写的,最终在Java等其他编程语言中实现了指定的接口.chaincode运行在一个被背书peer进程独立出来的安全的Docker容器中.chaincode通过应用程序提交的事务初始化和管理账本状态. chaincode通常处理被网络成员认可的业务逻辑,因此它被认为是一种"智能合约".由chaincode创建的状态只作用于该chaincode,而不能通过另一个chaincode直接访问.但是,在同一个…
编写第一个 Java 链代码程序 在上一节中,您已经熟悉了如何构建.运行.部署和调用链代码,但尚未编写任何 Java 代码. 在本节中,将会使用 Eclipse IDE.一个用于 Eclipse 的 Gradle 插件,以及一个名为 ChaincodeTutorial 的 Java 链代码框架项目,编写第一个 Java 链代码程序.您将从我为此教程创建的 GitHub 存储库中获取框架代码,将该代码导入 Eclipse 中,添加代码来让链代码智慧合同按要求生效,然后在 Eclipse IDE 内…
9.1 Helloworld案例简介       通过执行官方End-2-End案例,初始了解Fabric网络的运行流程及yaml配置,官方End-2-End案例把执行过程集成,通过一条命令即可完成全部操作,对于初学者只能了解Fabric网络搭建是否成功,对于Fabric网络的执行细节还是迷惑.      为了能让初学者全面了解Fabric网络的执行细节,本章通过手动方式搭建一个orderer.一个组织和一个peer的SOLO排序的Fabric网络,把配置独立出来,形成orderer和peer配…