3

I've been getting the "missing trie node" error in the majority of my eth_getBalance requests if I use anything other than the "latest" block or very recent blocks. For example, the request:

"eth_getBalance", ['0x1cbff6551b8713296b0604705b1a3b76d238ae14', '0xf4251']

on the rinkeby network will return the error as 0xf4251 (1000017) is an old block (current is around 1.7M)

Other answers to this question suggets that I cant get the value because the state tree has been pruned so Im wondering if there is a way of getting the full tree? Someone suggested using --synmode=full when starting get, but that didnt work.

Any thoughts? Thanks

3

From trie/errors.go:

package trie

import (
    "fmt"

    "github.com/ethereum/go-ethereum/common"
)

// MissingNodeError is returned by the trie functions (TryGet, TryUpdate, TryDelete)
// in the case where a trie node is not present in the local database. It contains
// information necessary for retrieving the missing node.
type MissingNodeError struct {
    NodeHash common.Hash // hash of the missing node
    Path     []byte      // hex-encoded path to the missing node
}

func (err *MissingNodeError) Error() string {
    return fmt.Sprintf("missing trie node %x (path %x)", err.NodeHash, err.Path)
}

You have to download full blockchain.

  • shouldn't synmode=full when running geth do that? thanks – Diego Feb 14 '18 at 22:49
0
geth --rpc --rpcapi db,eth,net,web3,personal,admin,debug --syncmode full --gcmode=archive

both

--syncmode full and --gcmode=archive will be work

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.