Reputation: 2849
I have enabled the signing for contracts module with the following code snippet:
signing {
enabled true
options {
keystore signingKey.keystore
alias signingKey.alias
storepass signingKey.storepass
keypass signingKey.keypass
storetype signingKey.storetype
}
}
This works perfectly when I build my contracts with jar
task, but when I run the deployNodes
task I get the following wired exception:
Execution failed for task ':deployNodes'.
> Corda X.500 names must include an O attribute
> Corda X.500 names must include an O attribute
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':deployNodes'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
at org.gradle.execution.taskgraph.LocalTaskInfoExecutor.execute(LocalTaskInfoExecutor.java:42)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:277)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:262)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:135)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.execute(DefaultTaskPlanExecutor.java:200)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.executeWithWork(DefaultTaskPlanExecutor.java:191)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.api.InvalidUserCodeException: Corda X.500 names must include an O attribute
at net.corda.plugins.Baseform.bootstrapNetwork(Baseform.kt:235)
at net.corda.plugins.Cordform.build(Cordform.kt:68)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:801)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:768)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
... 31 more
Caused by: java.lang.IllegalArgumentException: Corda X.500 names must include an O attribute
at net.corda.core.identity.CordaX500Name$Companion.build(CordaX500Name.kt:88)
at net.corda.core.identity.Party.<init>(Party.kt:33)
at net.corda.core.internal.JarSignatureCollector.toPartiesOrderedByName(JarSignatureCollector.kt:80)
at net.corda.core.internal.JarSignatureCollector.collectSigningParties(JarSignatureCollector.kt:35)
at net.corda.nodeapi.internal.network.NetworkBootstrapper.isSigned(NetworkBootstrapper.kt:461)
at net.corda.nodeapi.internal.network.NetworkBootstrapper.bootstrap(NetworkBootstrapper.kt:250)
at net.corda.nodeapi.internal.network.NetworkBootstrapper.bootstrap$default(NetworkBootstrapper.kt:218)
at net.corda.nodeapi.internal.network.NetworkBootstrapper.bootstrapCordform(NetworkBootstrapper.kt:198)
at net.corda.plugins.Baseform.bootstrapNetwork(Baseform.kt:233)
... 46 more
There is nothing interesting in my deployNodes
task I guess, but in any case, here it is:
task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
nodeDefaults {
projectCordapp {
deploy = false
}
cordapp project(':tcw-contracts-states')
cordapp project(':tcw-cordapp')
}
node {
name "O=Notary, L=London, C=GB"
notary = [validating: false]
p2pPort 10002
rpcSettings {
address("localhost:10003")
adminAddress("localhost:10043")
}
}
node {
name "O=PartyA, L=London, C=GB"
p2pPort 10005
rpcSettings {
address("localhost:10006")
adminAddress("localhost:10046")
}
cordapp (project(':tcw_corda_webserver')) {
config "braidPort=8080"
}
extraConfig = [
'h2Settings.address': 'localhost:10036',
'dataSourceProperties.dataSource.user': 'asd',
'dataSourceProperties.dataSource.password': '123'
]
rpcUsers = [[ user: "user1", "password": "test", "permissions": ["ALL"]]]
}
node {
name "O=PartyB, L=New York, C=US"
p2pPort 10008
rpcSettings {
address("localhost:10009")
adminAddress("localhost:10049")
}
cordapp (project(':tcw_corda_webserver')) {
config "braidPort=8081"
}
extraConfig = [
'h2Settings.address': 'localhost:10039',
'dataSourceProperties.dataSource.user': 'asd',
'dataSourceProperties.dataSource.password': '123'
]
rpcUsers = [[user: "user1", "password": "test", "permissions": ["ALL"]]]
}
}
Upvotes: 0
Views: 397
Reputation: 583
This error would occur if you had not specified proper value for dname during the time of creation of java key store. It should have "OU=, O=, L=, C=" all supplied properly.
keytool -keystore jarSignKeystore.jks -keyalg RSA -genkey -dname "OU=, O=, L=, C=" -storepass [password] -keypass [password] -alias your-alias
Upvotes: 0
Reputation: 17
For future references these error is related to the JDK is being used:
Installing with a tooling JDK 8.x works You can do that by installing :
sdk install java 8.0.292-open
BEFORE
(base) ➜ cordapp-example git:(master) ./gradlew deployNodes
> Task :contracts:jar FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':contracts:jar'.
> Exception while signing contracts-1.0.jar, ensure the 'cordapp.signing.options' entry contains correct keyStore configuration, or disable signing by 'cordapp.signing.enabled false'. Run with --info or --debug option and search for 'ant:signjar' in log output.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.6.4/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 1s
4 actionable tasks: 2 executed, 2 up-to-date
(base) ➜ cordapp-example git:(master)
AFTER
(base) ➜ cordapp-example git:(master) sdk install java 8.0.292-open
Downloading: java 8.0.292-open
In progress...
################################################################################################################################################################################################################### 100.0%################################################################################################################################################################################################################### 100.0%
Repackaging Java 8.0.292-open...
Done repackaging...
Installing: java 8.0.292-open
Done installing!
Setting java 8.0.292-open as default.
(base) ➜ cordapp-example git:(master) ./gradlew deployNodes
Starting a Gradle Daemon, 1 busy and 2 stopped Daemons could not be reused, use --status for details
> Task :jar
Cordapp metadata not defined for this gradle build file. See https://docs.corda.net/head/cordapp-build-systems.html#separation-of-cordapp-contracts-flows-and-services
> Task :deployNodes
Running Cordform task
Deleting /home/shellcheff/Development/dust/DustR3/samples-kotlin/Basic/cordapp-example/build/nodes
Bootstrapping local test network in /home/shellcheff/Development/dust/DustR3/samples-kotlin/Basic/cordapp-example/build/nodes
Generating node directory for Notary
Generating node directory for PartyA
Generating node directory for PartyB
Waiting for all nodes to generate their node-info files...
Distributing all node-info files to all nodes
Loading existing network parameters... none found
Gathering notary identities
Generating contract implementations whitelist
New NetworkParameters {
minimumPlatformVersion=8
notaries=[NotaryInfo(identity=O=Notary, L=London, C=GB, validating=false)]
maxMessageSize=10485760
maxTransactionSize=524288000
whitelistedContractImplementations {
}
eventHorizon=PT720H
packageOwnership {
}
modifiedTime=2021-05-20T07:51:20.057Z
epoch=1
}
Bootstrapping complete!
Run database schema migration scripts
Run database schema migration scripts
Run database schema migration scripts
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.6.4/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 1m 8s
14 actionable tasks: 13 executed, 1 up-to-date
Strict rules and SDK might not be the path forward for this tool but .. in this case works
Enjoy. Happy Coding.
Upvotes: 1
Reputation: 1053
similar to Sneha I tried enabling key signing on an example cordapp and was able to run it multiple times locally without any issues.
without being able to see your code here are my suggestions.
try clearing your gradle cache.
try recopying your project to a different directory and with intellij, open the project. (remember open and import project are NOT the same thing).
Make sure your deployNodes task works correctly for other projects on this machine or others.
thanks and best of luck.
Upvotes: 0