尝试部署节点时出错:“java.lang.IllegalArgumentException:无法识别的算法:1.2.840.10040.4.1”

2024-02-15

我开发了一个 Cordapp 并尝试将其作为节点部署到我的工作站。

我按照指示操​​作https://docs.corda.net/deploying-a-node.html#windows-installing-and-running-corda-as-a-windows-service https://docs.corda.net/deploying-a-node.html#windows-installing-and-running-corda-as-a-windows-service

服务启动后,会出现一个server.log生成以下错误消息:

   ______               __
  / ____/     _________/ /___ _
 / /     __  / ___/ __  / __ `/         Computer science and finance together.
/ /___  /_/ / /  / /_/ / /_/ /          You should see our crazy Christmas parties!
\____/     /_/   \__,_/\__,_/

--- Corda Open Source 2.0.0 (f91995b) -----------------------------------------------



Logs can be found in                    : C:\Corda\logs
Database connection url is              : jdbc:h2:tcp://192.168.1.211:11000/node
[1;31mE 16:16:20+0800 [main] internal.Node.run - Exception during node startup
[m java.lang.IllegalArgumentException: Unrecognised algorithm: 1.2.840.10040.4.1
    at net.corda.core.crypto.Crypto.findSignatureScheme(Crypto.kt:237) ~[corda-core-2.0.0.jar:?]
    at net.corda.core.crypto.Crypto.decodePublicKey(Crypto.kt:344) ~[corda-core-2.0.0.jar:?]
    at net.corda.core.crypto.Crypto.toSupportedPublicKey(Crypto.kt:932) ~[corda-core-2.0.0.jar:?]
    at net.corda.node.utilities.KeyStoreUtilities.getCertificateAndKeyPair(KeyStoreUtilities.kt:139) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.utilities.KeyStoreWrapper.certificateAndKeyPair(KeyStoreUtilities.kt:211) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.utilities.KeyStoreWrapper.createCertificate(KeyStoreUtilities.kt:179) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.utilities.KeyStoreWrapper.signAndSaveNewKeyPair(KeyStoreUtilities.kt:189) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.internal.AbstractNode.obtainIdentity(AbstractNode.kt:652) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.internal.AbstractNode.obtainIdentity$default(AbstractNode.kt:630) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.internal.AbstractNode.makeServices(AbstractNode.kt:387) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.internal.AbstractNode.access$makeServices(AbstractNode.kt:99) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.internal.AbstractNode$start$startedImpl$1.invoke(AbstractNode.kt:185) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.internal.AbstractNode$start$startedImpl$1.invoke(AbstractNode.kt:99) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.internal.AbstractNode$initialiseDatabasePersistence$6.invoke(AbstractNode.kt:484) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.internal.AbstractNode$initialiseDatabasePersistence$6.invoke(AbstractNode.kt:99) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.utilities.CordaPersistence.inTopLevelTransaction(CordaPersistence.kt:84) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.utilities.CordaPersistence.transaction(CordaPersistence.kt:75) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.utilities.CordaPersistence.transaction(CordaPersistence.kt:65) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.internal.AbstractNode.initialiseDatabasePersistence(AbstractNode.kt:483) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.internal.Node.initialiseDatabasePersistence(Node.kt:302) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.internal.AbstractNode.start(AbstractNode.kt:184) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.internal.Node.start(Node.kt:312) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.internal.NodeStartup.startNode(NodeStartup.kt:95) ~[corda-node-2.0.0.jar:?]
    at net.corda.node.internal.NodeStartup.run(NodeStartup.kt:74) [corda-node-2.0.0.jar:?]
    at net.corda.node.Corda.main(Corda.kt:11) [corda-node-2.0.0.jar:?]

之后,程序自行终止,然后立即重新启动,再次输出错误并终止......无限重复。

我很迷失,因此任何帮助或指导都会很棒。谢谢!

更新我的密钥库生成过程

我发现这可能是我的密钥库的问题。以下是我使用 Java keytool 生成 3 个所需密钥库的命令行。

keytool -genkeypair -keyalg RSA -keystore root.jks -dname "CN=My Organization, OU=Development, O=My Organization, L=Hong Kong, ST=Hong Kong, C=HK" -storepass password -keypass password -alias root -ext bc:c

keytool -keystore root.jks -storepass password -alias root -exportcert -rfc > root.pem

keytool -importkeystore -srckeystore root.jks -destkeystore truststore.jks -srcstorepass password -deststorepass password -srcalias root -destalias cordarootca

keytool -genkeypair -keyalg RSA -keystore intermediate.jks -dname "CN=My Organization, OU=Development, O=My Organization, L=Hong Kong, ST=Hong Kong, C=HK" -storepass password -keypass password -alias intermediate -ext bc:c

keytool -keystore intermediate.jks -storepass password -alias intermediate -certreq | keytool -keystore root.jks -storepass password -alias root -gencert -ext bc:c -rfc > intermediate.pem

type root.pem intermediate.pem > intermediatecachain.pem

keytool -keystore intermediate.jks -storepass password -alias intermediate -importcert -file intermediatecachain.pem -noprompt

keytool -keystore intermediate.jks -storepass password -alias intermediate -exportcert -rfc > intermediate.pem

keytool -genkeypair -keyalg RSA -keystore nodekeystore.jks -dname "CN=My Organization, OU=Development, O=My Organization, L=Hong Kong, ST=Hong Kong, C=HK" -alias cordaclientca -storepass password -keypass password -ext bc:c

keytool -keystore nodekeystore.jks -storepass password -alias cordaclientca -certreq | keytool -keystore intermediate.jks -storepass password -alias intermediate -gencert -ext bc:c -rfc > cordaclientca.pem

type intermediate.pem cordaclientca.pem > cordaclientcachain.pem

keytool -keystore nodekeystore.jks -storepass password -alias cordaclientca -importcert -file cordaclientcachain.pem -noprompt

keytool -genkeypair -keyalg RSA -keystore sslkeystore.jks -dname "CN=My Organization, OU=Development, O=My Organization, L=Hong Kong, ST=Hong Kong, C=HK" -alias cordaclientttls -storepass password -keypass password

keytool -keystore sslkeystore.jks -storepass password -alias cordaclienttls -certreq | keytool -keystore intermediate.jks -storepass password -alias intermediate -gencert -ext bc:0 -rfc > cordaclienttls.pem

type intermediate.pem cordaclienttls.pem > cordaclienttlschain.pem

keytool -keystore sslkeystore.jks -storepass password -alias cordaclienttls -importcert -file cordaclienttlschain.pem -noprompt

更新#2

这是我生成密钥库时的错误。我将修改后的命令行作为答案发布。但是,当我尝试使用新的密钥库进行部署时,会出现新的错误消息。新问题链接:尝试部署节点时出错:“java.security.NoSuchAlgorithmException:1.2.840.113549.1.1.1 签名不可用” https://stackoverflow.com/questions/48577556/error-when-try-to-deploy-a-node-java-security-nosuchalgorithmexception-1-2-84


最后是我生成密钥时的错误。使用以下命令行,我可以正确生成具有 RSA 密钥算法的所有密钥库。有了这些新的密钥库,错误就会消失。

keytool -genkeypair -keyalg RSA -keystore root.jks -dname "OU=ID, O=My Organization, L=Hong Kong, ST=Hong Kong, C=HK" -storepass password -keypass password -alias root -ext bc:c
keytool -keystore root.jks -storepass password -alias root -exportcert -rfc > root.pem
keytool -importkeystore -srckeystore root.jks -destkeystore truststore.jks -srcstorepass password -deststorepass password -srcalias root -destalias cordarootca

keytool -genkeypair -keyalg RSA -keystore intermediate.jks -dname "OU=ID, O=My Organization, L=Hong Kong, ST=Hong Kong, C=HK" -storepass password -keypass password -alias intermediate -ext bc:c
keytool -keystore intermediate.jks -storepass password -alias intermediate -certreq | keytool -keystore root.jks -storepass password -alias root -gencert -ext bc:c -rfc > intermediate.pem
type root.pem intermediate.pem > intermediatecachain.pem
keytool -keystore intermediate.jks -storepass password -alias intermediate -importcert -file 
intermediatecachain.pem -noprompt
keytool -keystore intermediate.jks -storepass password -alias intermediate -exportcert -rfc > intermediate.pem

keytool -genkeypair -keyalg RSA -keystore nodekeystore.jks -dname "OU=ID, O=My Organization, L=Hong Kong, ST=Hong Kong, C=HK" -alias cordaclientca -storepass password -keypass password -ext bc:c
keytool -keystore nodekeystore.jks -storepass password -alias cordaclientca -certreq | keytool -keystore intermediate.jks -storepass password -alias intermediate -gencert -ext bc:c -rfc > cordaclientca.pem
type intermediate.pem cordaclientca.pem > cordaclientcachain.pem
keytool -keystore nodekeystore.jks -storepass password -alias cordaclientca -importcert -file cordaclientcachain.pem -noprompt

keytool -genkeypair -keyalg RSA -keystore sslkeystore.jks -dname "OU=ID, O=My Organization, L=Hong Kong, ST=Hong Kong, C=HK" -alias cordaclienttls -storepass password -keypass password
keytool -keystore sslkeystore.jks -storepass password -alias cordaclienttls -certreq | keytool -keystore intermediate.jks -storepass password -alias intermediate -gencert -ext bc:0 -rfc > cordaclienttls.pem
type intermediate.pem cordaclienttls.pem > cordaclienttlschain.pem
keytool -keystore sslkeystore.jks -storepass password -alias cordaclienttls -importcert -file cordaclienttlschain.pem -noprompt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试部署节点时出错:“java.lang.IllegalArgumentException:无法识别的算法:1.2.840.10040.4.1” 的相关文章

  • 公证人将交易从验证公证人更改为非验证公证人

    在进行从验证公证人到一组新的非验证公证人的公证变更交易时 新的一组非验证公证人如何了解以前的交易 他们只获得之前交易的哈希值还是整个交易依赖图 新的公证人根本不了解过去的交易 相反 我们有以下流程 带有哈希值的交易2772BE和公证人Not
  • 法律散文使用 Corda

    这是之前回答的后续问题法律散文乔尔提出的问题 根据要求创建了单独的问题 LegalProseReference uri foo bar com my legal doc html public class MyContract implem
  • Corda 中的法律散文

    有人能解释一下 Corda 中的法律散文是什么吗 我明白这是一个文档 用于解决冲突 但我没有找到任何信息它是什么样的 又是如何与智能合约联系起来的呢 A Contract类可以注释为 LegalProseReference注解 该注释将合同
  • 需要创建一个新节点而不需要在 Corda 中重新部署节点吗?

    我想创建一个新节点 而不需要在 Corda 环境中重新部署现有节点 是否可以从应用程序内添加另一个节点而无需再次部署它 如果是 那么我们将如何指定 rpc 和数据库的端口 例如 在我的应用程序中 我有一个系统 其中有不同的商家 我想向系统添
  • 向现有 Corda 网络添加新节点

    我正在尝试在 corda 网络中添加新节点和现有节点 我是作为文档做的 但无法实现 正如文档中所述 这足以创建一个包含 node conf 的文件夹吗 如果那么它在运行引导程序时不会更新文件夹中的数据和信息 但我可以通过添加 corda 和
  • 演示无法在 Windows 10 上运行

    我一直在尝试在装有 Windows 10 的本地计算机上运行 R3 Corda 提供的所有示例和演示 https docs corda net releases release V1 0 running the demos html htt
  • 索引 0 {} 处缺少参数名称

    我尝试写一个演示 交付演示 https github com CIeNET Corda deliverydemo基于训练营cordapp https github com corda bootcamp cordapp并参考cordapp 示
  • Corda:错误=org.hibernate.InstantiationException:没有实体的默认构造函数

    我遇到了一个问题 请帮忙 基于 M13 的 Corda 代码 我的架构代码主要用于定义架构来引用您的示例 object LegalContractSchemaV1 MappedSchema schemaFamily LegalContrac
  • runnodes 时发生非法反射访问操作

    我正在尝试运行我的 corda 节点 但我遇到了一个奇怪的问题 节点正在正确启动 正如您在日志中看到的那样 C Repositorio cordapp template kotlin build nodes gt runnodes log
  • 如何使用 Corda Vault Extension 创建自定义架构

    从 Corda 文档来看 我们可以在 Vault Extension 中拥有自定义架构 然而 Vault Extension 并没有太多明确性 它应该能够创建 管理与节点Vault数据库相关的自定义数据库模式 我们是否会在 Corda 的功
  • Corda:在一个流程中创建和使用相同的状态?

    是否可以在一个流中创建和使用相同的 corda 状态 或者在不同的子流中创建和使用它 我收到以下错误 Caused by net corda core flows NotaryException Unable to notarise tra
  • Corda:大型序列化事务大小:当前序列化设计是否有替代方案?

    在我看来 当前版本的 Corda 3 1 通过 BLOB 将 签名的 交易存储为 Java 类的序列化字节数组SignedTransaction The SignedTransaction is a WireTransaction 即包含表
  • 如何在corda中仅存储节点特定的账外自定义数据?

    我使用 QueryableState 在 corda 中创建了自定义表 例如IOU 状态表 我可以看到存储在这种表中的自定义信息 但我观察到 如果甲方和乙方正在进行交易 那么这 自定义信息存储在这两个地方 例如欠条状态 表在节点 A 的分类
  • 使用 H2 Web 界面浏览 Corda 数据库表显示同义词错误

    我按照以下说明进行操作this https docs corda net node database html node database浏览 corda 数据库的链接 但是 当我查询表时 出现以下错误 Error Table SYNONY
  • 在 Corda 中,节点的内置网络服务器上没有安装自定义 CorDapps。

    我定义了一个包含 API 的 CorDapp 但是 当我部署 CorDapp 并运行节点时 我在 Web 服务器 URL 上看到以下消息 No installed custom CorDapps 如何让节点的内置网络服务器加载我的 API
  • Corda 真的需要公证人才能达成唯一性共识吗?

    科达共识简介 https docs corda net releases release V2 0 key concepts consensus html说 唯一性共识是由公证人提供的 我们是说 如果没有公证人 A 有可能说服 B 将一笔交
  • Corda 流的任一侧可以存在于单独的 Cordapp 中吗?

    如果一个节点想要在流的一侧执行自己的特定业务逻辑 如何实现 例如 如果一家公司想要调用内部公司 api 来验证传入的交易数据 它可以在流程中执行此操作吗 如果是这样 是否需要通用地编写流程 以便所有使用相同 Cordapp 和流程 的公司调
  • 在 Corda 中,哪些数据会发送到非验证公证服务?

    这个问题经常出现在对话中 当 Corda 交易被发送到非验证公证服务进行最终确定时 公证服务可以看到并推断出关于世界的什么 在将交易发送给非验证公证人之前 会按如下方式进行过滤 stx buildFilteredTransaction Pr
  • Provenance Corda 中的隐私丢失

    在闭环网络中 当各方转移资产时 与之相关的交易也会被共享 因此 对方会了解我过去与该资产进行的交易的所有信息 尤其是现金或证券的交易 这实际上是一个隐私问题 此外 由于它是一个私有网络 几年后网络中的每个人都可能根据他们的交互了解每个其他节
  • 在不同机器上运行corda节点

    我在 Corda 中遇到关于从甲方向乙方执行借条的问题 以下是配置详细信息 3 node conf 甲方 乙方 公证人 在AWS中托管应用程序 因此在节点配置文件而不是 localhost 中 我给出了机器的IP 我为公证人和甲方提供了相同

随机推荐