The Banff 9 Update (v.1.9.9) has just been released!

Hey folks! The Banff 9 Update (v.1.9.9) has just been released!

Main focuses of this release are the removal of the go-plugin, C-Chain State Sync Default*, and the enablement of the EVM JS TracerDisclaimer on C-Chain State Sync:
If you are not interested in state sync, you will need to make sure you specify state-sync-enabled:false. Nodes should not start state syncing if it has the contents of the previous block but are something to be aware of. This version is backwards to v.1.9.0. The update is optional but encouragwed.

Here is a copy of the full release notes: This version is backwards compatible to v1.9.0. It is optional but encouraged. The supported plugin version is 23.
Note: The --whitelisted-subnets flag was deprecated in v1.9.6. This is the last release in which it will be supported. Use --track-subnets instead.

  • Added warning when the P2P server IP is private
  • Added warning when the HTTP server IP is potentially publicly reachable
  • Removed merkledb.trieView#calculateIDs tracing when no recalculation is needed


  • Capped the number of goroutines that merkledb.trieView#calculateIDsConcurrent will create
  • Removed nodb package
  • Refactored Batch implementations to share common code
  • Added Batch.Replay invariant tests
  • Converted to use require in all database interface tests


  • Moved the secp256k1 implementations to a new secp256k1 package out of the crypto package
  • Added rfc6979 compliance tests to the secp256k1 signing implementation
  • Removed unused cryptography implementations ed25519, rsa, and rsapss
  • Removed unnecessary cryptography interfaces crypto.Factory, crypto.RecoverableFactory, crypto.PublicKey, and crypto.PrivateKey
  • Added verification when parsing secp256k1 public keys to ensure usage of the compressed format


  • Removed delegators from platform.getCurrentValidators unless a single nodeID is requested
  • Added delegatorCount and delegatorWeight to the validators returned by platform.getCurrentValidators


  • Improved documentation on the block.WithVerifyContext interface
  • Fixed --public-ip and --public-ip-resolution-service CLI flag descriptions
  • Updated to explicitly reference


  • Enabled state sync by default when syncing from an empty database
  • Increased block gas limit to 15M for Cortina Network Upgrade
  • Added back file tracer endpoint
  • Added back JS tracer


  • Added allowedNodes to the subnet config for validatorOnly subnets
  • Removed the hashicorp/go-plugin dependency to improve plugin flexibility
  • Replaced specialized bag implementations with generic bag implementations
  • Added mempool package to the avm
  • Added chain.State#IsProcessing to simplify integration with block.WithVerifyContext
  • Added StateSyncMinVersion to sync.ClientConfig
  • Added validity checks for InitialStakeDuration in a custom network genesis
  • Removed unnecessary reflect call when marshalling an empty slice


  • Renamed teleporter package to warp
  • Replaced bool flags in P-chain state diffs with an enum
  • Refactored subnet configs to more closely align between the primary network and subnets
  • Simplified the utxo.Spender interface
  • Removed unused field common.Config#Validators

Great! It is key to staying up to date :eyes: