evm

command
v1.7.38 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 30, 2026 License: BSD-3-Clause Imports: 46 Imported by: 0

Documentation

Overview

Backend selection (cgo build): wire the C++ EVM (cevm) into the parallel-execution registry and pick the best available backend.

Linking the github.com/luxfi/chains/evm/cevm package under cgo brings in the luxcpp/cevm shared libraries (libevm, libevm-gpu, libluxgpu, libcevm_precompiles), which is the prerequisite for cevm-based execution.

Whether cevm is actually selected depends on the upstream luxfi/evm build tags: the C++ executor is registered by core/parallel only when luxfi/evm is itself built with `-tags cevm`. In that case AutoEVM resolves to CppEVM. Otherwise AutoEVM falls back to GoEVM (geth) — the pure-Go path — without losing the GPU ecrecover bridge that is registered separately under `cgo && darwin`.

Command evm serves the C-Chain EVM to a Lux node, with every precompile linked in.

Every precompile is explicitly imported. No umbrella packages. Genesis determines which are active at which block/timestamp.

The binary's FILENAME must be the CB58 of constants.ContractVMID (mgj786NP7uDwBCcq6YwThhaN8FLyybkCa4zBWTQbNgmK6k9A6) — that is how the node's plugin registry resolves a vmID from a CreateChainTx to an implementation. A binary installed under any other name is invisible and the chain silently never starts, which is why `version` prints the id it must be installed as: the fact an operator needs is in the place an operator already looks.

Directories

Path Synopsis
Package cevm provides Go bindings to the C++ EVM (cevm) with GPU acceleration.
Package cevm provides Go bindings to the C++ EVM (cevm) with GPU acceleration.
parallel
Package parallel — cevm BlockExecutor for github.com/luxfi/evm.
Package parallel — cevm BlockExecutor for github.com/luxfi/evm.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL