kopia lustrzana https://github.com/bugout-dev/moonstream
69 wiersze
1.4 KiB
Go
69 wiersze
1.4 KiB
Go
package cmd
|
|
|
|
import (
|
|
"database/sql"
|
|
"math/big"
|
|
|
|
humbug "github.com/bugout-dev/humbug/go/pkg"
|
|
"github.com/ethereum/go-ethereum/core"
|
|
"github.com/ethereum/go-ethereum/eth/ethconfig"
|
|
"github.com/ethereum/go-ethereum/ethdb"
|
|
"github.com/ethereum/go-ethereum/node"
|
|
)
|
|
|
|
// Modified lightweight go-ethereum struct
|
|
// Source: github.com/ethereum/go-ethereum/cmd/geth/config.go
|
|
type gethConfig struct {
|
|
Eth ethconfig.Config
|
|
Node node.Config
|
|
}
|
|
|
|
// Predefined connections to blockchain and database
|
|
type LocalConnections struct {
|
|
Stack *node.Node
|
|
Chain *core.BlockChain
|
|
ChainDB ethdb.Database
|
|
Database *sql.DB
|
|
}
|
|
|
|
type HumbugReporter struct {
|
|
Reporter *humbug.HumbugReporter
|
|
}
|
|
|
|
// Lightweight transactions for database operations
|
|
type LightTransaction struct {
|
|
Hash string
|
|
}
|
|
|
|
// Lightweight block for database operations
|
|
type LightBlock struct {
|
|
Hash string
|
|
Number *big.Int
|
|
Transactions []LightTransaction
|
|
}
|
|
|
|
// Malformed block structure which will be submitted to humbug journal
|
|
type CorruptBlock struct {
|
|
Number uint64 `json:"number"`
|
|
Source string `json:"source"`
|
|
Description string `json:"description"`
|
|
}
|
|
|
|
type CorruptBlocks struct {
|
|
Blocks []CorruptBlock `json:"blocks"`
|
|
}
|
|
|
|
// Concurrency jobs structure
|
|
type Job struct {
|
|
BlockNumber uint64
|
|
Results chan<- Result
|
|
}
|
|
|
|
// TODO(kompotkot): Find way to remove Number, it repeats Job
|
|
type Result struct {
|
|
ErrorOutput string
|
|
ErrorSource string
|
|
Number uint64
|
|
Output string
|
|
}
|