Go Opera Versions Save

Opera blockchain protocol secured by the Lachesis consensus algorithm

v1.1.3-rc.5

7 months ago

Go-opera 1.1.3-rc.5 is a small optimization release aimed to fix a performance issue.

  • db_size metric calculation is less active (#519)
  • Fix genesis hashes for public testnet (#516)

v1.1.3-rc.4

8 months ago

Go-opera 1.1.3-rc.4 is an optimization release to enhance performance.

This update includes an enhanced event emission algorithm, which reduces Time to Finality (TTF) without increasing the number of emitted events per second.

For API nodes, the update is recommended. It addresses previously identified Out-Of-Memory (OOM) crashes in the filter API and enhances the estimation of gas tip/gas price for transactions.

  • Fix OOM-related issues with filter API (#425)
  • New events emission algorithm (#478, #483, #484 #480)
  • Performance improvement for vector clock storage (#479)
  • Improvements for gas tip/gas price estimation (#490, #492)
  • Fixes for metrics (#463, #465)
  • Update genesis contracts bytecodes for fakenet (#439)
  • Allow building with Go 1.20+ (#428)
  • Fix GPO suggesting tip lower than txpool's limit (#512)

Full Changelog: https://github.com/Fantom-foundation/go-opera/compare/v1.1.2-rc.6...v1.1.3-rc.4

v1.1.3-rc.3

9 months ago

Pre-release for Go-opera 1.1.3

stacktrace

10 months ago

v1.1.2-rc.6

1 year ago

Go-opera 1.1.2-rc.6 is a maintenance release. It includes the following fixes:

  • Fix a db heal when combined with fully pruned EVM (e.g. with --gcmode=full) (#432)
  • Fix compatibility with go1.17 and go1.18 (#434)
  • Fix performance issues with LevelDB presets during archive genesis processing, --db.migration.mode rebuild migration and for db transform command (#435)

v1.1.2-rc.5

1 year ago

1.1.2-rc.5 is an optimization release. Improvements include batched genesis blocks processing, configurable DBs management, parallel EVM logs search and optimizations in p2p protocol. Depending on hardware, it can achieve approximately ~1.3x improvement for events/blocks processing, ~3x improvement for genesis file processing (except for archive genesis files), ~5x improvement for logs search.

There are two migration options for upgrading to 1.1.2-rc.5:

  • Preserving the existing legacy DBs layout: --db.migration.mode reformat --db.preset legacy-ldb. This option is instant but will leave out some of the performance improvements for blocks/events processing.
  • Rebuilding DBs according to a new layout: --db.migration.mode rebuild --db.preset X, where X is a selected DBs layout. Migration will take a lot of time - for an NVMe SSD drive, the number of hours would be roughly datadir size in GB divided by 50 GB/hour. If the remaining disk space is insufficient to store a copy of largest DB in datadir/chaindata, then the migration will take up to 3 times longer, depending on available disk space.

Flags --db.migration.mode is required only if datadir isn't migrated yet.

There are 2 options for the new --db.preset flag:

  • ldb-1 - fastest LevelDB layout (default option).
  • pbl-1 - fastest Pebble layout.

Pebble offers slightly better performance and smaller IO utilization on average, especially with extended cache. We don't recommend using Pebble presets for validators nor other mission-critical nodes yet.

Patch notes

  • Update license to LGPL-3 (#346)
  • Logs search optimization (#336)
  • Configurable DBs management based on routing rules (including Pebble as an option) (#343, #347, #357, #361)
  • DBs batching for genesis processing (#343)
  • Additional caches (#343)
  • Stricter conditions for starting LLR and txpool syncing (#343)
  • Add flag for restricting p2p networking to given IPs and hiding private nodes from public network (#340)
  • Fix block processing metrics, remove unused metrics (#348)
  • Desyncronize DBs flushes (#350)
  • Forbid unlocking accounts with enabled external RPC (#338)
  • Incremental genesis (#389)
  • Improve DB compaction (#384, #401)
  • Add support for --rpc.evmtimeout flag (#393)

v1.1.1-rc.2

1 year ago

v1.1.1-rc.2 is a hotfix release for an issue. The upgrade is highly recommended for all nodes.

This release features automatic EVM pruning which can be enabled with either --gcmode full or --gcmode light flag. --gcmode full option will prune much more EVM nodes than --gcmode light at expense of worse performance.

  • Add support of automatic EVM pruning (disabled by default) (#210)
  • Add DB cache for GenesisID (#334)
  • Add DB cache for NetworkVersion (#326)
  • Add block 0 into API output for web3 compatibility (#333)

v1.1.1-rc.1

2 years ago

Release v1.1.1-rc.1 allows new read nodes to use new customizable genesis files and to sync using snapsync mode.

The upgrade is highly recommended for API nodes, as it fixes race condition in filter API calls and enables improved gas price (priority fee) estimation. The upgrade is not recommended for validator nodes yet.

Note that, if you're running a 1.1.0-rc.X, after the upgrade to 1.1.1-rc.1, it won't be possible to use the old genesis files (mainnet.g and testnet.g). Instead, you can omit --genesis flag and you don't need to download a new genesis file (as the file is no longer mandatory for already initialized nodes).

Release notes:

  • API: erase deprecated sfc API namespace
  • Add support of self-hashed genesis files with different starting points and variable historical data (#271, #308)
  • API: Improve gas price estimation (#314)
  • API: Fix of race condition in filter API (#311)
  • API: Extend Opera-specific API calls (#306)
  • Validator: Adjust pending gas control in emitter (#313)
  • Rework --exitwhensynced flag (#304)
  • Opera stops processing data after a missed upgrade by default instead of only logging (#305)

v1.1.0-rc.5

2 years ago

v1.1.0-rc.5 is a hotfix release for API nodes. It adds support of eth_feeHistory API method required by some EIP-1559 clients.

Release notes:

  • Add support for eth_feeHistory API method: #300

v1.1.0-rc.4

2 years ago

The releases 1.1.x enable the support of London and LLR hard-fork upgrades.

Release notes:

  • Fix #245
  • Fix panics on non-existing block RPC requests (#254)
  • Save snapsync journal during stopping (#241)