0

我有一个使用tendermint 运行的示例go 应用程序。我想在应用程序和节点都在运行时访问 Tendermint 的区块链存储在 leveldb 中的数据。

我试图运行一个基本的 go 脚本,它遍历 tx_index.db,它存储 tx.hash 和每个事务的相应结果。但是,当我尝试运行脚本时,程序会出现错误消息并出现恐慌。

这是迭代 tx_index.db 的 go 脚本

package main

import (
    "fmt"
    "github.com/syndtr/goleveldb/leveldb"
)

func main() {
    db, err := leveldb.OpenFile("tx_index.db", nil)
    if err != nil {
        panic(err)
    }

    iter := db.NewIterator(nil, nil)
    for iter.Next() {
        key := iter.Key()
        h_key := fmt.Sprintf("%X", key)
        value := iter.Value()
        h_value := fmt.Sprintf("%X", value)
        fmt.Printf("Key: %v \nValue: %v \n", h_key, h_value)
    }
    iter.Release()
    err = iter.Error()
    defer db.Close()

}

在应用程序和tendermint 节点运行时运行上述脚本。我收到以下错误消息!

panic: resource temporarily unavailable

goroutine 1 [running]:
main.main()
    $HOME/tendermint/data/read_db.go:11 +0x375
exit status 2

我有兴趣在应用程序和招标节点运行时访问 tx_index.db 以获取所执行事务的事务哈希。

PS:如果可行,我想知道是否有办法通过与招标节点交互来访问 tx_index.db 来获取 tx.hash。

4

0 回答 0