Skip to content

Commit

Permalink
rebase & blk marshal/unmarshal & merkleroot to ids.ID
Browse files Browse the repository at this point in the history
  • Loading branch information
bianyuanop committed Jan 28, 2024
1 parent 7586f40 commit f009424
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 8 deletions.
5 changes: 4 additions & 1 deletion chain/block.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ type StatefulBlock struct {
Hght uint64 `json:"height"`

Txs []*Transaction `json:"txs"`
TxsRoot []byte `json:"txsRoot"`
TxsRoot ids.ID `json:"txsRoot"`

// StateRoot is the root of the post-execution state
// of [Prnt].
Expand Down Expand Up @@ -1017,6 +1017,8 @@ func (b *StatefulBlock) Marshal() ([]byte, error) {

p.PackID(b.StateRoot)
p.PackUint64(uint64(b.WarpResults))
p.PackID(b.TxsRoot)

bytes := p.Bytes()
if err := p.Err(); err != nil {
return nil, err
Expand Down Expand Up @@ -1052,6 +1054,7 @@ func UnmarshalBlock(raw []byte, parser Parser) (*StatefulBlock, error) {

p.UnpackID(false, &b.StateRoot)
b.WarpResults = set.Bits64(p.UnpackUint64(false))
p.UnpackID(false, &b.TxsRoot)

// Ensure no leftover bytes
if !p.Empty() {
Expand Down
14 changes: 7 additions & 7 deletions merkle/merkle.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@ import (

"github.com/ava-labs/avalanchego/database"
"github.com/ava-labs/avalanchego/database/memdb"
"github.com/ava-labs/avalanchego/ids"
"github.com/ava-labs/avalanchego/trace"
"github.com/ava-labs/avalanchego/utils/units"
"github.com/ava-labs/avalanchego/x/merkledb"
"github.com/ava-labs/hypersdk/utils"
)

// Generate merkle root for a set of items
func GenerateMerkleRoot(ctx context.Context, tracer trace.Tracer, merkleItems [][]byte, consumeBytes bool) ([]byte, merkledb.MerkleDB, error) {
func GenerateMerkleRoot(ctx context.Context, tracer trace.Tracer, merkleItems [][]byte, consumeBytes bool) (ids.ID, merkledb.MerkleDB, error) {
batchOps := make([]database.BatchOp, 0, len(merkleItems))

for _, item := range merkleItems {
Expand All @@ -26,27 +27,26 @@ func GenerateMerkleRoot(ctx context.Context, tracer trace.Tracer, merkleItems []
db, err := merkledb.New(ctx, memdb.New(), merkledb.Config{
BranchFactor: merkledb.BranchFactor16,
HistoryLength: 100,
EvictionBatchSize: units.MiB,
IntermediateNodeCacheSize: units.MiB,
ValueNodeCacheSize: units.MiB,
Tracer: tracer,
})
if err != nil {
return nil, nil, err
return ids.Empty, nil, err
}

view, err := db.NewView(ctx, merkledb.ViewChanges{BatchOps: batchOps, ConsumeBytes: consumeBytes})
if err != nil {
return nil, nil, err
return ids.Empty, nil, err
}
if err := view.CommitToDB(ctx); err != nil {
return nil, nil, err
return ids.Empty, nil, err
}

root, err := db.GetMerkleRoot(ctx)
if err != nil {
return nil, nil, err
return ids.Empty, nil, err
}

return root[:], db, nil
return root, db, nil
}

0 comments on commit f009424

Please sign in to comment.