Hyperledger fabric configuration with DAML SDK version 1.18.0

I am working on project which requires hyperledger fabric configuration with DAML. I found the required documentation to set up daml on fabric : GithubRepo. It is mentioned in requiremement that the DAML SDK version reqd is 1.10.0.

However, in my project, we are using 1.18.0 daml sdk version and when I pass the jar file associated with daml build of 1.18.0 version,

I get the error on running this command :

sbt "run --port 6865 --role provision,time,ledger,explorer …/project-daml-project/project-daml/.daml/dist/project-daml-0.0.1.dar"

The error is :

12:47:57.477 ERROR c.d.r.ProgramResource - Shutting down because of an initialization error.
java.lang.RuntimeException: Could not load package ../project-daml-project/project-daml/.daml/dist/project-daml-0.0.1.dar: Could not parse archive 46f69b10ea210929c8efe09ce9e3dc0c31e8927113809a5425dce358d3a6d7c6: com.daml.lf.archive.Reader$ParseError: LF V1.14 unsupported. Supported LF versions are V1.6,V1.7,V1.8,V1.11,V1.12,V1.dev
	at scala.sys.package$.error(package.scala:30)
	at com.daml.platform.apiserver.StandaloneApiServer.$anonfun$loadDamlPackages$4(StandaloneApiServer.scala:157)
	at scala.util.Either.fold(Either.scala:192)
	at com.daml.platform.apiserver.StandaloneApiServer.loadDamlPackages(StandaloneApiServer.scala:157)
	at com.daml.platform.apiserver.StandaloneApiServer.acquire(StandaloneApiServer.scala:65)
	at com.daml.DamlOnFabricServer$$anon$1.$anonfun$acquire$16(DamlOnFabricServer.scala:168)
	at scala.util.Success.$anonfun$map$1(Try.scala:255)
	at scala.util.Success.map(Try.scala:213)
	at scala.concurrent.Future.$anonfun$map$1(Future.scala:292)
	at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:33)
	at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:33)
	at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

I believe that there is a version requirement mismatch between daml-sdk version used in project and the sdk version 1.10.0 required for running daml-on-fabric.
Since we cannot downgrade the version of our project from 1.18.0 to 1.10.0, we need help regarding how to setup daml-on-fabric in our project. Is there any fix for this issue?

Hi @gazjai and welcome to the forum.

You can fix this issue by compiling the DAR to LF version 1.12. To do so, add

build-options: [--target=1.12]

to your daml.yaml and rerun daml build.

That said, I’d recommend to switch to https://www.canton.io/ and its fabric integration which supports the latest LF version and is actively maintained.

1 Like

Thankyou for your response, It resolved the issue!