Releases: ethereum/ethereumj
Releases · ethereum/ethereumj
1.7.2 Hotfix Release
- Guava upgrade #1046
- Spongy Castle upgrade, thanks to Quan Nguyen from Wycheproof for pointing that out
1.7.1 Hotfix Release
Fixes a rare case when sync process gets stuck.
1.7.0 Release
This release was started as performance improvement. But since work on that improvement took a while other updates and features came in as well.
Change set:
- Database engine switched to RocksDB.
Prefix lookups feature supported by RocksDB allowed us to get rid of reference counting and make database flushes 100 times faster improving speed of blocks processing on the Mainnet. - Pruning completely re-worked.
Previous algorithm was based on reference counting and we had to build something different. New algorithm uses bloom filters and gives 99% prune rate with almost zero processing time. - Snappy compression support was added.
Check EIP-706 for details. - Project moved to Java 8.
- Implementation of Event API was done (#421)
New API provides easy and efficient access to event and log management. - An option to skip bodies and receipts was added.
Fast sync just finishes much faster without fetching all this big data. - Memory consumption of fast sync queues was limited.
Now fast sync is able to get finished with-Xmx1g
on the Mainnet. - Several bug fixes were made.
- NOTE: db engine has been changed, hence an update to this version requires database reset.
Thanks to community for their help:
1.6.3 Hotfix release
Fixes an issue in framing configuration. It might cause inability to accept devp2p packets from EthereumJ peers.
1.6.2 Hotfix release
1.6.1 Hotfix Release
1.6.0 Byzantium Release
Byzantium hardfork implementation
1.5.0 Release
This is mostly performance improvement release, however, it primarily affects regular sync time (fast sync is as fast as before). So here are improvements:
- Since ref counting DB introduction the DB write performance significantly dropped, so there are changes to compensate this drawback
- Asynchronous background write cache flush: the flush is now performed in background thread and almost doesn't affect the blocks import speed
- DB Bloom filters: updating the Trie in ref counting DB is significantly slowed down by inserting new nodes and deleting pruned nodes: each operation requires additional DB read to get current ref count. We added two bloom filters: the first is filtering non-existing node entries (speeds up insert-if-absent operation), the second is filtering node with
ref count < 2
(speeds up delete operation)
- New
Trie
implementation with optimized updates and root calculation gave us up to x20 speed up on some scenarios due to parallelization - Program precompiles DB cache improves performance in general and especially on some attack blocks
- Eliminate 'hot' prototype Spring beans where Spring machinery overhead became a problem
- Genesis config support allows specifying blockchain parameters (like fork blocks, chainId, etc) in Genesis
config
section - Latest Solidity new features support like
function types
andpayable
flag - Flush all DB changes with a single
LevelDB batchUpdate
should increase DB reliability - Get rid of the last
MapDB
dependency: now all the data is stored with LevelDB only - And of course, bugs fixing and new bugs creation
- NOTE: DB structure (
databaseVersion
) was changed so after upgrade your node will be forced to sync from scratch
1.4.2 Hotfix Release
A couple of bugs for the Harmony project fixed