-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
void test_setChainParams(string _config) #4
Comments
*(2) the idea is to start accepting blocks with the following fork scheme. Another issue is how do we want at some point to change the fork rules. For examples there are tests that change the fork rules at a given block number. such are https://github.com/ethereum/tests/tree/develop/BlockchainTests/TransitionTests |
It would be nice to use the names |
Issue about fork names #12 |
Before this commit, `eth --test` took half seconds to terminate after a SIGINT. Since retesteth required this after every test, most of the testing time was spent during this half seconds. ping @winsvega
this genesis is enough for state tests:
perhaps all timestamp tests could be moved from state tests to blockchain tests. timestamp seems like a blockchain property. the tests to move from state tests to blockchain tests you know, I start to feel that we need a general ethereum test format. |
@winsvega open a separate issue for the new test format. |
So you say this format covers also the tests with transition to different fork, how do you set up then at which block which fork starts in this format? |
And could you also clarify why do you need to override fork rules around block reward ? |
because when NoProof is used a mining reward is 0. no mining happens. if you say that mining reward is hardcoded into fork rules, then why do we need an option for mining reward in genesis config at all. (hardcoded mining reward is used anyway) the genesis format you mentioned should be able to set fork transition blocks. state tests do not have more then one block. but I will need it in the blockchain tests. the setChainParams method should have a scheme that allows to set fork transition blocks. (and we dont have a standart between clients on this) I see a solution if we create a test_setChainParams method which any client could implement and it would be a standart for tests. again the issue is that each client has its own genesis config with its own options. and those options are all different in those client implementations. we cant disable existsing chain options. but we can ask clients to support a general config file format. so that users don't have to google a client specififc genesis config instructions. this is actually a point for core dev call |
Mining algorithm and rewards are quite separate matters.
You could maybe ignore changes to coinbase when you fill/check test results.
I'd say we should get rid of it and always hard-code block reward, similar to what we do with opcode prices. |
2021 Countdown. Times up. Setup Quick |
Happy new year everybodys. 2021 moving forward. |
The idea is to implement a simple genesis format to use in test rpc method. Each client that would like to run tests via rpc just implement this rpc methods.
The method here is the main test_setChainParams(string _config) method which would tell the client to init a test chain with the given state of accounts and genesis block config. A genesis block is a block and should have the block fields. A state is a list of accounts with it's storage and balances, nonce and code. No precompiled contracts are explicitly defined in the genesis state *(1).
The params section tells the client which mining method to use. "ProofOfWork" is a regular mining that accepts new block according to the hash calculation rules. The "ForkRules" sets which fork changes should be enabled to use on this chain. *(2). The forks are (Frontier, Homestead, ... Byzantium)
We should discuss the format with other client developers and perhaps discuss what should be added here. The points *(1) and *(2) require some discussion I think.
The text was updated successfully, but these errors were encountered: