區塊鏈研究實驗室|使用GETH實現系統後端搭建

買賣虛擬貨幣

我正在建立一系列非常容易理解的文章,這些文章既解釋了我所做的事情,也讓我重寫從舊的混亂駭客到希望更清潔版本的所有內容。

使測試環境成為可能的單個主要元件是構建在geth源庫中的模擬後端。模擬的後端是一個geth-ethereum虛擬機器,您可以初始化、提交事務、密封塊,實際上,將其視為私有區塊鏈節點。

因此讓我們從一個極其簡單的例子開始——建立一個模擬區塊鏈,其中一個賬戶持有特定數量的以太。我通常使用一個名為getclient的函式來連線到我正在使用的後端。

  1. 我們使用memorykeys庫中的getaddress返回一個繫結到角色的地址。〔1〕〔2〕

  2. 我們使用etherutils庫中的strtoether返回一個表示ether值的大int值a字串[3]

var baseClient *backends.SimulatedBackend

funcgetClient()(client *backends.SimulatedBackend, err error) {
if baseClient != nil {
return baseClient, nil
    }
    funds, _ := etherUtils.StrToEther("10000.0")
    baseClient = backends.NewSimulatedBackend(core.GenesisAlloc{
        getAddress("banker"): {Balance: funds},
    }, 8000000)
return baseClient, nil
}

我們現在有一個後端系統,有一個賬戶(我稱之為銀行家),餘額為10000以太。

你可以用下面的程式碼進行操作

funcmain() {
    client, err := getClient()
if err != nil {
        log.Fatal(err)
    }
    bal, err := client.BalanceAt(context.Background(), getAddress("banker"), nil)
if err != nil {
        log.Fatal(err)
    }
    fmt.Println(etherUtils.EtherToStr(bal))
}

假設您已新增GETH,memorykeys和etherUtils,您的環境現在應該為您設定匯入,您將看到顯示10k以太的餘額

gorunsbe.gokeyUtils.go
10000.000000000000000000

現在我們已經模擬了後端工作 - 在下一篇文章中,我們將實現交易模組功能。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;