Commit Graph

531 Commits

Author SHA1 Message Date
Marius van der Wijden 1438e7c324
params: set TTD for sepolia testnet (#25179) 2022-06-28 14:48:13 +02:00
Péter Szilágyi 67454df08b
params: begin v1.10.20 release cycle 2022-06-15 15:56:01 +03:00
Péter Szilágyi 23bee16208
params: release Geth v1.10.19 2022-06-15 15:49:45 +03:00
Marius van der Wijden d8f963811d
cmd, params: implement Gray Glacier hard-fork (EIP-5133) (#25088)
* cmd/geth, params: implement Gray Glacier (EIP-5133)

* cmd/evm: add gray glacier tests

* params: nitpicks

* params: fixes
2022-06-15 14:10:38 +03:00
Péter Szilágyi 41e75480df
eth, les, params: log chain config a bit saner (#24904)
Previously on Geth startup we just logged the chain config is a semi-json-y format. Whilst that worked while we had a handful of hard-forks defined, currently it's kind of unwieldy. 

This PR converts that original data dump and converts it into a user friendly - alas multiline - log output.
2022-06-07 12:49:07 +02:00
Martin Holst Swende 7e9514b8c3
params: update ropsten terminal total difficulty block (#25018) 2022-06-07 08:11:01 +02:00
Marius van der Wijden be9742721f
params: set emergency ropsten TTD to 100_000_000_000_000_000_000_000 (#24975) 2022-05-27 09:23:55 +03:00
Felix Lange d575a2d3bc params: begin v1.10.19 release cycle 2022-05-25 14:44:52 +02:00
Felix Lange de23cf910b params: go-ethereum v1.10.18 stable 2022-05-25 14:42:54 +02:00
Péter Szilágyi e31ff1f33c
params: update CHTs for Geth 1.10.18 2022-05-24 16:20:43 +03:00
Péter Szilágyi 975dee2593
params: fix broken linter 2022-05-18 17:58:59 +03:00
Afr Schoe 21a3a21bf9
params: update goerli bootnodes (#24900)
* params: update goerli bootnodes

* params: use ip for enodes
2022-05-18 17:48:08 +03:00
Marius van der Wijden 4f80f7806e
params: set ropsten TTD for TheMerge (#24876) 2022-05-16 07:32:56 +03:00
Martin Holst Swende 8ec8b81b29
params: begin v1.10.18 release cycle 2022-03-29 19:19:40 +02:00
Martin Holst Swende 25c9b49fdb
params: go-ethereum v1.10.17 stable 2022-03-29 19:18:26 +02:00
Marius van der Wijden 667e1c038e
core, params: add kiln flag (#24548) 2022-03-17 17:34:22 +02:00
Péter Szilágyi 8f66ea3786
eth/downloader: implement beacon sync (#23982)
* eth/downloader: implement beacon sync

* eth/downloader: fix a crash if the beacon chain is reduced in length

* eth/downloader: fix beacon sync start/stop thrashing data race

* eth/downloader: use a non-nil pivot even in degenerate sync requests

* eth/downloader: don't touch internal state on beacon Head retrieval

* eth/downloader: fix spelling mistakes

* eth/downloader: fix some typos

* eth: integrate legacy/beacon sync switchover and UX

* eth: handle UX wise being stuck on post-merge TTD

* core, eth: integrate the beacon client with the beacon sync

* eth/catalyst: make some warning messages nicer

* eth/downloader: remove Ethereum 1&2 notions in favor of merge

* core/beacon, eth: clean up engine API returns a bit

* eth/downloader: add skeleton extension tests

* eth/catalyst: keep non-kiln spec, handle mining on ttd

* eth/downloader: add beacon header retrieval tests

* eth: fixed spelling, commented failing tests out

* eth/downloader: review fixes

* eth/downloader: drop peers failing to deliver beacon headers

* core/rawdb: track beacon sync data in db inspect

* eth: fix review concerns

* internal/web3ext: nit

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2022-03-11 14:14:45 +02:00
Martin Holst Swende 0cb4d65f8d
params: replace 2 bootnodes (#24432) 2022-02-23 11:33:14 +01:00
Martin Holst Swende 2056e596f2
params: begin v1.10.17 release cycle 2022-02-15 13:34:12 +01:00
Martin Holst Swende 20356e57b1
params: go-ethereum v1.10.16 stable 2022-02-15 13:32:24 +01:00
Marius van der Wijden b1e72f7ea9
core/evm: RANDOM opcode (EIP-4399) (#24141)
* core: implement eip-4399 random opcode

* core: make vmconfig threadsafe

* core: miner: pass vmConfig by value not reference

* all: enable 4399 by Rules

* core: remove diff (f)

* tests: set proper difficulty (f)

* smaller diff (f)

* eth/catalyst: nit

* core: make RANDOM a pointer which is only set post-merge

* cmd/evm/internal/t8ntool: fix t8n tracing of 4399

* tests: set difficulty

* cmd/evm/internal/t8ntool: check that baserules are london before applying the merge chainrules
2022-01-10 09:44:21 +02:00
Felix Lange 0f893109c9 params: begin v1.10.16 release cycle 2022-01-05 17:17:32 +01:00
Felix Lange 8be800ffa9 params: go-ethereum v1.10.15 stable 2022-01-05 17:16:40 +01:00
Felix Lange dddf73abbd params: begin v1.10.15 release cycle 2021-12-23 11:23:07 +01:00
Felix Lange 11a3a35097 params: release go-ethereum v1.10.14 stable 2021-12-23 11:21:45 +01:00
Marius van der Wijden 2295640ebd
eth/catalyst: implement kintsugi-spec v3 (#24067) 2021-12-17 15:38:58 +01:00
jovijovi b3b8b268eb
consensus: define MaxGasLimit as a const in params (#24092)
* consensus: use the maxGasLimit constant to check the header.GasLimit to avoid creating new variables repeatedly

* consensus: check the header.GasLimit by the public constant MaxGasLimit

* consensus: check the header.GasLimit by the constant MaxGasLimit
2021-12-14 10:17:25 +01:00
Alex Beregszaszi a69d4b273d
core/vm: Rename SHA3 instruction to KECCAK256 (#23976)
This was proposed in 2016, Solidity uses this since 2017, and evmone and other VMs use the keccak256 name. This brings geth in line with those.
2021-11-30 10:34:34 +01:00
Péter Szilágyi 8151dd67e1
params: begin v1.10.14 release cycle 2021-11-24 14:09:57 +02:00
Péter Szilágyi 7a0c19f813
params: release Geth v1.10.13 2021-11-24 13:44:10 +02:00
Péter Szilágyi ad11691daf
params: begin v1.10.13 release cycle 2021-11-08 15:44:11 +02:00
Péter Szilágyi 6c4dc6c388
params: release Geth v1.10.12 2021-11-08 15:42:08 +02:00
Péter Szilágyi c4fff0f56e
params: update Ropsten CHT too 2021-11-08 14:12:22 +02:00
Péter Szilágyi e61b8cb1f8
params: update CHTs for the 1.10.12 release 2021-11-08 13:40:32 +02:00
Martin Holst Swende e1c000b0dd
cmd/geth: add support for sepolia testnet (#23730)
* cmd/geth: add support for sepolia testnet

* core: last details on sepolia genesis

* params: fix sepolia hash + reduce testing code

* Update params/bootnodes.go

* cmd/geth: fix attach path for sepolia

* params: update bootnodes

* params: fix

* core: fix docstring

* params: add sepolia CHT
2021-11-08 13:06:01 +02:00
Martin Holst Swende 32150f8aa9
cmd/geth, cmd/evm, params: implement Arrow Glacier (EIP 4345) (#23810)
This PR adds support for ArrowGlacier, as defined by

    https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/arrow-glacier.md
    https://eips.ethereum.org/EIPS/eip-4345

> Starting with FORK_BLOCK_NUMBER the client will calculate the difficulty based on a fake block number suggesting to the client that the difficulty bomb is adjusting 10,700,000 blocks later than the actual block number.

This also adds support for evm t8n to return the calculated difficulty, so it can be used to construct test.
2021-10-28 22:18:14 +02:00
Martin Holst Swende 114ed3edcd
params: begin v1.10.12 release cycle (second attempt) 2021-10-20 14:10:09 +02:00
Martin Holst Swende 7231b3efb8
params: release go-ethereum v1.10.11 stable (now with gofmt) 2021-10-20 14:08:23 +02:00
Martin Holst Swende da1b6f3906
params: begin v1.10.12 release cycle 2021-10-20 14:02:40 +02:00
Martin Holst Swende f423290ac8
params: update version 2021-10-20 13:56:37 +02:00
Felix Lange 464885faaa params: begin v1.10.11 release cycle 2021-10-15 12:18:10 +02:00
Felix Lange bb74230f2a params: release go-ethereum v1.10.10 stable 2021-10-15 12:17:13 +02:00
Marius van der Wijden 53b1420ede
params: changed CatalystBlock to TerminalTotalDifficulty (#23700)
* params: changed CatalystBlock to TerminalTotalDifficulty

* eth/catalyst: comment out unused code
2021-10-11 18:58:11 +03:00
Felix Lange 06082fe267 params: begin v1.10.10 release cycle 2021-09-29 20:00:31 +02:00
Felix Lange eae3b1946a params: release go-ethereum v1.10.9 stable 2021-09-29 19:59:41 +02:00
Péter Szilágyi ea4bc2dbff
params: begin Geth v1.10.9 release cycle 2021-08-24 10:08:08 +03:00
Péter Szilágyi 26675454bf
params: release Geth v1.10.8 2021-08-24 10:04:30 +03:00
Zachinquarantine 85b9bdd641
cmd, core: remove calaveras testnet (#23366)
Removes references to the short-lived Calaveras testnet
2021-08-17 18:43:25 +02:00
Péter Szilágyi a580f7d6c5
params: begin v1.10.8 release cycle 2021-08-12 10:15:49 +03:00
Péter Szilágyi 12f0ff40b1
params: release Geth v1.10.7 2021-08-12 10:14:03 +03:00
Péter Szilágyi f4ad493870
params: update CHTs for the 1.10.7 release 2021-08-12 10:11:39 +03:00
Felix Lange a1f16bc74c params: begin v1.10.7 release cycle 2021-07-22 16:45:22 +02:00
Felix Lange 576681f29b params: release go-ethereum v1.10.6 stable 2021-07-22 16:44:28 +02:00
Péter Szilágyi f0b1bddac4
params: begin v1.10.6 release cycle 2021-07-14 11:04:36 +03:00
Péter Szilágyi 33ca98ece9
params: release Geth v1.10.5, Exodus Cluster 2021-07-14 11:01:38 +03:00
Péter Szilágyi afd4227df8
params: update CHTs for the 1.10.5 release 2021-07-09 14:27:41 +03:00
Martin Holst Swende ff4ff30a68
core, params: define london block at 12965000 (#23176)
* core, params: define london block at 12965000

* core/forkid: fix test
2021-07-08 12:34:56 +03:00
Sina Mahmoodi 5441a8fa47
all: remove noop vm config flags (#23111)
* all: rm external interpreter and ewasm config

* core/vm: rm Interpreter interface

* cmd/geth: deprecate interpreter config fields
2021-07-06 22:03:09 +02:00
Afanasii Kurakin bbb2b30506
params: fix typo in gas cost comments (#23065) 2021-06-18 12:15:51 +02:00
Felix Lange 87a11a87c2 params: begin v1.10.5 release cycle 2021-06-17 12:36:42 +02:00
Felix Lange aa637fd38a params: release go-ethereum v1.10.4 stable 2021-06-17 12:35:17 +02:00
Péter Szilágyi cdb9fefc48
params: bump CHTs for Geth v1.10.4 2021-06-16 09:14:58 +03:00
Péter Szilágyi 7a7abe3de8
accounts/abi/bind: fix bounded contracts and sim backend for 1559 (#23038)
* accounts/abi/bind: fix bounded contracts and sim backend for 1559

* accounts/abi/bind, ethclient: don't rely on chain config for gas prices

* all: enable London for all internal tests

* les: get receipt type info in les tests

* les: fix weird test

Co-authored-by: Martin Holst Swende <martin@swende.se>
2021-06-15 13:56:14 +03:00
Martin Holst Swende 087ed9c92e
params, core/forkid: add london testnet blocks (#23041)
* params: add london testnet blocks

* core/forkid: update fork hashes
2021-06-14 20:35:01 +03:00
Martin Holst Swende 08ea52e77a
cmd/geth, core, params: replace baikal with calaveras (#22972)
* cmd/geth, core, params: replace baikal with calaveras

* params: fix genesis hash for Calaveras

Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2021-05-31 10:06:48 +03:00
Martin Holst Swende 94451c2788
all: implement EIP-1559 (#22837)
This is the initial implementation of EIP-1559 in packages core/types and core.
Mining, RPC, etc. will be added in subsequent commits.

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
Co-authored-by: lightclient@protonmail.com <lightclient@protonmail.com>
Co-authored-by: Felix Lange <fjl@twurst.com>
2021-05-17 15:13:22 +02:00
Martin Holst Swende a5669ae292
core, params: implement EIP-3529 (#22733)
* core, params: implement EIP-3529

* core/vm: add london instructionset

* core/vm: add method doc for EIP enabler

Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2021-05-07 09:25:32 +03:00
Martin Holst Swende cc606be74c
all: define London+baikal, undefine yolov3, add london override flag (#22822)
* all: define London+baikal, undefine yolov3, add london override flag

* cmd, core, params: add baikal genesis definition
2021-05-06 12:07:42 +03:00
Felix Lange 37b5595456 params: begin v1.10.4 release cycle 2021-05-05 13:21:13 +02:00
Felix Lange 991384a7f6 params: go-ethereum v1.10.3 stable 2021-05-05 13:20:06 +02:00
Felix Lange afb097eda8
params: remove dependency on crypto (#22788)
* params: remove dependency on crypto

Package params should not depend on package crypto because building
crypto requires cgo.

Since build/ci.go needs package params to get the go-ethereum version
number, C code must be compiled in order to run the build tool, which is
annoying for certain cross-compilation setups.

* params: add SectionHead
2021-05-03 15:28:02 +03:00
Guillaume Ballet f79cce5de9
eth/catalyst: add catalyst API prototype (#22641)
This change adds the --catalyst flag, enabling an RPC API for eth2 integration.
In this initial version, catalyst mode also disables all peer-to-peer networking.

Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>
Co-authored-by: Felix Lange <fjl@twurst.com>
2021-04-16 21:29:22 +02:00
meowsbits 3cfd0fe7a8
core: add TestGenesisHashes and fix YoloV3 (#22559)
This adds simple unit test checking if the hard-coded genesis
hash values in package params match the actual genesis block hashes.
2021-04-16 00:32:16 +02:00
Felix Lange 04dcc9378d params: begin v1.10.3 release cycle 2021-04-08 13:04:30 +02:00
Felix Lange 97d11b0187 params: release go-ethereum v1.10.2 stable 2021-04-08 13:02:25 +02:00
Péter Szilágyi e3ff37c47a
params: update CHTs for v1.10.2 2021-04-08 13:23:34 +03:00
Péter Szilágyi 182670849e
params: begin v1.10.2 release cycle 2021-03-08 11:34:08 +02:00
Péter Szilágyi c2d2f4ed8f
params: release Geth v1.10.1 2021-03-08 11:32:20 +02:00
Péter Szilágyi 9230ca4924 Revert "core/forkid, params: unset Berlin fork number (#22413)"
This reverts commit ba999105ef.
2021-03-04 10:44:37 +02:00
Felix Lange 63385374ec params: begin v1.10.1 release cycle 2021-03-03 18:01:31 +01:00
Felix Lange 56dec25ae2 params: release geth 1.10.0 stable 2021-03-03 17:44:17 +01:00
Péter Szilágyi ba999105ef
core/forkid, params: unset Berlin fork number (#22413) 2021-03-03 12:05:27 +02:00
gary rong c539a052bd
params: update chts (#22418) 2021-03-03 12:04:25 +02:00
Péter Szilágyi 0928562670
all: define Berlin hard fork spec 2021-02-26 14:24:07 +02:00
lightclient bbfb1e4008
all: add support for EIP-2718, EIP-2930 transactions (#21502)
This adds support for EIP-2718 typed transactions as well as EIP-2930
access list transactions (tx type 1). These EIPs are scheduled for the
Berlin fork.

There very few changes to existing APIs in core/types, and several new APIs
to deal with access list transactions. In particular, there are two new
constructor functions for transactions: types.NewTx and types.SignNewTx.
Since the canonical encoding of typed transactions is not RLP-compatible,
Transaction now has new methods for encoding and decoding: MarshalBinary
and UnmarshalBinary.

The existing EIP-155 signer does not support the new transaction types.
All code dealing with transaction signatures should be updated to use the
newer EIP-2930 signer. To make this easier for future updates, we have
added new constructor functions for types.Signer: types.LatestSigner and
types.LatestSignerForChainID. 

This change also adds support for the YoloV3 testnet.

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: Ryan Schneider <ryanleeschneider@gmail.com>
2021-02-25 15:26:57 +01:00
Péter Szilágyi d86906f1e6
params: just to make snapshots a bit more official 2021-02-08 13:03:06 +02:00
Sina Mahmoodi eb21c652c0
cmd,core,eth,params,tests: define yolov3 + enable EIP-2565 (#22213)
Removes the yolov2 definition, adds yolov3, including EIP-2565. This PR also disables some of the erroneously generated blockchain and statetests, and adds the new genesis hash + alloc for yolov3. 
This PR disables the CLI switches for yolo, since it's not complete until we merge support for 2930.
2021-01-28 21:19:07 +01:00
Felföldi Zsolt a72fa88a0d
les: switch to new discv5 (#21940)
This PR enables running the new discv5 protocol in both LES client
and server mode. In client mode it mixes discv5 and dnsdisc iterators
(if both are enabled) and filters incoming ENRs for "les" tag and fork ID.
The old p2p/discv5 package and all references to it are removed.

Co-authored-by: Felix Lange <fjl@twurst.com>
2021-01-26 21:41:35 +01:00
Felix Lange fc0662bb23 params: begin v1.9.26 release cycle 2020-12-11 09:03:16 +01:00
Felix Lange e787272901 params: go-ethereum v1.9.25 stable 2020-12-11 09:03:16 +01:00
gary rong 908c18073a
params: update CHTs (#21941) 2020-12-02 09:17:59 +01:00
Martin Holst Swende 6f4cccf8d2
core/vm, protocol_params: implement eip-2565 modexp repricing (#21607)
* core/vm, protocol_params: implement eip-2565 modexp repricing

* core/vm: fix review concerns
2020-11-13 13:39:59 +01:00
Felix Lange 919229d63c params: begin v1.9.25 release cycle 2020-11-12 21:21:24 +01:00
Péter Szilágyi cc05b050df
params: release Geth v1.9.24 with Go 1.15.5 (#21842) 2020-11-12 21:10:15 +01:00
Martin Holst Swende 68ac4eb796
params: update yolov2 bootnode with elastic ip 2020-10-23 16:47:26 +02:00
Martin Holst Swende f5182c7b9c
utils, params: add yolov2 bootnode 2020-10-23 15:40:48 +02:00
Martin Holst Swende 6487c002f6
all: implement EIP-2929 (gas cost increases for state access opcodes) + yolo-v2 (#21509)
* core/vm, core/state: implement EIP-2929 + YOLOv2

* core/state, core/vm: fix some review concerns

* core/state, core/vm: address review concerns

* core/vm: address review concerns

* core/vm: better documentation

* core/vm: unify sload cost as fully dynamic

* core/vm: fix typo

* core/vm/runtime: fix compilation flaw

* core/vm/runtime: fix renaming-err leftovers

* core/vm: renaming

* params/config: use correct yolov2 chainid for config

* core, params: use a proper new genesis for yolov2

* core/state/tests: golinter nitpicks
2020-10-23 08:26:57 +02:00
Felix Lange 51d026ca85 params: begin v1.9.24 release cycle 2020-10-15 12:30:41 +02:00
Felix Lange 8c2f271528 params: go-ethereum v1.9.23 stable 2020-10-15 12:29:42 +02:00
gary rong bdc7554918
params: update CHTs (#21706) 2020-10-14 11:57:37 +02:00
Raw Pong Ghmoa 2b2fd74158
params: update goerli testnet bootnodes (#21659)
* params: update pegasys besu bootnode

* params: update goerli initiative bootnodes
2020-10-06 08:35:21 +03:00
Martin Holst Swende 0ddd4612b7
core/vm, params: make 2200 in line with spec (#21605) 2020-09-28 14:14:45 +02:00
Péter Szilágyi c9959145a9
params: begin v1.9.23 release cycle 2020-09-28 11:23:02 +03:00
Péter Szilágyi c71a7e26a8
params: release Geth v1.9.22 2020-09-28 11:21:47 +03:00
Péter Szilágyi b5d362b2bf
params: update CHTs for Geth v1.9.22 2020-09-28 11:19:22 +03:00
Vinod Damle 8696dd39cb
params: allow setting Petersburg block before chain head (#21473)
* Allow setting PetersburgBlock before chainhead

if it is at the same block as ConstantinopleBlock

* Add a negative test
2020-09-16 09:39:35 +03:00
Péter Szilágyi 8d35b1eb2b
params: begin v1.9.22 release cycle 2020-09-09 11:23:37 +03:00
Péter Szilágyi 0287d54847
params: release Geth v1.9.21 2020-09-09 11:22:11 +03:00
Péter Szilágyi dc681fc1f6
params: update CHTs for v1.9.21 release 2020-09-09 10:33:20 +03:00
Felix Lange fc20680b95 params: begin v1.9.21 release cycle 2020-08-25 16:21:41 +02:00
Felix Lange 979fc96899 params: release Geth v1.9.20 2020-08-25 16:20:37 +02:00
Péter Szilágyi ce5f94920d
params: update CHTs for v1.9.20 release 2020-08-25 13:02:51 +03:00
Péter Szilágyi 04926db204
params: begin v1.9.20 release cycle 2020-08-11 14:11:16 +03:00
Péter Szilágyi 3e0641923d
params: release Geth v1.9.19 2020-08-11 14:10:21 +03:00
Péter Szilágyi 7afdf792ab
params: update CHTs for v1.9.19 2020-08-11 10:20:03 +03:00
Péter Szilágyi 8e7bee9b56
params: begin v1.9.19 release cycle 2020-07-27 14:58:45 +03:00
Péter Szilágyi f538259187
params: release Geth v1.9.18 2020-07-27 14:53:53 +03:00
gary rong b1be979443
params: upgrade CHTs (#21376) 2020-07-27 12:57:15 +03:00
Péter Szilágyi 722b742780
params: begin v1.9.18 release cycle 2020-07-20 15:58:33 +03:00
Péter Szilágyi 748f22c192
params: release Geth v1.9.17 2020-07-20 15:56:42 +03:00
gary rong 6eef141aef
les: historical data garbage collection (#19570)
This change introduces garbage collection for the light client. Historical
chain data is deleted periodically. If you want to disable the GC, use
the --light.nopruning flag.
2020-07-13 11:02:54 +02:00
Felix Lange b8dd0890b3 params: begin v1.9.17 release cycle 2020-07-10 12:40:31 +02:00
Felix Lange ea3b00ad75 params: go-ethereum v1.9.16 stable 2020-07-10 12:38:48 +02:00
Felix Lange da06519347 params: begin v1.9.16 release cycle 2020-06-08 11:00:17 +02:00
Felix Lange 0f77f34bb6 params: go-ethereum v1.9.15 stable 2020-06-08 10:56:48 +02:00
Péter Szilágyi a5c827af86
params: update CHTs for 1.9.15 release 2020-06-08 11:14:33 +03:00
Martin Holst Swende 890757f03a
cmd, core, params: inital support for yolo-v1 testnet (#21154)
* core,params,puppeth: inital support for yolo-v1 testnet

* cmd/geth, core: add yolov1 console flag

* cmd, core, params: YoloV1 bakein fixups

Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2020-06-03 12:05:15 +03:00
kilic 4fc678542d
core/vm, crypto/bls12381, params: add bls12-381 elliptic curve precompiles (#21018)
* crypto: add bls12-381 elliptic curve wrapper

* params: add bls12-381 precompile gas parameters

* core/vm: add bls12-381 precompiles

* core/vm: add bls12-381 precompile tests

* go.mod, go.sum: use latest bls12381 lib

* core/vm: move point encode/decode functions to base library

* crypto/bls12381: introduce bls12-381 library init function

* crypto/bls12381: import bls12381 elliptic curve implementation

* go.mod, go.sum: remove bls12-381 library

* remove unsued frobenious coeffs

supress warning for inp that used in asm

* add mappings tests for zero inputs

fix swu g2 minus z inverse constant

* crypto/bls12381: fix typo

* crypto/bls12381: better comments for bls12381 constants

* crypto/bls12381: swu, use single conditional for e2

* crypto/bls12381: utils, delete empty line

* crypto/bls12381: utils, use FromHex for string to big

* crypto/bls12381: g1, g2, strict length check for FromBytes

* crypto/bls12381: field_element, comparision changes

* crypto/bls12381: change swu, isogeny constants with hex values

* core/vm: fix point multiplication comments

* core/vm: fix multiexp gas calculation and lookup for g1 and g2

* core/vm: simpler imput length check for multiexp and pairing precompiles

* core/vm: rm empty multiexp result declarations

* crypto/bls12381: remove modulus type definition

* crypto/bls12381: use proper init function

* crypto/bls12381: get rid of new lines at fatal desciprtions

* crypto/bls12-381: fix no-adx assembly multiplication

* crypto/bls12-381: remove old config function

* crypto/bls12381: update multiplication backend

this commit changes mul backend to 6limb eip1962 backend

mul assign operations are dropped

* core/vm/contracts_tests: externalize test vectors for precompiles

* core/vm/contracts_test: externalize failure-cases for precompiles

* core/vm: linting

* go.mod: tiny up sum file

* core/vm: fix goimports linter issues

* crypto/bls12381: build tags for plain ASM or ADX implementation

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2020-06-03 09:44:32 +03:00
Martin Michlmayr 4f2784b38f
all: fix typos in comments (#21118) 2020-05-25 10:21:28 +02:00
Felföldi Zsolt b4a2681120
les, les/lespay: implement new server pool (#20758)
This PR reimplements the light client server pool. It is also a first step
to move certain logic into a new lespay package. This package will contain
the implementation of the lespay token sale functions, the token buying and
selling logic and other components related to peer selection/prioritization
and service quality evaluation. Over the long term this package will be
reusable for incentivizing future protocols.

Since the LES peer logic is now based on enode.Iterator, it can now use
DNS-based fallback discovery to find servers.

This document describes the function of the new components:
https://gist.github.com/zsfelfoldi/3c7ace895234b7b345ab4f71dab102d4
2020-05-22 13:46:34 +02:00
Péter Szilágyi 46698d7931
params: begin v1.9.15 release cycle 2020-05-13 12:33:58 +03:00
Péter Szilágyi 6d74d1e5f7
params: release go-ethereum v1.9.14 2020-05-13 12:31:35 +03:00
Péter Szilágyi 126ac94f36
params: bump CHTs for the v1.9.14 release 2020-05-11 18:56:09 +03:00
Marius van der Wijden 930e82d7f4
params, cmd/utils: remove outdated discv5 bootnodes, deprecate flags (#20949)
* params: remove outdated discv5 bootnodes

* cmd/utils: deprecated bootnodesv4/v5 flags
2020-05-11 11:16:32 +03:00
Péter Szilágyi 3bf1054a13
params: begin v1.9.14 release cycle 2020-04-16 10:41:32 +03:00
Péter Szilágyi cbc4ac264e
params: release Geth v1.9.13 2020-04-16 10:39:22 +03:00
Péter Szilágyi d77d35a4a9
params: update CHTs for the 1.9.13 release 2020-04-15 18:03:10 +03:00
Raw Pong Ghmoa 15540ae992
cmd: deprecate --testnet, use named networks instead (#20852)
* cmd/utils: make goerli the default testnet

* cmd/geth: explicitly rename testnet to ropsten

* core: explicitly rename testnet to ropsten

* params: explicitly rename testnet to ropsten

* cmd: explicitly rename testnet to ropsten

* miner: explicitly rename testnet to ropsten

* mobile: allow for returning the goerli spec

* tests: explicitly rename testnet to ropsten

* docs: update readme to reflect changes to the default testnet

* mobile: allow for configuring goerli and rinkeby nodes

* cmd/geth: revert --testnet back to ropsten and mark as legacy

* cmd/util: mark --testnet flag as deprecated

* docs: update readme to properly reflect the 3 testnets

* cmd/utils: add an explicit deprecation warning on startup

* cmd/utils: swap goerli and ropsten in usage

* cmd/geth: swap goerli and ropsten in usage

* cmd/geth: if running a known preset, log it for convenience

* docs: improve readme on usage of ropsten's testnet datadir

* cmd/utils: check if legacy `testnet` datadir exists for ropsten

* cmd/geth: check for legacy testnet path in console command

* cmd/geth: use switch statement for complex conditions in main

* cmd/geth: move known preset log statement to the very top

* cmd/utils: create new ropsten configurations in the ropsten datadir

* cmd/utils: makedatadir should check for existing testnet dir

* cmd/geth: add legacy testnet flag to the copy db command

* cmd/geth: add legacy testnet flag to the inspect command
2020-04-09 12:09:58 +03:00
Péter Szilágyi 8d7aa9078f
params: begin v1.9.13 release cycle 2020-03-16 13:44:58 +02:00
Péter Szilágyi b6f1c8dcc0
params: release Geth v1.9.12 2020-03-16 13:39:04 +02:00
Gregory Markou 4be8840120
core/vm: use dedicated SLOAD gas constant for EIP-2200 (#20646) 2020-02-18 15:07:41 +01:00
Péter Szilágyi 529b81dadb
params: begin v1.9.12 release cycle 2020-02-18 13:27:39 +02:00
Péter Szilágyi 6a62fe399b
params: release Geth v1.9.11 stable 2020-02-18 13:26:00 +02:00
Péter Szilágyi 4f55e24c02
params: update CHTs for the v1.9.11 release 2020-02-18 10:55:44 +02:00
Felix Lange 38d1b0cba2
cmd/geth: enable DNS discovery by default (#20660)
* node: expose config in service context

* eth: integrate p2p/dnsdisc

* cmd/geth: add some DNS flags

* eth: remove DNS URLs

* cmd/utils: configure DNS names for testnets

* params: update DNS URLs

* cmd/geth: configure mainnet DNS

* cmd/utils: rename DNS flag and fix flag processing

* cmd/utils: remove debug print

* node: fix test
2020-02-13 15:38:30 +02:00
Martin Holst Swende 15d09038a6
params: update bootnodes (#20610) 2020-01-31 14:12:19 +01:00
Péter Szilágyi ad2fc7c6a6
params: begin Geth v1.9.11 release cycle 2020-01-20 12:32:47 +02:00
Péter Szilágyi 58cf5686ea
params: release Geth v1.9.10 2020-01-20 12:27:51 +02:00
Péter Szilágyi 1f1cefc036
params: update CHTs for v1.9.10 release 2020-01-20 10:28:49 +02:00
Péter Szilágyi 370cb95b7f
params: begin v1.9.10 release cycle 2019-12-06 11:53:25 +02:00
Péter Szilágyi 017449971e
params: release Geth v1.9.9 2019-12-06 11:51:37 +02:00
Martin Holst Swende bc01593afb consensus/ethash, params: eip-2384: bump difficulty bomb (#20347)
* consensus/ethash, params: implement eip-2384: bump difficulty bomb

* params: EIP 2384 compat checks

* consensus, params: add Muir Glacier block number (mainnet,ropsten) + official name

* core/forkid: forkid tests for muir glacier

* params/config: address review concerns

* params, core/forkid: review nitpicks

* cmd/geth,eth,les: add override option for muir glacier

* params: nit fix
2019-12-06 11:36:40 +02:00
Péter Szilágyi 6b6882f08b
params: update CHTs for v1.9.9 release 2019-12-05 11:01:40 +02:00
Péter Szilágyi 0676320169
params: begin v1.9.9 release cycle 2019-11-26 12:21:11 +02:00
Péter Szilágyi d62e9b2857
params: release go-ethereum v1.9.8 2019-11-26 12:20:22 +02:00
meowsbits f03b2db7db params: finish sentence in comment (#20291) 2019-11-14 23:05:32 +02:00
Péter Szilágyi 4b8f56cf98
params: begin v1.9.8 release cycle 2019-11-07 10:01:20 +02:00
Péter Szilágyi a718daa674
params: release Geth v1.9.7 2019-11-07 09:58:39 +02:00
Péter Szilágyi 9948724deb
params: hard-code new CHTs for the 1.9.7 release 2019-11-06 17:47:13 +02:00
Martin Holst Swende 9278951a62 params, core/forkid: configure mainnet istanbul block 9069K (#20222)
* params: configure mainnet istanbul block 9069K

* core/forkid: add some more test items for mainnet istanbul
2019-10-31 11:04:26 +02:00
Martin Holst Swende c476460cb2
params: check fork ordering when initializing new genesis, fixes #20136 (#20169)
prevent users from misconfiguring their nodes so that fork ordering is not preserved.
2019-10-16 13:23:14 +02:00
Felix Lange a73f3f4518 params: begin v1.9.7 release cycle 2019-10-03 11:29:55 +02:00
Felix Lange bd05968077 params: release Geth v1.9.6 stable 2019-10-03 11:29:20 +02:00
Péter Szilágyi 311419c7d6
Merge pull request #20096 from skylenet/remove-ef-legacy-bootnodes
params: remove legacy bootnodes
2019-09-23 11:38:39 +03:00
Felix Lange 63b18027dc params: start v1.9.6 release cycle 2019-09-20 13:33:08 +02:00
Felix Lange a1c09b9387 params: release Geth v1.9.5 stable 2019-09-20 13:32:42 +02:00
Rafael Matias 75aec8a28d
params: remove legacy bootnodes 2019-09-19 19:35:57 +02:00
Péter Szilágyi 24ef83518c
params: start v1.9.5 release cycle 2019-09-19 11:38:43 +03:00
Péter Szilágyi 46891c12ab
params: release Geth v1.9.4 stable 2019-09-19 11:36:53 +03:00
Péter Szilágyi a6a14f6b71
Merge pull request #20090 from soc1c/s1-testnet-istanbul
params: activate Istanbul on Ropsten, Rinkeby and Görli
2019-09-19 10:47:50 +03:00
Péter Szilágyi f9eb307216
core/forkid, params: fix tests, enable Istanbul on Rinkeby + testers 2019-09-19 10:13:11 +03:00
Péter Szilágyi 2becb99583
params: bump CHTs for the 1.9.4 release 2019-09-19 09:45:40 +03:00
soc1c ad380cd57f
params: activate Istanbul on Ropsten and Görli 2019-09-19 08:25:08 +02:00
Péter Szilágyi b4a4a4db71
params: begin Geth v1.9.4 release cycle 2019-09-03 12:12:53 +03:00
Péter Szilágyi cfbb969da8
params: release Geth v1.9.3 stable 2019-09-03 12:00:38 +03:00
Péter Szilágyi 3bb9b49afb
core/vm, params: implement EIP2200, SSTORE optimizations (#19964)
* core/vm, params: implement EIP2200, SSTORE optimizations

* core/vm, params: switch EIP2200 to Wei's version
2019-08-19 14:39:38 +03:00
gary rong c2c4c9f1e5 core, light, params: implement eip2028 (#19931)
* core, light, params: implement eip2028

* core, light: address comments

* core: address comments

* tests: disable Istanbul tx tests (until updated)

* core: address comment
2019-08-14 15:53:21 +03:00
Péter Szilágyi aaf29095bb
params: begin Geth v1.9.3 release cycle 2019-08-13 13:06:00 +03:00
Péter Szilágyi e76047e9f5
params: release Geth v1.9.2 2019-08-13 13:03:42 +03:00
Péter Szilágyi 423fd5877d
params: update CHT to 12th August, 2019 2019-08-12 14:23:32 +03:00
Martin Holst Swende 3e993ff64a Eip 1884 v3 (#19743)
* core/vm, tests: implement EIP 1884, add support for feature-tests

* core/vm: 1884-changes to extcodehash, move selfbalance opcode

* tests: fix statetests

* core/vm: move constants, address review concerns

* core/vm: word formatting

Co-Authored-By: Péter Szilágyi <peterke@gmail.com>
2019-08-08 12:07:23 +03:00
Antonio Salazar Cardozo beff5fa578 params, core/vm: Istanbul EIP-1108 bn256 gas cost reduction (#19904)
* params: add IsIstanbul to config + rules

IstanbulBlock, used to determine if the config IsIstanbul, is currently
left nil until an actual block is chosen.

* params, core/vm: implement EIP-1108

Old gas costs for elliptic curve operations are given the PreIstanbul
prefix, while current gas costs retain the unprefixed names. The actual
precompile implementations are the same, so they are factored out into
common functions that are called by the pre-Istanbul and current
precompile structs. Finally, an Istanbul precompile list is added that
references the new precompile structs, which in turn reference the new
gas costs.

* params: fix fork ordering, add missing chain compatibility check
2019-08-06 17:12:54 +03:00
Martin Holst Swende aa6005b469 core/vm, params: refactor chain configuration (#19735)
* params, core/vm: deprecating gastable, part 1

* core/vm, params: deprecate gastable, use both constant and dynamic gas

* core/vm, params: remove gastable, remove copypaste

* core/vm: make use of the chainrules

* interpreter: make tracing count constant+dynamic gas

* core/vm: review concerns (param/method name changes)

* core/vm: make use of chainrules more
2019-08-05 11:01:02 +03:00
Péter Szilágyi 08e5cd94a9
params: begin Geth v1.9.2 release cycle 2019-07-24 09:44:37 +03:00
Péter Szilágyi b7b2f60f86
params: release Geth v1.9.1 2019-07-24 09:41:48 +03:00
Péter Szilágyi 28fea9c5af
params: bump hard-coded CHTs to 22nd July values 2019-07-22 11:26:07 +03:00
Péter Szilágyi 72029f0f88
params: begin Geth v1.9.1 release cycle 2019-07-10 10:42:44 +03:00
Péter Szilágyi 52f2461774
params: release Geth v1.9.0 2019-07-10 10:41:15 +03:00
Péter Szilágyi 1bed5afd92
params: bump all CHTs, deploy all checkpoint oracles 2019-07-09 02:05:01 +03:00
Péter Szilágyi 22411919da
cmd, eth, les, param: drop --override.constantinople 2019-07-02 14:14:59 +03:00
gary rong f7cdea2bdc all: on-chain oracle checkpoint syncing (#19543)
* all: implement simple checkpoint syncing

cmd, les, node: remove callback mechanism

cmd, node: remove callback definition

les: simplify the registrar

les: expose checkpoint rpc services in the light client

les, light: don't store untrusted receipt

cmd, contracts, les: discard stale checkpoint

cmd, contracts/registrar: loose restriction of registeration

cmd, contracts: add replay-protection

all: off-chain multi-signature contract

params: deploy checkpoint contract for rinkeby

cmd/registrar: add raw signing mode for registrar

cmd/registrar, contracts/registrar, les: fixed messages

* cmd/registrar, contracts/registrar: fix lints

* accounts/abi/bind, les: address comments

* cmd, contracts, les, light, params: minor checkpoint sync cleanups

* cmd, eth, les, light: move checkpoint config to config file

* cmd, eth, les, params: address comments

* eth, les, params: address comments

* cmd: polish up the checkpoint admin CLI

* cmd, contracts, params: deploy new version contract

* cmd/checkpoint-admin: add another flag for clef mode signing

* cmd, contracts, les: rename and regen checkpoint oracle with abigen
2019-06-28 10:34:02 +03:00
Martin Holst Swende a4eeeedb37
params: add new bootnodes 2019-06-07 10:55:45 +02:00
Péter Szilágyi 536b3b416c
cosensus, core, eth, params, trie: fixes + clique history cap 2019-05-16 10:39:35 +03:00
C. Brown be4d74f8d2 cmd, internal/build, docker: advertise commit date in unstable build versions (#19522)
* add-date-to unstable

* fields-insteadof-split

* internal/build: support building with missing git

* docker: add git history back to support commit date in version

* internal/build: use PR commits hashes for PR builds
2019-05-08 16:44:28 +03:00
Péter Szilágyi 38f6b85638
eth, les, light: enforce CHT checkpoints on fast-sync too 2019-04-17 13:16:15 +03:00
Zsolt Felfoldi 64f9c1ea09 les, light: remove support for les/1 4096 block CHT sections 2019-04-08 13:17:24 +02:00
Péter Szilágyi dd0cfe5e11
params: set Rinkeby Petersburg fork block (4th May, 2019) 2019-04-08 12:15:47 +03:00
Péter Szilágyi ccffad5553
light, params: update CHTs, integrate CHT for Goerli too 2019-04-02 11:47:01 +03:00
Péter Szilágyi b0ed083ead
cmd, core, params: add support for Goerli 2019-02-04 14:53:12 +02:00
Felix Lange f4094d09cd params, swarm/version: Geth v1.9.0 unstable, Swarm v0.3.11-unstable 2019-01-29 17:43:13 +01:00