Skip to content
This repository has been archived by the owner on May 25, 2020. It is now read-only.

Note important commits from Ethereum #249

Closed
wants to merge 42 commits into from
Closed

Note important commits from Ethereum #249

wants to merge 42 commits into from

Conversation

nguyenbatam
Copy link

@nguyenbatam nguyenbatam commented Nov 2, 2018

issues #248

@nguyenbatam nguyenbatam changed the title eth/downloader: flush state sync data before exit (#248) eth/downloader: flush state sync data before exit Nov 2, 2018
DavidHuie and others added 27 commits November 2, 2018 11:09
DialContext allows users to pass a Context object for cancellation.
Close closes the underlying RPC connection.
Peer.run was discarding the reason for disconnection sent to the disc
channel by Disconnect.
* eth/filter: check nil pointer when unsubscribe

* eth/filters, accounts, rpc: abort system if subscribe failed

* eth/filter: add crit log before exit

* eth/filter, event: minor fixes
* tracing: fix minor off-by-one error

* tracers: go generate
* trie: reduce hasher allocations

name    old time/op    new time/op    delta
Hash-8    4.05µs ±12%    3.56µs ± 9%  -12.13%  (p=0.000 n=20+19)

name    old alloc/op   new alloc/op   delta
Hash-8    1.30kB ± 0%    0.66kB ± 0%  -49.15%  (p=0.000 n=20+20)

name    old allocs/op  new allocs/op  delta
Hash-8      11.0 ± 0%       8.0 ± 0%  -27.27%  (p=0.000 n=20+20)

* trie: bump initial buffer cap in hasher
The error produced when using a Parity RPC was the following:

ERROR: transaction did not get mined: failed to get tx for txid 0xbdeb094b3278019383c8da148ff1cb5b5dbd61bf8731bc2310ac1b8ed0235226: json: cannot unmarshal non-string into Go struct field txExtraInfo.blockHash of type common.Hash
* vm/test: add tests+benchmarks for mstore

* core/vm: less alloc and copying for mstore

* core/vm: less allocs in sload

* vm: check for errors more correctly
The current trie memory database/cache that we do pruning on stores
trie nodes as binary rlp encoded blobs, and also stores the node
relationships/references for GC purposes. However, most of the trie
nodes (everything apart from a value node) is in essence just a
collection of references.

This PR switches out the RLP encoded trie blobs with the
collapsed-but-not-serialized trie nodes. This permits most of the
references to be recovered from within the node data structure,
avoiding the need to track them a second time (expensive memory wise).
* core/vm: A pool for int pools

* core/vm: fix rebase issue

* core/vm: push leftover stack items after execution, not before
@nguyenbatam nguyenbatam changed the title eth/downloader: flush state sync data before exit Note important commits from Ethereum Nov 3, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.