Skip to content

Commit

Permalink
Added db loggers to all db callers and fixed flag settings (#9099)
Browse files Browse the repository at this point in the history
Mdbx now takes a logger - but this has not been pushed to all callers -
meaning it had an invalid logger

This fixes the log propagation.

It also fixed a start-up issue for http.enabled and txpool.disable
created by a previous merge
  • Loading branch information
mh0lt authored Dec 31, 2023
1 parent 46ecf03 commit 19bc328
Show file tree
Hide file tree
Showing 49 changed files with 309 additions and 193 deletions.
2 changes: 1 addition & 1 deletion cl/sentinel/sentinel.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ func (s *Sentinel) createLocalNode(
udpPort, tcpPort int,
tmpDir string,
) (*enode.LocalNode, error) {
db, err := enode.OpenDB(s.ctx, "", tmpDir)
db, err := enode.OpenDB(s.ctx, "", tmpDir, s.logger)
if err != nil {
return nil, fmt.Errorf("could not open node's peer database: %w", err)
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/bootnode/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ func main() {
ctx, cancel := common.RootContext()
defer cancel()

db, err := enode.OpenDB(ctx, "" /* path */, "" /* tmpDir */)
db, err := enode.OpenDB(ctx, "" /* path */, "" /* tmpDir */, logger)
if err != nil {
panic(err)
}
Expand Down
6 changes: 3 additions & 3 deletions cmd/devnet/args/node_args.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,18 +182,18 @@ func (n *BlockProducer) IsBlockProducer() bool {
return true
}

type NonBlockProducer struct {
type BlockConsumer struct {
NodeArgs
HttpApi string `arg:"--http.api" default:"admin,eth,debug,net,trace,web3,erigon,txpool" json:"http.api"`
TorrentPort string `arg:"--torrent.port" default:"42070" json:"torrent.port"`
NoDiscover string `arg:"--nodiscover" flag:"" default:"true" json:"nodiscover"`
}

func (n *NonBlockProducer) IsBlockProducer() bool {
func (n *BlockConsumer) IsBlockProducer() bool {
return false
}

func (n *NonBlockProducer) Account() *accounts.Account {
func (n *BlockConsumer) Account() *accounts.Account {
return nil
}

Expand Down
2 changes: 1 addition & 1 deletion cmd/devnet/args/node_args_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func TestNodeArgs(t *testing.T) {
t.Fatal(asMap, "not found")
}

nodeArgs, _ = args.AsArgs(args.NonBlockProducer{
nodeArgs, _ = args.AsArgs(args.BlockConsumer{
NodeArgs: args.NodeArgs{
DataDir: filepath.Join("data", fmt.Sprintf("%d", 2)),
StaticPeers: "enode",
Expand Down
4 changes: 4 additions & 0 deletions cmd/devnet/devnet/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,10 @@ func CurrentNetwork(ctx context.Context) *Network {
}
}

if devnet, ok := ctx.Value(ckDevnet).(Devnet); ok {
return devnet.SelectNetwork(ctx, 0)
}

return nil
}

Expand Down
35 changes: 28 additions & 7 deletions cmd/devnet/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"syscall"
"time"

"github.com/ledgerwatch/erigon/cmd/devnet/networks"
"github.com/ledgerwatch/erigon/cmd/devnet/services"
"github.com/ledgerwatch/erigon/cmd/devnet/services/polygon"

Expand All @@ -23,7 +24,6 @@ import (
"github.com/ledgerwatch/erigon/cmd/devnet/devnetutils"
"github.com/ledgerwatch/erigon/cmd/devnet/requests"
"github.com/ledgerwatch/erigon/cmd/devnet/scenarios"
"github.com/ledgerwatch/erigon/cmd/devnet/tests"
"github.com/ledgerwatch/log/v3"

"github.com/ledgerwatch/erigon/cmd/utils/flags"
Expand Down Expand Up @@ -119,6 +119,18 @@ var (
Usage: "internal flag",
}

txCountFlag = cli.IntFlag{
Name: "txcount",
Usage: "Transaction count, (scenario dependent - may be total or reoccurring)",
Value: 100,
}

BlockProducersFlag = cli.UintFlag{
Name: "block-producers",
Usage: "The number of block producers to instantiate in the network",
Value: 1,
}

WaitFlag = cli.BoolFlag{
Name: "wait",
Usage: "Wait until interrupted after all scenarios have run",
Expand Down Expand Up @@ -156,6 +168,8 @@ func main() {
&insecureFlag,
&metricsURLsFlag,
&WaitFlag,
&txCountFlag,
&BlockProducersFlag,
&logging.LogVerbosityFlag,
&logging.LogConsoleVerbosityFlag,
&logging.LogDirVerbosityFlag,
Expand Down Expand Up @@ -241,7 +255,8 @@ func mainContext(ctx *cli.Context) error {
go connectDiagnosticsIfEnabled(ctx, logger)

enabledScenarios := strings.Split(ctx.String(ScenariosFlag.Name), ",")
if err = allScenarios(runCtx).Run(runCtx, enabledScenarios...); err != nil {

if err = allScenarios(ctx, runCtx).Run(runCtx, enabledScenarios...); err != nil {
return err
}

Expand All @@ -256,7 +271,7 @@ func mainContext(ctx *cli.Context) error {
return nil
}

func allScenarios(runCtx devnet.Context) scenarios.Scenarios {
func allScenarios(cliCtx *cli.Context, runCtx devnet.Context) scenarios.Scenarios {
// unsubscribe from all the subscriptions made
defer services.UnsubscribeAll()

Expand Down Expand Up @@ -313,6 +328,11 @@ func allScenarios(runCtx devnet.Context) scenarios.Scenarios {
//{Text: "BatchProcessTransfers", Args: []any{"child-funder", 1, 10, 2, 2}},
},
},
"block-production": {
Steps: []*scenarios.Step{
{Text: "SendTxLoad", Args: []any{recipientAddress, accounts.DevAddress, sendValue, cliCtx.Uint(txCountFlag.Name)}},
},
},
}
}

Expand All @@ -321,21 +341,22 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) {
chainName := ctx.String(ChainFlag.Name)
baseRpcHost := ctx.String(BaseRpcHostFlag.Name)
baseRpcPort := ctx.Int(BaseRpcPortFlag.Name)
producerCount := int(ctx.Uint(BlockProducersFlag.Name))

switch chainName {
case networkname.BorDevnetChainName:
if ctx.Bool(WithoutHeimdallFlag.Name) {
return tests.NewBorDevnetWithoutHeimdall(dataDir, baseRpcHost, baseRpcPort, logger), nil
return networks.NewBorDevnetWithoutHeimdall(dataDir, baseRpcHost, baseRpcPort, logger), nil
} else if ctx.Bool(LocalHeimdallFlag.Name) {
heimdallGrpcAddr := ctx.String(HeimdallGrpcAddressFlag.Name)
sprintSize := uint64(ctx.Int(BorSprintSizeFlag.Name))
return tests.NewBorDevnetWithLocalHeimdall(dataDir, baseRpcHost, baseRpcPort, heimdallGrpcAddr, sprintSize, logger), nil
return networks.NewBorDevnetWithLocalHeimdall(dataDir, baseRpcHost, baseRpcPort, heimdallGrpcAddr, sprintSize, producerCount, logger), nil
} else {
return tests.NewBorDevnetWithRemoteHeimdall(dataDir, baseRpcHost, baseRpcPort, logger), nil
return networks.NewBorDevnetWithRemoteHeimdall(dataDir, baseRpcHost, baseRpcPort, producerCount, logger), nil
}

case networkname.DevChainName:
return tests.NewDevDevnet(dataDir, baseRpcHost, baseRpcPort, logger), nil
return networks.NewDevDevnet(dataDir, baseRpcHost, baseRpcPort, producerCount, logger), nil

default:
return nil, fmt.Errorf("unknown network: '%s'", chainName)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tests
package networks

import (
"time"
Expand Down Expand Up @@ -47,7 +47,7 @@ func NewBorDevnetWithoutHeimdall(
},
AccountSlots: 200,
},
&args.NonBlockProducer{
&args.BlockConsumer{
NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
Expand All @@ -67,6 +67,7 @@ func NewBorDevnetWithHeimdall(
heimdall *polygon.Heimdall,
heimdallGrpcAddr string,
checkpointOwner *accounts.Account,
producerCount int,
withMilestones bool,
logger log.Logger,
) devnet.Devnet {
Expand All @@ -77,6 +78,23 @@ func NewBorDevnetWithHeimdall(
services = append(services, heimdall)
}

var nodes []devnet.Node

if producerCount == 0 {
producerCount++
}

for i := 0; i < producerCount; i++ {
nodes = append(nodes, &args.BlockProducer{
NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
HeimdallGrpcAddr: heimdallGrpcAddr,
},
AccountSlots: 20000,
})
}

borNetwork := devnet.Network{
DataDir: dataDir,
Chain: networkname.BorDevnetChainName,
Expand All @@ -91,39 +109,14 @@ func NewBorDevnetWithHeimdall(
Alloc: types.GenesisAlloc{
faucetSource.Address: {Balance: accounts.EtherAmount(200_000)},
},
Nodes: []devnet.Node{
&args.BlockProducer{
Nodes: append(nodes,
&args.BlockConsumer{
NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
HeimdallGrpcAddr: heimdallGrpcAddr,
},
AccountSlots: 200,
},
&args.BlockProducer{
NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
HeimdallGrpcAddr: heimdallGrpcAddr,
},
AccountSlots: 200,
},
/*&args.BlockProducer{
Node: args.Node{
ConsoleVerbosity: "0",
DirVerbosity: "5",
HeimdallGrpcAddr: heimdallGrpcAddr,
},
AccountSlots: 200,
},*/
&args.NonBlockProducer{
NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
HeimdallGrpcAddr: heimdallGrpcAddr,
},
},
},
}),
}

devNetwork := devnet.Network{
Expand All @@ -150,7 +143,7 @@ func NewBorDevnetWithHeimdall(
DevPeriod: 5,
AccountSlots: 200,
},
&args.NonBlockProducer{
&args.BlockConsumer{
NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "3",
Expand All @@ -169,6 +162,7 @@ func NewBorDevnetWithRemoteHeimdall(
dataDir string,
baseRpcHost string,
baseRpcPort int,
producerCount int,
logger log.Logger,
) devnet.Devnet {
heimdallGrpcAddr := ""
Expand All @@ -181,6 +175,7 @@ func NewBorDevnetWithRemoteHeimdall(
nil,
heimdallGrpcAddr,
checkpointOwner,
producerCount,
withMilestones,
logger)
}
Expand All @@ -191,6 +186,7 @@ func NewBorDevnetWithLocalHeimdall(
baseRpcPort int,
heimdallGrpcAddr string,
sprintSize uint64,
producerCount int,
logger log.Logger,
) devnet.Devnet {
config := *params.BorDevnetChainConfig
Expand All @@ -216,6 +212,7 @@ func NewBorDevnetWithLocalHeimdall(
heimdall,
heimdallGrpcAddr,
checkpointOwner,
producerCount,
// milestones are not supported yet on the local heimdall
false,
logger)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tests
package networks

import (
"github.com/ledgerwatch/erigon-lib/chain/networkname"
Expand All @@ -14,10 +14,27 @@ func NewDevDevnet(
dataDir string,
baseRpcHost string,
baseRpcPort int,
producerCount int,
logger log.Logger,
) devnet.Devnet {
faucetSource := accounts.NewAccount("faucet-source")

var nodes []devnet.Node

if producerCount == 0 {
producerCount++
}

for i := 0; i < producerCount; i++ {
nodes = append(nodes, &args.BlockProducer{
NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
},
AccountSlots: 200,
})
}

network := devnet.Network{
DataDir: dataDir,
Chain: networkname.DevChainName,
Expand All @@ -32,21 +49,13 @@ func NewDevDevnet(
account_services.NewFaucet(networkname.DevChainName, faucetSource),
},
MaxNumberOfEmptyBlockChecks: 30,
Nodes: []devnet.Node{
&args.BlockProducer{
Nodes: append(nodes,
&args.BlockConsumer{
NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
},
AccountSlots: 200,
},
&args.NonBlockProducer{
NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
},
},
},
}),
}

return devnet.Devnet{&network}
Expand Down
Loading

0 comments on commit 19bc328

Please sign in to comment.