- Nov 12, 2019
-
-
Jaynti Kanani authored
-
- May 10, 2019
-
-
Péter Szilágyi authored
* core: fix import errors on clique crashes + empty blocks * cosensus/clique, core: add test for the mirrored state issue * core: address todo question wrt log count * core: raise a louder warning for non-clique known blocks
-
- Apr 30, 2019
-
-
Martin Holst Swende authored
* consensus,core,miner: avoid overhead of creating a new block * consensus: nitpick dot * consensus: fix some comment formatting nits
-
- Apr 15, 2019
-
-
Matthew Halpern authored
-
- Apr 02, 2019
-
-
Martin Holst Swende authored
* all: simplify timestamps to uint64 * tests: update definitions * clef, faucet, mobile: leftover uint64 fixups * ethash: fix tests * graphql: update schema for timestamp * ethash: remove unused variable
-
- Feb 08, 2019
-
-
Péter Szilágyi authored
-
Martin Holst Swende authored
-
- Nov 07, 2018
-
-
Felix Lange authored
* core: speed up GenerateChain Use a mock implementation of ChainReader instead of creating and destroying a BlockChain object for each generated block. * eth/downloader: speed up tests by generating chain only once This change reworks the downloader tests so they share a common test blockchain instead of generating a chain in every test. The tests are roughly twice as fast now.
-
- Sep 20, 2018
-
-
Gary Rong authored
-
- Sep 11, 2018
-
-
Péter Szilágyi authored
-
- Aug 29, 2018
-
-
Péter Szilágyi authored
-
- Jun 19, 2018
-
-
Wenbiao Zheng authored
* core: move test util var/func to test file * core: remove useless func
-
- May 09, 2018
-
-
Gary Rong authored
* all: get rid of error when create mdb * core: clean up variables definition * all: inline mdb definition
-
- Feb 05, 2018
-
-
Péter Szilágyi authored
This commit reduces database I/O by not writing every state trie to disk.
-
- Jan 29, 2018
-
-
mark.lin authored
-
- Jan 03, 2018
-
-
Péter Szilágyi authored
-
- Dec 22, 2017
-
-
Gary Rong authored
* accounts, consensus, core, eth: make chain maker consensus agnostic * consensus, core: move CalcDifficulty to Engine interface * consensus: add docs for calcDifficulty function * consensus, core: minor comment fixups
-
- Oct 24, 2017
-
-
Péter Szilágyi authored
* cmd, consensus, core, miner: instatx clique for --dev * cmd, consensus, clique: support configurable --dev block times * cmd, core: allow --dev to use persistent storage too
-
- Aug 24, 2017
-
-
Péter Szilágyi authored
-
- Aug 18, 2017
-
-
Miya Chen authored
-
- Jun 30, 2017
-
-
Péter Szilágyi authored
This PR polishes the EIP 100 difficulty adjustment algorithm to match the same mechanisms as the Homestead was implemented to keep the code uniform. It also avoids a few memory allocs by reusing big1 and big2, pulling it out of the common package and into ethash. The commit also fixes chain maker to forward the uncle hash when creating a simulated chain (it wasn't needed until now so we just skipped a copy there).
-
- Jun 27, 2017
-
-
Felix Lange authored
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).
-
- May 25, 2017
-
-
changhong authored
1. fix typos 2. methods recevier of struct should be same 3. comments improve (cherry picked from commit 1ba979539582a00b7fd1a7c8a37a6852e59eac0d)
-
- May 18, 2017
-
-
Jeffrey Wilcke authored
-
Jeffrey Wilcke authored
This commit is a preparation for the upcoming metropolis hardfork. It prepares the state, core and vm packages such that integration with metropolis becomes less of a hassle. * Difficulty calculation requires header instead of individual parameters * statedb.StartRecord renamed to statedb.Prepare and added Finalise method required by metropolis, which removes unwanted accounts from the state (i.e. selfdestruct) * State keeps record of destructed objects (in addition to dirty objects) * core/vm pre-compiles may now return errors * core/vm pre-compiles gas check now take the full byte slice as argument instead of just the size * core/vm now keeps several hard-fork instruction tables instead of a single instruction table and removes the need for hard-fork checks in the instructions * core/vm contains a empty restruction function which is added in preparation of metropolis write-only mode operations * Adds the bn256 curve * Adds and sets the metropolis chain config block parameters (2^64-1)
-
- Apr 12, 2017
-
-
Péter Szilágyi authored
* consensus, core, ethstats: use engine specific block beneficiary * core, eth, les, miner: use explicit beneficiary during mining
-
- Apr 04, 2017
-
-
Péter Szilágyi authored
This commit adds pluggable consensus engines to go-ethereum. In short, it introduces a generic consensus interface, and refactors the entire codebase to use this interface.
-
- Mar 23, 2017
-
-
Felix Lange authored
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.
-
- Mar 09, 2017
-
-
Péter Szilágyi authored
-
- Jan 17, 2017
-
-
Nick Johnson authored
-
- Jan 05, 2017
-
-
Jeffrey Wilcke authored
The run loop, which previously contained custom opcode executes have been removed and has been simplified to a few checks. Each operation consists of 4 elements: execution function, gas cost function, stack validation function and memory size function. The execution function implements the operation's runtime behaviour, the gas cost function implements the operation gas costs function and greatly depends on the memory and stack, the stack validation function validates the stack and makes sure that enough items can be popped off and pushed on and the memory size function calculates the memory required for the operation and returns it. This commit also allows the EVM to go unmetered. This is helpful for offline operations such as contract calls.
-
- Nov 13, 2016
-
-
Jeffrey Wilcke authored
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>
-
- Oct 06, 2016
-
-
Felix Lange authored
This commit replaces the deep-copy based state revert mechanism with a linear complexity journal. This commit also hides several internal StateDB methods to limit the number of ways in which calling code can use the journal incorrectly. As usual consultation and bug fixes to the initial implementation were provided by @karalabe, @obscuren and @Arachnid. Thank you!
-
- Jul 15, 2016
-
-
Péter Szilágyi authored
-
- Mar 31, 2016
-
-
Jeffrey Wilcke authored
The chain maker and the simulated backend now run with a homestead phase beginning at block 0 (i.e. there's no frontier). This commit also fixes up #2388
-
Jeffrey Wilcke authored
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.
-
- Mar 23, 2016
-
-
Jeffrey Wilcke authored
The EVM is now initialised with an additional configured object that allows you to turn on debugging options.
-
- Mar 15, 2016
-
-
Leif Jurvetson authored
-
- Jan 11, 2016
-
-
Péter Szilágyi authored
-
- Dec 18, 2015
-
-
Felix Lange authored
The test chain generated by makeChainFork included invalid uncle headers, crashing the generator during the state commit. The headers were invalid because they used the iteration counter as the block number, even though makeChainFork uses a block with number > 0 as the parent. Fix this by introducing BlockGen.Number, which allows accessing the actual number of the block being generated.
-