Compare commits
9 Commits
v1.3.1-bet
...
v1.3.4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
885de2c1ca | ||
|
|
afc3b42241 | ||
|
|
a2f9ac0c8b | ||
|
|
761563155c | ||
|
|
8b00720640 | ||
|
|
a8409158a5 | ||
|
|
a3507cc2c1 | ||
|
|
b494339e10 | ||
|
|
f7e9adc2c8 |
16
CHANGELOG.md
16
CHANGELOG.md
@@ -1,4 +1,20 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
## v1.3.4
|
||||||
|
BUGFIX
|
||||||
|
* fix: remove pipecommit in miner
|
||||||
|
* add a hard fork: Hertzfix
|
||||||
|
|
||||||
|
## v1.3.3
|
||||||
|
IMPROVEMENT
|
||||||
|
* [\#2000](https://github.com/bnb-chain/bsc/pull/2000) cmd/utils: exit process if txlookuplimit flag is set
|
||||||
|
|
||||||
|
BUGFIX
|
||||||
|
* [\#1986](https://github.com/bnb-chain/bsc/pull/1986) fix(cmd): check pruneancient when creating db
|
||||||
|
|
||||||
|
## v1.3.2
|
||||||
|
BUGFIX
|
||||||
|
* fix: remove sharedPool
|
||||||
|
|
||||||
## v1.3.1
|
## v1.3.1
|
||||||
FEATURE
|
FEATURE
|
||||||
* [\#1881](https://github.com/bnb-chain/bsc/pull/1881) feat: active pbss
|
* [\#1881](https://github.com/bnb-chain/bsc/pull/1881) feat: active pbss
|
||||||
|
|||||||
@@ -153,11 +153,10 @@ Note: if you can not download the chaindata snapshot and want to sync from genes
|
|||||||
So just run: `geth --datadir <datadir> init ./genesis.json`
|
So just run: `geth --datadir <datadir> init ./genesis.json`
|
||||||
#### 4. Start a full node
|
#### 4. Start a full node
|
||||||
```shell
|
```shell
|
||||||
./geth --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --txlookuplimit 0
|
./geth --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --history.transactions 0
|
||||||
|
|
||||||
## It is recommand to run fullnode with `--tries-verify-mode none` if you want high performance and care little about state consistency
|
## It is recommand to run fullnode with `--tries-verify-mode none` if you want high performance and care little about state consistency
|
||||||
./geth --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --txlookuplimit 0 --tries-verify-mode none
|
./geth --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --history.transactions 0 --tries-verify-mode none
|
||||||
```
|
|
||||||
|
|
||||||
#### 5. Monitor node status
|
#### 5. Monitor node status
|
||||||
|
|
||||||
|
|||||||
@@ -1919,7 +1919,7 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
|
|||||||
cfg.EnableTrustProtocol = ctx.IsSet(EnableTrustProtocolFlag.Name)
|
cfg.EnableTrustProtocol = ctx.IsSet(EnableTrustProtocolFlag.Name)
|
||||||
}
|
}
|
||||||
if ctx.IsSet(PipeCommitFlag.Name) {
|
if ctx.IsSet(PipeCommitFlag.Name) {
|
||||||
cfg.PipeCommit = ctx.Bool(PipeCommitFlag.Name)
|
log.Warn("The --pipecommit flag is deprecated and could be removed in the future!")
|
||||||
}
|
}
|
||||||
if ctx.IsSet(RangeLimitFlag.Name) {
|
if ctx.IsSet(RangeLimitFlag.Name) {
|
||||||
cfg.RangeLimit = ctx.Bool(RangeLimitFlag.Name)
|
cfg.RangeLimit = ctx.Bool(RangeLimitFlag.Name)
|
||||||
@@ -1948,14 +1948,12 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
|
|||||||
// Parse transaction history flag, if user is still using legacy config
|
// Parse transaction history flag, if user is still using legacy config
|
||||||
// file with 'TxLookupLimit' configured, copy the value to 'TransactionHistory'.
|
// file with 'TxLookupLimit' configured, copy the value to 'TransactionHistory'.
|
||||||
if cfg.TransactionHistory == ethconfig.Defaults.TransactionHistory && cfg.TxLookupLimit != ethconfig.Defaults.TxLookupLimit {
|
if cfg.TransactionHistory == ethconfig.Defaults.TransactionHistory && cfg.TxLookupLimit != ethconfig.Defaults.TxLookupLimit {
|
||||||
log.Warn("The config option 'TxLookupLimit' is deprecated and will be removed, please use 'TransactionHistory'")
|
log.Crit("The config option 'TxLookupLimit' is deprecated and may cause unexpected performance degradation issues, please use 'TransactionHistory' instead")
|
||||||
cfg.TransactionHistory = cfg.TxLookupLimit
|
|
||||||
}
|
}
|
||||||
if ctx.IsSet(TransactionHistoryFlag.Name) {
|
if ctx.IsSet(TransactionHistoryFlag.Name) {
|
||||||
cfg.TransactionHistory = ctx.Uint64(TransactionHistoryFlag.Name)
|
cfg.TransactionHistory = ctx.Uint64(TransactionHistoryFlag.Name)
|
||||||
} else if ctx.IsSet(TxLookupLimitFlag.Name) {
|
} else if ctx.IsSet(TxLookupLimitFlag.Name) {
|
||||||
log.Warn("The flag --txlookuplimit is deprecated and will be removed, please use --history.transactions")
|
log.Crit("The flag --txlookuplimit is deprecated and may cause unexpected performance degradation issues. Please use --history.transactions instead")
|
||||||
cfg.TransactionHistory = ctx.Uint64(TransactionHistoryFlag.Name)
|
|
||||||
}
|
}
|
||||||
if ctx.IsSet(PathDBSyncFlag.Name) {
|
if ctx.IsSet(PathDBSyncFlag.Name) {
|
||||||
cfg.PathSyncFlush = true
|
cfg.PathSyncFlush = true
|
||||||
@@ -2355,7 +2353,7 @@ func tryMakeReadOnlyDatabase(ctx *cli.Context, stack *node.Node) ethdb.Database
|
|||||||
// If datadir doesn't exist we need to open db in write-mode
|
// If datadir doesn't exist we need to open db in write-mode
|
||||||
// so database engine can create files.
|
// so database engine can create files.
|
||||||
readonly := true
|
readonly := true
|
||||||
if !common.FileExist(stack.ResolvePath("chaindata")) {
|
if !common.FileExist(stack.ResolvePath("chaindata")) || ctx.Bool(PruneAncientDataFlag.Name) {
|
||||||
readonly = false
|
readonly = false
|
||||||
}
|
}
|
||||||
return MakeChainDatabase(ctx, stack, readonly, false)
|
return MakeChainDatabase(ctx, stack, readonly, false)
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ func preHertzConfig() *params.ChainConfig {
|
|||||||
config.LondonBlock = nil
|
config.LondonBlock = nil
|
||||||
config.BerlinBlock = nil
|
config.BerlinBlock = nil
|
||||||
config.HertzBlock = nil
|
config.HertzBlock = nil
|
||||||
|
config.HertzfixBlock = nil
|
||||||
return &config
|
return &config
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,9 @@ func (p *statePrefetcher) Prefetch(block *types.Block, statedb *state.StateDB, c
|
|||||||
for i := 0; i < prefetchThread; i++ {
|
for i := 0; i < prefetchThread; i++ {
|
||||||
go func() {
|
go func() {
|
||||||
newStatedb := statedb.CopyDoPrefetch()
|
newStatedb := statedb.CopyDoPrefetch()
|
||||||
|
if !p.config.IsHertzfix(header.Number) {
|
||||||
newStatedb.EnableWriteOnSharedStorage()
|
newStatedb.EnableWriteOnSharedStorage()
|
||||||
|
}
|
||||||
gaspool := new(GasPool).AddGas(block.GasLimit())
|
gaspool := new(GasPool).AddGas(block.GasLimit())
|
||||||
blockContext := NewEVMBlockContext(header, p.bc, nil)
|
blockContext := NewEVMBlockContext(header, p.bc, nil)
|
||||||
evm := vm.NewEVM(blockContext, vm.TxContext{}, statedb, p.config, *cfg)
|
evm := vm.NewEVM(blockContext, vm.TxContext{}, statedb, p.config, *cfg)
|
||||||
@@ -106,7 +108,9 @@ func (p *statePrefetcher) PrefetchMining(txs TransactionsByPriceAndNonce, header
|
|||||||
go func(startCh <-chan *types.Transaction, stopCh <-chan struct{}) {
|
go func(startCh <-chan *types.Transaction, stopCh <-chan struct{}) {
|
||||||
idx := 0
|
idx := 0
|
||||||
newStatedb := statedb.CopyDoPrefetch()
|
newStatedb := statedb.CopyDoPrefetch()
|
||||||
|
if !p.config.IsHertzfix(header.Number) {
|
||||||
newStatedb.EnableWriteOnSharedStorage()
|
newStatedb.EnableWriteOnSharedStorage()
|
||||||
|
}
|
||||||
gaspool := new(GasPool).AddGas(gasLimit)
|
gaspool := new(GasPool).AddGas(gasLimit)
|
||||||
blockContext := NewEVMBlockContext(header, p.bc, nil)
|
blockContext := NewEVMBlockContext(header, p.bc, nil)
|
||||||
evm := vm.NewEVM(blockContext, vm.TxContext{}, statedb, p.config, cfg)
|
evm := vm.NewEVM(blockContext, vm.TxContext{}, statedb, p.config, cfg)
|
||||||
|
|||||||
@@ -146,6 +146,7 @@ func newTestBackend(t *testing.T, londonBlock *big.Int, pending bool) *testBacke
|
|||||||
config.LubanBlock = nil
|
config.LubanBlock = nil
|
||||||
config.PlatoBlock = nil
|
config.PlatoBlock = nil
|
||||||
config.HertzBlock = nil
|
config.HertzBlock = nil
|
||||||
|
config.HertzfixBlock = nil
|
||||||
config.TerminalTotalDifficulty = common.Big0
|
config.TerminalTotalDifficulty = common.Big0
|
||||||
engine := ethash.NewFaker()
|
engine := ethash.NewFaker()
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package log
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -105,6 +106,7 @@ func Error(msg string, ctx ...interface{}) {
|
|||||||
// log.Crit("msg", "key1", val1, "key2", val2)
|
// log.Crit("msg", "key1", val1, "key2", val2)
|
||||||
func Crit(msg string, ctx ...interface{}) {
|
func Crit(msg string, ctx ...interface{}) {
|
||||||
root.write(msg, LvlCrit, ctx, skipLevel)
|
root.write(msg, LvlCrit, ctx, skipLevel)
|
||||||
|
time.Sleep(3 * time.Second)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1163,12 +1163,14 @@ func (w *worker) commit(env *environment, interval func(), update bool, start ti
|
|||||||
if interval != nil {
|
if interval != nil {
|
||||||
interval()
|
interval()
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
|
||||||
err := env.state.WaitPipeVerification()
|
err := env.state.WaitPipeVerification()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
env.state.CorrectAccountsRoot(w.chain.CurrentBlock().Root)
|
env.state.CorrectAccountsRoot(w.chain.CurrentBlock().Root)
|
||||||
|
*/
|
||||||
|
|
||||||
// Withdrawals are set to nil here, because this is only called in PoW.
|
// Withdrawals are set to nil here, because this is only called in PoW.
|
||||||
finalizeStart := time.Now()
|
finalizeStart := time.Now()
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ var (
|
|||||||
BerlinBlock: big.NewInt(31302048),
|
BerlinBlock: big.NewInt(31302048),
|
||||||
LondonBlock: big.NewInt(31302048),
|
LondonBlock: big.NewInt(31302048),
|
||||||
HertzBlock: big.NewInt(31302048),
|
HertzBlock: big.NewInt(31302048),
|
||||||
|
HertzfixBlock: big.NewInt(34140700),
|
||||||
Parlia: &ParliaConfig{
|
Parlia: &ParliaConfig{
|
||||||
Period: 3,
|
Period: 3,
|
||||||
Epoch: 200,
|
Epoch: 200,
|
||||||
@@ -204,6 +204,7 @@ var (
|
|||||||
BerlinBlock: big.NewInt(31103030),
|
BerlinBlock: big.NewInt(31103030),
|
||||||
LondonBlock: big.NewInt(31103030),
|
LondonBlock: big.NewInt(31103030),
|
||||||
HertzBlock: big.NewInt(31103030),
|
HertzBlock: big.NewInt(31103030),
|
||||||
|
HertzfixBlock: big.NewInt(35682300),
|
||||||
|
|
||||||
Parlia: &ParliaConfig{
|
Parlia: &ParliaConfig{
|
||||||
Period: 3,
|
Period: 3,
|
||||||
@@ -237,6 +238,7 @@ var (
|
|||||||
PlatoBlock: nil,
|
PlatoBlock: nil,
|
||||||
BerlinBlock: nil,
|
BerlinBlock: nil,
|
||||||
HertzBlock: nil,
|
HertzBlock: nil,
|
||||||
|
HertzfixBlock: nil,
|
||||||
|
|
||||||
Parlia: &ParliaConfig{
|
Parlia: &ParliaConfig{
|
||||||
Period: 3,
|
Period: 3,
|
||||||
@@ -269,7 +271,7 @@ var (
|
|||||||
BerlinBlock: big.NewInt(0),
|
BerlinBlock: big.NewInt(0),
|
||||||
LondonBlock: big.NewInt(0),
|
LondonBlock: big.NewInt(0),
|
||||||
HertzBlock: big.NewInt(0),
|
HertzBlock: big.NewInt(0),
|
||||||
|
HertzfixBlock: big.NewInt(0),
|
||||||
Parlia: &ParliaConfig{
|
Parlia: &ParliaConfig{
|
||||||
Period: 3,
|
Period: 3,
|
||||||
Epoch: 200,
|
Epoch: 200,
|
||||||
@@ -483,7 +485,7 @@ type ChainConfig struct {
|
|||||||
LubanBlock *big.Int `json:"lubanBlock,omitempty" toml:",omitempty"` // lubanBlock switch block (nil = no fork, 0 = already activated)
|
LubanBlock *big.Int `json:"lubanBlock,omitempty" toml:",omitempty"` // lubanBlock switch block (nil = no fork, 0 = already activated)
|
||||||
PlatoBlock *big.Int `json:"platoBlock,omitempty" toml:",omitempty"` // platoBlock switch block (nil = no fork, 0 = already activated)
|
PlatoBlock *big.Int `json:"platoBlock,omitempty" toml:",omitempty"` // platoBlock switch block (nil = no fork, 0 = already activated)
|
||||||
HertzBlock *big.Int `json:"hertzBlock,omitempty" toml:",omitempty"` // hertzBlock switch block (nil = no fork, 0 = already activated)
|
HertzBlock *big.Int `json:"hertzBlock,omitempty" toml:",omitempty"` // hertzBlock switch block (nil = no fork, 0 = already activated)
|
||||||
|
HertzfixBlock *big.Int `json:"hertzfixBlock,omitempty" toml:",omitempty"` // hertzfixBlock switch block (nil = no fork, 0 = already activated)
|
||||||
// Various consensus engines
|
// Various consensus engines
|
||||||
Ethash *EthashConfig `json:"ethash,omitempty" toml:",omitempty"`
|
Ethash *EthashConfig `json:"ethash,omitempty" toml:",omitempty"`
|
||||||
Clique *CliqueConfig `json:"clique,omitempty" toml:",omitempty"`
|
Clique *CliqueConfig `json:"clique,omitempty" toml:",omitempty"`
|
||||||
@@ -540,7 +542,7 @@ func (c *ChainConfig) String() string {
|
|||||||
engine = "unknown"
|
engine = "unknown"
|
||||||
}
|
}
|
||||||
|
|
||||||
return fmt.Sprintf("{ChainID: %v Homestead: %v DAO: %v DAOSupport: %v EIP150: %v EIP155: %v EIP158: %v Byzantium: %v Constantinople: %v Petersburg: %v Istanbul: %v, Muir Glacier: %v, Ramanujan: %v, Niels: %v, MirrorSync: %v, Bruno: %v, Berlin: %v, YOLO v3: %v, CatalystBlock: %v, London: %v, ArrowGlacier: %v, MergeFork:%v, Euler: %v, Gibbs: %v, Nano: %v, Moran: %v, Planck: %v,Luban: %v, Plato: %v, Hertz: %v, Engine: %v}",
|
return fmt.Sprintf("{ChainID: %v Homestead: %v DAO: %v DAOSupport: %v EIP150: %v EIP155: %v EIP158: %v Byzantium: %v Constantinople: %v Petersburg: %v Istanbul: %v, Muir Glacier: %v, Ramanujan: %v, Niels: %v, MirrorSync: %v, Bruno: %v, Berlin: %v, YOLO v3: %v, CatalystBlock: %v, London: %v, ArrowGlacier: %v, MergeFork:%v, Euler: %v, Gibbs: %v, Nano: %v, Moran: %v, Planck: %v,Luban: %v, Plato: %v, Hertz: %v, Hertzfix: %v, Engine: %v}",
|
||||||
c.ChainID,
|
c.ChainID,
|
||||||
c.HomesteadBlock,
|
c.HomesteadBlock,
|
||||||
c.DAOForkBlock,
|
c.DAOForkBlock,
|
||||||
@@ -571,6 +573,7 @@ func (c *ChainConfig) String() string {
|
|||||||
c.LubanBlock,
|
c.LubanBlock,
|
||||||
c.PlatoBlock,
|
c.PlatoBlock,
|
||||||
c.HertzBlock,
|
c.HertzBlock,
|
||||||
|
c.HertzfixBlock,
|
||||||
engine,
|
engine,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -690,6 +693,14 @@ func (c *ChainConfig) IsOnHertz(num *big.Int) bool {
|
|||||||
return configBlockEqual(c.HertzBlock, num)
|
return configBlockEqual(c.HertzBlock, num)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *ChainConfig) IsHertzfix(num *big.Int) bool {
|
||||||
|
return isBlockForked(c.HertzfixBlock, num)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *ChainConfig) IsOnHertzfix(num *big.Int) bool {
|
||||||
|
return configBlockEqual(c.HertzfixBlock, num)
|
||||||
|
}
|
||||||
|
|
||||||
// IsMuirGlacier returns whether num is either equal to the Muir Glacier (EIP-2384) fork block or greater.
|
// IsMuirGlacier returns whether num is either equal to the Muir Glacier (EIP-2384) fork block or greater.
|
||||||
func (c *ChainConfig) IsMuirGlacier(num *big.Int) bool {
|
func (c *ChainConfig) IsMuirGlacier(num *big.Int) bool {
|
||||||
return isBlockForked(c.MuirGlacierBlock, num)
|
return isBlockForked(c.MuirGlacierBlock, num)
|
||||||
@@ -837,6 +848,7 @@ func (c *ChainConfig) CheckConfigForkOrder() error {
|
|||||||
{name: "lubanBlock", block: c.LubanBlock},
|
{name: "lubanBlock", block: c.LubanBlock},
|
||||||
{name: "platoBlock", block: c.PlatoBlock},
|
{name: "platoBlock", block: c.PlatoBlock},
|
||||||
{name: "hertzBlock", block: c.HertzBlock},
|
{name: "hertzBlock", block: c.HertzBlock},
|
||||||
|
{name: "hertzfixBlock", block: c.HertzfixBlock},
|
||||||
{name: "shanghaiTime", timestamp: c.ShanghaiTime},
|
{name: "shanghaiTime", timestamp: c.ShanghaiTime},
|
||||||
{name: "cancunTime", timestamp: c.CancunTime, optional: true},
|
{name: "cancunTime", timestamp: c.CancunTime, optional: true},
|
||||||
{name: "pragueTime", timestamp: c.PragueTime, optional: true},
|
{name: "pragueTime", timestamp: c.PragueTime, optional: true},
|
||||||
@@ -968,6 +980,9 @@ func (c *ChainConfig) checkCompatible(newcfg *ChainConfig, headNumber *big.Int,
|
|||||||
if isForkBlockIncompatible(c.HertzBlock, newcfg.HertzBlock, headNumber) {
|
if isForkBlockIncompatible(c.HertzBlock, newcfg.HertzBlock, headNumber) {
|
||||||
return newBlockCompatError("hertz fork block", c.HertzBlock, newcfg.HertzBlock)
|
return newBlockCompatError("hertz fork block", c.HertzBlock, newcfg.HertzBlock)
|
||||||
}
|
}
|
||||||
|
if isForkBlockIncompatible(c.HertzfixBlock, newcfg.HertzfixBlock, headNumber) {
|
||||||
|
return newBlockCompatError("hertzfix fork block", c.HertzfixBlock, newcfg.HertzfixBlock)
|
||||||
|
}
|
||||||
if isForkTimestampIncompatible(c.ShanghaiTime, newcfg.ShanghaiTime, headTimestamp) {
|
if isForkTimestampIncompatible(c.ShanghaiTime, newcfg.ShanghaiTime, headTimestamp) {
|
||||||
return newTimestampCompatError("Shanghai fork timestamp", c.ShanghaiTime, newcfg.ShanghaiTime)
|
return newTimestampCompatError("Shanghai fork timestamp", c.ShanghaiTime, newcfg.ShanghaiTime)
|
||||||
}
|
}
|
||||||
@@ -1131,6 +1146,7 @@ type Rules struct {
|
|||||||
IsLuban bool
|
IsLuban bool
|
||||||
IsPlato bool
|
IsPlato bool
|
||||||
IsHertz bool
|
IsHertz bool
|
||||||
|
IsHertzfix bool
|
||||||
IsShanghai, IsCancun, IsPrague bool
|
IsShanghai, IsCancun, IsPrague bool
|
||||||
IsVerkle bool
|
IsVerkle bool
|
||||||
}
|
}
|
||||||
@@ -1160,6 +1176,7 @@ func (c *ChainConfig) Rules(num *big.Int, isMerge bool, timestamp uint64) Rules
|
|||||||
IsLuban: c.IsLuban(num),
|
IsLuban: c.IsLuban(num),
|
||||||
IsPlato: c.IsPlato(num),
|
IsPlato: c.IsPlato(num),
|
||||||
IsHertz: c.IsHertz(num),
|
IsHertz: c.IsHertz(num),
|
||||||
|
IsHertzfix: c.IsHertzfix(num),
|
||||||
IsShanghai: c.IsShanghai(num, timestamp),
|
IsShanghai: c.IsShanghai(num, timestamp),
|
||||||
IsCancun: c.IsCancun(num, timestamp),
|
IsCancun: c.IsCancun(num, timestamp),
|
||||||
IsPrague: c.IsPrague(num, timestamp),
|
IsPrague: c.IsPrague(num, timestamp),
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import (
|
|||||||
const (
|
const (
|
||||||
VersionMajor = 1 // Major version component of the current release
|
VersionMajor = 1 // Major version component of the current release
|
||||||
VersionMinor = 3 // Minor version component of the current release
|
VersionMinor = 3 // Minor version component of the current release
|
||||||
VersionPatch = 1 // Patch version component of the current release
|
VersionPatch = 4 // Patch version component of the current release
|
||||||
VersionMeta = "" // Version metadata to append to the version string
|
VersionMeta = "" // Version metadata to append to the version string
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -12,5 +12,5 @@ done
|
|||||||
|
|
||||||
geth --config ${DATA_DIR}/config.toml --datadir ${DATA_DIR} --netrestrict ${CLUSTER_CIDR} \
|
geth --config ${DATA_DIR}/config.toml --datadir ${DATA_DIR} --netrestrict ${CLUSTER_CIDR} \
|
||||||
--verbosity ${VERBOSE} --nousb \
|
--verbosity ${VERBOSE} --nousb \
|
||||||
--rpc.allow-unprotected-txs --txlookuplimit 15768000 \
|
--rpc.allow-unprotected-txs --history.transactions 15768000 \
|
||||||
-unlock ${unlock_sequences} --password /dev/null
|
-unlock ${unlock_sequences} --password /dev/null
|
||||||
|
|||||||
@@ -15,4 +15,4 @@ geth --config ${DATA_DIR}/config.toml --datadir ${DATA_DIR} --netrestrict ${CLUS
|
|||||||
--bootnodes enode://${BOOTSTRAP_PUB_KEY}@${BOOTSTRAP_IP}:${BOOTSTRAP_TCP_PORT} \
|
--bootnodes enode://${BOOTSTRAP_PUB_KEY}@${BOOTSTRAP_IP}:${BOOTSTRAP_TCP_PORT} \
|
||||||
--mine -unlock ${VALIDATOR_ADDR} --miner.etherbase ${VALIDATOR_ADDR} --password /dev/null \
|
--mine -unlock ${VALIDATOR_ADDR} --miner.etherbase ${VALIDATOR_ADDR} --password /dev/null \
|
||||||
--light.serve 50 \
|
--light.serve 50 \
|
||||||
--rpc.allow-unprotected-txs --txlookuplimit 15768000
|
--rpc.allow-unprotected-txs --history.transactions 15768000
|
||||||
|
|||||||
Reference in New Issue
Block a user