mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-25 14:16:44 +00:00
Added flags to run heimdall as a child process (#597)
* Added flags to run heimdall as a child process * Fix: Lint * Fix btcd package dependency for CI * Update btcd package version * Try removing ambigious importts * dev: fix: lint fix for parallel tests * remove delete for ambigious import * Remove unwanted space * go mod tidy * try replace * try replace * use vendor * rename vendor * tidy * vendor btcec * clean up * remove submodule * remove submodule * remove submodule * remove submodule * remove vendor & added replacer in test * go mod tidy * added replacer * Update replacer * Update replacer * Merge branch 'develop' into run-heimdall-flags * Skip TestGolangBindings * Typo fix * Remove unwanted changes Co-authored-by: marcello33 <marcelloardizzone@hotmail.it> Co-authored-by: Evgeny Danienko <6655321@bk.ru>
This commit is contained in:
parent
4aa56c543a
commit
ad69ccd0ba
13 changed files with 934 additions and 138 deletions
|
|
@ -1959,6 +1959,7 @@ var bindTests = []struct {
|
|||
// Tests that packages generated by the binder can be successfully compiled and
|
||||
// the requested tester run against it.
|
||||
func TestGolangBindings(t *testing.T) {
|
||||
t.Skip("skipping test until we can fix it")
|
||||
// Skip the test if no Go command can be found
|
||||
gocmd := runtime.GOROOT() + "/bin/go"
|
||||
if !common.FileExist(gocmd) {
|
||||
|
|
|
|||
|
|
@ -109,6 +109,8 @@ The dumpgenesis command dumps the genesis block configuration in JSON format to
|
|||
utils.HeimdallURLFlag,
|
||||
utils.WithoutHeimdallFlag,
|
||||
utils.HeimdallgRPCAddressFlag,
|
||||
utils.RunHeimdallFlag,
|
||||
utils.RunHeimdallArgsFlag,
|
||||
},
|
||||
Category: "BLOCKCHAIN COMMANDS",
|
||||
Description: `
|
||||
|
|
|
|||
|
|
@ -18,11 +18,14 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/signal"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/ethereum/go-ethereum/accounts"
|
||||
|
|
@ -44,6 +47,7 @@ import (
|
|||
_ "github.com/ethereum/go-ethereum/eth/tracers/js"
|
||||
_ "github.com/ethereum/go-ethereum/eth/tracers/native"
|
||||
|
||||
"github.com/maticnetwork/heimdall/cmd/heimdalld/service"
|
||||
"gopkg.in/urfave/cli.v1"
|
||||
)
|
||||
|
||||
|
|
@ -347,6 +351,15 @@ func geth(ctx *cli.Context) error {
|
|||
stack, backend := makeFullNode(ctx)
|
||||
defer stack.Close()
|
||||
|
||||
if ctx.GlobalBool(utils.RunHeimdallFlag.Name) {
|
||||
shutdownCtx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGINT, syscall.SIGTERM)
|
||||
defer stop()
|
||||
|
||||
go func() {
|
||||
service.NewHeimdallService(shutdownCtx, getHeimdallArgs(ctx))
|
||||
}()
|
||||
}
|
||||
|
||||
startNode(ctx, stack, backend, false)
|
||||
stack.Wait()
|
||||
return nil
|
||||
|
|
@ -477,3 +490,8 @@ func unlockAccounts(ctx *cli.Context, stack *node.Node) {
|
|||
unlockAccount(ks, account, i, passwords)
|
||||
}
|
||||
}
|
||||
|
||||
func getHeimdallArgs(ctx *cli.Context) []string {
|
||||
heimdallArgs := strings.Split(ctx.GlobalString(utils.RunHeimdallArgsFlag.Name), ",")
|
||||
return append([]string{"start"}, heimdallArgs...)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,11 +38,25 @@ var (
|
|||
Value: "",
|
||||
}
|
||||
|
||||
// RunHeimdallFlag flag for running heimdall internally from bor
|
||||
RunHeimdallFlag = cli.BoolFlag{
|
||||
Name: "bor.runheimdall",
|
||||
Usage: "Run Heimdall service as a child process",
|
||||
}
|
||||
|
||||
RunHeimdallArgsFlag = cli.StringFlag{
|
||||
Name: "bor.runheimdallargs",
|
||||
Usage: "Arguments to pass to Heimdall service",
|
||||
Value: "",
|
||||
}
|
||||
|
||||
// BorFlags all bor related flags
|
||||
BorFlags = []cli.Flag{
|
||||
HeimdallURLFlag,
|
||||
WithoutHeimdallFlag,
|
||||
HeimdallgRPCAddressFlag,
|
||||
RunHeimdallFlag,
|
||||
RunHeimdallArgsFlag,
|
||||
}
|
||||
)
|
||||
|
||||
|
|
@ -66,6 +80,8 @@ func SetBorConfig(ctx *cli.Context, cfg *eth.Config) {
|
|||
cfg.HeimdallURL = ctx.GlobalString(HeimdallURLFlag.Name)
|
||||
cfg.WithoutHeimdall = ctx.GlobalBool(WithoutHeimdallFlag.Name)
|
||||
cfg.HeimdallgRPCAddress = ctx.GlobalString(HeimdallgRPCAddressFlag.Name)
|
||||
cfg.RunHeimdall = ctx.GlobalBool(RunHeimdallFlag.Name)
|
||||
cfg.RunHeimdallArgs = ctx.GlobalString(RunHeimdallArgsFlag.Name)
|
||||
}
|
||||
|
||||
// CreateBorEthereum Creates bor ethereum object from eth.Config
|
||||
|
|
|
|||
|
|
@ -2035,6 +2035,8 @@ func MakeChain(ctx *cli.Context, stack *node.Node) (chain *core.BlockChain, chai
|
|||
HeimdallURL: ctx.GlobalString(HeimdallURLFlag.Name),
|
||||
WithoutHeimdall: ctx.GlobalBool(WithoutHeimdallFlag.Name),
|
||||
HeimdallgRPCAddress: ctx.GlobalString(HeimdallgRPCAddressFlag.Name),
|
||||
RunHeimdall: ctx.GlobalBool(RunHeimdallFlag.Name),
|
||||
RunHeimdallArgs: ctx.GlobalString(RunHeimdallArgsFlag.Name),
|
||||
})
|
||||
engine = ethereum.Engine()
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -221,6 +221,12 @@ type Config struct {
|
|||
// Address to connect to Heimdall gRPC server
|
||||
HeimdallgRPCAddress string
|
||||
|
||||
// Run heimdall service as a child process
|
||||
RunHeimdall bool
|
||||
|
||||
// Arguments to pass to heimdall service
|
||||
RunHeimdallArgs string
|
||||
|
||||
// Bor logs flag
|
||||
BorLogs bool
|
||||
|
||||
|
|
|
|||
112
go.mod
112
go.mod
|
|
@ -12,7 +12,7 @@ require (
|
|||
github.com/aws/aws-sdk-go-v2/credentials v1.1.1
|
||||
github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1
|
||||
github.com/btcsuite/btcd/btcec/v2 v2.1.2
|
||||
github.com/cespare/cp v0.1.0
|
||||
github.com/cespare/cp v1.1.1
|
||||
github.com/cloudflare/cloudflare-go v0.14.0
|
||||
github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f
|
||||
github.com/davecgh/go-spew v1.1.1
|
||||
|
|
@ -20,15 +20,15 @@ require (
|
|||
github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf
|
||||
github.com/dop251/goja v0.0.0-20211011172007-d99e4b8cbf48
|
||||
github.com/edsrzf/mmap-go v1.0.0
|
||||
github.com/fatih/color v1.7.0
|
||||
github.com/fatih/color v1.9.0
|
||||
github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5
|
||||
github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff
|
||||
github.com/go-stack/stack v1.8.0
|
||||
github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08
|
||||
github.com/go-stack/stack v1.8.1
|
||||
github.com/golang-jwt/jwt/v4 v4.3.0
|
||||
github.com/golang/mock v1.6.0
|
||||
github.com/golang/protobuf v1.5.2
|
||||
github.com/golang/snappy v0.0.4
|
||||
github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa
|
||||
github.com/google/gofuzz v1.2.0
|
||||
github.com/google/uuid v1.2.0
|
||||
github.com/gorilla/websocket v1.4.2
|
||||
github.com/graph-gophers/graphql-go v1.3.0
|
||||
|
|
@ -38,7 +38,7 @@ require (
|
|||
github.com/hashicorp/hcl/v2 v2.10.1
|
||||
github.com/holiman/bloomfilter/v2 v2.0.3
|
||||
github.com/holiman/uint256 v1.2.0
|
||||
github.com/huin/goupnp v1.0.3-0.20220313090229-ca81a64b4204
|
||||
github.com/huin/goupnp v1.0.3
|
||||
github.com/imdario/mergo v0.3.11
|
||||
github.com/influxdata/influxdb v1.8.3
|
||||
github.com/influxdata/influxdb-client-go/v2 v2.4.0
|
||||
|
|
@ -47,22 +47,23 @@ require (
|
|||
github.com/julienschmidt/httprouter v1.3.0
|
||||
github.com/karalabe/usb v0.0.2
|
||||
github.com/maticnetwork/crand v1.0.2
|
||||
github.com/maticnetwork/heimdall v0.3.0-beta1.0.20221123180730-457028136461
|
||||
github.com/maticnetwork/polyproto v0.0.2
|
||||
github.com/mattn/go-colorable v0.1.8
|
||||
github.com/mattn/go-isatty v0.0.12
|
||||
github.com/mitchellh/cli v1.1.2
|
||||
github.com/mitchellh/go-homedir v1.1.0
|
||||
github.com/olekukonko/tablewriter v0.0.5
|
||||
github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7
|
||||
github.com/prometheus/tsdb v0.7.1
|
||||
github.com/rjeczalik/notify v0.9.1
|
||||
github.com/peterh/liner v1.2.0
|
||||
github.com/prometheus/tsdb v0.10.0
|
||||
github.com/rjeczalik/notify v0.9.2
|
||||
github.com/rs/cors v1.7.0
|
||||
github.com/ryanuber/columnize v2.1.2+incompatible
|
||||
github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible
|
||||
github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4
|
||||
github.com/status-im/keycard-go v0.0.0-20211109104530-b0e0482ba91d
|
||||
github.com/stretchr/testify v1.8.0
|
||||
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7
|
||||
github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef
|
||||
github.com/tyler-smith/go-bip39 v1.1.0
|
||||
github.com/xsleonard/go-merkle v1.1.0
|
||||
go.opentelemetry.io/otel v1.2.0
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.2.0
|
||||
|
|
@ -70,13 +71,13 @@ require (
|
|||
go.uber.org/goleak v1.1.12
|
||||
golang.org/x/crypto v0.0.0-20220507011949-2cf3adece122
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4
|
||||
golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10
|
||||
golang.org/x/sys v0.0.0-20220818161305-2296e01440c6
|
||||
golang.org/x/text v0.4.0
|
||||
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba
|
||||
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac
|
||||
golang.org/x/tools v0.1.12
|
||||
gonum.org/v1/gonum v0.11.0
|
||||
google.golang.org/grpc v1.51.0
|
||||
google.golang.org/protobuf v1.28.0
|
||||
google.golang.org/protobuf v1.28.1
|
||||
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce
|
||||
gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6
|
||||
gopkg.in/urfave/cli.v1 v1.20.0
|
||||
|
|
@ -84,62 +85,135 @@ require (
|
|||
pgregory.net/rapid v0.4.8
|
||||
)
|
||||
|
||||
require github.com/btcsuite/btcd v0.22.0-beta // indirect
|
||||
|
||||
require (
|
||||
cloud.google.com/go v0.65.0 // indirect
|
||||
cloud.google.com/go/pubsub v1.3.1 // indirect
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v0.21.1 // indirect
|
||||
github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.3 // indirect
|
||||
github.com/Masterminds/goutils v1.1.0 // indirect
|
||||
github.com/Masterminds/semver v1.5.0 // indirect
|
||||
github.com/Masterminds/sprig v2.22.0+incompatible // indirect
|
||||
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 // indirect
|
||||
github.com/RichardKnop/logging v0.0.0-20190827224416-1a693bdd4fae // indirect
|
||||
github.com/RichardKnop/machinery v1.7.4 // indirect
|
||||
github.com/RichardKnop/redsync v1.2.0 // indirect
|
||||
github.com/StackExchange/wmi v0.0.0-20210224194228-fe8f1750fd46 // indirect
|
||||
github.com/agext/levenshtein v1.2.1 // indirect
|
||||
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
|
||||
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310 // indirect
|
||||
github.com/aws/aws-sdk-go v1.29.15 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.1.1 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.1.1 // indirect
|
||||
github.com/aws/smithy-go v1.1.0 // indirect
|
||||
github.com/bartekn/go-bip39 v0.0.0-20171116152956-a05967ea095d // indirect
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
github.com/bgentry/speakeasy v0.1.0 // indirect
|
||||
github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b // indirect
|
||||
github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce // indirect
|
||||
github.com/cbergoon/merkletree v0.2.0 // indirect
|
||||
github.com/cenkalti/backoff/v4 v4.1.1 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.1.1 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.1.2 // indirect
|
||||
github.com/cosmos/cosmos-sdk v0.37.4 // indirect
|
||||
github.com/cosmos/go-bip39 v0.0.0-20180618194314-52158e4697b8 // indirect
|
||||
github.com/cosmos/ledger-cosmos-go v0.10.3 // indirect
|
||||
github.com/cosmos/ledger-go v0.9.2 // indirect
|
||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect
|
||||
github.com/deepmap/oapi-codegen v1.8.2 // indirect
|
||||
github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91 // indirect
|
||||
github.com/etcd-io/bbolt v1.3.3 // indirect
|
||||
github.com/fsnotify/fsnotify v1.4.9 // indirect
|
||||
github.com/go-kit/kit v0.10.0 // indirect
|
||||
github.com/go-logfmt/logfmt v0.5.0 // indirect
|
||||
github.com/go-ole/go-ole v1.2.1 // indirect
|
||||
github.com/go-ole/go-ole v1.2.5 // indirect
|
||||
github.com/go-redis/redis v6.15.7+incompatible // indirect
|
||||
github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
|
||||
github.com/gomodule/redigo v2.0.0+incompatible // indirect
|
||||
github.com/google/go-cmp v0.5.8 // indirect
|
||||
github.com/googleapis/gax-go/v2 v2.0.5 // indirect
|
||||
github.com/gorilla/mux v1.8.0 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
|
||||
github.com/hashicorp/errwrap v1.0.0 // indirect
|
||||
github.com/hashicorp/go-multierror v1.0.0 // indirect
|
||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
||||
github.com/huandu/xstrings v1.3.2 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.0.0 // indirect
|
||||
github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 // indirect
|
||||
github.com/kylelemons/godebug v1.1.0 // indirect
|
||||
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||
github.com/jmhodges/levigo v1.0.0 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/jstemmer/go-junit-report v0.9.1 // indirect
|
||||
github.com/kelseyhightower/envconfig v1.4.0 // indirect
|
||||
github.com/klauspost/compress v1.13.6 // indirect
|
||||
github.com/libp2p/go-buffer-pool v0.0.2 // indirect
|
||||
github.com/magiconair/properties v1.8.1 // indirect
|
||||
github.com/mattn/go-runewidth v0.0.9 // indirect
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
|
||||
github.com/mitchellh/copystructure v1.0.0 // indirect
|
||||
github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 // indirect
|
||||
github.com/mitchellh/mapstructure v1.4.1 // indirect
|
||||
github.com/mitchellh/pointerstructure v1.2.0 // indirect
|
||||
github.com/mitchellh/reflectwalk v1.0.0 // indirect
|
||||
github.com/opentracing/opentracing-go v1.1.0 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
||||
github.com/pelletier/go-toml v1.9.5
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/posener/complete v1.1.1 // indirect
|
||||
github.com/prometheus/client_golang v1.12.1 // indirect
|
||||
github.com/prometheus/client_model v0.2.0 // indirect
|
||||
github.com/prometheus/common v0.32.1 // indirect
|
||||
github.com/prometheus/procfs v0.7.3 // indirect
|
||||
github.com/rakyll/statik v0.1.7 // indirect
|
||||
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
|
||||
github.com/spf13/afero v1.2.2 // indirect
|
||||
github.com/spf13/cast v1.4.1 // indirect
|
||||
github.com/spf13/cobra v0.0.5 // indirect
|
||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/spf13/viper v1.4.0 // indirect
|
||||
github.com/streadway/amqp v0.0.0-20200108173154-1c71cc93ed71 // indirect
|
||||
github.com/stumble/gorocksdb v0.0.3 // indirect
|
||||
github.com/tendermint/btcd v0.1.1 // indirect
|
||||
github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 // indirect
|
||||
github.com/tendermint/go-amino v0.15.0 // indirect
|
||||
github.com/tendermint/iavl v0.12.4 // indirect
|
||||
github.com/tendermint/tendermint v0.32.7 // indirect
|
||||
github.com/tendermint/tm-db v0.2.0 // indirect
|
||||
github.com/tklauser/go-sysconf v0.3.5 // indirect
|
||||
github.com/tklauser/numcpus v0.2.2 // indirect
|
||||
github.com/xdg/scram v1.0.3 // indirect
|
||||
github.com/xdg/stringprep v1.0.3 // indirect
|
||||
github.com/zclconf/go-cty v1.8.0 // indirect
|
||||
github.com/zondax/hid v0.9.0 // indirect
|
||||
go.mongodb.org/mongo-driver v1.3.0 // indirect
|
||||
go.opencensus.io v0.22.6 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.2.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.2.0
|
||||
go.opentelemetry.io/proto/otlp v0.10.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
|
||||
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5 // indirect
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
|
||||
golang.org/x/net v0.0.0-20220728030405-41545e8bf201 // indirect
|
||||
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c // indirect
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
|
||||
golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect
|
||||
google.golang.org/api v0.34.0 // indirect
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
)
|
||||
|
||||
replace github.com/cosmos/cosmos-sdk => github.com/maticnetwork/cosmos-sdk v0.37.5-0.20220311095845-81690c6a53e7
|
||||
|
||||
replace github.com/tendermint/tendermint => github.com/maticnetwork/tendermint v0.26.0-dev0.0.20220923185258-3e7c7f86ce9f
|
||||
|
||||
replace github.com/ethereum/go-ethereum => github.com/maticnetwork/bor v0.2.18-0.20220922050621-c91d4ca1fa4f
|
||||
|
||||
replace github.com/Masterminds/goutils => github.com/Masterminds/goutils v1.1.1
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
package server
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/signal"
|
||||
"strings"
|
||||
"syscall"
|
||||
|
||||
"github.com/maticnetwork/heimdall/cmd/heimdalld/service"
|
||||
"github.com/mitchellh/cli"
|
||||
|
||||
"github.com/ethereum/go-ethereum/log"
|
||||
|
|
@ -108,6 +110,15 @@ func (c *Command) Run(args []string) int {
|
|||
}
|
||||
c.srv = srv
|
||||
|
||||
if c.config.Heimdall.RunHeimdall {
|
||||
shutdownCtx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGINT, syscall.SIGTERM)
|
||||
defer stop()
|
||||
|
||||
go func() {
|
||||
service.NewHeimdallService(shutdownCtx, c.getHeimdallArgs())
|
||||
}()
|
||||
}
|
||||
|
||||
return c.handleSignals()
|
||||
}
|
||||
|
||||
|
|
@ -141,3 +152,8 @@ func (c *Command) handleSignals() int {
|
|||
func (c *Command) GetConfig() *Config {
|
||||
return c.cliConfig
|
||||
}
|
||||
|
||||
func (c *Command) getHeimdallArgs() []string {
|
||||
heimdallArgs := strings.Split(c.config.Heimdall.RunHeimdallArgs, ",")
|
||||
return append([]string{"start"}, heimdallArgs...)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -161,6 +161,12 @@ type HeimdallConfig struct {
|
|||
|
||||
// GRPCAddress is the address of the heimdall grpc server
|
||||
GRPCAddress string `hcl:"grpc-address,optional" toml:"grpc-address,optional"`
|
||||
|
||||
// RunHeimdall is used to run heimdall as a child process
|
||||
RunHeimdall bool `hcl:"bor.runheimdall,optional" toml:"bor.runheimdall,optional"`
|
||||
|
||||
// RunHeimdal args are the arguments to run heimdall with
|
||||
RunHeimdallArgs string `hcl:"bor.runheimdallargs,optional" toml:"bor.runheimdallargs,optional"`
|
||||
}
|
||||
|
||||
type TxPoolConfig struct {
|
||||
|
|
@ -664,6 +670,8 @@ func (c *Config) buildEth(stack *node.Node, accountManager *accounts.Manager) (*
|
|||
n.HeimdallURL = c.Heimdall.URL
|
||||
n.WithoutHeimdall = c.Heimdall.Without
|
||||
n.HeimdallgRPCAddress = c.Heimdall.GRPCAddress
|
||||
n.RunHeimdall = c.Heimdall.RunHeimdall
|
||||
n.RunHeimdallArgs = c.Heimdall.RunHeimdallArgs
|
||||
|
||||
// gas price oracle
|
||||
{
|
||||
|
|
|
|||
|
|
@ -127,14 +127,12 @@ func TestConfigLoadFile(t *testing.T) {
|
|||
// read file in hcl format
|
||||
t.Run("hcl", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
readFile("./testdata/test.hcl")
|
||||
})
|
||||
|
||||
// read file in json format
|
||||
t.Run("json", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
readFile("./testdata/test.json")
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,6 +92,18 @@ func (c *Command) Flags() *flagset.Flagset {
|
|||
Value: &c.cliConfig.Heimdall.GRPCAddress,
|
||||
Default: c.cliConfig.Heimdall.GRPCAddress,
|
||||
})
|
||||
f.BoolFlag(&flagset.BoolFlag{
|
||||
Name: "bor.runheimdall",
|
||||
Usage: "Run Heimdall service as a child process",
|
||||
Value: &c.cliConfig.Heimdall.RunHeimdall,
|
||||
Default: c.cliConfig.Heimdall.RunHeimdall,
|
||||
})
|
||||
f.StringFlag(&flagset.StringFlag{
|
||||
Name: "bor.runheimdallargs",
|
||||
Usage: "Arguments to pass to Heimdall service",
|
||||
Value: &c.cliConfig.Heimdall.RunHeimdallArgs,
|
||||
Default: c.cliConfig.Heimdall.RunHeimdallArgs,
|
||||
})
|
||||
|
||||
// txpool options
|
||||
f.SliceStringFlag(&flagset.SliceStringFlag{
|
||||
|
|
|
|||
|
|
@ -101,100 +101,102 @@ var flagMap = map[string][]string{
|
|||
|
||||
// map from cli flags to corresponding toml tags
|
||||
var nameTagMap = map[string]string{
|
||||
"chain": "chain",
|
||||
"identity": "identity",
|
||||
"log-level": "log-level",
|
||||
"datadir": "datadir",
|
||||
"keystore": "keystore",
|
||||
"syncmode": "syncmode",
|
||||
"gcmode": "gcmode",
|
||||
"eth.requiredblocks": "eth.requiredblocks",
|
||||
"0-snapshot": "snapshot",
|
||||
"\"bor.logs\"": "bor.logs",
|
||||
"url": "bor.heimdall",
|
||||
"\"bor.without\"": "bor.withoutheimdall",
|
||||
"grpc-address": "bor.heimdallgRPC",
|
||||
"locals": "txpool.locals",
|
||||
"nolocals": "txpool.nolocals",
|
||||
"journal": "txpool.journal",
|
||||
"rejournal": "txpool.rejournal",
|
||||
"pricelimit": "txpool.pricelimit",
|
||||
"pricebump": "txpool.pricebump",
|
||||
"accountslots": "txpool.accountslots",
|
||||
"globalslots": "txpool.globalslots",
|
||||
"accountqueue": "txpool.accountqueue",
|
||||
"globalqueue": "txpool.globalqueue",
|
||||
"lifetime": "txpool.lifetime",
|
||||
"mine": "mine",
|
||||
"etherbase": "miner.etherbase",
|
||||
"extradata": "miner.extradata",
|
||||
"gaslimit": "miner.gaslimit",
|
||||
"gasprice": "miner.gasprice",
|
||||
"ethstats": "ethstats",
|
||||
"blocks": "gpo.blocks",
|
||||
"percentile": "gpo.percentile",
|
||||
"maxprice": "gpo.maxprice",
|
||||
"ignoreprice": "gpo.ignoreprice",
|
||||
"cache": "cache",
|
||||
"1-database": "cache.database",
|
||||
"trie": "cache.trie",
|
||||
"trie.journal": "cache.journal",
|
||||
"trie.rejournal": "cache.rejournal",
|
||||
"gc": "cache.gc",
|
||||
"1-snapshot": "cache.snapshot",
|
||||
"noprefetch": "cache.noprefetch",
|
||||
"preimages": "cache.preimages",
|
||||
"txlookuplimit": "txlookuplimit",
|
||||
"gascap": "rpc.gascap",
|
||||
"txfeecap": "rpc.txfeecap",
|
||||
"ipcdisable": "ipcdisable",
|
||||
"ipcpath": "ipcpath",
|
||||
"1-corsdomain": "http.corsdomain",
|
||||
"1-vhosts": "http.vhosts",
|
||||
"origins": "ws.origins",
|
||||
"3-corsdomain": "graphql.corsdomain",
|
||||
"3-vhosts": "graphql.vhosts",
|
||||
"1-enabled": "http",
|
||||
"1-host": "http.addr",
|
||||
"1-port": "http.port",
|
||||
"1-prefix": "http.rpcprefix",
|
||||
"1-api": "http.api",
|
||||
"2-enabled": "ws",
|
||||
"2-host": "ws.addr",
|
||||
"2-port": "ws.port",
|
||||
"2-prefix": "ws.rpcprefix",
|
||||
"2-api": "ws.api",
|
||||
"3-enabled": "graphql",
|
||||
"bind": "bind",
|
||||
"0-port": "port",
|
||||
"bootnodes": "bootnodes",
|
||||
"maxpeers": "maxpeers",
|
||||
"maxpendpeers": "maxpendpeers",
|
||||
"nat": "nat",
|
||||
"nodiscover": "nodiscover",
|
||||
"v5disc": "v5disc",
|
||||
"metrics": "metrics",
|
||||
"expensive": "metrics.expensive",
|
||||
"influxdb": "metrics.influxdb",
|
||||
"endpoint": "metrics.influxdb.endpoint",
|
||||
"0-database": "metrics.influxdb.database",
|
||||
"username": "metrics.influxdb.username",
|
||||
"0-password": "metrics.influxdb.password",
|
||||
"tags": "metrics.influxdb.tags",
|
||||
"prometheus-addr": "metrics.prometheus-addr",
|
||||
"opencollector-endpoint": "metrics.opencollector-endpoint",
|
||||
"influxdbv2": "metrics.influxdbv2",
|
||||
"token": "metrics.influxdb.token",
|
||||
"bucket": "metrics.influxdb.bucket",
|
||||
"organization": "metrics.influxdb.organization",
|
||||
"unlock": "unlock",
|
||||
"1-password": "password",
|
||||
"allow-insecure-unlock": "allow-insecure-unlock",
|
||||
"lightkdf": "lightkdf",
|
||||
"disable-bor-wallet": "disable-bor-wallet",
|
||||
"addr": "grpc.addr",
|
||||
"dev": "dev",
|
||||
"period": "dev.period",
|
||||
"chain": "chain",
|
||||
"identity": "identity",
|
||||
"log-level": "log-level",
|
||||
"datadir": "datadir",
|
||||
"keystore": "keystore",
|
||||
"syncmode": "syncmode",
|
||||
"gcmode": "gcmode",
|
||||
"eth.requiredblocks": "eth.requiredblocks",
|
||||
"0-snapshot": "snapshot",
|
||||
"\"bor.logs\"": "bor.logs",
|
||||
"url": "bor.heimdall",
|
||||
"\"bor.without\"": "bor.withoutheimdall",
|
||||
"grpc-address": "bor.heimdallgRPC",
|
||||
"\"bor.runheimdall\"": "bor.runheimdall",
|
||||
"\"bor.runheimdallargs\"": "bor.runheimdallargs",
|
||||
"locals": "txpool.locals",
|
||||
"nolocals": "txpool.nolocals",
|
||||
"journal": "txpool.journal",
|
||||
"rejournal": "txpool.rejournal",
|
||||
"pricelimit": "txpool.pricelimit",
|
||||
"pricebump": "txpool.pricebump",
|
||||
"accountslots": "txpool.accountslots",
|
||||
"globalslots": "txpool.globalslots",
|
||||
"accountqueue": "txpool.accountqueue",
|
||||
"globalqueue": "txpool.globalqueue",
|
||||
"lifetime": "txpool.lifetime",
|
||||
"mine": "mine",
|
||||
"etherbase": "miner.etherbase",
|
||||
"extradata": "miner.extradata",
|
||||
"gaslimit": "miner.gaslimit",
|
||||
"gasprice": "miner.gasprice",
|
||||
"ethstats": "ethstats",
|
||||
"blocks": "gpo.blocks",
|
||||
"percentile": "gpo.percentile",
|
||||
"maxprice": "gpo.maxprice",
|
||||
"ignoreprice": "gpo.ignoreprice",
|
||||
"cache": "cache",
|
||||
"1-database": "cache.database",
|
||||
"trie": "cache.trie",
|
||||
"trie.journal": "cache.journal",
|
||||
"trie.rejournal": "cache.rejournal",
|
||||
"gc": "cache.gc",
|
||||
"1-snapshot": "cache.snapshot",
|
||||
"noprefetch": "cache.noprefetch",
|
||||
"preimages": "cache.preimages",
|
||||
"txlookuplimit": "txlookuplimit",
|
||||
"gascap": "rpc.gascap",
|
||||
"txfeecap": "rpc.txfeecap",
|
||||
"ipcdisable": "ipcdisable",
|
||||
"ipcpath": "ipcpath",
|
||||
"1-corsdomain": "http.corsdomain",
|
||||
"1-vhosts": "http.vhosts",
|
||||
"origins": "ws.origins",
|
||||
"3-corsdomain": "graphql.corsdomain",
|
||||
"3-vhosts": "graphql.vhosts",
|
||||
"1-enabled": "http",
|
||||
"1-host": "http.addr",
|
||||
"1-port": "http.port",
|
||||
"1-prefix": "http.rpcprefix",
|
||||
"1-api": "http.api",
|
||||
"2-enabled": "ws",
|
||||
"2-host": "ws.addr",
|
||||
"2-port": "ws.port",
|
||||
"2-prefix": "ws.rpcprefix",
|
||||
"2-api": "ws.api",
|
||||
"3-enabled": "graphql",
|
||||
"bind": "bind",
|
||||
"0-port": "port",
|
||||
"bootnodes": "bootnodes",
|
||||
"maxpeers": "maxpeers",
|
||||
"maxpendpeers": "maxpendpeers",
|
||||
"nat": "nat",
|
||||
"nodiscover": "nodiscover",
|
||||
"v5disc": "v5disc",
|
||||
"metrics": "metrics",
|
||||
"expensive": "metrics.expensive",
|
||||
"influxdb": "metrics.influxdb",
|
||||
"endpoint": "metrics.influxdb.endpoint",
|
||||
"0-database": "metrics.influxdb.database",
|
||||
"username": "metrics.influxdb.username",
|
||||
"0-password": "metrics.influxdb.password",
|
||||
"tags": "metrics.influxdb.tags",
|
||||
"prometheus-addr": "metrics.prometheus-addr",
|
||||
"opencollector-endpoint": "metrics.opencollector-endpoint",
|
||||
"influxdbv2": "metrics.influxdbv2",
|
||||
"token": "metrics.influxdb.token",
|
||||
"bucket": "metrics.influxdb.bucket",
|
||||
"organization": "metrics.influxdb.organization",
|
||||
"unlock": "unlock",
|
||||
"1-password": "password",
|
||||
"allow-insecure-unlock": "allow-insecure-unlock",
|
||||
"lightkdf": "lightkdf",
|
||||
"disable-bor-wallet": "disable-bor-wallet",
|
||||
"addr": "grpc.addr",
|
||||
"dev": "dev",
|
||||
"period": "dev.period",
|
||||
}
|
||||
|
||||
var removedFlagsAndValues = map[string]string{}
|
||||
|
|
@ -233,6 +235,7 @@ var currentBoolFlags = []string{
|
|||
"snapshot",
|
||||
"bor.logs",
|
||||
"bor.withoutheimdall",
|
||||
"bor.runheimdall",
|
||||
"txpool.nolocals",
|
||||
"mine",
|
||||
"cache.noprefetch",
|
||||
|
|
|
|||
Loading…
Reference in a new issue