Skip to content

Commit

Permalink
make root generation a function
Browse files Browse the repository at this point in the history
  • Loading branch information
iFrostizz committed Apr 26, 2024
1 parent 1635bd5 commit aa44f97
Showing 1 changed file with 6 additions and 33 deletions.
39 changes: 6 additions & 33 deletions chain/block.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,12 @@ import (
"fmt"
"time"

"github.com/ava-labs/avalanchego/database"
"github.com/ava-labs/avalanchego/database/memdb"
"github.com/ava-labs/avalanchego/ids"
"github.com/ava-labs/avalanchego/snow/choices"
"github.com/ava-labs/avalanchego/snow/consensus/snowman"
"github.com/ava-labs/avalanchego/snow/engine/snowman/block"
"github.com/ava-labs/avalanchego/snow/validators"
"github.com/ava-labs/avalanchego/utils/set"
"github.com/ava-labs/avalanchego/utils/units"
"github.com/ava-labs/avalanchego/vms/platformvm/warp"
"github.com/ava-labs/avalanchego/x/merkledb"
"go.opentelemetry.io/otel/attribute"
Expand Down Expand Up @@ -297,43 +294,19 @@ func (b *StatelessBlock) initializeBuilt(
}

// transaction hash generation
db, err := merkledb.New(ctx, memdb.New(), merkledb.Config{
BranchFactor: merkledb.BranchFactor16,
HistoryLength: 100,
EvictionBatchSize: units.MiB,
IntermediateNodeCacheSize: units.MiB,
ValueNodeCacheSize: units.MiB,
Tracer: b.vm.Tracer(),
})
if err != nil {
return err
}
// collect keys, values from transactions/results
var ops []database.BatchOp
var merkleItems [][]byte
for _, tx := range b.Txs {
key := utils.ToID(tx.Bytes())
ops = append(ops, database.BatchOp{
Key: key[:],
Value: tx.Bytes(),
})
merkleItems = append(merkleItems, tx.Bytes())
}
for _, result := range b.results {
key := utils.ToID(result.Output)
ops = append(ops, database.BatchOp{
Key: key[:],
Value: result.Output,
})
merkleItems = append(merkleItems, result.Output)
}
view, err = db.NewView(ctx, merkledb.ViewChanges{BatchOps: ops})
if err != nil {
return err
}
view.CommitToDB(ctx)
txsRoot, err := db.GetMerkleRoot(ctx)

root, _, err := utils.GenerateMerkleRoot(ctx, b.vm.Tracer(), merkleItems)
if err != nil {
return err
}
b.TxsRoot = txsRoot[:]
b.TxsRoot = root

return nil
}
Expand Down

0 comments on commit aa44f97

Please sign in to comment.