cmd/utils: reuse existing genesis in persistent dev mode
This commit is contained in:
		
							parent
							
								
									722b742780
								
							
						
					
					
						commit
						9e22e912e3
					
				| @ -40,6 +40,7 @@ import ( | |||||||
| 	"github.com/ethereum/go-ethereum/consensus/clique" | 	"github.com/ethereum/go-ethereum/consensus/clique" | ||||||
| 	"github.com/ethereum/go-ethereum/consensus/ethash" | 	"github.com/ethereum/go-ethereum/consensus/ethash" | ||||||
| 	"github.com/ethereum/go-ethereum/core" | 	"github.com/ethereum/go-ethereum/core" | ||||||
|  | 	"github.com/ethereum/go-ethereum/core/rawdb" | ||||||
| 	"github.com/ethereum/go-ethereum/core/vm" | 	"github.com/ethereum/go-ethereum/core/vm" | ||||||
| 	"github.com/ethereum/go-ethereum/crypto" | 	"github.com/ethereum/go-ethereum/crypto" | ||||||
| 	"github.com/ethereum/go-ethereum/eth" | 	"github.com/ethereum/go-ethereum/eth" | ||||||
| @ -1627,7 +1628,17 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) { | |||||||
| 		} | 		} | ||||||
| 		log.Info("Using developer account", "address", developer.Address) | 		log.Info("Using developer account", "address", developer.Address) | ||||||
| 
 | 
 | ||||||
|  | 		// Create a new developer genesis block or reuse existing one
 | ||||||
| 		cfg.Genesis = core.DeveloperGenesisBlock(uint64(ctx.GlobalInt(DeveloperPeriodFlag.Name)), developer.Address) | 		cfg.Genesis = core.DeveloperGenesisBlock(uint64(ctx.GlobalInt(DeveloperPeriodFlag.Name)), developer.Address) | ||||||
|  | 		if ctx.GlobalIsSet(DataDirFlag.Name) { | ||||||
|  | 			// Check if we have an already initialized chain and fall back to
 | ||||||
|  | 			// that if so. Otherwise we need to generate a new genesis spec.
 | ||||||
|  | 			chaindb := MakeChainDatabase(ctx, stack) | ||||||
|  | 			if rawdb.ReadCanonicalHash(chaindb, 0) != (common.Hash{}) { | ||||||
|  | 				cfg.Genesis = nil // fallback to db content
 | ||||||
|  | 			} | ||||||
|  | 			chaindb.Close() | ||||||
|  | 		} | ||||||
| 		if !ctx.GlobalIsSet(MinerGasPriceFlag.Name) && !ctx.GlobalIsSet(LegacyMinerGasPriceFlag.Name) { | 		if !ctx.GlobalIsSet(MinerGasPriceFlag.Name) && !ctx.GlobalIsSet(LegacyMinerGasPriceFlag.Name) { | ||||||
| 			cfg.Miner.GasPrice = big.NewInt(1) | 			cfg.Miner.GasPrice = big.NewInt(1) | ||||||
| 		} | 		} | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user