使用自定义 Substrate 节点名称(Substrate FRAME pallet + Polkadot/Substrate frontend)

Use custom Substrate node name (Substrate FRAME pallet + Polkadot/Substrate frontend)

场景:您想提交自定义的外部文件Substrate node based on the substrate-node-template by using the Polkadot/Substrate frontend. You have renamed the Substrate node either manually by carefully searching and replacing all occurences of substarte-node-template or by using danforbes renaming script

问题: 当您尝试使用 Polkadot/Substrate 前端向您的 Substrate 节点 提交外部 时,您会收到一个前端错误信息:

1002: Verification Error: Execution: Could not convert parameter tx between node and runtime: No such variant in enum MultiSignature: RuntimeApi, Execution: Could not convert parameter tx between node and runtime: No such variant in enum MultiSignature

解法:JoshOrndorff stated in a Github issue

[...] The problem now is because the UI needs to know the types your node uses. When you use the node template, the UI detects it, and uses the appropriate types for you. Sine you have renamed your template, the UI cannot tell that it is still basically the node template, so you need to add your own custom types. In the Apps UI, go the the developer settings, and enter:

{
   "Address": "AccountId",
   "LookupSource": "AccountId"
}

现在可以从链上读取元数据,这应该不再是问题了。