Testing traversal from head

This commit is contained in:
2026-02-13 08:19:27 +00:00
parent 2c2ce5fd01
commit 4e830bf5d0

View File

@@ -84,7 +84,7 @@ func main() {
return
}
for i := range 500 {
for i := range 1000000 {
data := fmt.Sprintf("test%d", i)
err = ledger.Append(ctx, []byte(data))
@@ -107,34 +107,37 @@ func main() {
return entries[i].Timestamp.Before(entries[j].Timestamp)
})
fmt.Println("Entries:")
if len(entries) == 0 {
fmt.Println(" (none)")
} else {
for _, e := range entries {
fmt.Printf(" ts=%d id=%s prev=%s payload=%q\n",
e.Timestamp.UnixNano(),
hex.EncodeToString(e.EntryID[:]),
hex.EncodeToString(e.Previous[:]),
e.Payload,
)
headID, ok, err := referenceStore.Get(ctx, "HEAD")
if err != nil {
fmt.Println("get HEAD:", err)
return
}
if !ok {
fmt.Println("HEAD reference not set")
return
}
// ---- Print references (name -> EntryID hex) ----
names := make([]string, 0, len(referenceStore.references))
for name := range referenceStore.references {
names = append(names, name)
isZero32 := func(b [32]byte) bool {
for _, v := range b {
if v != 0 {
return false
}
}
return true
}
sort.Strings(names)
fmt.Println("References:")
if len(names) == 0 {
fmt.Println(" (none)")
} else {
for _, name := range names {
id := referenceStore.references[name]
fmt.Printf(" %s -> %s\n", name, hex.EncodeToString(id[:]))
curID := headID
for {
ent, err := entryStore.Load(ctx, curID)
if err != nil {
return
}
if isZero32(ent.Previous) {
break
}
// Follow the linked list backwards
curID = core.EntryID(ent.Previous)
}
}