テンダーミントで実行されているサンプルの go アプリケーションがあります。アプリケーションとノードの両方が実行されている間に、leveldb にある Tendermint のブロックチェーン ストアのデータにアクセスしたいと思います。
tx.hash とすべてのトランザクションの対応する結果を格納する tx_index.db を反復処理する基本的な go スクリプトを実行しようとしました。しかし、スクリプトを実行しようとすると、プログラムがパニックになり、エラー メッセージが表示されます。
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 にアクセスして、tendermint ノードとやり取りして tx.hash を取得する方法があるかどうかを知りたいです。