我有一个使用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。