Fabric智能合约(base)

这里的智能合约仅包含Init函数和Invoke函数。

为什么一定是这两个方法?

因为在源码中的智能合约模块有这样的接口,如果要完成智能合约的相关编程,就需要实现源码中定义的接口,接口中定义了这两个方法。空口无凭,下面我给大家看一个图:

文件路径:github.com/hyperledger/fabric/core/chaincode/shim

这个文件中的内容如下:

go语言

package main

import (

	"github.com/hyperledger/fabric/core/chaincode/shim"
	pb "github.com/hyperledger/fabric/protos/peer"
)

var logger = shim.NewLogger("example_cc0")

// SimpleChaincode example simple Chaincode implementation
type SimpleChaincode struct {

}

// Init initializes the chaincode state
func (t *SimpleChaincode) Init(stub shim.ChaincodeStubInterface) pb.Response {

}

// Invoke makes payment of X units from A to B
func (t *SimpleChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response {

}

func main() {
	err := shim.Start(new(SimpleChaincode))
	if err != nil {
		logger.Errorf("Error starting Simple chaincode: %s", err)
	}
}

java语言

package org.hyperledger.fabric.example;

import io.netty.handler.ssl.OpenSsl;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hyperledger.fabric.shim.ChaincodeBase;
import org.hyperledger.fabric.shim.ChaincodeStub;

public class SimpleChaincode extends ChaincodeBase {

    private static Log logger = LogFactory.getLog(SimpleChaincode.class);

    @Override
    public Response init(ChaincodeStub stub) {

    }

    @Override
    public Response invoke(ChaincodeStub stub) {

    }

    public static void main(String[] args) {
        logger.info("OpenSSL avaliable: " + OpenSsl.isAvailable());
        new SimpleChaincode().start(args);
    }

}

原文地址:https://www.cnblogs.com/jockming/p/12208343.html

时间: 2024-08-30 15:36:27

Fabric智能合约(base)的相关文章

HyperLeger Fabric开发(六)——HyperLeger Fabric智能合约(链码)

HyperLeger Fabric开发(六)--HyperLeger Fabric智能合约(ChainCode) 一.链码(Chaincode)简介 1.链码简介 在Fabric中,智能合约也称为链码(chaincode),分为用户链码和系统链码.系统链码用来实现系统层面的功能,包括系统的配置,用户链码的部署.升级,用户交易的签名和验证策略等:用户链码用于实现用户的应用功能,开发者编写链码应用程序并将其部署到区块链网络上,终端用户通过与网络节点交互的客户端应用程序调用链码.链码被编译成一个独立的

fabric 智能合约开发

1.智能合约状态图 2.实现功能,通过背书,签收机制实现任务在各部门流转 3.相关sdk Chaincode接口 {Init,Invoke}方法 ChaincodeStubInterface接口 1.GetTxTimestamp 2.CreateCompositeKey       3.GetQueryResult 4.GetHistoryForKey 5.SetEvent 6.GetStateByPartialCompositeKey 7.GetFunctionAndParameters 8.

hyperledger fabric 智能合约开发

智能合约部分 太困了,休假的时候再把图贴上 ..... 运行在docker容器里面,如果需要调试只能通过打日志log方式 一个合约,就是一个用户用go/java/ node编写的文件(包括:字符,方法,返回信息) 块中 (chaincode目录下),一个合约只能对应一个目录 下面目录有用go/java/node语言开发智能合约的代码 下面网址可以查看channel跟存入的数据等(一个合约跟一个channel会生成一个库) 一个channel下可以安装多个合约,每个合约都会生成一个数据库 安装合约

用Java为Hyperledger Fabric(超级账本)编写区块链智能合约链代码

编写第一个 Java 链代码程序 在上一节中,您已经熟悉了如何构建.运行.部署和调用链代码,但尚未编写任何 Java 代码. 在本节中,将会使用 Eclipse IDE.一个用于 Eclipse 的 Gradle 插件,以及一个名为 ChaincodeTutorial 的 Java 链代码框架项目,编写第一个 Java 链代码程序.您将从我为此教程创建的 GitHub 存储库中获取框架代码,将该代码导入 Eclipse 中,添加代码来让链代码智慧合同按要求生效,然后在 Eclipse IDE 内

fabric 环境搭建 和 部署 智能合约 - (实习第二天)

首先安装docker,安装的时候有坑,坑就是资料没找对. 这篇博客的意义就是没有坑安装好,部署好. 我用的是 Ubuntu 18.04 安装Docker-ce,这下面的安装方式就是菜鸟教程的,可以去哪看. 1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选) sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /et

EOS 智能合约案例解析(3)

详解 EOS 智能合约的 abi 文件 这次向大家介绍 eosio.token 智能合约的最后一个文件 -- abi文件.ABI 全称 Application Binary Interface,中文名"应用程序二进制接口",顾名思义是一个接口文件,描述了智能合约与上层应用之间的数据交换格式.abi 文件格式类似 JSON,具备很好的可读性,有利于智能合约工程师与上层应用工程师之间的工作衔接.eosio.token.abi 文件地址: https://github.com/EOSIO/e

智能合约从入门到精通:Solidity Assembly

简介:上一节,我们讲过Solidity 汇编语言,这个汇编语言,可以不同Solidity一起使用.这个汇编语言还可以嵌入到Solidity源码中,以内联汇编的方式使用.下面我们将从内联汇编如何使用着手,介绍其与独立使用的汇编语言的不同,最后再介绍这门汇编语言.Solidity Assembly内联汇编通常我们通过库代码,来增强语言我,实现一些精细化的控制,Solidity为我们提供了一种接近于EVM底层的语言,内联汇编,允许与Solidity结合使用.由于EVM是栈式的,所以有时定位栈比较麻烦,

python如何使用web3py与以太坊投资智能合约交互

在以太坊和其他区块链中,仍有很多被证明的概念正在实施,开发人员在尝试如何应对这些新概念.作为dInvest 系列文章一部分,我也在研究以太坊并尝试在区块链中实施对冲基金.在上一篇文章中,我讨论了如何在python中启动和运行定量框架.在这篇文章中,我将介绍如何将python程序与以太坊智能合约集成.出于这样或那样的原因,可能也面临着这个问题,尽管以太坊提供了图灵完备语言,但并不是所有事情都能完成. 假设你已经在以太坊创建了一个简单的教程合约,现在想要看一些更高级的东西.我个人喜欢ManuelAr

vscode开发智能合约

开发工具 EOS 开发终极神器-vscode (你绝对找不到的干货) lome · 2018年04月19日 · 最后由 18636292520 回复于 2018年09月15日 · 15672 次阅读 本帖已被设为精华帖! EOS开发终极神器-vscode(你绝对找不到的干货) 声明:本文由EOS中文社区,原创首发,转载请注明原文地址,谢谢. 前言:最近一直苦于EOS开发没有好用的IDE,用了很多,试了很多,都让人觉得有些差强人意.于是乎笔者在经过,长时间的查找实践中,终于找到了eos开发终极神器