mirror of
https://github.com/luxfi/node.git
synced 2026-07-27 03:39:39 +00:00
The build installed M-Chain's plugin binary as tGVBwRxpmD2aFdg3iYjgRvrCe8Jcmq9UNKxyHMus2NZ8WcD8t — the CB58 of the retired `thresholdvm` identifier — while the genesis builder declares the chain with constants.MPCVMID (qCURact1n41FcoNBch8iMVBwc9AWie48D118ZNJ5tBdWrvryS). The plugin registry resolves a CreateChainTx's vmID to an implementation by filename, so the two never met: M-Chain was declared in genesis and no node could start it. The Dockerfile comment had already been renamed to "mpcvm" without the CB58 being recomputed, which is why it read as correct. Fixes all five sites (plugin build target, the build-verify list, the runtime COPY, the comment, and publish_plugin_set.sh) and adds genesis/builder/mchain_test.go, which pins the vmID literally and asserts M-Chain is present in the height-0 chain set for mainnet, testnet and local. A vmID is an immutable one-way door once a chain is created with it, so it is now covered by a test rather than by five copies of a string. Bumps luxfi/genesis to v1.16.3, where mchain.json states its quorum as "policy": "7-of-10" instead of a bare mpcThreshold that reads as the signer count to an operator and as the polynomial degree to a library. Co-authored-by: Hanzo Dev <dev@hanzo.ai>