aboutsummaryrefslogtreecommitdiffstats
path: root/core/genesis.go
Commit message (Collapse)AuthorAgeFilesLines
* core: blocknumber in genesis as hex (#14812)Martin Holst Swende2017-07-171-0/+1
|
* tests: update tests and implement general state tests (#14734)Felix Lange2017-07-111-8/+59
| | | | | | | | | | | | | | Tests are now included as a submodule. This should make updating easier and removes ~60MB of JSON data from the working copy. State tests are replaced by General State Tests, which run the same test with multiple fork configurations. With the new test runner, consensus tests are run as subtests by walking json files. Many hex issues have been fixed upstream since the last update and most custom parsing code is replaced by existing JSON hex types. Tests can now be marked as 'expected failures', ensuring that fixes for those tests will trigger an update to test configuration. The new test runner also supports parallel execution and the -short flag.
* params: remove redundant consts, disable metro on AllProtocolChangesPéter Szilágyi2017-07-041-3/+3
|
* core/state: access trie through Database interface, track errors (#14589)Felix Lange2017-06-271-1/+1
| | | | | | | | | With this commit, core/state's access to the underlying key/value database is mediated through an interface. Database errors are tracked in StateDB and returned by CommitTo or the new Error method. Motivation for this change: We can remove the light client's duplicated copy of core/state. The light client now supports node iteration, so tracing and storage enumeration can work with the light client (not implemented in this commit).
* core: typos and comments improvechanghong2017-05-251-1/+1
| | | | | | | | 1. fix typos 2. methods recevier of struct should be same 3. comments improve (cherry picked from commit 1ba979539582a00b7fd1a7c8a37a6852e59eac0d)
* cmd, core, params: add --rinkeby flag for fast connectivityPéter Szilágyi2017-05-041-0/+12
|
* core: make genesis incompatibility error more explicitPéter Szilágyi2017-04-201-1/+1
|
* core, core/types: regenerate JSON marshaling, add "hash" to headers (#13868)Felix Lange2017-04-061-14/+14
| | | | | | | | | | * Makefile: fix devtools target * core: regenerate genesis marshaling with fjl/gencodec@cbfa5be5a8a8 * core/types: regenerate marshaling methods with fjl/gencodec@cbfa5be5a8a8 * core/types: add "hash" to JSON headers
* core, core/types: use non-pointer receiver for Marshal* methodsFelix Lange2017-03-271-3/+3
| | | | | Regenerated with fjl/gencodec@1a75a2161009 Also add ,omitempty to optional GenesisAccount fields.
* core: refactor genesis handlingFelix Lange2017-03-231-161/+217
| | | | | | | | | | | | | | | | | | | | | | | | This commit solves several issues concerning the genesis block: * Genesis/ChainConfig loading was handled by cmd/geth code. This left library users in the cold. They could specify a JSON-encoded string and overwrite the config, but didn't get any of the additional checks performed by geth. * Decoding and writing of genesis JSON was conflated in WriteGenesisBlock. This made it a lot harder to embed the genesis block into the forthcoming config file loader. This commit changes things so there is a single Genesis type that represents genesis blocks. All uses of Write*Genesis* are changed to use the new type instead. * If the chain config supplied by the user was incompatible with the current chain (i.e. the chain had already advanced beyond a scheduled fork), it got overwritten. This is not an issue in practice because previous forks have always had the highest total difficulty. It might matter in the future though. The new code reverts the local chain to the point of the fork when upgrading configuration. The change to genesis block data removes compression library dependencies from package core.
* cmd/utils, core, params: fork all teh things for dev mode (#3697)Jeffrey Wilcke2017-03-011-0/+3
|
* all: next batch of log polishes to contextual versionsPéter Szilágyi2017-02-281-2/+1
|
* common: move big integer math to common/math (#3699)Felix Lange2017-02-271-8/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * common: remove CurrencyToString Move denomination values to params instead. * common: delete dead code * common: move big integer operations to common/math This commit consolidates all big integer operations into common/math and adds tests and documentation. There should be no change in semantics for BigPow, BigMin, BigMax, S256, U256, Exp and their behaviour is now locked in by tests. The BigD, BytesToBig and Bytes2Big functions don't provide additional value, all uses are replaced by new(big.Int).SetBytes(). BigToBytes is now called PaddedBigBytes, its minimum output size parameter is now specified as the number of bytes instead of bits. The single use of this function is in the EVM's MSTORE instruction. Big and String2Big are replaced by ParseBig, which is slightly stricter. It previously accepted leading zeros for hexadecimal inputs but treated decimal inputs as octal if a leading zero digit was present. ParseUint64 is used in places where String2Big was used to decode a uint64. The new functions MustParseBig and MustParseUint64 are now used in many places where parsing errors were previously ignored. * common: delete unused big integer variables * accounts/abi: replace uses of BytesToBig with use of encoding/binary * common: remove BytesToBig * common: remove Bytes2Big * common: remove BigTrue * cmd/utils: add BigFlag and use it for error-checked integer flags While here, remove environment variable processing for DirectoryFlag because we don't use it. * core: add missing error checks in genesis block parser * common: remove String2Big * cmd/evm: use utils.BigFlag * common/math: check for 256 bit overflow in ParseBig This is supposed to prevent silent overflow/truncation of values in the genesis block JSON. Without this check, a genesis block that set a balance larger than 256 bits would lead to weird behaviour in the VM. * cmd/utils: fixup import
* all: blidly swap out glog to our log15, logs need reworkPéter Szilágyi2017-02-231-3/+2
|
* core: ignore 0x prefix for code in JSON genesis blocks (#3656)Martin Holst Swende2017-02-131-1/+1
|
* core/genesis: add support for setting nonce in 'alloc'Martin Holst Swende2017-01-251-0/+2
| | | | This is to be able to set `pre`-state when performing blockchain tests through Hive, we need to be able to set the nonce.
* core: remove support for Olympic networkBas van Kervel2017-01-121-28/+8
|
* core,cmd/utils: bugfix for ropsten dump importsBas van Kervel2017-01-051-1/+3
|
* core: implemented new ropsten testnetJeffrey Wilcke2016-11-231-25/+13
|
* cmd/geth, core, light, mobile: removed state account StartingNonceJeffrey Wilcke2016-11-231-2/+2
| | | | All account's nonce start at 0.
* core, core/state, trie: EIP158, reprice & skip empty account writeJeffrey Wilcke2016-11-131-3/+3
| | | | | | | | | | | | | | | This commit implements EIP158 part 1, 2, 3 & 4 1. If an account is empty it's no longer written to the trie. An empty account is defined as (balance=0, nonce=0, storage=0, code=0). 2. Delete an empty account if it's touched 3. An empty account is redefined as either non-existent or empty. 4. Zero value calls and zero value suicides no longer consume the 25k reation costs. params: moved core/config to params Signed-off-by: Jeffrey Wilcke <jeffrey@ethereum.org>
* core: improved chainDb using sequential keyszsfelfoldi2016-06-071-3/+3
|
* core, eth: added json tag field for proper unmarshallingJeffrey Wilcke2016-04-251-1/+1
| | | | | | | | | According to our own instructions the genesis config attribute should be "config". The genesis definition in the go code, however, has a field called `ChainConfig`. This field now has a `json:"config"` struct tag so that the json is properly unmarshalled. This fixes #2482
* core: added basic chain configurationJeffrey Wilcke2016-04-011-9/+14
| | | | | | | | | Added chain configuration options and write out during genesis database insertion. If no "config" was found, nothing is written to the database. Configurations are written on a per genesis base. This means that any chain (which is identified by it's genesis hash) can have their own chain settings.
* cmd, common, core, eth, node, rpc, tests, whisper, xeth: use protocol stacksPéter Szilágyi2015-11-271-39/+75
|
* core, eth, miner, xeth: clean up tx/receipt db accessorsPéter Szilágyi2015-11-191-1/+1
|
* core, eth: receipt chain reconstructionPéter Szilágyi2015-10-191-1/+1
|
* core/state, core, miner: handle missing root error from state.NewGustav Simonsson2015-10-161-3/+4
|
* Merge pull request #1888 from obscuren/testnetJeffrey Wilcke2015-10-091-0/+21
|\ | | | | cmd, core, eth: added official testnet
| * cmd, core, eth: added official testnetJeffrey Wilcke2015-10-091-0/+21
| |
* | Merge pull request #1850 from karalabe/genesis-block-receiptsJeffrey Wilcke2015-10-071-0/+3
|\ \ | |/ |/| core: fix #1848, block receipts db entry for the genesis too
| * core: fix #1848, block receipts db entry for the genesis tooPéter Szilágyi2015-09-251-0/+3
| |
* | core, core/state: batch-based state syncFelix Lange2015-09-231-6/+10
|/
* core, core/types: readd transactions after chain re-orgJeffrey Wilcke2015-09-221-5/+17
| | | | | | | | | | | | | | Added a `Difference` method to `types.Transactions` which sets the receiver to the difference of a to b (NOTE: not a **and** b). Transaction pool subscribes to RemovedTransactionEvent adding back to those potential missing from the chain. When a chain re-org occurs remove any transactions that were removed from the canonical chain during the re-org as well as the receipts that were generated in the process. Closes #1746
* all: move common.Database to package ethdbFelix Lange2015-09-151-4/+5
|
* core: split out TD from database and all internalsPéter Szilágyi2015-09-111-10/+10
|
* core, eth: split the db blocks into headers and bodiesPéter Szilágyi2015-09-111-1/+1
|
* Add tests for uncle timestamps and refactor timestamp typeGustav Simonsson2015-08-251-1/+1
|
* core, eth, trie, xeth: merged state, chain, extra databases in oneJeffrey Wilcke2015-08-081-9/+9
|
* Merge pull request #1515 from fjl/license-fixesJeffrey Wilcke2015-07-281-1/+1
|\ | | | | all: fix license headers one more time
| * all: fix license headers one more timeFelix Lange2015-07-241-1/+1
| | | | | | | | I forgot to update one instance of "go-ethereum" in commit 3f047be5a.
* | core: genesis extra data field fixJeffrey Wilcke2015-07-261-1/+1
| |
* | core: fixed genesis write out to write only canon numberJeffrey Wilcke2015-07-261-1/+8
| |
* | core: check genesis block before writeoutJeffrey Wilcke2015-07-251-0/+4
|/
* all: update license headers to distiguish GPL/LGPLFelix Lange2015-07-231-4/+4
| | | | | All code outside of cmd/ is licensed as LGPL. The headers now reflect this by calling the whole work "the go-ethereum library".
* cmd, core, eth, common: genesis preparationJeffrey Wilcke2015-07-101-38/+96
| | | | | Implemented the --genesis flag thru which we can set a custom genesis block, including the official Ethereum genesis block.
* all: update license informationFelix Lange2015-07-071-0/+16
|
* core, miner, tests: renamed state methodsJeffrey Wilcke2015-07-041-1/+1
| | | | | | | | | | | | * Update => SyncIntermediate * Added SyncObjects SyncIntermediate only updates whatever has changed, but, as a side effect, requires much more disk space. SyncObjects will only sync whatever is required for a block and will not save intermediate state to disk. As drawback this requires more time when more txs come in.
* core: add GenerateChain, GenesisBlockForTestingFelix Lange2015-06-301-0/+18
|
* core/types: make blocks immutableFelix Lange2015-06-301-26/+11
|
* core: settable genesis nonceobscuren2015-06-091-2/+2
| | | | | | | You can set the nonce of the block with `--genesisnonce`. When the genesis nonce changes and it doesn't match with the first block in your database it will fail. A new `datadir` must be given if the nonce of the genesis block changes.
* types: block json unmarshal method addedobscuren2015-06-041-2/+2
|
* Merge branch 'frontier/natspec' of ↵obscuren2015-04-211-2/+2
|\ | | | | | | https://github.com/ethersphere/go-ethereum into ethersphere-frontier/natspec
| * test account is no longer permanently in genesis block, only put there when ↵zsfelfoldi2015-04-201-8/+2
| | | | | | | | testing
| * NatSpec contracts are now not in the genesis block but added by the testzsfelfoldi2015-04-201-1/+0
| |
| * NatSpec passing end to end testzsfelfoldi2015-04-201-3/+2
| |
| * NatSpec contracts in genesis block, end to end test (unfinished)zsfelfoldi2015-04-201-0/+8
| |
* | core: moved TD calculation from proc to chainobscuren2015-04-201-0/+1
|/
* Block header changed & console miner controlobscuren2015-04-061-1/+1
| | | | | | * miner control moved to `admin.miner` * miner option to set extra data * block extra now bytes
* Read most protocol params from common/params.jsonGustav Simonsson2015-04-021-5/+3
| | | | | | | | | * Add params package with exported variables generated from github.com/ethereum/common/blob/master/params.json * Use params package variables in applicable places * Add check for minimum gas limit in validation of block's gas limit * Remove common/params.json from go-ethereum to avoid outdated version of it
* Blocktest fixed, Execution fixedobscuren2015-04-011-1/+1
| | | | | | * Added new CreateAccount method which properly overwrites previous accounts (excluding balance) * Fixed block tests (100% success)
* Added Code fieldobscuren2015-03-311-2/+6
|
* moved state and vm to coreobscuren2015-03-231-1/+1
|
* core: fix testsFelix Lange2015-03-181-4/+0
|
* converted vmobscuren2015-03-171-4/+3
|
* Moved ethutil => commonobscuren2015-03-161-9/+9
|
* POW fixesobscuren2015-03-141-1/+0
|
* Increased genesis gas & gas floor limit to 3141592obscuren2015-03-131-1/+2
|
* Miner fixes and updates (including miner)obscuren2015-03-051-2/+3
|
* Fixed genesisobscuren2015-03-041-7/+7
|
* updated genesisobscuren2015-03-041-0/+4
|
* Changed nonce to a uint64obscuren2015-03-041-1/+1
|
* Removed some methods from the JS REPLobscuren2015-03-011-2/+0
|
* Minor updates for releaseobscuren2015-02-211-13/+31
|
* Docs & old code removedobscuren2015-02-031-1/+0
|
* moving to a better xethobscuren2015-01-291-1/+1
|
* Minor fixed and additions for block procobscuren2015-01-081-0/+1
| | | | | | * Path check length * Genesis include TD * Output TD on last block
* Refactored ethutil.Config.Db outobscuren2015-01-071-2/+3
|
* Switched to new trieobscuren2014-12-241-1/+1
|
* Refactored block & Transactionobscuren2014-12-231-32/+33
| | | | * Includes new rlp decoder
* Renamed `chain` => `core`obscuren2014-12-041-0/+52