Commit Graph

348 Commits

Author SHA1 Message Date
dylanhuang
0b575443c4 prepare for release v.1.1.6 (#603) 2021-11-29 14:08:28 +08:00
yutianwu
6fb789de67
prepare for release v.1.1.5 (#549) 2021-11-16 13:51:44 +08:00
yutianwu
32855963cd
prepare for release v.1.1.4 (#504) 2021-11-02 11:58:18 +08:00
yutianwu
b71cbdfe29 implement bep 95
fix test cases

add upgrade name

fix comments
2021-11-02 11:38:55 +08:00
guagualvcha
eb581fd949 prepare for release v1.1.3 2021-10-19 10:55:19 +08:00
zjubfd
c4f9312129
prepare for release 1.1.2 (#381) 2021-08-25 10:13:43 +08:00
zjubfd
a3320d6f6e
prepare release v1.1.1 (#362) 2021-08-13 10:20:35 +08:00
zjubfd
69ce7f1e5e
prepare release 1.1.1-beta (#334) 2021-07-29 18:53:24 +08:00
zjubfd
2ce00adb55
[R4R] performance improvement in many aspects (#257)
* focus on performance improvement in many aspects.

1. Do BlockBody verification concurrently;
2. Do calculation of intermediate root concurrently;
3. Preload accounts before processing blocks;
4. Make the snapshot layers configurable.
5. Reuse some object to reduce GC.

add

* rlp: improve decoder stream implementation (#22858)

This commit makes various cleanup changes to rlp.Stream.

* rlp: shrink Stream struct

This removes a lot of unused padding space in Stream by reordering the
fields. The size of Stream changes from 120 bytes to 88 bytes. Stream
instances are internally cached and reused using sync.Pool, so this does
not improve performance.

* rlp: simplify list stack

The list stack kept track of the size of the current list context as
well as the current offset into it. The size had to be stored in the
stack in order to subtract it from the remaining bytes of any enclosing
list in ListEnd. It seems that this can be implemented in a simpler
way: just subtract the size from the enclosing list context in List instead.

* rlp: use atomic.Value for type cache (#22902)

All encoding/decoding operations read the type cache to find the
writer/decoder function responsible for a type. When analyzing CPU
profiles of geth during sync, I found that the use of sync.RWMutex in
cache lookups appears in the profiles. It seems we are running into
CPU cache contention problems when package rlp is heavily used
on all CPU cores during sync.

This change makes it use atomic.Value + a writer lock instead of
sync.RWMutex. In the common case where the typeinfo entry is present in
the cache, we simply fetch the map and lookup the type.

* rlp: optimize byte array handling (#22924)

This change improves the performance of encoding/decoding [N]byte.

    name                     old time/op    new time/op    delta
    DecodeByteArrayStruct-8     336ns ± 0%     246ns ± 0%  -26.98%  (p=0.000 n=9+10)
    EncodeByteArrayStruct-8     225ns ± 1%     148ns ± 1%  -34.12%  (p=0.000 n=10+10)

    name                     old alloc/op   new alloc/op   delta
    DecodeByteArrayStruct-8      120B ± 0%       48B ± 0%  -60.00%  (p=0.000 n=10+10)
    EncodeByteArrayStruct-8     0.00B          0.00B          ~     (all equal)

* rlp: optimize big.Int decoding for size <= 32 bytes (#22927)

This change grows the static integer buffer in Stream to 32 bytes,
making it possible to decode 256bit integers without allocating a
temporary buffer.

In the recent commit 088da24, Stream struct size decreased from 120
bytes down to 88 bytes. This commit grows the struct to 112 bytes again,
but the size change will not degrade performance because Stream
instances are internally cached in sync.Pool.

    name             old time/op    new time/op    delta
    DecodeBigInts-8    12.2µs ± 0%     8.6µs ± 4%  -29.58%  (p=0.000 n=9+10)

    name             old speed      new speed      delta
    DecodeBigInts-8   230MB/s ± 0%   326MB/s ± 4%  +42.04%  (p=0.000 n=9+10)

* eth/protocols/eth, les: avoid Raw() when decoding HashOrNumber (#22841)

Getting the raw value is not necessary to decode this type, and
decoding it directly from the stream is faster.

* fix testcase

* debug no lazy

* fix can not repair

* address comments

Co-authored-by: Felix Lange <fjl@twurst.com>
2021-07-29 17:16:53 +08:00
j75689
7c2cca285b release v1.1.0 2021-07-26 12:51:46 +08:00
yutianwu
9188475be1 update version 2021-05-10 15:27:05 +08:00
yutianwu
a4bb482a74 bump version to 1.1.0 2021-05-07 18:41:10 +08:00
yutianwu
334b6adf14 fix conflicts 2021-05-06 09:26:06 +08: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
yutianwu
061cd5030c upgrade to 1.10.2 2021-04-16 12:45:26 +08: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
fudongbai
c30f17c678 prepare for release v1.0.7 2021-03-23 14:19:48 +08: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 ba999105ef89473cfe39e5e53354f7099e67a290.
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
zjubfd
540ac2a1b7
[R4R]appay mirror/sync fork to main-net; release for 1.0.6 (#68)
* appay mirror/sync fork to main-net; release for 1.0.6

* fix upgrade do not work
2021-02-05 09:51:32 +08: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
zjubfd
0a1e79e2a1
prepare for release v1.0.5 (#64) 2021-01-19 11:46:02 +08:00
HaoyangLiu
e09e48a02f
R4R: apply mirror sync upgrade (#56)
* apply mirror sync upgrade

remove 0x

update rialto genesis hash

update tokenhub code

* update tokenhub code

* update relayer incentive contract code

* update upgrade height and remove mainnet upgrade
2021-01-19 11:35:01 +08:00
fudongbai
60606d3919 support fork id in header; elegant upgrade 2021-01-11 13:54:35 +08: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
fudongbai
935c9e3c6a upgrade to golang1.15.5 2020-11-16 13:56:57 +08: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