go-sdk – 转到sdk区块链毕设代写

区块链毕设代写本文提供国外最新区块链项目源码下载,包括solidity,eth,fabric等blockchain区块链,go-sdk – 转到sdk区块链毕设代写 是一篇很好的国外资料

go-sdk

Golang SDK For FISCO BCOS 2.2.0+

go-sdk - 转到sdk go-sdk - 转到sdk

go-sdk - 转到sdk go-sdk - 转到sdk go-sdk - 转到sdk go-sdk - 转到sdk


FISCO BCOS Go语言版本的SDK,主要实现的功能有:

  • FISCO BCOS 2.0 JSON-RPC服务
  • Solidity合约编译为Go文件
  • 部署、查询、写入智能合约
  • 控制台

go-sdk的使用可以当做是一个package进行使用,亦可对项目代码进行编译,直接使用控制台通过配置文件来进行访问FISCO BCOS。

环境准备

  • Golang, 版本需不低于1.13.6,本项目采用go module进行包管理。具体可查阅Using Go Modules,环境配置

  • FISCO BCOS 2.2.0+, 需要提前运行 FISCO BCOS 区块链blockchain平台,可参考安装搭建

  • Solidity编译器,默认0.4.25版本

配置文件说明(config.toml)

[Network] #type rpc or channel Type="channel" CAFile="ca.crt" Cert="sdk.crt" Key="sdk.key" [[Network.Connection]] NodeURL="127.0.0.1:20200" GroupID=1 # [[Network.Connection]] # NodeURL="127.0.0.1:20200" # GroupID=2  [Account] # only support PEM format for now KeyFile=".ci/0x83309d045a19c44dc3722d15a6abd472f95866ac.pem"  [Chain] ChainID=1 SMCrypto=false

Network

  • Type:支持channel和rpc两种模式,其中channel使用ssl链接,需要提供证书。rpc使用http访问节点。
  • CAFile:链根证书
  • Cert:SDK建立SSL链接时使用的证书
  • Key:SDK建立SSL链接时使用的证书对应的私钥
  • Network.Connection数组,配置节点信息,可配置多个。

Account

  • KeyFile:节点签发交易时所使用的私钥,PEM格式,支持国密和非国密。

请使用get_account.sh和get_gm_account.sh脚本生成。使用方式参考这里。

如果想使用Go-SDK代码生成,请参考这里。

Chain

  • ChainID:链ID,与节点config.ini中chain.id保持一致。
  • SMCrypto:链使用的签名算法,ture表示使用国密SM2,false表示使用普通ECDSA。

控制台使用

在使用控制台需要先拉取代码或下载代码,然后对配置文件config.toml进行更改:

  1. 拉取代码并编译
git clone https://github.com/FISCO-BCOS/go-sdk.git cd go-sdk go build cmd/console.go
  1. 搭建FISCO BCOS 2.2以上版本节点,请参考这里。

  2. config.toml默认使用channel模式,请拷贝对应的SDK证书。

  3. 最后,运行控制台查看可用指令:

./console help

Package功能使用

以下的示例是通过import的方式来使用go-sdk,如引入RPC控制台库:

import "github.com/FISCO-BCOS/go-sdk/client"

Solidity合约编译为Go文件

在利用SDK进行项目开发时,对智能合约进行操作时需要将Solidity智能合约利用go-sdk的abigen工具转换为Go文件代码。整体上主要包含了五个流程:

  • 准备需要编译的智能合约
  • 配置好相应版本的solc编译器
  • 构建go-sdk的合约编译工具abigen
  • 编译生成go文件
  • 使用生成的go文件进行合约调用

下面的内容作为一个示例进行使用介绍。

1.提供一份简单的样例智能合约Store.sol如下:

pragma solidity ^0.4.25;  contract Store {   event ItemSet(bytes32 key, bytes32 value);    string public version;   mapping (bytes32 => bytes32) public items;    constructor(string _version) public {     version = _version;   }    function setItem(bytes32 key, bytes32 value) external {     items[key] = value;     emit ItemSet(key, value);   } }

2.安装对应版本的solc编译器,目前FISCO BCOS默认的solc编译器版本为0.4.25。

# 如果是国密则添加-g选项 bash tools/download_solc.sh -v 0.4.25

3.构建go-sdk的代码生成工具abigen

# 下面指令在go-sdk目录下操作,编译生成abigen工具 go build ./cmd/abigen

执行命令后,检查根目录下是否存在abigen,并将准备的智能合约Store.sol放置在一个新的目录下:

mkdir ./store mv Store.sol ./store 

4.编译生成go文件,先利用solc将合约文件生成abibin文件,以前面所提供的Store.sol为例:

# 国密请使用 ./solc-0.4.25-gm --bin --abi -o ./store ./store/Store.sol ./solc-0.4.25 --bin --abi -o ./store ./store/Store.sol

Store.sol目录下会生成Store.binStore.abi。此时利用abigen工具将Store.binStore.abi转换成Store.go

# 国密请使用 ./abigen --bin ./store/Store.bin --abi ./store/Store.abi --pkg store --type Store --out ./store/Store.go --smcrypto=true ./abigen --bin ./store/Store.bin --abi ./store/Store.abi --pkg store --type Store --out ./store/Store.go

最后store目录下面存在以下文件:

Store.abi  Store.bin  Store.go  Store.sol

5.调用生成的Store.go文件进行合约调用

至此,合约已成功转换为go文件,用户可根据此文件在项目中利用SDK进行合约操作。具体的使用可参阅下一节。

部署智能合约

创建main函数,调用Store合约,

touch store_main.go

下面的例子先部署合约,在部署过程中设置的Store.sol合约中有一个公开的名为version的全局变量,这种公开的成员将自动创建getter函数,然后调用Version()来获取version的值。

写入智能合约需要我们用私钥来对交易事务进行签名,我们创建的智能合约有一个名为SetItem的外部方法,它接受soliditybytes32类型的两个参数(key,value)。 这意味着在Go文件中需要传递一个长度为32个字节的字节数组。

package main  import (     "fmt"     "log"      "github.com/FISCO-BCOS/go-sdk/client"     "github.com/FISCO-BCOS/go-sdk/conf"     "github.com/FISCO-BCOS/go-sdk/store" // import store )  func main(){ 	configs, err := conf.ParseConfigFile("config.toml") 	if err != nil { 		log.Fatalf("ParseConfigFile failed, err: %v", err) 	} 	client, err := client.Dial(&configs[0]) 	if err != nil { 		log.Fatal(err) 	} 	input := "Store deployment 1.0" 	address, tx, instance, err := store.DeployStore(client.GetTransactOpts(), client, input) 	if err != nil { 		log.Fatal(err) 	} 	fmt.Println("contract address: ", address.Hex()) // the address should be saved, will use in next example 	fmt.Println("transaction hash: ", tx.Hash().Hex())  	// load the contract 	// contractAddress := common.HexToAddress("contract address in hex String") 	// instance, err := store.NewStore(contractAddress, client) 	// if err != nil { 	// 	log.Fatal(err) 	// }  	fmt.Println("================================") 	storeSession := &store.StoreSession{Contract: instance, CallOpts: *client.GetCallOpts(), TransactOpts: *client.GetTransactOpts()}  	version, err := storeSession.Version() 	if err != nil { 		log.Fatal(err) 	}  	fmt.Println("version :", version) // "Store deployment 1.0"  	// contract write interface demo 	fmt.Println("================================") 	key := [32]byte{} 	value := [32]byte{} 	copy(key[:], []byte("foo")) 	copy(value[:], []byte("bar"))  	tx, receipt, err := storeSession.SetItem(key, value) 	if err != nil { 		log.Fatal(err) 	}  	fmt.Printf("tx sent: %sn", tx.Hash().Hex()) 	fmt.Printf("transaction hash of receipt: %sn", receipt.GetTransactionHash())  	// read the result 	result, err := storeSession.Items(key) 	if err != nil { 		log.Fatal(err) 	}  	fmt.Println("get item: " + string(result[:])) // "bar" }

We use optional third-party analytics cookies to understand how you use GitHub.com so we can build better products. Learn more.

update README.md (


网络

该公司以2.2.0++的方式,对该公司BCOS 2.2.2.0+的格朗SDK进行了

<go-sdk><go-sdk>go-sdk - 转到sdk>go-sdk - 转到sdk>

非非非非非非非非非非非非非非非非go-sdk - 转到sdk的非21151;

关于“go-Dek”的“go-sdk”的“go-sdk”的“go-Simon”的“go-Simon”的“包包包”的“包”的“包”的“包”的“包”的,除此之外,关于“关于”的“项目”的“关于”的“关于”的“关于”的“关于”的“关于”的“关于”的“关于”的“关于“FISCO”的“FISCO-BCOS。

p>p>Golang,Golang,除了除了除了除了除了除了除了“FISCO之外,FISCO-BCOS。

Golang,Golang,另外,除了除了除了除了除了除了除了除了除了一条龙以外,[[[[[[[[[[[[使用go模块,FISCO BCOS 2.2.0+BCOS公司_帐户.sh获得通用汽车公司_帐户.sh使用方法

在使用控制台需要先拉取代码或下载代码,然后对配置文件配置.toml进展:

FISCO BCOS 2.2配置.toml方法[两岸三地]无条件无障碍地进行无障碍的无障碍无障碍地进行无障碍的进口。污水处理厂

1存储.sol[答:

2阿比根存储.sol放存储.sol:

存储.sol目录下会生成存储.bin和存储.abi.阿比根存储.bin和存储.abi转换成商店。去吧商店商店。去吧文件઻઻的主要用途是઻主要用途是઻主要用途是᠃主要用途是৳主要用途是৳可根񃯴欶目通过ਛ的ਛ如何佑佛使如何可参阅下഍的񑤞。。

p>p>p主营主函数数,调商店商店商店商店商店商店商店商店商店商店“,

下面的例子先部署合约,在部署过程中设置的存储.sol版本何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况;何况何况何况何况何况;何况何况;何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况(key,关键,何况(key,关键,关键,关键,关键,关键,何况何况何况何况何况我们使用可选的第三方分析cookies,了解您如何使用GitHub.com网站所以我们可以制造更好的产品。了解更多。

我们使用可选的第三方分析cookies来了解您如何使用GitHub.com网站所以我们可以制造更好的产品。
您可以随时通过单击页面底部的Cookie首选项来更新您的选择。有关更多信息,请参阅我们的隐私声明。

我们使用基本Cookie来执行基本的网站功能,例如,它们用于让您登录。了解更多

我们使用analytics Cookie来了解您如何使用我们的网站,以便我们能够使其变得更好,例如,它们用于收集有关您访问的页面以及完成一项任务需要多少次单击的信息。了解更多(配置.toml)

网络

账户

Chain

始终活跃,使用go模块,FISCO BCOS公司中华人民共和国密钥:SDK网络。连接[答:]配置.ini中链.id一、
  • [中华民国第二、第二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、33410;,请参考这里。
  • 配置.toml[答:][据
  • [李[李[李[二[二[二[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四前进

    go-sdk - 转到sdk go-sdk - 转到sdk go-sdk - 转到sdk go-sdk - 转到sdk


    FISCO BCOS Go语言版本的SDK,主要实现的功能有:

    • [中华民国第二、第二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、33410;,请参考这里。
    • 配置.toml[答:][据
    • 部署、查询、写入智能合约
    • 控制台

    go-sdk的使用可以当做是一个package进行使用,亦可对项目代码进行编译,直接使用控制台通过配置文件来进行访问FISCO BCOS。

    账户

    • Golang, 版本需不低于1.13.6,本项目采用go module进行包管理。具体可查阅Using Go Modules,环境配置

    始终活跃,使用go模块,FISCO BCOS公司中华人民共和国密钥:SDK网络。连接[答:]配置.ini中链.id一、
  • [中华民国第二、第二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、33410;,请参考这里。
  • 配置.toml[答:][据
  • [李[李[李[二[二[二[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四前进

    [Network] #type rpc or channel Type="channel" CAFile="ca.crt" Cert="sdk.crt" Key="sdk.key" [[Network.Connection]] NodeURL="127.0.0.1:20200" GroupID=1 # [[Network.Connection]] # NodeURL="127.0.0.1:20200" # GroupID=2  [Account] # only support PEM format for now KeyFile=".ci/0x83309d045a19c44dc3722d15a6abd472f95866ac.pem"  [Chain] ChainID=1 SMCrypto=false

    Network

    • Type:支持channel和rpc两种模式,其中channel使用ssl链接,需要提供证书。rpc使用http访问节点。
    • CAFile:链根证书
    • Cert:SDK建立SSL链接时使用的证书
    • Key:SDK建立SSL链接时使用的证书对应的私钥
    • Network.Connection数组,配置节点信息,可配置多个。

    Account

    • KeyFile:节点签发交易时所使用的私钥,PEM格式,支持国密和非国密。

    非非非非非非非非非非非非非非非非go-sdk - 转到sdk的非21151;

    关于“go-Dek”的“go-sdk”的“go-sdk”的“go-Simon”的“go-Simon”的“包包包”的“包”的“包”的“包”的“包”的,除此之外,关于“关于”的“项目”的“关于”的“关于”的“关于”的“关于”的“关于”的“关于”的“关于”的“关于“FISCO”的“FISCO-BCOS。

    Chain

    • ChainID:链ID,与节点config.ini中chain.id保持一致。
    • SMCrypto:链使用的签名算法,ture表示使用国密SM2,false表示使用普通ECDSA。

    控制台使用

    p>p>Golang,Golang,除了除了除了除了除了除了除了“FISCO之外,FISCO-BCOS。

    1. 拉取代码并编译
    git clone https://github.com/FISCO-BCOS/go-sdk.git cd go-sdk go build cmd/console.go
    1. Golang,Golang,另外,除了除了除了除了除了除了除了除了除了一条龙以外,[[[[[[[[[[[[使用go模块,FISCO BCOS 2.2.0+BCOS公司_帐户.sh获得通用汽车公司_帐户.sh使用方法

    2. 在使用控制台需要先拉取代码或下载代码,然后对配置文件配置.toml进展:

    3. FISCO BCOS 2.2配置.toml方法[两岸三地]无条件无障碍地进行无障碍的无障碍无障碍地进行无障碍的进口。污水处理厂

    ./console help

    Package功能使用

    1存储.sol[答:

    import "github.com/FISCO-BCOS/go-sdk/client"

    Solidity合约编译为Go文件

    2阿比根存储.sol放存储.sol:

    • 准备需要编译的智能合约
    • 配置好相应版本的solc编译器
    • 构建go-sdk的合约编译工具abigen
    • 编译生成go文件
    • 使用生成的go文件进行合约调用

    存储.sol目录下会生成存储.bin和存储.abi.阿比根存储.bin和存储.abi转换成商店。去吧商店商店。去吧文件઻઻的主要用途是઻主要用途是઻主要用途是᠃主要用途是৳主要用途是৳可根񃯴欶目通过ਛ的ਛ如何佑佛使如何可参阅下഍的񑤞。。

    p>p>p主营主函数数,调商店商店商店商店商店商店商店商店商店商店“,

    pragma solidity ^0.4.25;  contract Store {   event ItemSet(bytes32 key, bytes32 value);    string public version;   mapping (bytes32 => bytes32) public items;    constructor(string _version) public {     version = _version;   }    function setItem(bytes32 key, bytes32 value) external {     items[key] = value;     emit ItemSet(key, value);   } }

    下面的例子先部署合约,在部署过程中设置的存储.sol版本何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况;何况何况何况何况何况;何况何况;何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况何况(key,关键,何况(key,关键,关键,关键,关键,关键,何况何况何况何况何况我们使用可选的第三方分析cookies,了解您如何使用GitHub.com网站所以我们可以制造更好的产品。了解更多。

    # 如果是国密则添加-g选项 bash tools/download_solc.sh -v 0.4.25

    我们使用可选的第三方分析cookies来了解您如何使用GitHub.com网站所以我们可以制造更好的产品。
    您可以随时通过单击页面底部的Cookie首选项来更新您的选择。有关更多信息,请参阅我们的隐私声明。

    # 下面指令在go-sdk目录下操作,编译生成abigen工具 go build ./cmd/abigen

    我们使用基本Cookie来执行基本的网站功能,例如,它们用于让您登录。了解更多

    mkdir ./store mv Store.sol ./store 

    我们使用analytics Cookie来了解您如何使用我们的网站,以便我们能够使其变得更好,例如,它们用于收集有关您访问的页面以及完成一项任务需要多少次单击的信息。了解更多(配置.toml)

    网络

    账户

    Chain

    始终活跃,使用go模块,FISCO BCOS公司中华人民共和国密钥:SDK网络。连接[答:]配置.ini中链.id一、
  • [中华民国第二、第二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、二、33410;,请参考这里。
  • 配置.toml[答:][据
  • [李[李[李[二[二[二[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四[四前进

    # 国密请使用 ./solc-0.4.25-gm --bin --abi -o ./store ./store/Store.sol ./solc-0.4.25 --bin --abi -o ./store ./store/Store.sol

    Store.sol目录下会生成Store.binStore.abi。此时利用abigen工具将Store.binStore.abi转换成Store.go

    # 国密请使用 ./abigen --bin ./store/Store.bin --abi ./store/Store.abi --pkg store --type Store --out ./store/Store.go --smcrypto=true ./abigen --bin ./store/Store.bin --abi ./store/Store.abi --pkg store --type Store --out ./store/Store.go

    最后store目录下面存在以下文件:

    Store.abi  Store.bin  Store.go  Store.sol

    5.调用生成的Store.go文件进行合约调用

    至此,合约已成功转换为go文件,用户可根据此文件在项目中利用SDK进行合约操作。具体的使用可参阅下一节。

    部署智能合约

    创建main函数,调用Store合约,

    touch store_main.go

    下面的例子先部署合约,在部署过程中设置的Store.sol合约中有一个公开的名为version的全局变量,这种公开的成员将自动创建getter函数,然后调用Version()来获取version的值。

    写入智能合约需要我们用私钥来对交易事务进行签名,我们创建的智能合约有一个名为SetItem的外部方法,它接受soliditybytes32类型的两个参数(key,value)。 这意味着在Go文件中需要传递一个长度为32个字节的字节数组。

    package main  import (     "fmt"     "log"      "github.com/FISCO-BCOS/go-sdk/client"     "github.com/FISCO-BCOS/go-sdk/conf"     "github.com/FISCO-BCOS/go-sdk/store" // import store )  func main(){ 	configs, err := conf.ParseConfigFile("config.toml") 	if err != nil { 		log.Fatalf("ParseConfigFile failed, err: %v", err) 	} 	client, err := client.Dial(&configs[0]) 	if err != nil { 		log.Fatal(err) 	} 	input := "Store deployment 1.0" 	address, tx, instance, err := store.DeployStore(client.GetTransactOpts(), client, input) 	if err != nil { 		log.Fatal(err) 	} 	fmt.Println("contract address: ", address.Hex()) // the address should be saved, will use in next example 	fmt.Println("transaction hash: ", tx.Hash().Hex())  	// load the contract 	// contractAddress := common.HexToAddress("contract address in hex String") 	// instance, err := store.NewStore(contractAddress, client) 	// if err != nil { 	// 	log.Fatal(err) 	// }  	fmt.Println("================================") 	storeSession := &store.StoreSession{Contract: instance, CallOpts: *client.GetCallOpts(), TransactOpts: *client.GetTransactOpts()}  	version, err := storeSession.Version() 	if err != nil { 		log.Fatal(err) 	}  	fmt.Println("version :", version) // "Store deployment 1.0"  	// contract write interface demo 	fmt.Println("================================") 	key := [32]byte{} 	value := [32]byte{} 	copy(key[:], []byte("foo")) 	copy(value[:], []byte("bar"))  	tx, receipt, err := storeSession.SetItem(key, value) 	if err != nil { 		log.Fatal(err) 	}  	fmt.Printf("tx sent: %sn", tx.Hash().Hex()) 	fmt.Printf("transaction hash of receipt: %sn", receipt.GetTransactionHash())  	// read the result 	result, err := storeSession.Items(key) 	if err != nil { 		log.Fatal(err) 	}  	fmt.Println("get item: " + string(result[:])) // "bar" }

    We use optional third-party analytics cookies to understand how you use GitHub.com so we can build better products. Learn more.

    update README.md (

    部分转自网络,侵权联系删除区块链源码网

    www.interchains.cc

    https://www.interchains.cc/18633.html

    区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 !
    区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » go-sdk – 转到sdk区块链毕设代写

    提供最优质的资源集合

    立即查看 了解详情