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. |