Commit Graph

34 Commits

Author SHA1 Message Date
Jef
5c08698fa0 Use memmap for dag cache (#6193)
* Rebase and fix compilation errors (tests not yet fixed)

* Use `debug_assert` over `assert`

* Fix tests

* Assert safety, clean up

* Fix up stale cache removal, move one assert to debug_assert

* Remove printlns

* Add licenses

* Fix benches

* Inline some no-ops in a hot loop that weren't being inlined

* Add spooky comment to make sure no-one removes the inlining annotations

* Minor cleanup

* Add option to switch between mmap and ram

* Flag ethash to use less memory when running light client

* Fix tests

* Remove todo comment (it's done)

* Replace assertion with error return

* Fix indentation

* Use union instead of `transmute`

* Fix benches

* Extract to constants

* Clean up and fix soundness holes

* Fix formatting

* Ignore missing-file errors

* Make incorrect cache size an error condition instead of a panic, remove dead code

* Fix compilation errors from rebase

* Fix compilation errors in tests

* Fix compilation errors in tests
2017-09-25 19:45:33 +02:00
debris
e9cc4c848b replace sha3 with keccak in few comments 2017-08-31 15:25:30 +02:00
debris
f0e8abb07b Hashable::sha3 -> fn keccak for ethcore 2017-08-30 19:18:28 +02:00
Jef
e84f308264 Fix unsoundness in ethash's unsafe code (#6140)
* Fix benchmarks

* Fix unsoundness in uses of unsafety

* Remove most uses of unsafe indexing and ptr::copy_nonoverlapping

This commit also includes a completely absurd optimisation that I
promise is an honest win. You can check the benchmarks, I barely
believe it myself.

* Add safety comment

* Add more safety comments
2017-07-28 14:26:22 +02:00
Robert Habermeier
079b24175c Merge pull request #6080 from Vurich/ethash
Unroll loops in light_compute
2017-07-24 13:09:31 +02:00
Vurich
0fa9c93f6f Style reungrumble 2017-07-22 14:49:02 +02:00
Vurich
7208b9b525 Small fixes 2017-07-19 18:14:10 +02:00
Vurich
ad1835e87c Unroll 1 more loop 2017-07-19 16:21:55 +02:00
Vurich
7d35f994d2 Style ungrumble 2017-07-19 12:09:45 +02:00
Vurich
2cc1c92901 Unroll one more loop
I also tried unrolling the 256-iteration loop further below, but it actually caused a
slowdown (my guess is either branch prediction stopped kicking in or the instruction
cache was being maculated).
2017-07-19 12:07:34 +02:00
Vurich
d51958dbf5 Speed up light_compute by ~9% 2017-07-18 15:38:10 +02:00
Vurich
410ded5d45 Remove dead code from benchmarks 2017-07-18 14:17:01 +02:00
Vurich
d994d7a10c Add benchmarks 2017-07-18 14:14:42 +02:00
Tomasz Drwięga
a24b6ad983 Use standard paths for Ethash cache (#5881)
* Use cache path to store ethash files.

* Fixing tests, more flexible API.

* Use AsRef<Path> everywhere.

* Fixing ethcore tests.

* Fix RPC tests.
2017-07-10 12:57:40 +02:00
Arkadiy Paronyan
da2f684f18 Memory usage optimization (#5526) 2017-05-02 11:40:03 +02:00
Gav Wood
8404edb656 Fix whitespace (#4299)
* Fix whitespace.

* Update copyright years/owner.

* Push release only for tags.
2017-01-25 18:51:41 +01:00
Robert Habermeier
8125b5690c Port try macro to new ? operator. (#3962)
* initial untry sweep

* restore try in ipc codegen, fix inference

* change a few missed try instances
2016-12-27 12:53:56 +01:00
Gav Wood
17cc2be4b5
Rename ethcore -> parity in license. 2016-12-11 19:30:54 +01:00
Robert Habermeier
2806f1d4c9 Even more snapshot validity checks (#2935)
* clarify "cancelled periodic snapshot" message

* more rigorous checks for snapshot validity

* verify ancient blocks on import

* limit number of fed blocks

* make it possible to feed snapshot service canonical hashes

* fix failing test build

* swap ethash DAG only when more recent
2016-10-28 16:10:30 +02:00
Gav Wood
bb96849620 Revert #2172, pretty much. (#2387)
* Revert #2172, pretty much.

* Tidy up whitespace.

[ci:skip]

* Force CI.
2016-09-28 23:31:59 +02:00
Robert Habermeier
f8f39c4369 check for existence of deprecated ethash file before attempting delete (#2103) 2016-09-16 08:57:38 +02:00
kristoffer
2ba4968cd5 Remove old cache data (#2081) 2016-09-14 12:02:52 +02:00
Arkadiy Paronyan
5ab18d1313 Performance optimizations (#1642)
* Optimize ethash verification

* disable WAL for puts

* Clear account cache after commit

* Commit only modified accounts

* Optimize existing block check

* Cache last hashes
2016-07-17 09:18:15 +02:00
Robert Habermeier
36d3d0d7d7 replace synchronization primitives with those from parking_lot (#1593)
* parking_lot in cargo.toml

* replace all lock invocations with parking_lot ones

* use parking_lot synchronization primitives
2016-07-13 19:59:59 +02:00
Tomasz Drwięga
3ce2374aeb Disable long lines formatting (#939) 2016-04-12 15:06:02 -07:00
Peter
9655ce8dbf Caching for computing seed hashes (#541)
Code review changes
2016-03-27 20:42:24 +01:00
Gav Wood
ffc5c2ea7b eth_getwork implemented. 2016-02-29 19:30:13 +01:00
Peter
ce81a24bfd Tests for issue #161
Implementations of get_cache_size and get_data_size in Rust (issue #161)
Removed sizes module, containing replaced data tables

Fixed whitespace issues after code review
2016-02-21 02:11:09 +00:00
arkpar
cc5384fff5 Get rid of lru_cache dependency 2016-02-18 22:35:14 +01:00
debris
c90d64662a added license in every *.rs file 2016-02-05 13:40:41 +01:00
arkpar
ead16110bb Ethash disk cache 2016-01-30 23:02:55 +01:00
arkpar
e514d3d80f Multithreaded event loop 2016-01-21 16:48:37 +01:00
arkpar
77d2303b55 Use sha3 crate in ethash 2016-01-18 16:05:45 +01:00
arkpar
e39e7491b8 Use ethash for verification 2016-01-17 12:00:34 +01:00