mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2024-12-25 21:17:16 +00:00
e02d6acc7d
* save progress * try now * don't create bloom inside rlpDecode * don't create bloom inside ApplyTransaction * clean * clean * clean * clean * clean * clean * clean * clean * rename method * print timings * print timings * print timings * sort before flush * fix err lint * clean * move tests to transactions * compressed version * up bound * up bound * more tests * more tests * more tests * more tests * better removal * clean * better performance of get/put methods * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * optimize rpcdaemon * fix test * fix rpcdaemon * fix test * simplify * simplify * fix nil pointer * clean * revert some changes * add some logs * clean * try without optimize * clean * clean * clean * clean * try * move log_index to own stage * move log_index to own stage * integration add log_index stage * integration add log_index stage * clean * clean * print timing * remove duplicates at unwind * extract truncateBitmaps func * try detect * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * clean * add blackList of topics * clean * clean * clean * clean * clean * clean * clean * clean * sharding 1 * sharded 2 * sharded 2 * sharded 2 * sharded 2 * sharded 2 * sharded 2 * sharded 2 * sharded 2 * sharded 2 * sharded 2 * sharded 2 * sharded 2 * sharded 2 * sharded 2 * sharded 2 * sharded 2 * sharded 3 * sharded 3 * sharded 3 * speedup things by putCurrent and putReserve * clean * optimize trim * clean * remove blacklist * add more info to err * ? * clean * clean * clean * clean * clean * working version * switch to cgo version of roaring bitmaps * clean * clean * clean * clean * more docs * clean * clean * fix logs bloom field * Fix debug_getModifiedAccountsByNumber * Try to fix crash * fix problem with "absent block" * fix problem with "absent block" * remove optimize method call * remove roaring iterator * fix problem with rebuild indicess * remove debug prints * tests for eth_getLogs involving topics * add tests for new stage, speparate topics into 2 buckets * version up * remove debug logs * remove debug logs * remove bloom filter implementation * Optimisation * Optimisatin not required, make rpctest lenient to geth errors * Lenient to geth failures Co-authored-by: Alexey Akhunov <akhounov@gmail.com>
223 lines
5.4 KiB
Go
223 lines
5.4 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
|
|
"github.com/ledgerwatch/turbo-geth/cmd/rpctest/rpctest"
|
|
"github.com/ledgerwatch/turbo-geth/log"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
func main() {
|
|
log.SetupDefaultTerminalLogger(log.Lvl(3), "", "")
|
|
|
|
var (
|
|
needCompare bool
|
|
fullTest bool
|
|
gethURL string
|
|
tgURL string
|
|
blockNum uint64
|
|
chaindata string
|
|
)
|
|
withTGUrl := func(cmd *cobra.Command) {
|
|
cmd.Flags().StringVar(&tgURL, "tgUrl", "http://localhost:8545", "turbogeth rpcdaemon url")
|
|
}
|
|
withGethUrl := func(cmd *cobra.Command) {
|
|
cmd.Flags().StringVar(&gethURL, "gethUrl", "http://localhost:8546", "geth rpc url")
|
|
}
|
|
withBlockNum := func(cmd *cobra.Command) {
|
|
cmd.Flags().Uint64Var(&blockNum, "block", 2000000, "Block number")
|
|
}
|
|
withNeedCompare := func(cmd *cobra.Command) {
|
|
cmd.Flags().BoolVar(&needCompare, "needCompare", false, "need compare with geth")
|
|
}
|
|
with := func(cmd *cobra.Command, opts ...func(*cobra.Command)) {
|
|
for i := range opts {
|
|
opts[i](cmd)
|
|
}
|
|
}
|
|
|
|
var bench1Cmd = &cobra.Command{
|
|
Use: "bench1",
|
|
Short: "",
|
|
Long: ``,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
rpctest.Bench1(tgURL, gethURL, needCompare, fullTest, blockNum)
|
|
},
|
|
}
|
|
with(bench1Cmd, withTGUrl, withGethUrl, withNeedCompare, withBlockNum)
|
|
bench1Cmd.Flags().BoolVar(&fullTest, "fullTest", false, "some text")
|
|
|
|
var bench2Cmd = &cobra.Command{
|
|
Use: "bench2",
|
|
Short: "",
|
|
Long: ``,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
rpctest.Bench2(tgURL)
|
|
},
|
|
}
|
|
var bench3Cmd = &cobra.Command{
|
|
Use: "bench3",
|
|
Short: "",
|
|
Long: ``,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
rpctest.Bench3(tgURL, gethURL)
|
|
},
|
|
}
|
|
with(bench3Cmd, withTGUrl, withGethUrl)
|
|
|
|
var bench4Cmd = &cobra.Command{
|
|
Use: "bench4",
|
|
Short: "",
|
|
Long: ``,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
rpctest.Bench4(tgURL)
|
|
},
|
|
}
|
|
with(bench4Cmd, withTGUrl)
|
|
|
|
var bench5Cmd = &cobra.Command{
|
|
Use: "bench5",
|
|
Short: "",
|
|
Long: ``,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
rpctest.Bench5(tgURL)
|
|
},
|
|
}
|
|
with(bench5Cmd, withTGUrl)
|
|
var bench6Cmd = &cobra.Command{
|
|
Use: "bench6",
|
|
Short: "",
|
|
Long: ``,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
rpctest.Bench6(tgURL)
|
|
},
|
|
}
|
|
with(bench6Cmd, withTGUrl)
|
|
|
|
var bench7Cmd = &cobra.Command{
|
|
Use: "bench7",
|
|
Short: "",
|
|
Long: ``,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
rpctest.Bench7(tgURL, gethURL)
|
|
},
|
|
}
|
|
with(bench7Cmd, withTGUrl, withGethUrl)
|
|
|
|
var bench8Cmd = &cobra.Command{
|
|
Use: "bench8",
|
|
Short: "",
|
|
Long: ``,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
rpctest.Bench8(tgURL, gethURL, needCompare, blockNum)
|
|
},
|
|
}
|
|
with(bench8Cmd, withTGUrl, withGethUrl, withNeedCompare, withBlockNum)
|
|
|
|
var bench9Cmd = &cobra.Command{
|
|
Use: "bench9",
|
|
Short: "",
|
|
Long: ``,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
rpctest.Bench9(tgURL, gethURL, needCompare)
|
|
},
|
|
}
|
|
with(bench9Cmd, withTGUrl, withGethUrl, withNeedCompare)
|
|
|
|
var bench10Cmd = &cobra.Command{
|
|
Use: "bench10",
|
|
Short: "",
|
|
Long: ``,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
err := rpctest.Bench10(tgURL, gethURL, blockNum)
|
|
if err != nil {
|
|
log.Error("bench 10 err", "err", err)
|
|
}
|
|
},
|
|
}
|
|
with(bench10Cmd, withGethUrl, withTGUrl, withBlockNum)
|
|
|
|
var proofsCmd = &cobra.Command{
|
|
Use: "proofs",
|
|
Short: "",
|
|
Long: ``,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
rpctest.Proofs(chaindata, gethURL, blockNum)
|
|
},
|
|
}
|
|
proofsCmd.Flags().StringVar(&chaindata, "chaindata", "", "")
|
|
|
|
var fixStateCmd = &cobra.Command{
|
|
Use: "fixstate",
|
|
Short: "",
|
|
Long: ``,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
rpctest.FixState(chaindata, gethURL)
|
|
},
|
|
}
|
|
fixStateCmd.Flags().StringVar(&chaindata, "chaindata", "", "")
|
|
|
|
var tmpDataDir, tmpDataDirOrig string
|
|
var notRegenerateGethData bool
|
|
var compareAccountRange = &cobra.Command{
|
|
Use: "compareAccountRange",
|
|
Short: "",
|
|
Long: ``,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
rpctest.CompareAccountRange(tgURL, gethURL, tmpDataDir, tmpDataDirOrig, blockNum, notRegenerateGethData)
|
|
},
|
|
}
|
|
with(compareAccountRange, withTGUrl, withGethUrl, withBlockNum)
|
|
compareAccountRange.Flags().BoolVar(¬RegenerateGethData, "regenGethData", false, "")
|
|
compareAccountRange.Flags().StringVar(&tmpDataDir, "tmpdir", "/media/b00ris/nvme/accrange1", "dir for tmp db")
|
|
compareAccountRange.Flags().StringVar(&tmpDataDirOrig, "gethtmpdir", "/media/b00ris/nvme/accrangeorig1", "dir for tmp db")
|
|
|
|
var rootCmd = &cobra.Command{Use: "test"}
|
|
rootCmd.Flags().StringVar(&tgURL, "tgUrl", "http://localhost:8545", "turbogeth rpcdaemon url")
|
|
rootCmd.Flags().StringVar(&gethURL, "gethUrl", "http://localhost:8546", "geth rpc url")
|
|
rootCmd.Flags().Uint64Var(&blockNum, "block", 2000000, "Block number")
|
|
|
|
rootCmd.AddCommand(
|
|
bench1Cmd,
|
|
bench2Cmd,
|
|
bench3Cmd,
|
|
bench4Cmd,
|
|
bench5Cmd,
|
|
bench6Cmd,
|
|
bench7Cmd,
|
|
bench8Cmd,
|
|
bench9Cmd,
|
|
bench10Cmd,
|
|
proofsCmd,
|
|
fixStateCmd,
|
|
compareAccountRange,
|
|
)
|
|
if err := rootCmd.ExecuteContext(rootContext()); err != nil {
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
func rootContext() context.Context {
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
go func() {
|
|
ch := make(chan os.Signal, 1)
|
|
signal.Notify(ch, os.Interrupt, syscall.SIGTERM)
|
|
defer signal.Stop(ch)
|
|
|
|
select {
|
|
case <-ch:
|
|
log.Info("Got interrupt, shutting down...")
|
|
case <-ctx.Done():
|
|
}
|
|
|
|
cancel()
|
|
}()
|
|
return ctx
|
|
}
|