Fantom Mainnet Release – go-opera 1.1.2-rc.5

Fantom Mainnet Release – go-opera 1.1.2-rc.5

We are pleased to announce a new release for the Fantom mainnet — go-opera version 1.1.2-rc.5!

Improvements in this release include batched genesis blocks processing, configurable DBs management, parallel EVM logs search, and optimizations in P2P protocol.

All API and read nodes can use the upgrade. Read on below to learn more about the release.

Key release highlights

Based on our internal testing, this upgrade brings the following benefits:

  • P2P and events/blocks processing is significantly improved, resulting in an approximately 30% improvement for events/blocks processing time.
  • Genesis file processing is up to 3 times faster (except for archive genesis files).
  • Searching logs is now 5 times faster, and each log search should take only 1/5 of the time it took before.

We made several tweaks to the database layer; it is now possible to integrate multiple data store types (LevelDB and PebbleDB). DB management is configurable and based on specified rules. We also support DBs batching for genesis processing and desynchronizing data flushing.

This upgrade includes a security improvement for Opera node, such as stricter conditions for starting LLR and txpool syncing, restricting P2P connections to given IPs — this blacklist was implemented to prevent nodes from getting spammed. The upgrade also forbids unlocking accounts when external RPC is enabled.

Additional caches are used to enhance performance and there is an improvement in block processing metrics.

Node upgrade info

To upgrade to go-opera 1.1.2-rc.5, check out the branch release/1.1.2-rc.5.

To migrate from an existing opera version (1.1.1-rc.2), please use: --db.migration.mode reformat --db.preset legacy-ldb. This applies to all types of nodes. Reformatting will finish almost instantly.

To sync a new node from scratch:

  1. For validator nodes and critical nodes, you can use use: --db.preset ldb-1
  2. For non-critical nodes, you can use either:
    1. --db.preset ldb-1 (will sync faster, but may respond slower on multiple parallel API queries)
    2. --db.preset pbl-1 (will sync longer, but have more stable API response time).

If you don’t migrate an existing DB, then ther --db.migration.mode flag is not needed. Flag --db.migration.mode is required only if datadir is migrated for the first time.

More details can be found in this release note.