Martin Holst Swende
e3efb24444
trie: make stacktrie support binary marshal/unmarshal ( #22685 )
2025-04-07 16:44:32 +08:00
Martin Holst Swende
a8bd860e2f
trie: make stacktrie not mutate input values ( #22673 )
...
The stacktrie is a bit un-untuitive, API-wise: since it mutates input values.
Such behaviour is dangerous, and easy to get wrong if the calling code 'forgets' this quirk. The behaviour is fixed by this PR, so that the input values are not modified by the stacktrie.
Note: just as with the Trie, the stacktrie still references the live input objects, so it's still _not_ safe to mutate the values form the callsite.
2025-04-07 16:44:32 +08:00
Daniel Liu
3eb9f63513
core/types: implement DerivableList interface for transactions and receipts ( #21502 )
2025-04-07 16:44:32 +08:00
Daniel Liu
dcea73039c
trie: bloom-filter based pruning mechanism ( #21724 )
2025-04-07 16:44:32 +08:00
Martin Holst Swende
f7fd4af087
trie: stacktrie fixes ( #21799 )
...
* trie: fix error in stacktrie not committing small roots
* trie: improved tests
* trie: fix error in stacktrie with small nodes
* trie: add (skipped) testcase for stacktrie
* trie: fix docs in stacktrie
2025-04-07 16:44:32 +08:00
Martin Holst Swende
87270e3988
trie: fix flaw in stacktrie pool reuse ( #21699 )
2025-04-07 16:44:32 +08:00
gary rong
1424987768
trie: polish commit function ( #21692 )
...
* trie: polish commit function
* trie: fix typo
2025-04-07 16:44:32 +08:00
gary rong
9da3ae1075
trie: polishes to trie committer ( #21351 )
...
* trie: update tests to check commit integrity
* trie: polish committer
* trie: fix typo
* trie: remove hasvalue notion
According to the benchmarks, type assertion between the pointer and
interface is extremely fast.
BenchmarkIntmethod-12 1000000000 1.91 ns/op
BenchmarkInterface-12 1000000000 2.13 ns/op
BenchmarkTypeSwitch-12 1000000000 1.81 ns/op
BenchmarkTypeAssertion-12 2000000000 1.78 ns/op
So the overhead for asserting whether the shortnode has "valuenode"
child is super tiny. No necessary to have another field.
* trie: linter nitpicks
Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-04-07 16:44:32 +08:00
Daniel Liu
54f73e471f
trie: Derivesha with stacktrie ( #21407 )
2025-04-07 16:44:32 +08:00
Daniel Liu
7198179c2a
cmd, trie: remove cmd/gc and hide some types in trie
2025-04-01 16:34:35 +08:00
Daniel Liu
a9b9f53701
core, eth, trie: add a prefix to contract code (21080)
2025-03-24 22:31:03 +08:00
Daniel Liu
ebb2c3b2ea
all: new empty trie with types.EmptyRootHash instead of null ( #27230 )
2025-02-07 13:04:45 +08:00
Daniel Liu
5b10b2441c
all: use T.TempDir to create temporary test directories ( #24633 )
2025-01-24 16:54:08 +08:00
Daniel Liu
97c50f97bb
all: add read-only option to database
2025-01-24 14:24:39 +08:00
Daniel Liu
4cc2b2ea5f
tests/fuzzers: move fuzzers into native packages ( #28467 )
2024-12-28 09:06:31 +08:00
Péter Szilágyi
39e9d8f94d
common/prque: generic priority queue ( #26290 )
2024-12-28 09:06:31 +08:00
Daniel Liu
5f66fb5de0
fix tautological condition: nil == nil
2024-10-31 09:01:12 +08:00
Daniel Liu
464a89074b
all: use unified emptyRootHash and emptyCodeHash ( #26718 )
2024-10-21 17:55:16 +08:00
Daniel Liu
edace6ac6c
all: change format 0x%x to %#x ( #25221 )
2024-09-27 15:24:31 +08:00
Daniel Liu
67b5b2bf9a
core/vm: less allocations for various call variants ( #21222 )
2024-09-22 18:42:11 +08:00
JukLee0ira
2d89951e5b
all: use errrors.New instead of empty fmt.Errorf
2024-06-14 19:19:21 +08:00
Daniel Liu
48f9bbed50
core: types: less allocations when hashing and tx handling ( #21265 )
2024-05-13 22:07:03 +08:00
Wanwiset Peerapatanapokin
aaa246f60e
PDF-01 ( #397 )
...
* replace deprecated ioutil lib calls
* fix for FileInfo type required
* fix for ioutil.Discard
* fix .Discard
* fix for go-bindata generated files
2024-01-19 15:05:03 +04:00
olumuyiwadad
b5abbfed79
new EVM Upgrade
...
- Solidity Upgraded up to v0.8.0
- Fixed and Added eth_chainId
- Fix error in TransactionRecipet
- Reward halving issue fixed
2021-09-21 16:53:46 +05:30
olumuyiwadad
571c41f891
FIx Bad block error.
2021-09-17 17:59:06 +05:30
Jianrong
0fdab2027c
add linting as the first CI task
2021-08-07 14:27:08 +10:00
dev-vadim
dbe8c9d984
upgrade XDC.Network with v1.8.27.
2020-12-23 16:32:06 +05:30
Péter Szilágyi
80a2a35bc3
trie: there's no point in retrieving the metaroot
2019-04-08 12:00:42 +03:00
Martin Holst Swende
a458153098
trie: fix error in node decoding ( #19111 )
2019-02-19 10:59:57 +02:00
Dave McGregor
33d233d3e1
vendor, crypto, swarm: switch over to upstream sha3 package
2019-01-04 09:26:07 +02:00
Martin Holst Swende
2843001ac2
trie: fix overflow in write cache parent tracking ( #18165 )
...
trie/database: fix overflow in parent tracking
2018-11-22 15:14:31 +02:00
Péter Szilágyi
d136e985e8
trie: go fmt package
2018-11-16 16:35:39 +02:00
Łukasz Kurowski
68be45e5f8
trie: return hasher to pool ( #18116 )
...
* trie: return hasher to pool
* trie: minor code formatting fix
2018-11-16 11:50:48 +02:00
Péter Szilágyi
434dd5bc00
cmd, core, eth, light, trie: add trie read caching layer
2018-11-15 12:22:13 +02:00
Péter Szilágyi
53634f1e04
trie: remove unused originalRoot field ( #17862 )
2018-10-08 13:16:16 +02:00
Wenbiao Zheng
6a33954731
core, eth, trie: use common/prque ( #17508 )
2018-09-03 17:33:21 +02:00
Mymskmkt
70398d300d
trie: fix typo ( #17498 )
2018-08-24 21:08:48 +03:00
Péter Szilágyi
11bbc66082
eth, trie: fix tracer GC which accidentally pruned the metaroot
2018-08-09 12:33:30 +03:00
Mymskmkt
8051a0768a
trie: fix comment typo ( #17350 )
2018-08-08 16:08:40 +03:00
Oleg Kovalov
cf05ef9106
p2p, swarm, trie: avoid copying slices in loops ( #17265 )
2018-08-07 13:56:40 +03:00
Péter Szilágyi
8a9c31a307
trie: handle removing the freshest node too
2018-07-30 16:31:17 +03:00
Péter Szilágyi
319098cc1c
trie: fix a temporary memory leak in the memcache
2018-07-02 15:47:33 +03:00
Péter Szilágyi
d926bf2c7e
trie: cache collapsed tries node, not rlp blobs ( #16876 )
...
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).
2018-06-21 11:28:05 +02:00
Péter Szilágyi
a3267ed929
trie: don't report the root flushlist as an alloc
2018-06-11 14:32:13 +03:00
Sarlor
ea06da0892
trie: avoid unnecessary slicing on shortnode decoding ( #16917 )
...
optimization code
2018-06-07 11:48:36 +03:00
Felix Lange
e8ea5aa0d5
trie: reduce hasher allocations ( #16896 )
...
* 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
2018-06-05 15:06:29 +03:00
Péter Szilágyi
143c4341d8
core, eth, trie: streaming GC for the trie cache ( #16810 )
...
* core, eth, trie: streaming GC for the trie cache
* trie: track memcache statistics
2018-06-04 10:47:43 +03:00
Wenbiao Zheng
38c7eb0f26
trie: rename TrieSync to Sync and improve hexToKeybytes ( #16804 )
...
This removes a golint warning: type name will be used as trie.TrieSync by
other packages, and that stutters; consider calling this Sync.
In hexToKeybytes len(hex) is even and (even+1)/2 == even/2, remove the +1.
2018-05-29 17:48:43 +02:00
Wenbiao Zheng
d6ed2f67a8
eth, node, trie: fix minor typos ( #16802 )
2018-05-24 15:55:20 +03:00
Péter Szilágyi
54294b45b1
Merge pull request #16803 from karalabe/trie-avoid-funccall
...
trie: cleaner logic, one less func call
2018-05-24 15:54:00 +03:00