fabric智能合约模板】的更多相关文章

以创建用户为例,我觉得基本都是这个框架,用特殊功能直接再往上加,欢迎留言交流 func createUser(stub shim.ChaincodeStubInterface, args []string) pb.Response { user := user{} key, err := stub.CreateCompositeKey(prefixUser, []string{user.Username}) userAsBytes, _ := stub.GetState(key) // 检查用户…
前言 在上个实验 Hyperledger Fabric 多组织多排序节点部署在多个主机上 中,我们已经实现了多组织多排序节点部署在多个主机上,但到目前为止,我们所有的实验都只是研究了联盟链的网络配置方法(尽管这确实是重难点),而没有考虑具体的应用开发.本文将在前面实验的基础上,首先尝试使用 Go 语言开发了一个工作室联盟链的项目信息智能合约,并成功将其部署至联盟链上:然后依据官方示例,使用 fabric-gateway 模块实现了一个能够管理项目信息智能合约的客户端:之后对比了 fabric-g…
文章目录 安装IBM Blockchain Platform extension for VS Code 创建一个智能合约项目 理解智能合约 打包智能合约 Local Fabric Ops 安装智能合约 实例化智能合约 提交和查询事务 使用IBM Blockchain Platform extension开发你的第一个fabric智能合约 IBM Blockchain Platform extension是VSCode的一个插件,最新版本是v1.0.17. 该扩展支持Hyperledger Fa…
这里的智能合约仅包含Init函数和Invoke函数. 为什么一定是这两个方法? 因为在源码中的智能合约模块有这样的接口,如果要完成智能合约的相关编程,就需要实现源码中定义的接口,接口中定义了这两个方法.空口无凭,下面我给大家看一个图: 文件路径:github.com/hyperledger/fabric/core/chaincode/shim 这个文件中的内容如下: go语言 package main import ( "github.com/hyperledger/fabric/core/ch…
开发步奏: 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配…
一.说明 为了持续地进行信息的更新,以及对账本进行管理(写入交易,进行查询等),区块链网络引入了智能合约来实现对账本的访问和控制:智能合约在 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…
一.啰嗦两句 最近一直都在研究区块链,BitCoin,Etherenum, Hyper Ledger Fabric还有今天的主角小蚂蚁,当然出名以后改了一个艺名叫NEO.区块链大部分都是用Golang啊,Node啊,C++啊啥的写的,NEO,Aelf,Stratis这几个用的.Net开发的.NEO算是国内第一的公链了吧,现在运营的也不错,歪果仁里也有很多迷弟.废话不多说了,上干货. 二.源码介绍 NEO的源码在这https://github.com/neo-project 其中可以关注这么几个项…
简介 Hyperledger是Linux 基金会主导的一个开源的区块链(BlockChain)项目. 本文介绍了一个简单的Hyperledger智能合约的开发过程. 开发环境 本文使用Docker作为Hyperledger智能合约的本地开发环境. 第一步 从Docker官网http://www.docker.com/下载其安装包,并安装Docker. 第二步 启动Docker QuickStarter Terminal并运行如下命令在Docker中安装Hyperledger Fabric. do…
一.啰嗦两句 昨天讲了智能合约的一生,那丫长啥样啊?今儿我就跟各位唠叨唠叨. 二.一个简单的智能合约 下面这段就是NEO实例源码里的一个,干撒用的?聪明的你一眼儿就看出来了吧,就是一个所谓域名合约的增删改查.有几点我唠叨两句 using Neo.SmartContract.Framework.Services.Neo; namespace Neo.SmartContract { public class Domain : Framework.SmartContract { public stat…
概述 最近在写合约时遇到一些坑,做一下总结: 介绍主要分一下三个方面: 对区块链的简单描述 结合业务场景,编写简单智能合约,时遇到的坑(上篇) assembly 的使用说明(下篇) 正文 进入正题之前,我稍微简单介绍一下什么是区块链,区块链干嘛用的(特点),智能合约是做什么的,为什么要写只能合约(一下是个人理解仅供参考) 什么是区块链 A blockchain is a globally shared, transactional database. 译文:区块链是一个全局共享的事物数据库:(就…
  NEO智能合约开发中,应用合约比较简单,是的你没看错,应用合约比较简单. 应用合约三部曲,发布.调用.看结果.除了看结果工具比较缺乏,发布调用neogui最起码可以支撑你测试.   鉴权合约比较麻烦,因为neogui不能支持你很好的测试鉴权合约.   这是一个难点,上一次我们让你试着用鉴权合约往外取钱了,一个密码,有了密码谁都能取钱.就那,用neogui去取并不容易,对吧.   这一次我们继续探讨这个话题,一个更有价值的应用场景. 如何限制一个用户能从智能合约里取出多少钱?   不用担心,如…
EOS智能合约存储实例 智能合约中的基础功能之一是token在某种规则下转移.以EOS提供的token.cpp为例,定义了eos token的数据结构:typedef eos::token<uint_t,N(eos)>Tokens; 以Currency合约为例.该合约中,也用类token模板类生成了代币currency:typedef eos::token<uint_t,N(currency)>CurrencyTokens; 有了 eos token和我们发行的子代币,我们就能编写…
系统合约在链启动阶段就会被部署,是因为系统合约赋予了EOS链资源.命名拍卖.基础数据准备.生产者信息.投票等能力.本篇文章将会从源码角度详细研究system合约. 关键字:EOS,eosio.system,智能合约,name类型,native.hpp,newaccount,bidname,core token init,onblock,更新已入选生产节点 eosio.system 概览 笔者使用的IDE是VScode,首先来看eosio.system的源码结构.如下图所示. 本文分析的源码来自于…
截取两篇文章:第一遍文章说的是智能合约能不能修改的问题: ETC转到ETH地址以及转币进ETH智能合约账户能不能转出来? 第0章 引言 如果ETC充值到了ETH地址上,能找回来吗?答案是不一定. ETH转到别的ETH地址上,也是有可能再也弄不出来的. 第1章 以太坊的两类账户 以太坊有两类账户,外部账户和合约账户. 外部账户是由公钥和私钥组成的.我们绝大多数用户生产的以太坊钱包都属于这一类账户,私钥可以决定这个账户里的币,包括以太坊和ERC20币. 合约账户是由一个地址和对应存储的一些代码组成的…
译注:原文首发于ConsenSys开发者博客,原作者为Eva以及ConsenSys的开发团队.如果您想要获取更多及时信息,可以访问ConsenSys首页点击左下角Newsletter订阅邮件.本文的翻译获得了ConsenSys创始人Lubin先生的授权. 有些人说以太坊太难对付,于是我们(译注:指Consensys, 下同)写了这篇文章来帮助大家学习如何利用以太坊编写智能合约和应用.这里所用到的工具,钱包,应用程序以及整个生态系统仍处于开发状态,它们将来会更好用! 第一部分概述,讨论了关键概念,…
前一篇文章<Hyperledger Fabric on SAP Cloud Platform>,我的同事Aviva已经给大家介绍了基于区块链技术的超级账本(Hyperledger)的一些概要知识.Fabric是超级账本5个并行项目中的其中之一,因为发展较为成熟,SAP云平台对Fabric也提供了较好的支持. 学完了前一篇文章的理论知识后,今天我们来动手实践一下. 我们做的这个练习的范围很窄,就是学会如何使用go语言开发一组微服务,这组微服务包含读和写两个API,能够将数据写入架设于SAP云平台…
1.报错详情 2.在写fabric go智能合约发送的错误,像我这样的新手就是踩坑踩坑踩坑 3.下面是代码片段 4.研究了一下append用法.也看了下GO语言官网文章: var test_str []string test_str = append(test_str ,"this_ok") append(type,len,cap). 该函数第一个参数是类型,第二个参数是分配的空间,第三个参数是预留分配空间. append比较适合用字面量初始的切片. 传入数据初始大小后,我们得到的实际…
前言 部署智能合约有多种方式,命令行的浏览器的渠道都有,但往往跟我们程序员的风格不太相符,因为我们习惯了在IDE里写了代码然后打包运行看效果. 虽然现在IDE中已经存在了Solidity插件,可以编写智能合约,但是部署智能合约却要另走他路,没办法进行一个快捷的部署与测试. 如果团队管理的区块节点多.合约多,那得哭晕在厕所. Truffle是一个世界级的智能合约开发框架,专门为智能合约而生. 安装 安装truffle sudo cnpm install -g truffle 查看版本 truffl…
智能合约的优点 与传统合同相比,智能合约有一些显著优点: 不需要中间人 费用低 代码就是规则 区块链网络中有多个备份,不用担心丢失 避免人工错误 无需信任,就可履行协议 匿名履行协议 以太坊(Ethereum) – 智能合约开发概述 支持智能合约的区块链 虽然以太坊(Ethereum)是最流行支持智能合约的区块链平台,但它并不是唯一支持智能合约的平台. 超级账本(Hyperledger) 是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目.通过创建分布式账本的公开标准,实…
上篇文章我们发了个币,有人抱怨在线(remix)写代码不爽,好吧,那就来看下怎么在本地开发智能合约? 一.安装开发环境 1.安装Node,Node v8.9.4或更高版本 我安装的是: 2.集成开发框架truffle 那么Truffle(官网:https://www.trufflesuite.com/truffle)是什么,Truffle是一个世界级的开发环境,测试框架,以太坊的资源管理通道,致力于让以太坊上的开发变得简单: 内置的智能合约编译,链接,部署和二进制管理. 自动化合约测试,可快速发…
简介 以太坊(Ethereum)是一提供个智能合约(smart contract)功能的公共区块链(BlockChain)平台. 本文介绍了一个简单的以太坊智能合约的开发过程. 开发环境 在以太坊上开发应用,首先需要安装其客户端,本文使用基于Go语言的Geth, 其官网为https://github.com/ethereum/go-ethereum. 第一步 在命令行环境中输入以下命令, 连接到以太坊测试网络 geth --testnet --fast --cache=512 console 第…
以太坊系列之十六: 使用golang与智能合约进行交互 以太坊系列之十六: 使用golang与智能合约进行交互 此例子的目录结构 token contract 智能合约的golang wrapper 部署合约 1.账户问题 2. 连接到geth 3. 部署合约 4. 测试部署结果 golang 查询合约 官方提供的使用web3来进行智能合约的部署,调用等,实际上使用go也是可以的,这样更接近geth源码,更多的库可以使用. 此例子的目录结构 方便大家对照使用 我是在windows下进行的,在li…
如果你对于以太坊智能合约开发还没有概念(本文会假设你已经知道这些概念),建议先阅读入门篇. 就先学习任何编程语言一样,入门的第一个程序都是Hello World.今天我们来一步一步从搭建以太坊智能合约开发环境开始,讲解智能合约的Hello World如何编写. 开发环境搭建 Solidity安装 强烈建议新手使用Browser-Solidity来进行开发. Browser-Solidity是一个基于浏览器的Solidity,就可以不用安装Solidity,本文的Hello World教程也将基于…
智能合约语言Solidity教程系列第二篇 - Solidity地址类型介绍. 写在前面 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你先看以太坊是什么 本文前半部分是参考Solidity官方文档(当前最新版本:0.4.20)进行翻译,后半部分是结合实际合约代码实例说明类型的使用(仅针对专栏订阅用户). 地址类型(Address) 地址类型address是一个值类型, 地址: 20字节(一个以太坊地址的长度),地址类型也有成员,地址…
Solidity 教程系列第三篇 - Solidity 函数类型介绍. 写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你先看以太坊是什么 本文前半部分是参考Solidity 官方文档(当前最新版本:0.4.20)进行翻译,后半部分函数可见性( public, external, internal, privite )深度分析(仅针对专栏订阅用户). 函数类型(Function Types) 函数也是一种类型,且属于值类型.…
写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么 这部分的内容官方英文文档讲的不是很透,因此我在参考Solidity官方文档(当前最新版本:0.4.20)的同时加入了深入分析部分,欢迎订阅专栏. 数据位置(Data location) 在系列第一篇,我们提到 Solidity 类型分为两类: 值类型(Value Type) 及 引用类型(Reference Types), 前面我们已经介绍完了值类型,接下…