0

我有一个结构,其中 merkleTree.MerkleProof 是一个由 mTree.Proof 实现的接口:

type Checkpoint struct {
    Leaves      []Leaf
    MerkleProof merkleTree.MerkleProof
}

type MerkleProof interface {
    Verify(leafHash, treeRoot []byte) 
}

type Proof struct {
    Hashes  [][]byte
    Path    []byte
}

我正在将 Checkpoint 结构(在 MerkleProof 字段中带有 Proof 结构)编码为带有 JSON 或 Gob 的文件,一切顺利;数据编码正确。

"Proof": {
    "Hashes": [
        "f8kfN1YkWAwRpj1wbX2izMGC5DbHel//d5y5hceamAc="
    ],
    "Path": "AA=="
}

当我去解码相同的编码数据时,我收到以下错误:

json: cannot unmarshal object into Go struct field Checkpoint.MerkleProof of type merkleTree.MerkleProof

Gob 给出了类似的错误。如何让解码器识别 Proof 结构实现 MerkleProof 并且可以存储在字段中?

4

0 回答 0