尝试部署节点时出错:“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” 的相关文章

  • 使用 CORDA 流创建原子事务的最佳方法

    我有一个用例 我需要将数据发送给多个交易对手 但各方需要彼此保持匿名 从交易对手处收回背书后 我需要提交整个交易 整个事务的原子性需要保持 使用 Flows 实现这一目标的最佳方法是什么 为此 您需要使用机密身份 机密身份在状态中由Anon
  • 公证人将交易从验证公证人更改为非验证公证人

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

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

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

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

    我有一个一对多的关系 我试图在我的状态中添加对象 类的列表 IE 我的合同状态包含附件列表List
  • 向现有 Corda 网络添加新节点

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

    我有一个关于查询数据的问题 Corda中有没有办法查询公证节点存储的所有数据以及如何查询其他节点中的交易 在 Corda 中 每个节点都有自己的数据库支持 该数据库仅存储节点知道的交易 出于隐私原因 节点无法查询其他节点的数据库 相反 您必
  • 索引 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
  • Corda 在终端中查看消耗状态

    有没有一种简单的方法可以使用 CordaRPCOps 界面查看终端中的消耗状态 似乎VaultQuery默认返回未使用的状态 我不知道如何使用vaultQueryBy或任何符合条件的东西 我知道应该有消耗状态 因为我可以用 H2 看到它们
  • 尝试部署节点时出错:“java.lang.IllegalArgumentException:无法识别的算法:1.2.840.10040.4.1”

    我开发了一个 Cordapp 并尝试将其作为节点部署到我的工作站 我按照指示操 作https docs corda net deploying a node html windows installing and running corda
  • 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 企业节点上的 PostgreSQL 引发关系错误

    在 docker 容器中使用 PostgreSQL 运行 corda enterprise 我已按照文档中的说明进行操作并设置了数据库架构 在数据库启动时 我看到以下错误 任何人都可以帮助那里发生了什么事吗 2018 10 11 06 57
  • Corda 流的任一侧可以存在于单独的 Cordapp 中吗?

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

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

    交易未提交公证服务的情况有哪些 尽管进度跟踪器显示公证步骤 但我们注意到在某些情况下交易并未真正发送到公证服务 例如 没有时间窗口的状态创建 从 Corda 3 3 开始 如果 Tx 没有输入且没有时间窗口 则不会将其发送给公证人进行签名

随机推荐