国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【使用go開發(fā)區(qū)塊鏈】之獲取鏈上數(shù)據(jù)(01)

這篇具有很好參考價(jià)值的文章主要介紹了【使用go開發(fā)區(qū)塊鏈】之獲取鏈上數(shù)據(jù)(01)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在我們實(shí)際開發(fā)項(xiàng)目中,很多時(shí)候都需要從鏈上獲取區(qū)塊數(shù)據(jù),將數(shù)據(jù)加工處理后存入到數(shù)據(jù)庫(kù)中,本章開始,我們來學(xué)習(xí)一下如何從鏈上獲取數(shù)據(jù)(主動(dòng)拉取)并存儲(chǔ)到數(shù)據(jù)庫(kù)中

本系列文章
1、【使用go開發(fā)區(qū)塊鏈】之獲取鏈上數(shù)據(jù)(01)
2、【使用go開發(fā)區(qū)塊鏈】之獲取鏈上數(shù)據(jù)(02)
3、【使用go開發(fā)區(qū)塊鏈】之獲取鏈上數(shù)據(jù)(03)
4、【使用go開發(fā)區(qū)塊鏈】之獲取鏈上數(shù)據(jù)(04)

1、配置文件

首先我們新建go項(xiàng)目,然后在項(xiàng)目根目錄新建目錄:config、internal、global、pkg,完成后的項(xiàng)目看起來應(yīng)該是這樣的:
go 區(qū)塊鏈項(xiàng)目,使用go獲取鏈上數(shù)據(jù),# 區(qū)塊鏈/Web3.0,使用go開發(fā)區(qū)塊鏈,golang,開發(fā)語(yǔ)言,區(qū)塊鏈,web3

config目錄主要存儲(chǔ)配置文件、配置文件操作相關(guān)類
internal目錄主要存儲(chǔ)內(nèi)部類,如model、dao、service等等
global目錄主要存儲(chǔ)全局類
pkg目錄主要存儲(chǔ)第三方類

1.1、新建配置文件

在config目錄下新建文件 config.yml,填寫如下信息:

Database:
  DbType: mysql  #數(shù)據(jù)庫(kù)類型
  DbName: go-chain-data  #數(shù)據(jù)庫(kù)名稱
  Host: #數(shù)據(jù)庫(kù)鏈接,如 127.0.0.1:3306
  Username: #用戶名
  Pwd: #數(shù)據(jù)庫(kù)密碼
  Charset: utf8  #數(shù)據(jù)庫(kù)編碼
  ParseTime: True

BlockChain:
  RpcUrl: https://goerli.infura.io/v3/    #  區(qū)塊鏈rpc地址  infura.io 可以獲取 

Database配置的是數(shù)據(jù)庫(kù)鏈接信息,我們示例里使用的是mysql數(shù)據(jù)庫(kù)
BlockChain配置的是區(qū)塊鏈的rpc地址,如果沒有可以訪問infura.io申請(qǐng)

1.2、新建setting.go文件

首先在config目錄下創(chuàng)建setting目錄,然后在setting目錄下新建setting.go文件,代碼如下:

package setting

type DbConfig struct {
	DbType    string
	DbName    string
	Host      string
	Username  string
	Pwd       string
	Charset   string
	ParseTime bool
}
type BlockChainConfig struct {
	RpcUrl string
}

這里的結(jié)構(gòu)與我們yml配置文件是一致的,后面我們會(huì)將yml配置讀取到這些對(duì)象里

1.3、新建config.go文件

首先,在項(xiàng)目終端下執(zhí)行如下命令安裝viper包:

go get github.com/spf13/viper

然后,在config目下新建 config.go文件,代碼如下:

package config

import (
	"github.com/spf13/viper"
)

type Config struct {
	vp *viper.Viper
}

func NewConfig() (*Config, error) {
	vp := viper.New()
	vp.SetConfigName("config")
	vp.AddConfigPath("config")
	vp.SetConfigType("yaml")
	err := vp.ReadInConfig()
	if err != nil {
		return nil, err
	}
	return &Config{vp}, nil
}

func (config *Config) ReadSection(k string, v interface{}) error {
	err := config.vp.UnmarshalKey(k, v)
	if err != nil {
		return err
	}
	return nil
}

NewConfig方法里我們創(chuàng)建了viper的實(shí)例對(duì)象,并讀取了yml文件的配置信息
ReadSection方法可以通過給定的 k值 讀取配置文件對(duì)應(yīng)的 配置信息 并存到 v 變量里

2、全局變量配置

2.1、新建global.go

在global目錄下新建global.go,代碼如下:

package global

import (
	"go-chain-data/config/setting"
)

var (
	DbConfig         *setting.DbConfig
	BlockChainConfig *setting.BlockChainConfig
)

這里定義的變量,我們接下來會(huì)在各個(gè)類中進(jìn)行調(diào)用

2.2、初始化配置

2.2.1、新建配置讀取方法

首先,在config.go文件里新建SetupConfig()方法:

func SetupConfig() {
	conf, err := NewConfig()
	if err != nil {
		log.Panic("NewConfig error : ", err)
	}
	err = conf.ReadSection("Database", &global.DbConfig)
	if err != nil {
		log.Panic("ReadSection - Database error : ", err)
	}
	err = conf.ReadSection("BlockChain", &global.BlockChainConfig)
	if err != nil {
		log.Panic("ReadSection - BlockChain error : ", err)
	}
}

通過調(diào)用conf.ReadSection()方法,我們將yml里的配置讀取到全局變量里,這樣在其他的地方我們就可以通過global.DbConfig.X的方式進(jìn)行調(diào)用

2.2.2、調(diào)用配置初始化方法

首先,在項(xiàng)目根目錄新建main.go文件,記得把package改成main
然后,在main.go文件里新建init()方法:

func init() {
	config.SetupConfig()
}

在init()方法里,我們調(diào)用SetupConfig()方法,這個(gè)init()是go內(nèi)置方法,默認(rèn)會(huì)在調(diào)用類加載之前自動(dòng)執(zhí)行

2.3、驗(yàn)證配置

在main.go里新建main()方法:


func main() {
	log.Println(global.BlockChainConfig.RpcUrl)
}

接下來我們運(yùn)行main()方法,輸出如下:
go 區(qū)塊鏈項(xiàng)目,使用go獲取鏈上數(shù)據(jù),# 區(qū)塊鏈/Web3.0,使用go開發(fā)區(qū)塊鏈,golang,開發(fā)語(yǔ)言,區(qū)塊鏈,web3
說明我們的配置已經(jīng)能正確的寫入到了全局變量,并可以在項(xiàng)目里進(jìn)行讀取

通過本章課程學(xué)習(xí),我們搭建了項(xiàng)目的基礎(chǔ)環(huán)境,并成功的完成了配置文件的讀取操作,在下節(jié)課里我們將要進(jìn)一步完善項(xiàng)目,讓我們的項(xiàng)目可以訪問數(shù)據(jù)庫(kù),沒有學(xué)會(huì)的同學(xué)可以照著教程反復(fù)練習(xí)幾遍,那么下節(jié)課見吧!

請(qǐng)關(guān)注公眾號(hào):外柏叁布道者(web3_preacher),回復(fù) “go獲取鏈上數(shù)據(jù)” 領(lǐng)取完整代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-815015.html

到了這里,關(guān)于【使用go開發(fā)區(qū)塊鏈】之獲取鏈上數(shù)據(jù)(01)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Web3 的開發(fā)者,如何評(píng)估以及選擇調(diào)用鏈上數(shù)據(jù)的解決方案

    Web3 的開發(fā)者,如何評(píng)估以及選擇調(diào)用鏈上數(shù)據(jù)的解決方案

    FP是鏈上數(shù)據(jù)分析平臺(tái)以及數(shù)據(jù)處理基礎(chǔ)設(shè)施,使命是讓鏈上數(shù)據(jù)分析以及使用隨手可得。目前,F(xiàn)ootprint 從 22 條公鏈上收集、解析和清理數(shù)據(jù),把無語(yǔ)義以及無序的鏈上數(shù)據(jù),轉(zhuǎn)化成讓用戶能使用無代碼拖放界面、SQL等多種形式構(gòu)建圖表以及儀表盤。除了提供鏈上原始數(shù)據(jù),

    2024年02月02日
    瀏覽(27)
  • Web3 整理React項(xiàng)目 導(dǎo)入Web3 并獲取區(qū)塊鏈信息

    Web3 整理React項(xiàng)目 導(dǎo)入Web3 并獲取區(qū)塊鏈信息

    上文 WEB3 創(chuàng)建React前端Dapp環(huán)境并整合solidity項(xiàng)目,融合項(xiàng)目結(jié)構(gòu)便捷前端拿取合約 Abi 我們用react 創(chuàng)建了一個(gè) dapp 項(xiàng)目 并將前后端代碼做了個(gè)整合 那么 我們就來好好整理一下 我們的前端react的項(xiàng)目結(jié)構(gòu) 我們?cè)?src 目錄下創(chuàng)建一個(gè) components 用來存放我們的 大規(guī)模組件 然后 在

    2024年02月02日
    瀏覽(30)
  • Web3 開發(fā)指南:使用 NFTScan NFT API 構(gòu)建一個(gè) NFT 鏈上追蹤器

    Web3 開發(fā)指南:使用 NFTScan NFT API 構(gòu)建一個(gè) NFT 鏈上追蹤器

    對(duì)于大多數(shù) Web3 團(tuán)隊(duì)來說,構(gòu)建一個(gè)完整的鏈上 NFT 數(shù)據(jù)追蹤系統(tǒng)是一項(xiàng)具有挑戰(zhàn)性的任務(wù),構(gòu)建一個(gè) NFT 鏈上追蹤器更是如此。涉及到處理區(qū)塊鏈上的智能合約和交易數(shù)據(jù),并將其與外部數(shù)據(jù)源進(jìn)行整合和分析工作量是十分巨大的: 區(qū)塊鏈數(shù)據(jù)的復(fù)雜性:區(qū)塊鏈上的數(shù)據(jù)結(jié)

    2024年02月15日
    瀏覽(29)
  • 如何開發(fā)和搭建一個(gè)優(yōu)質(zhì)的Web3.0/區(qū)塊鏈項(xiàng)目?

    在區(qū)塊鏈?zhǔn)澜绾?加密領(lǐng)域 中 、Web3 絕對(duì)算得上是一個(gè)耀眼的明星了,現(xiàn)在的風(fēng)頭明顯蓋過前兩位老大哥了。 相信許多人也都想嘗試熟悉或者參與區(qū)塊鏈,加密領(lǐng)域和 Wed3之中,今天我們就來談?wù)勅绾我攒浖_發(fā)的角度,來搭建一個(gè)優(yōu)質(zhì)的區(qū)塊鏈相關(guān)項(xiàng)目。 如何創(chuàng)建一個(gè)優(yōu)質(zhì)

    2024年01月16日
    瀏覽(19)
  • 給Web3應(yīng)用新增區(qū)塊鏈數(shù)據(jù)(Web3項(xiàng)目一實(shí)戰(zhàn)之六)

    當(dāng)您在瀏覽首頁(yè)以卡片形式來展示區(qū)塊鏈列表數(shù)據(jù)(Web3項(xiàng)目一實(shí)戰(zhàn)之五)時(shí),不禁發(fā)問,既然首頁(yè)讀取了 區(qū)塊鏈 列表數(shù)據(jù),那么,那些列表數(shù)據(jù)總得在哪個(gè)頁(yè)面進(jìn)行添加進(jìn)去吧!絕不會(huì)憑空冒出這許多數(shù)據(jù)的。 沒錯(cuò),如您所想,也正是您所猜測(cè)的那般, DApp 與傳統(tǒng) App 一樣

    2024年02月05日
    瀏覽(25)
  • 使用Golang Web3庫(kù)進(jìn)行區(qū)塊鏈開發(fā)

    區(qū)塊鏈作為一種分布式賬本技術(shù),在近年來取得了巨大的發(fā)展。而Golang作為一種高效、并發(fā)性強(qiáng)的編程語(yǔ)言,被廣泛用于區(qū)塊鏈開發(fā)中。在Golang中,我們可以使用Web3庫(kù)來與以太坊或其他區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行交互。 Web3庫(kù)是一個(gè)用于與區(qū)塊鏈進(jìn)行交互的工具庫(kù)。它提供了一套API,用

    2024年02月07日
    瀏覽(50)
  • 淺析『鏈上數(shù)據(jù)分析』 : 區(qū)塊鏈 + 數(shù)據(jù)分析

    淺析『鏈上數(shù)據(jù)分析』 : 區(qū)塊鏈 + 數(shù)據(jù)分析

    什么是鏈上數(shù)據(jù)分析? 01 區(qū)塊鏈 02 鏈上數(shù)據(jù) 03 為什么要分析鏈上數(shù)據(jù) 04 數(shù)據(jù)分析思維 05 數(shù)據(jù)分析技能 06 數(shù)據(jù)分析工具 07 業(yè)務(wù)邏輯理解 鏈上數(shù)據(jù)分析,顧名思義,就是對(duì)區(qū)塊鏈上的數(shù)據(jù)進(jìn)行分析。 其實(shí)就是將數(shù)據(jù)分析運(yùn)用到區(qū)塊鏈行業(yè)上,和其他的如電商數(shù)據(jù)分析一樣,

    2023年04月08日
    瀏覽(20)
  • python 基于 Web3.py 和 Infura 網(wǎng)關(guān)采集鏈上數(shù)據(jù)

    python 基于 Web3.py 和 Infura 網(wǎng)關(guān)采集鏈上數(shù)據(jù)

    Web3.py是與Ethereum交互的Python庫(kù)。功能包括連接到以太坊網(wǎng)絡(luò)節(jié)點(diǎn)、檢索數(shù)據(jù)和向以太坊網(wǎng)絡(luò)廣播數(shù)據(jù)。 目前以太坊全節(jié)點(diǎn)數(shù)據(jù)量高達(dá)數(shù)TB,自建本地全節(jié)點(diǎn)不太現(xiàn)實(shí),因此一般通過Infura等的網(wǎng)關(guān)來實(shí)現(xiàn)數(shù)據(jù)查詢。在 Infura 新建一個(gè)項(xiàng)目獲取API KEY 需求:識(shí)別當(dāng)前用戶地址持有的

    2024年02月02日
    瀏覽(23)
  • 首頁(yè)以卡片形式來展示區(qū)塊鏈列表數(shù)據(jù)(Web3項(xiàng)目一實(shí)戰(zhàn)之五)

    我們已然在 Web3 分布式存儲(chǔ) IPFS(Web3項(xiàng)目一實(shí)戰(zhàn)之四) 介紹了什么是 IPFS ,以及在本地電腦如何安裝它。雖然在上一篇講解了該怎么安裝 IPFS ,也做了相應(yīng)的配置,但在本地開發(fā)階段,前端總是無法避免 跨域 這個(gè)遠(yuǎn)程請(qǐng)求 api 的”家常便飯的通病“。 很顯然,對(duì)于出現(xiàn) 跨域

    2024年02月05日
    瀏覽(28)
  • 【W(wǎng)EB3】如何使用Web3J庫(kù)開發(fā)應(yīng)用連接到以太坊區(qū)塊鏈網(wǎng)絡(luò)

    ? Web3j 是一個(gè)與以太坊智能合約交互并與以太坊節(jié)點(diǎn)集成的 Java 庫(kù)。它是高度模塊化、類型安全和反應(yīng)式的,專為以太坊上的 Java 和 Android 開發(fā)而構(gòu)建。Web3j 消除了編寫自定義集成代碼以連接到以太坊區(qū)塊鏈網(wǎng)絡(luò)的開銷。 通過 HTTP 和 IPC 實(shí)現(xiàn)完整的 Ethereum JSON-RPC客戶端 API,

    2024年02月02日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包