From bcd0423e957a88d52511a5c1ca3dd3ac895a3b37 Mon Sep 17 00:00:00 2001 From: Chris Ziogas Date: Mon, 3 Jul 2023 18:29:30 +0300 Subject: [PATCH] Jenkinsfile,README.md,cmd/clef,cmd/devp2p,cmd/echainspec,cmd/faucet,cmd/geth,cmd/utils,core/forkid,core,docs/getting-started,docs,tests/regression/shasums,tests/regression/simulated: drop kotti support --- Jenkinsfile | 26 +---- README.md | 1 - cmd/clef/README.md | 4 +- cmd/clef/main.go | 2 +- cmd/devp2p/nodesetcmd.go | 2 - cmd/echainspec/main.go | 5 - cmd/faucet/faucet.go | 7 -- cmd/geth/consolecmd_cg_test.go | 1 - cmd/geth/main.go | 3 - cmd/utils/flags.go | 18 +-- core/forkid/forkid_test.go | 33 ------ core/genesis.go | 4 - docs/getting-started/run-cli.md | 5 +- docs/index.md | 1 - params/alloc_kotti.go | 20 ---- params/bootnodes_kotti.go | 25 ---- params/config_kotti.go | 107 ------------------ params/genesis_kotti.go | 36 ------ tests/regression/shasums/README.md | 1 - .../shasums/kotti.0-2544960.rlp.gz.sha256 | 1 - tests/regression/simulated/README.md | 4 +- 21 files changed, 11 insertions(+), 295 deletions(-) delete mode 100644 params/alloc_kotti.go delete mode 100644 params/bootnodes_kotti.go delete mode 100644 params/config_kotti.go delete mode 100644 params/genesis_kotti.go delete mode 100644 tests/regression/shasums/kotti.0-2544960.rlp.gz.sha256 diff --git a/Jenkinsfile b/Jenkinsfile index 8e7154b00f..863f7dc99b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,6 @@ pipeline { stages { stage('Notify Github of Pending Jobs') { steps { - githubNotify context: 'Kotti Regression', description: "${GITHUB_NOTIFY_DESCRIPTION}", status: 'PENDING', account: "${GITHUB_OWNER_NAME}", repo: "${GITHUB_REPO_NAME}", credentialsId: 'meowsbits-github-jenkins', sha: "${GIT_COMMIT}" githubNotify context: 'Mordor Regression', description: "${GITHUB_NOTIFY_DESCRIPTION}", status: 'PENDING', account: "${GITHUB_OWNER_NAME}", repo: "${GITHUB_REPO_NAME}", credentialsId: 'meowsbits-github-jenkins', sha: "${GIT_COMMIT}" githubNotify context: 'Goerli Regression', description: "${GITHUB_NOTIFY_DESCRIPTION}", status: 'PENDING', account: "${GITHUB_OWNER_NAME}", repo: "${GITHUB_REPO_NAME}", credentialsId: 'meowsbits-github-jenkins', sha: "${GIT_COMMIT}" // githubNotify context: 'Classic Regression', description: "${GITHUB_NOTIFY_DESCRIPTION}", status: 'PENDING', account: "${GITHUB_OWNER_NAME}", repo: "${GITHUB_REPO_NAME}", credentialsId: 'meowsbits-github-jenkins', sha: "${GIT_COMMIT}" @@ -19,25 +18,6 @@ pipeline { } stage("Run Regression Tests") { parallel { - stage('Kotti') { - agent { label "aws-slave-m5-xlarge" } - steps { - sh "curl -L -O https://go.dev/dl/go1.20.3.linux-amd64.tar.gz" - sh "sudo rm -rf /usr/bin/go && sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.20.3.linux-amd64.tar.gz" - sh "sudo cp /usr/local/go/bin/go /usr/bin/go" - sh "sudo cp /usr/local/go/bin/gofmt /usr/bin/gofmt" - sh "go version" - sh "make geth && ./build/bin/geth version" - sh "rm -rf ${GETH_DATADIR}-kotti" - sh "shasum -a 256 -c ./tests/regression/shasums/kotti.0-2544960.rlp.gz.sha256" - sh "./build/bin/geth --kotti --cache=2048 --nocompaction --nousb --txlookuplimit=1 --datadir=${GETH_DATADIR}-kotti import ${GETH_EXPORTS}/kotti.0-2544960.rlp.gz" - } - post { - always { sh "rm -rf ${GETH_DATADIR}-kotti" } - success { githubNotify context: 'Kotti Regression', description: "${GITHUB_NOTIFY_DESCRIPTION}", status: 'SUCCESS', account: "${GITHUB_OWNER_NAME}", repo: "${GITHUB_REPO_NAME}", credentialsId: 'meowsbits-github-jenkins', sha: "${GIT_COMMIT}" } - unsuccessful { githubNotify context: 'Kotti Regression', description: "${GITHUB_NOTIFY_DESCRIPTION}", status: 'FAILURE', account: "${GITHUB_OWNER_NAME}", repo: "${GITHUB_REPO_NAME}", credentialsId: 'meowsbits-github-jenkins', sha: "${GIT_COMMIT}" } - } - } stage('Mordor') { agent { label "aws-slave-m5-xlarge" } steps { @@ -80,11 +60,11 @@ pipeline { // Commented now because these take a looong time. // One way of approaching a solution is to break each chain into a "stepladder" of imports, eg. 0-1150000, 1150000-1920000, 1920000-2500000, etc... // This would allow further parallelization at the cost of duplicated base chaindata stores. - // Since the core focus of testing here is configuration (both user-facing and internal), and one of ugly limitations of our current testnets - // being that they DO NOT reflect the production environment well in this regard (which is a very vulnerable reagard) + // Since the core focus of testing here is configuration (both user-facing and internal), and one of ugly limitations of our current testnets + // being that they DO NOT reflect the production environment well in this regard (which is a very vulnerable reagard) // another approach might be to condense the chain fork progressions of ETC and ETH into custom test-only chains, perhaps using retestest or a similar // tool to make transactions and manage chain upgrades dynamically as a transactions are made. - // + // // stage('Classic') { // agent { label "aws-slave-m5-xlarge" } // steps { diff --git a/README.md b/README.md index 1fdef607a2..231e3be3e2 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,6 @@ Networks supported by the respective go-ethereum packaged `geth` program. | | :zap: | Ropsten (Geth+Parity ETH PoW Testnet) | :heavy_check_mark: | :heavy_check_mark: | | | :handshake: | Rinkeby (Geth-only ETH PoA Testnet) | :heavy_check_mark: | :heavy_check_mark: | | | :handshake: | Goerli (Geth+Parity ETH PoA Testnet) | :heavy_check_mark: | :heavy_check_mark: | -| | :handshake: | Kotti (Geth+Parity ETC PoA Testnet) | :heavy_check_mark: | | | | :handshake: | Kovan (Parity-only ETH PoA Testnet) | | | | | | Tobalaba (EWF Testnet) | | | | | | Ephemeral development PoA network | :heavy_check_mark: | :heavy_check_mark: | diff --git a/cmd/clef/README.md b/cmd/clef/README.md index 9bbbd1d63c..f810ed3a31 100644 --- a/cmd/clef/README.md +++ b/cmd/clef/README.md @@ -29,7 +29,7 @@ GLOBAL OPTIONS: --loglevel value log level to emit to the screen (default: 4) --keystore value Directory for the keystore (default: "$HOME/.ethereum/keystore") --configdir value Directory for Clef configuration (default: "$HOME/.clef") - --chainid value Chain id to use for signing (1=mainnet, 2=Morden (disused), 3=ropsten, 4=rinkeby, 5=Goerli, 6=Kotti) (default: 1) + --chainid value Chain id to use for signing (1=mainnet, 2=Morden (disused), 3=ropsten, 4=rinkeby, 5=Goerli) (default: 1) --lightkdf Reduce key-derivation RAM & CPU usage at some expense of KDF strength --nousb Disables monitoring for and managing USB hardware wallets --pcscdpath value Path to the smartcard daemon (pcscd) socket file (default: "/run/pcscd/pcscd.comm") @@ -150,7 +150,7 @@ All hex encoded values must be prefixed with `0x`. #### Create new password protected account -The signer will generate a new private key, encrypt it according to [web3 keystore spec](https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition) and store it in the keystore directory. +The signer will generate a new private key, encrypt it according to [web3 keystore spec](https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition) and store it in the keystore directory. The client is responsible for creating a backup of the keystore. If the keystore is lost there is no method of retrieving lost accounts. #### Arguments diff --git a/cmd/clef/main.go b/cmd/clef/main.go index cd794d014a..3c20231f9c 100644 --- a/cmd/clef/main.go +++ b/cmd/clef/main.go @@ -100,7 +100,7 @@ var ( chainIdFlag = &cli.Int64Flag{ Name: "chainid", Value: params.MainnetChainConfig.ChainID.Int64(), - Usage: "Chain id to use for signing (1=foundation, 61=classic, 3=Ropsten, 4=Rinkeby, 5=Goerli, 6=Kotti, 63=Mordor, 133519467574834=Yolo)", + Usage: "Chain id to use for signing (1=foundation, 61=classic, 3=Ropsten, 4=Rinkeby, 5=Goerli, 63=Mordor, 133519467574834=Yolo)", } rpcPortFlag = &cli.IntFlag{ Name: "http.port", diff --git a/cmd/devp2p/nodesetcmd.go b/cmd/devp2p/nodesetcmd.go index 48c3e1efa3..a731e6e397 100644 --- a/cmd/devp2p/nodesetcmd.go +++ b/cmd/devp2p/nodesetcmd.go @@ -237,8 +237,6 @@ func ethFilter(args []string) (nodeFilter, error) { filter = forkid.NewStaticFilter(params.SepoliaChainConfig, params.SepoliaGenesisHash) case "classic": filter = forkid.NewStaticFilter(params.ClassicChainConfig, params.MainnetGenesisHash) - case "kotti": - filter = forkid.NewStaticFilter(params.KottiChainConfig, params.KottiGenesisHash) case "mordor": filter = forkid.NewStaticFilter(params.MordorChainConfig, params.MordorGenesisHash) case "mintme": diff --git a/cmd/echainspec/main.go b/cmd/echainspec/main.go index b4146face4..5ada8309ce 100644 --- a/cmd/echainspec/main.go +++ b/cmd/echainspec/main.go @@ -41,7 +41,6 @@ var chainspecFormats = func() []string { var defaultChainspecValues = map[string]ctypes.Configurator{ "classic": params.DefaultClassicGenesisBlock(), - "kotti": params.DefaultKottiGenesisBlock(), "mordor": params.DefaultMordorGenesisBlock(), "foundation": params.DefaultGenesisBlock(), @@ -196,10 +195,6 @@ EXAMPLES: > {{.Name}} --default classic --outputf coregeth - Validate a default Kotti network chain configuration for block #3000000: - - > {{.Name}} --default kotti validate 3000000 - VERSION: {{.Version}} diff --git a/cmd/faucet/faucet.go b/cmd/faucet/faucet.go index a8352c8cb3..87e04cccca 100644 --- a/cmd/faucet/faucet.go +++ b/cmd/faucet/faucet.go @@ -67,7 +67,6 @@ var ( foundationFlag = flag.Bool("chain.foundation", false, "Configure genesis and bootnodes for foundation chain defaults") classicFlag = flag.Bool("chain.classic", false, "Configure genesis and bootnodes for classic chain defaults") mordorFlag = flag.Bool("chain.mordor", false, "Configure genesis and bootnodes for mordor chain defaults") - kottiFlag = flag.Bool("chain.kotti", false, "Configure genesis and bootnodes for kotti chain defaults") testnetFlag = flag.Bool("chain.testnet", false, "Configure genesis and bootnodes for testnet chain defaults") rinkebyFlag = flag.Bool("chain.rinkeby", false, "Configure genesis and bootnodes for rinkeby chain defaults") goerliFlag = flag.Bool("chain.goerli", false, "Configure genesis and bootnodes for goerli chain defaults") @@ -109,7 +108,6 @@ var chainFlags = []*bool{ foundationFlag, classicFlag, mordorFlag, - kottiFlag, testnetFlag, rinkebyFlag, goerliFlag, @@ -138,8 +136,6 @@ func faucetDirFromChainIndicators(chainID uint64, genesisHash common.Hash) strin return filepath.Join(datadir, "rinkeby") case params.GoerliGenesisHash: return filepath.Join(datadir, "goerli") - case params.KottiGenesisHash: - return filepath.Join(datadir, "kotti") case params.MordorGenesisHash: return filepath.Join(datadir, "mordor") case params.SepoliaGenesisHash: @@ -158,7 +154,6 @@ func parseChainFlags() (gs *genesisT.Genesis, bs string, netid uint64) { {*classicFlag, params.DefaultClassicGenesisBlock(), nil}, {*mordorFlag, params.DefaultMordorGenesisBlock(), nil}, {*rinkebyFlag, params.DefaultRinkebyGenesisBlock(), nil}, - {*kottiFlag, params.DefaultKottiGenesisBlock(), nil}, {*goerliFlag, params.DefaultGoerliGenesisBlock(), nil}, {*sepoliaFlag, params.DefaultSepoliaGenesisBlock(), nil}, } @@ -570,8 +565,6 @@ func (f *faucet) startStack(genesis *genesisT.Genesis, port int, enodes []*enode } else { utils.SetDNSDiscoveryDefaults(&cfg, core.GenesisToBlock(genesis, nil).Hash()) } - case params.KottiGenesisHash: - utils.SetDNSDiscoveryDefaults2(&cfg, params.KottiDNSNetwork1) case params.MordorGenesisHash: utils.SetDNSDiscoveryDefaults2(&cfg, params.MordorDNSNetwork1) default: diff --git a/cmd/geth/consolecmd_cg_test.go b/cmd/geth/consolecmd_cg_test.go index 62e5dfdebf..89f502d686 100644 --- a/cmd/geth/consolecmd_cg_test.go +++ b/cmd/geth/consolecmd_cg_test.go @@ -37,7 +37,6 @@ func TestConsoleCmdNetworkIdentities(t *testing.T) { {[]string{"--rinkeby"}, 4, 4, params.RinkebyGenesisHash.Hex()}, {[]string{"--sepolia"}, 11155111, 11155111, params.SepoliaGenesisHash.Hex()}, {[]string{"--goerli"}, 5, 5, params.GoerliGenesisHash.Hex()}, - {[]string{"--kotti"}, 6, 6, params.KottiGenesisHash.Hex()}, {[]string{"--mordor"}, 7, 63, params.MordorGenesisHash.Hex()}, {[]string{"--mintme"}, 37480, 24734, params.MintMeGenesisHash.Hex()}, {[]string{"--dev"}, 1337, 1337, "0x0"}, diff --git a/cmd/geth/main.go b/cmd/geth/main.go index 3825c85639..a5d970937b 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -332,9 +332,6 @@ func checkMainnet(ctx *cli.Context) bool { case ctx.IsSet(utils.MordorFlag.Name): log.Info("Starting Geth on Mordor testnet...") - case ctx.IsSet(utils.KottiFlag.Name): - log.Info("Starting Geth on Kotti testnet...") - case ctx.IsSet(utils.MintMeFlag.Name): log.Info("Starting Geth on MintMe.com Coin mainnet...") diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index b2bf4d5273..270a1a0c7d 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -179,11 +179,6 @@ var ( Usage: "Rinkeby network: pre-configured proof-of-authority test network", Category: flags.EthCategory, } - KottiFlag = &cli.BoolFlag{ - Name: "kotti", - Usage: "Kotti network: cross-client proof-of-authority test network", - Category: flags.EthCategory, - } MordorFlag = &cli.BoolFlag{ Name: "mordor", Usage: "Mordor network: Ethereum Classic's cross-client proof-of-work test network", @@ -1086,7 +1081,6 @@ var ( GoerliFlag, SepoliaFlag, MordorFlag, - KottiFlag, } // NetworkFlags is the flag group of all built-in supported networks. NetworkFlags = append([]cli.Flag{ @@ -1171,8 +1165,6 @@ func setBootstrapNodes(ctx *cli.Context, cfg *p2p.Config) { urls = params.SepoliaBootnodes case ctx.Bool(RinkebyFlag.Name): urls = params.RinkebyBootnodes - case ctx.Bool(KottiFlag.Name): - urls = params.KottiBootnodes case ctx.Bool(GoerliFlag.Name): urls = params.GoerliBootnodes } @@ -1208,8 +1200,6 @@ func setBootstrapNodesV5(ctx *cli.Context, cfg *p2p.Config) { urls = params.MordorBootnodes case ctx.Bool(RinkebyFlag.Name): urls = params.RinkebyBootnodes - case ctx.Bool(KottiFlag.Name): - urls = params.KottiBootnodes case ctx.Bool(GoerliFlag.Name): urls = params.GoerliBootnodes case ctx.Bool(MintMeFlag.Name): @@ -1668,8 +1658,6 @@ func dataDirPathForCtxChainConfig(ctx *cli.Context, baseDataDirPath string) stri return filepath.Join(baseDataDirPath, "mordor") case ctx.Bool(RinkebyFlag.Name): return filepath.Join(baseDataDirPath, "rinkeby") - case ctx.Bool(KottiFlag.Name): - return filepath.Join(baseDataDirPath, "kotti") case ctx.Bool(GoerliFlag.Name): return filepath.Join(baseDataDirPath, "goerli") case ctx.Bool(SepoliaFlag.Name): @@ -1926,7 +1914,7 @@ func CheckExclusive(ctx *cli.Context, args ...interface{}) { // SetEthConfig applies eth-related command line flags to the config. func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) { // Avoid conflicting network flags - CheckExclusive(ctx, MainnetFlag, DeveloperFlag, DeveloperPoWFlag, RinkebyFlag, GoerliFlag, SepoliaFlag, ClassicFlag, KottiFlag, MordorFlag, MintMeFlag) + CheckExclusive(ctx, MainnetFlag, DeveloperFlag, DeveloperPoWFlag, RinkebyFlag, GoerliFlag, SepoliaFlag, ClassicFlag, MordorFlag, MintMeFlag) CheckExclusive(ctx, LightServeFlag, SyncModeFlag, "light") CheckExclusive(ctx, DeveloperFlag, DeveloperPoWFlag, ExternalSignerFlag) // Can't use both ephemeral unlocked and external signer if ctx.String(GCModeFlag.Name) == "archive" && ctx.Uint64(TxLookupLimitFlag.Name) != 0 { @@ -2155,8 +2143,6 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) { SetDNSDiscoveryDefaults(cfg, params.GoerliGenesisHash) case ctx.Bool(ClassicFlag.Name): SetDNSDiscoveryDefaults2(cfg, params.ClassicDNSNetwork1) - case ctx.Bool(KottiFlag.Name): - SetDNSDiscoveryDefaults2(cfg, params.KottiDNSNetwork1) case ctx.Bool(MordorFlag.Name): SetDNSDiscoveryDefaults2(cfg, params.MordorDNSNetwork1) default: @@ -2505,8 +2491,6 @@ func genesisForCtxChainConfig(ctx *cli.Context) *genesisT.Genesis { genesis = params.DefaultSepoliaGenesisBlock() case ctx.Bool(RinkebyFlag.Name): genesis = params.DefaultRinkebyGenesisBlock() - case ctx.Bool(KottiFlag.Name): - genesis = params.DefaultKottiGenesisBlock() case ctx.Bool(GoerliFlag.Name): genesis = params.DefaultGoerliGenesisBlock() case ctx.Bool(MintMeFlag.Name): diff --git a/core/forkid/forkid_test.go b/core/forkid/forkid_test.go index df2f57658d..d21e843c63 100644 --- a/core/forkid/forkid_test.go +++ b/core/forkid/forkid_test.go @@ -186,29 +186,6 @@ func TestCreation(t *testing.T) { {14_525_001, 0, ID{Hash: checksumToBytes(0x7fd1bb25), Next: 0}}, }, }, - { - "kotti", - params.KottiChainConfig, - params.KottiGenesisHash, - []testcase{ - {0, 0, ID{Hash: checksumToBytes(0x0550152e), Next: 716617}}, - {716616, 0, ID{Hash: checksumToBytes(0x0550152e), Next: 716617}}, - {716617, 0, ID{Hash: checksumToBytes(0xa3270822), Next: 1705549}}, - {716618, 0, ID{Hash: checksumToBytes(0xa3270822), Next: 1705549}}, - {1705548, 0, ID{Hash: checksumToBytes(0xa3270822), Next: 1705549}}, - {1705549, 0, ID{Hash: checksumToBytes(0x8f3698e0), Next: 2200013}}, - {1705550, 0, ID{Hash: checksumToBytes(0x8f3698e0), Next: 2200013}}, - {2200012, 0, ID{Hash: checksumToBytes(0x8f3698e0), Next: 2200013}}, - {2200013, 0, ID{Hash: checksumToBytes(0x6f402821), Next: 4_368_634}}, - {2200014, 0, ID{Hash: checksumToBytes(0x6f402821), Next: 4_368_634}}, - {4_368_633, 0, ID{Hash: checksumToBytes(0x6f402821), Next: 4_368_634}}, - {4_368_634, 0, ID{Hash: checksumToBytes(0xf03e54e7), Next: 5_578_000}}, - {4_368_635, 0, ID{Hash: checksumToBytes(0xf03e54e7), Next: 5_578_000}}, - {5_577_999, 0, ID{Hash: checksumToBytes(0xf03e54e7), Next: 5_578_000}}, - {5_578_000, 0, ID{Hash: checksumToBytes(0xc5459816), Next: 0}}, - {5_578_001, 0, ID{Hash: checksumToBytes(0xc5459816), Next: 0}}, - }, - }, { "mordor", params.MordorChainConfig, @@ -547,11 +524,6 @@ func TestGatherForks(t *testing.T) { params.MordorChainConfig, []uint64{301_243, 999_983, 2_520_000, 3_985_893, 5_520_000}, }, - { - "kotti", - params.KottiChainConfig, - []uint64{716_617, 1_705_549, 2_200_013, 4_368_634, 5_578_000}, - }, { "mintme", params.MintMeChainConfig, @@ -609,11 +581,6 @@ func TestGenerateSpecificationCases(t *testing.T) { params.ClassicChainConfig, params.MainnetGenesisHash, }, - { - "Kotti", - params.KottiChainConfig, - params.KottiGenesisHash, - }, { "Mordor", params.MordorChainConfig, diff --git a/core/genesis.go b/core/genesis.go index 3f0d9c6ca0..01cf443818 100644 --- a/core/genesis.go +++ b/core/genesis.go @@ -265,8 +265,6 @@ func configOrDefault(g *genesisT.Genesis, ghash common.Hash) ctypes.ChainConfigu return params.RinkebyChainConfig case ghash == params.GoerliGenesisHash: return params.GoerliChainConfig - case ghash == params.KottiGenesisHash: - return params.KottiChainConfig case ghash == params.MordorGenesisHash: return params.MordorChainConfig case ghash == params.SepoliaGenesisHash: @@ -370,8 +368,6 @@ func CommitGenesisState(db ethdb.Database, hash common.Hash) error { genesis = params.DefaultGoerliGenesisBlock() case params.SepoliaGenesisHash: genesis = params.DefaultSepoliaGenesisBlock() - case params.KottiGenesisHash: - genesis = params.DefaultKottiGenesisBlock() case params.MordorGenesisHash: genesis = params.DefaultMordorGenesisBlock() case params.MintMeGenesisHash: diff --git a/docs/getting-started/run-cli.md b/docs/getting-started/run-cli.md index 35a6ab3998..f5dacc8b54 100644 --- a/docs/getting-started/run-cli.md +++ b/docs/getting-started/run-cli.md @@ -16,7 +16,7 @@ particular use-case the user doesn't care about years-old historical data, so we fast-sync quickly to the current state of the network. To do so: ``` -$ geth [|--classic|--testnet|--rinkeby|--kotti|--goerli|--mordor] console +$ geth [|--classic|--testnet|--rinkeby|--goerli|--mordor] console ``` This command will: @@ -133,11 +133,10 @@ ETHEREUM OPTIONS: --keystore value Directory for the keystore (default = inside the datadir) --nousb Disables monitoring for and managing USB hardware wallets --pcscdpath value Path to the smartcard daemon (pcscd) socket file - --networkid value Explicitly set network id (integer)(For testnets: use --ropsten, --rinkeby, --goerli, --kotti, --mordor, --yolov2 instead) (default: 1) + --networkid value Explicitly set network id (integer)(For testnets: use --ropsten, --rinkeby, --goerli, --mordor, --yolov2 instead) (default: 1) --classic Ethereum Classic network: pre-configured Ethereum Classic mainnet --mordor Mordor network: Ethereum Classic's cross-client proof-of-work test network --rinkeby Rinkeby network: pre-configured proof-of-authority test network - --kotti Kotti network: cross-client proof-of-authority test network --goerli Görli network: pre-configured proof-of-authority test network --rinkeby Rinkeby network: pre-configured proof-of-authority test network --yolov2 YOLOv2 network: pre-configured proof-of-authority shortlived test network. diff --git a/docs/index.md b/docs/index.md index 15eeef76fc..e5981b02e1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -34,7 +34,6 @@ Networks supported by the respective core-geth packaged `geth` program. | | :zap: | Ropsten (Geth+Parity ETH PoW Testnet) | :heavy_check_mark: | :heavy_check_mark: | | | :handshake: | Rinkeby (Geth-only ETH PoA Testnet) | :heavy_check_mark: | :heavy_check_mark: | | | :handshake: | Goerli (Geth+Parity ETH PoA Testnet) | :heavy_check_mark: | :heavy_check_mark: | -| | :handshake: | Kotti (Geth+Parity ETC PoA Testnet) | :heavy_check_mark: | | | | :handshake: | Kovan (Parity-only ETH PoA Testnet) | | | | | | Tobalaba (EWF Testnet) | | | | | | Ephemeral development PoA network | :heavy_check_mark: | :heavy_check_mark: | diff --git a/params/alloc_kotti.go b/params/alloc_kotti.go deleted file mode 100644 index d80b85e69e..0000000000 --- a/params/alloc_kotti.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2019 The multi-geth Authors -// This file is part of the multi-geth library. -// -// The multi-geth library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The multi-geth library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the multi-geth library. If not, see . - -package params - -// nolint: misspell -const KottiAllocData = "\xf9\x03\xc4\u0080\x01\xc2\x01\x01\xc2\x02\x01\xc2\x03\x01\xc2\x04\x01\xc2\x05\x01\xc2\x06\x01\xc2\a\x01\xc2\b\x01\xc2\t\x01\xc2\n\x01\xc2\v\x01\xc2\f\x01\xc2\r\x01\xc2\x0e\x01\xc2\x0f\x01\xc2\x10\x01\xc2\x11\x01\xc2\x12\x01\xc2\x13\x01\xc2\x14\x01\xc2\x15\x01\xc2\x16\x01\xc2\x17\x01\xc2\x18\x01\xc2\x19\x01\xc2\x1a\x01\xc2\x1b\x01\xc2\x1c\x01\xc2\x1d\x01\xc2\x1e\x01\xc2\x1f\x01\xc2 \x01\xc2!\x01\xc2\"\x01\xc2#\x01\xc2$\x01\xc2%\x01\xc2&\x01\xc2'\x01\xc2(\x01\xc2)\x01\xc2*\x01\xc2+\x01\xc2,\x01\xc2-\x01\xc2.\x01\xc2/\x01\xc20\x01\xc21\x01\xc22\x01\xc23\x01\xc24\x01\xc25\x01\xc26\x01\xc27\x01\xc28\x01\xc29\x01\xc2:\x01\xc2;\x01\xc2<\x01\xc2=\x01\xc2>\x01\xc2?\x01\xc2@\x01\xc2A\x01\xc2B\x01\xc2C\x01\xc2D\x01\xc2E\x01\xc2F\x01\xc2G\x01\xc2H\x01\xc2I\x01\xc2J\x01\xc2K\x01\xc2L\x01\xc2M\x01\xc2N\x01\xc2O\x01\xc2P\x01\xc2Q\x01\xc2R\x01\xc2S\x01\xc2T\x01\xc2U\x01\xc2V\x01\xc2W\x01\xc2X\x01\xc2Y\x01\xc2Z\x01\xc2[\x01\xc2\\\x01\xc2]\x01\xc2^\x01\xc2_\x01\xc2`\x01\xc2a\x01\xc2b\x01\xc2c\x01\xc2d\x01\xc2e\x01\xc2f\x01\xc2g\x01\xc2h\x01\xc2i\x01\xc2j\x01\xc2k\x01\xc2l\x01\xc2m\x01\xc2n\x01\xc2o\x01\xc2p\x01\xc2q\x01\xc2r\x01\xc2s\x01\xc2t\x01\xc2u\x01\xc2v\x01\xc2w\x01\xc2x\x01\xc2y\x01\xc2z\x01\xc2{\x01\xc2|\x01\xc2}\x01\xc2~\x01\xc2\u007f\x01\u00c1\x80\x01\u00c1\x81\x01\u00c1\x82\x01\u00c1\x83\x01\u00c1\x84\x01\u00c1\x85\x01\u00c1\x86\x01\u00c1\x87\x01\u00c1\x88\x01\u00c1\x89\x01\u00c1\x8a\x01\u00c1\x8b\x01\u00c1\x8c\x01\u00c1\x8d\x01\u00c1\x8e\x01\u00c1\x8f\x01\u00c1\x90\x01\u00c1\x91\x01\u00c1\x92\x01\u00c1\x93\x01\u00c1\x94\x01\u00c1\x95\x01\u00c1\x96\x01\u00c1\x97\x01\u00c1\x98\x01\u00c1\x99\x01\u00c1\x9a\x01\u00c1\x9b\x01\u00c1\x9c\x01\u00c1\x9d\x01\u00c1\x9e\x01\u00c1\x9f\x01\u00c1\xa0\x01\u00c1\xa1\x01\u00c1\xa2\x01\u00c1\xa3\x01\u00c1\xa4\x01\u00c1\xa5\x01\u00c1\xa6\x01\u00c1\xa7\x01\u00c1\xa8\x01\u00c1\xa9\x01\u00c1\xaa\x01\u00c1\xab\x01\u00c1\xac\x01\u00c1\xad\x01\u00c1\xae\x01\u00c1\xaf\x01\u00c1\xb0\x01\u00c1\xb1\x01\u00c1\xb2\x01\u00c1\xb3\x01\u00c1\xb4\x01\u00c1\xb5\x01\u00c1\xb6\x01\u00c1\xb7\x01\u00c1\xb8\x01\u00c1\xb9\x01\u00c1\xba\x01\u00c1\xbb\x01\u00c1\xbc\x01\u00c1\xbd\x01\u00c1\xbe\x01\u00c1\xbf\x01\u00c1\xc0\x01\u00c1\xc1\x01\u00c1\xc2\x01\u00c1\xc3\x01\u00c1\xc4\x01\u00c1\xc5\x01\u00c1\xc6\x01\u00c1\xc7\x01\u00c1\xc8\x01\u00c1\xc9\x01\u00c1\xca\x01\u00c1\xcb\x01\u00c1\xcc\x01\u00c1\xcd\x01\u00c1\xce\x01\u00c1\xcf\x01\u00c1\xd0\x01\u00c1\xd1\x01\u00c1\xd2\x01\u00c1\xd3\x01\u00c1\xd4\x01\u00c1\xd5\x01\u00c1\xd6\x01\u00c1\xd7\x01\u00c1\xd8\x01\u00c1\xd9\x01\u00c1\xda\x01\u00c1\xdb\x01\u00c1\xdc\x01\u00c1\xdd\x01\u00c1\xde\x01\u00c1\xdf\x01\u00c1\xe0\x01\u00c1\xe1\x01\u00c1\xe2\x01\u00c1\xe3\x01\u00c1\xe4\x01\u00c1\xe5\x01\u00c1\xe6\x01\u00c1\xe7\x01\u00c1\xe8\x01\u00c1\xe9\x01\u00c1\xea\x01\u00c1\xeb\x01\u00c1\xec\x01\u00c1\xed\x01\u00c1\xee\x01\u00c1\xef\x01\u00c1\xf0\x01\u00c1\xf1\x01\u00c1\xf2\x01\u00c1\xf3\x01\u00c1\xf4\x01\u00c1\xf5\x01\u00c1\xf6\x01\u00c1\xf7\x01\u00c1\xf8\x01\u00c1\xf9\x01\u00c1\xfa\x01\u00c1\xfb\x01\u00c1\xfc\x01\u00c1\xfd\x01\u00c1\xfe\x01\u00c1\xff\x01\xe1\x94%\xb7\x95^C\xad\xf9\u00a0\x1a\x94u\x90\x87\x02\xcc\xe6\u007f0*\x8b\bE\x95\x16\x14\x01HJ\x00\x00\x00\xe1\x94j\xaf\x8c\xba<\x92U\xa2\xb8cA]M\xb7\xba\xe4\xf4\xbb\xca\x02\x8bJr=\u01b4\v\x8a\x9a\x00\x00\x00" diff --git a/params/bootnodes_kotti.go b/params/bootnodes_kotti.go deleted file mode 100644 index 7f2247d518..0000000000 --- a/params/bootnodes_kotti.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2019 The multi-geth Authors -// This file is part of the multi-geth library. -// -// The multi-geth library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The multi-geth library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the multi-geth library. If not, see . -package params - -// KottiBootnodes are the enode URLs of the P2P bootstrap nodes running on the -// Kotti test network. -var KottiBootnodes = []string{ - "enode://6c9a052c01bb9995fa53bebfcdbc17733fe90708270d0e6d8e38dc57b32e1dbe8c287590b634ee9753b94ba302f411c96519c7fa07df0df6a6848149d819b2c5@51.15.70.7:41235", // @q9f polis - "enode://93b12383c74c39b67afa99a7ff44ce250fe94295fa1fc087465cc4fe2d0b33b91a8d8cabe03b250104a9096aa0e06bcde5f95665a5bd9f890edd2ab33e16ae47@51.15.41.19:30303", // @q9f ethstats -} - -var KottiDNSNetwork1 = dnsPrefixETC + "all.kotti.blockd.info" diff --git a/params/config_kotti.go b/params/config_kotti.go deleted file mode 100644 index 4b0485b6df..0000000000 --- a/params/config_kotti.go +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2019 The multi-geth Authors -// This file is part of the multi-geth library. -// -// The multi-geth library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The multi-geth library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the multi-geth library. If not, see . -package params - -import ( - "math/big" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/params/types/coregeth" - "github.com/ethereum/go-ethereum/params/types/ctypes" - "github.com/ethereum/go-ethereum/params/vars" -) - -var ( - // Genesis hashes to enforce below configs on. - KottiGenesisHash = common.HexToHash("0x14c2283285a88fe5fce9bf5c573ab03d6616695d717b12a127188bcacfc743c4") - - KottiChainConfig = &coregeth.CoreGethChainConfig{ - NetworkID: 6, - ChainID: big.NewInt(6), - SupportedProtocolVersions: vars.DefaultProtocolVersions, - Clique: &ctypes.CliqueConfig{ - Period: 15, - Epoch: 30000, - }, - - EIP2FBlock: big.NewInt(0), - EIP7FBlock: big.NewInt(0), - - EIP150Block: big.NewInt(0), - - EIP155Block: big.NewInt(0), - - // EIP158 eq - EIP160FBlock: big.NewInt(0), - EIP161FBlock: big.NewInt(716617), - EIP170FBlock: big.NewInt(716617), - - // Byzantium eq - EIP100FBlock: big.NewInt(716617), - EIP140FBlock: big.NewInt(716617), - EIP198FBlock: big.NewInt(716617), - EIP211FBlock: big.NewInt(716617), - EIP212FBlock: big.NewInt(716617), - EIP213FBlock: big.NewInt(716617), - EIP214FBlock: big.NewInt(716617), - EIP658FBlock: big.NewInt(716617), - - // Constantinople eq, aka Agharta - EIP145FBlock: big.NewInt(1705549), - EIP1014FBlock: big.NewInt(1705549), - EIP1052FBlock: big.NewInt(1705549), - - // Istanbul eq, aka Phoenix - // ECIP-1088 - EIP152FBlock: big.NewInt(2_200_013), - EIP1108FBlock: big.NewInt(2_200_013), - EIP1344FBlock: big.NewInt(2_200_013), - EIP1884FBlock: big.NewInt(2_200_013), - EIP2028FBlock: big.NewInt(2_200_013), - EIP2200FBlock: big.NewInt(2_200_013), // RePetersburg (== re-1283) - - // Berlin eq, aka Magneto - EIP2565FBlock: big.NewInt(4_368_634), - EIP2718FBlock: big.NewInt(4_368_634), - EIP2929FBlock: big.NewInt(4_368_634), - EIP2930FBlock: big.NewInt(4_368_634), - - // London (partially), aka Mystique - EIP3529FBlock: big.NewInt(5_578_000), - EIP3541FBlock: big.NewInt(5_578_000), - - RequireBlockHashes: map[uint64]common.Hash{ - 0: KottiGenesisHash, - /* - ########## BAD BLOCK ######### - Chain config: NetworkID: 6, ChainID: 6 Engine: clique EIP1014: 1705549 EIP1052: 1705549 EIP1108: 2200013 EIP1344: 2200013 EIP140: 716617 EIP145: 1705549 EIP1 - 50: 0 EIP152: 2200013 EIP155: 0 EIP160: 0 EIP161abc: 716617 EIP161d: 716617 EIP170: 716617 EIP1884: 2200013 EIP198: 716617 EIP2028: 2200013 EIP211: 716617 EI - P212: 716617 EIP213: 716617 EIP214: 716617 EIP2200: 2200013 EIP658: 716617 EIP7: 0 EthashECIP1010Continue: 2000000 EthashECIP1010Pause: 0 EthashECIP1017: 500 - 0000 EthashECIP1041: 0 EthashEIP100B: 716617 EthashEIP2: 0 EthashHomestead: 0 - Number: 2058192 - Hash: 0xf56efd9b074eed67c79d903c26bd0059e701c37200dc3cb86cc6c38159406d36 - 0: cumulative: 25352 gas: 25352 contract: 0x0000000000000000000000000000000000000000 status: 1 tx: 0x0ae3504d52fed3fdc92fb4267d6b36523d022b33663fc44 - b4eeddea0bcaa51cb logs: [] bloom: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000000000000000000 state: - Error: invalid gas used (remote: 22024 local: 25352) - ############################## - */ - 2_058_192: common.HexToHash("0x60b1f84737789f0233d8483fb0e6f460e068f690373893a878a2d12c9e59be1e"), - }, - } -) diff --git a/params/genesis_kotti.go b/params/genesis_kotti.go deleted file mode 100644 index 20a6df2a55..0000000000 --- a/params/genesis_kotti.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2019 The multi-geth Authors -// This file is part of the multi-geth library. -// -// The multi-geth library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The multi-geth library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the multi-geth library. If not, see . - -package params - -import ( - "math/big" - - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/ethereum/go-ethereum/params/types/genesisT" -) - -// DefaultKottiGenesisBlock returns the Kotti network genesis block. -func DefaultKottiGenesisBlock() *genesisT.Genesis { - return &genesisT.Genesis{ - Config: KottiChainConfig, - Timestamp: 1546461831, - ExtraData: hexutil.MustDecode("0x000000000000000000000000000000000000000000000000000000000000000025b7955e43adf9c2a01a9475908702cce67f302a6aaf8cba3c9255a2b863415d4db7bae4f4bbca020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"), - GasLimit: 10485760, - Difficulty: big.NewInt(1), - Alloc: genesisT.DecodePreAlloc(KottiAllocData), - } -} diff --git a/tests/regression/shasums/README.md b/tests/regression/shasums/README.md index f2ea4191e8..1ca3a4fefe 100644 --- a/tests/regression/shasums/README.md +++ b/tests/regression/shasums/README.md @@ -3,6 +3,5 @@ canonical export data files present on the Jenkins CI server data volume. These files are available for public download at the following URLs: -- https://core-geth-chaindata-exports.s3.us-east-2.amazonaws.com/kotti.0-2544960.rlp.gz - https://core-geth-chaindata-exports.s3.us-east-2.amazonaws.com/mordor.0-1686858.rlp.gz - https://core-geth-chaindata-exports.s3.us-east-2.amazonaws.com/goerli.0-2000000.rlp.gz diff --git a/tests/regression/shasums/kotti.0-2544960.rlp.gz.sha256 b/tests/regression/shasums/kotti.0-2544960.rlp.gz.sha256 deleted file mode 100644 index 6929332532..0000000000 --- a/tests/regression/shasums/kotti.0-2544960.rlp.gz.sha256 +++ /dev/null @@ -1 +0,0 @@ -d000df15854efa14fccc899913bff7c6b482fd1a5781d1b12c60ada5ae99d281 /data/ethereum-exports/kotti.0-2544960.rlp.gz diff --git a/tests/regression/simulated/README.md b/tests/regression/simulated/README.md index 5ee6b62476..91b51e2ff0 100644 --- a/tests/regression/simulated/README.md +++ b/tests/regression/simulated/README.md @@ -1,7 +1,7 @@ These directories contain gzipped RLP-encoded blockchain data files along with respective JSON configuration files. The blockchains contained in these data files use configurations that are designed to reflect the stages of their namesake production counterparts, eg. Ethereum Classic and Foundation main networks, albeit in smaller "condensed" versions. -Whereas the prominent test networks used in staging and development for these communities often (in the case of Goerli, Kotti, Mordor, Ropsten, and Rinkeby) use abbreviated fork configurations, +Whereas the prominent test networks used in staging and development for these communities often (in the case of Goerli, Mordor, Ropsten, and Rinkeby) use abbreviated fork configurations, where mainnet forks prior to the launch of the given testnet are "squashed" into the testnet's configuration at block 0, and thus never actually transitioned through at any point in the testnets' progress. This testnet/mainnet configuration discrepency is in principle a cause of concern since: @@ -16,7 +16,7 @@ The test blockchains included in these directories were generated as follows: State tests are grouped by fork, with names like "Homestead" and "Byzantium". The adhoc tool applies tests for "Homestead" only during the relative "Homestead"-equivalent phase of the test blockchain. In order to fit tests in to these respective phases of the test blockchains, some "wiggling" with these fork activations were necessary. That's why for the most part the respective fork numbers are `mainnet/1000`, but a few are fudged up or down. This wiggling does not impact the integrity of the chain configurations as heuristics for the mainnet counterparts, since what matters most is chronology and relative activation. -In general, the integrity of the GeneralStateTests to blockchain transactions are not of critical concern, and they are more-or-less used as arbitrary simulated transactions. +In general, the integrity of the GeneralStateTests to blockchain transactions are not of critical concern, and they are more-or-less used as arbitrary simulated transactions. - Once all of the forks have been progressed through and all StateTests (`GeneralStateTests`) have completed being processed as transactions, the chain is stopped and `export`ed to the gzipped RLP file. - This produced `export.rlp.gz` file can then, as a regression test, be `import`ed into a new database, and in doing so, cause geth to validate all available aspects of its chain configuration, feature application, and data storage mechanisms. At the time of writing, geth's `import` command uses `blockchain.InsertChain` to do the work of the import, which is the very same function used by geth during a networked sync. As such, `ValidateState`, `ValidateHeaders`, and `ValidateBody` are all invoked. This proves geth's consistency in EVM processing, state mutations, and header verification; all consensus-relevant values are tested.