mirror of
https://source.quilibrium.com/quilibrium/ceremonyclient.git
synced 2024-11-10 18:25:17 +00:00
113 lines
2.3 KiB
Go
113 lines
2.3 KiB
Go
package app
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
|
|
"source.quilibrium.com/quilibrium/monorepo/node/store"
|
|
)
|
|
|
|
type DBConsole struct {
|
|
clockStore store.ClockStore
|
|
}
|
|
|
|
func newDBConsole(
|
|
clockStore store.ClockStore,
|
|
) (*DBConsole, error) {
|
|
return &DBConsole{
|
|
clockStore,
|
|
}, nil
|
|
}
|
|
|
|
// Runs the DB console, this is meant for simple debugging, not production use.
|
|
func (c *DBConsole) Run() {
|
|
for {
|
|
fmt.Printf("db> ")
|
|
|
|
reader := bufio.NewReader(os.Stdin)
|
|
s, err := reader.ReadString('\n')
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
cmd := strings.Trim(s, "\n")
|
|
switch cmd {
|
|
case "quit":
|
|
return
|
|
case "show frames":
|
|
earliestFrame, err := c.clockStore.GetEarliestMasterClockFrame([]byte{
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
})
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
latestFrame, err := c.clockStore.GetLatestMasterClockFrame([]byte{
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
})
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
fmt.Printf(
|
|
"earliest: %d, latest: %d\n",
|
|
earliestFrame.FrameNumber,
|
|
latestFrame.FrameNumber,
|
|
)
|
|
|
|
fmt.Printf(
|
|
"Genesis Frame:\n\tVDF Proof: %x\n",
|
|
earliestFrame.Input[:516],
|
|
)
|
|
|
|
iter, err := c.clockStore.RangeMasterClockFrames(
|
|
[]byte{
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
|
},
|
|
earliestFrame.FrameNumber,
|
|
latestFrame.FrameNumber,
|
|
)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
for iter.First(); iter.Valid(); iter.Next() {
|
|
value, err := iter.Value()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
selector, err := value.GetSelector()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
fmt.Printf(
|
|
"Frame %d (Selector: %x):\n\tParent: %x\n\tVDF Proof: %x\n\n",
|
|
value.FrameNumber,
|
|
selector.Bytes(),
|
|
value.ParentSelector,
|
|
value.Input[:516],
|
|
)
|
|
}
|
|
|
|
if err := iter.Close(); err != nil {
|
|
panic(err)
|
|
}
|
|
default:
|
|
fmt.Printf("unknown command %s\n", cmd)
|
|
}
|
|
}
|
|
}
|