佛萨奇dapp开发详细丨佛萨奇dapp系统开发(2.0升级版)丨佛萨奇系统源码流程

简介:  package main//sdk代码中,有且仅有一个main()方法func main(){//main()方法中,下面的代码为必须代码,不建议修改main()方法当中的代码//其中,TestContract为用户实现合约的具体名称err:=sandbox.Start(new(FactContract))if err!=nil{log.Fatal(err)}}

  编写Golang合约

  1.通过go.mod引用合约SDK

  ChainMakerGolang合约SDK支持通过go.mod的方式引用,可直接使用go get引用,示例如下:

  $go get chainmaker.org/chainmaker/contract-sdk-go/v2 v2.3.2

  执行完成后,即可参考下文的编写合约注意事项,调用合约sdk的方法,编写合约。

  2.编写合约注意事项

  代码入口包名必须为main

  代码入口

  package main//sdk代码中,有且仅有一个main()方法func main(){//main()方法中,下面的代码为必须代码,不建议修改main()方法当中的代码//其中,TestContract为用户实现合约的具体名称err:=sandbox.Start(new(FactContract))if err!=nil{log.Fatal(err)}}

  合约必要代码

  //合约结构体,合约名称需要写入main()方法当中type FactContract struct{}//合约必须实现下面两个方法://InitContract()protogo.Response//UpgradeContract()protogo.Response//InvokeContract(method string)protogo.Response//用于合约的部署// return:合约返回结果,包括Success和Errorfunc(fFactContract)InitContract()protogo.Response{return sdk.Success([]byte("Init contract success"))}//用于合约的升级// return:合约返回结果,包括Success和Errorfunc(fFactContract)

  UpgradeContract()protogo.Response{return sdk.Success([]byte("Upgrade contract success"))}//用于合约的调用// param method:交易请求调用的方法// return:合约返回结果,包括Success和Errorfunc(f*FactContract)InvokeContract(method string)protogo.Response{switch method{case"save":return f.save()case"findByFileHash":return f.findByFileHash()default:return sdk.Error("invalid method")}}

  3.合约SDK接口描述

  长安链提供golang合约与链交互的相关接口,写合约时可直接导入包,并进行引用,具体信息可参考文章末尾”接口描述章节”。

  4.编译合约

  当合约编写完成后,则需要编译合约,具体教程如下

  5.使用脚本编译合约

  在合约工程中添加编译脚本build.sh搭建编译环境。

  #!/bin/bashcontractName=$1if[[!-n$contractName]];then echo"contractName is empty.use as:./build.sh contractName"exit 1figo build-ldflags="-s-w"-o$contractName7z a$contractName$contractNamerm-f$contractName

  编译撰写好的智能合约

  其中ContractName请替换成需要安装的合约名称

  ./build.sh ContractName

  编译成功,如下图所示:

  6.手动编译合约

  需要保证是在Linux环境下编译,在此文件夹的当前路径执行如下编译命令:

  #如果需要在其他系统环境下编译合约,请参考Golang的交叉编译修改go build命令。go build-ldflags="-s-w"-o file_name 7z a file_name file_name

  在编译合约时,首先使用golang编译程序。

  编译后使用7zip对编译好的可执行文件进行压缩。

  编译结果输出与使用脚本编译一致。

  7.部署调用合约

  编译完成后,将得到一个.7z格式的合约文件,可将之部署到指定到长安链上,完成合约部署。部署合约的使用教程可详见:部署示例合约。

相关文章
|
算法 区块链 数据库
MeatForce佛萨奇2.0合约系统开发|DAPP开发
区块链合约交易源码的优势在于其去中心化和透明的特性
|
Kubernetes Shell Docker
MetaForce佛萨奇2.0系统开发详细方案丨佛萨奇系统开发技术讲解
MetaForce佛萨奇2.0系统开发详细方案丨佛萨奇系统开发技术讲解
178 0
|
存储 安全 测试技术
佛萨奇链上DAPP系统开发|佛萨奇2.0版上链开发技术
去中心化应用(DApp)是这些传统应用的基于区块链的等效物。DApp是各种相互关联的智能合约的集合。在幕后,每种智能合约都在应用中履行特定的职能。
佛萨奇链上DAPP系统开发|佛萨奇2.0版上链开发技术
|
区块链 开发者
佛萨奇2.0是什么项目?佛萨奇2.0系统开发源码分析
FORSAGE(佛萨奇)是全球首创100%分散-以太坊营销共享矩阵计划,以太坊公链上开发的智能合约DAPP,FORSAGE是国际众筹平台!FORSAGE是革命性的智能合约技术为分布式的市场参与者提供了直接从事个人和商业交易的能力。Forsage分布式全球共享矩阵项目的智能合约是公开透明的,永远可以在区块链上查看。
|
区块链 数据库
佛萨奇2.0系统开发(马蹄链开发)丨佛萨奇2.0系统开发(案例及项目)丨佛萨奇2.0源码成品
  智能合约(Smart contract)是依托计算机在网络空间运行的合约,它以信息化方式传播、验证或执行合同,由计算机读取、执行,具备自助的特点。而区块链的去中心化,数据的防篡改,决定了智能合约更加适合于在区块链上来实现
|
存储
佛萨奇2.0系统开发项目源码丨佛萨奇系统开发技术方案
佛萨奇2.0系统开发项目源码丨佛萨奇系统开发技术方案
355 0
|
安全 区块链 数据安全/隐私保护
佛萨奇智能合约系统开发2.0搭建技术
能钱包可以实现账户恢复(Argent,MYKEY)、交易金额限制(Argent,Monolith)、批量交易合并(MYKEY多target)等多种特性,切实帮助用户解决问题
佛萨奇智能合约系统开发2.0搭建技术
|
存储 数据处理 区块链
佛萨奇马蹄莲开发现成版丨MetaForce佛萨奇马蹄莲dapp系统开发(开发案例及源码)
智能合约是在区块链上运行的计算机代码,其中包含一组规则,在该规则下该智能合约的各方同意彼此进行交互。如果满足预定义规则,协议将自动执行。 智能合约代码促进、验证并强制协商或履行协议或交易。这是分布式自动化的最简单形式。 它是一种涉及数字资产和两方或多方的机制,其中部分或所有参与者将资产存入智能合约,并根据某些数据自动在这些参与者之间重新分配资产,在合约开始时,这些数据是未知的。
佛萨奇马蹄莲开发现成版丨MetaForce佛萨奇马蹄莲dapp系统开发(开发案例及源码)
|
存储 区块链
佛萨奇2.0马蹄莲智能合约开发原理丨MetaForce佛萨奇2.0马蹄莲智能合约DAPP系统开发成熟案例及源码部署
目前,DApp通常是指在以太坊或EOS上基于智能合约开发的相关应用。DAPP是Decentralized Application的缩写,即去中心化应用,也有人称为分布式应用。它被认为开启了区块链3.0时代。DAPP就是在底层区块链平台衍生的各种分布式应用,是区块链世界中的服务提供形式。
佛萨奇2.0马蹄莲智能合约开发原理丨MetaForce佛萨奇2.0马蹄莲智能合约DAPP系统开发成熟案例及源码部署
|
区块链 vr&ar
链游DAPP开发正式版丨链游DAPP系统开发实现技术原理丨链游DAPP系统源码功能
从本质上来看,元宇宙是一种新的数据传输方式的开始。它实现了现实世界和虚拟世界之间数据传输的双向自由流动,构建了一个不完全相同于物理现实的虚拟世界。   数据传输的自由流动是虚拟世界与现实世界融合、实物资产与数字资产对接的前提和基础。
下一篇
无影云桌面