佛萨奇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格式的合约文件,可将之部署到指定到长安链上,完成合约部署。部署合约的使用教程可详见:部署示例合约。

相关文章
|
4月前
|
人工智能 区块链 数据安全/隐私保护
Force佛萨奇2.0系统开发(成熟源码)原力佛萨奇系统开发项目方案
佛萨奇系统融合区块链与AI,助力企业高效搭建智能合约,实现业务自动化。通过区块链保证数据安全、不可篡改,智能合约减少人工干预。以下是一个展示其功能的以太坊智能合约代码片段,用于创建一个简易电子商务平台,包括添加商品、购买和查询操作。
|
网络安全 区块链
佛萨奇Metaforce2.0系统开发(成熟源码)
智能合约是一种可编程的自动执行合约,其代码被嵌入到区块链中
|
算法 区块链 数据库
MeatForce佛萨奇2.0合约系统开发|DAPP开发
区块链合约交易源码的优势在于其去中心化和透明的特性
魔豹联盟佛萨奇2.0源码系统开发搭建(成熟技术)
魔豹联盟佛萨奇2.0源码系统开发搭建(成熟技术)
|
Kubernetes Shell Docker
MetaForce佛萨奇2.0系统开发详细方案丨佛萨奇系统开发技术讲解
MetaForce佛萨奇2.0系统开发详细方案丨佛萨奇系统开发技术讲解
171 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系统开发项目源码丨佛萨奇系统开发技术方案
352 0
|
安全 区块链 数据安全/隐私保护
佛萨奇智能合约系统开发2.0搭建技术
能钱包可以实现账户恢复(Argent,MYKEY)、交易金额限制(Argent,Monolith)、批量交易合并(MYKEY多target)等多种特性,切实帮助用户解决问题
佛萨奇智能合约系统开发2.0搭建技术