Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(corda): add Corda ledger support #608

Merged

Conversation

petermetz
Copy link
Member

@petermetz petermetz commented Mar 1, 2021

Depends on #607
Fixes #547
Fixes #143

Primary Changes

  1. Corda all-in-one image

Runs the notary and 3 participants for the obligation advanced
kotlin sample.

  1. Corda ledger connector server as a JVM app
    (uses the "kotlin-spring" generator template from OpenAPI)
    The only file that is non-generated in that folder is the
    service implementation called ApiPluginLedgerConnectorCordaServiceImpl.kt

TODO: make sure the generated folder can be cleaned and regenerated
without having to manually re-add the implementation file mentioned
above.

  1. The Typescript interfaces necessary for the NodeJS API server to
    be able to communicate with the JVM app in a transparent manner where
    higher level plugins can talk to Corda through the connector in Typescript
    without realizing that they are actually sending HTTP requests over the
    network to the JVM app.

  2. Home-grown, JSON-embedded DSL is used to define the flow params.

  3. Lots of to-dos still, but there are end to end tests passing
    and everything is working with containers.

  4. Jar deployment is only partially supported for now: if the jar
    is already present on the node, then calling the jar deploy endpoint
    on the connector will make sure to add that jar to the classpath of
    the connector as well. If however the jar is not deployed on the corda
    node itself then it will no work just yet because the SSH connection
    is not yet implemented in the corda connector.

Signed-off-by: Peter Somogyvari peter.somogyvari@accenture.com

@petermetz petermetz added enhancement New feature or request Corda labels Mar 1, 2021
@petermetz petermetz enabled auto-merge (rebase) March 1, 2021 09:07
@petermetz petermetz force-pushed the feat/ledger-connector-corda-v2-143 branch from 7021c6d to 2d1b5af Compare March 1, 2021 09:28
@github-actions
Copy link

github-actions bot commented Mar 1, 2021

🎉 Great news! Looks like all the dependencies have been resolved:

💡 To add or remove a dependency please update this issue/PR description.

Brought to you by Dependent Issues (:robot: ). Happy coding!

Copy link
Contributor

@jonathan-m-hamilton jonathan-m-hamilton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

takeutak
takeutak previously approved these changes Mar 2, 2021
@petermetz petermetz force-pushed the feat/ledger-connector-corda-v2-143 branch 2 times, most recently from a756c34 to 860254c Compare March 3, 2021 04:25
@petermetz petermetz force-pushed the feat/ledger-connector-corda-v2-143 branch 4 times, most recently from 4fa974a to ac0d32a Compare March 4, 2021 00:45
Copy link
Contributor

@jonathan-m-hamilton jonathan-m-hamilton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Primary Changes
===============

1. Corda all-in-one image

Note: In this state of it it runs the full
sample with all the nodes and web servers
which ends up using 11GB of RAM so we will
have to thin this down eventually once the
Corda connector is otherwise passing the tests
with this container. Once we are at that
point we can start removing parts of the
AIO container to reduce RAM usage and verify
that the tests are still passing without
issues or not.

2. Corda ledger connector server as a JVM app
(uses the "kotlin-spring" generator template from OpenAPI)
The only file that is non-generated in that folder is the
service implementation called ApiPluginLedgerConnectorCordaServiceImpl.kt

TODO: make sure the generated folder can be cleaned and regenerated
without having to manually re-add the implementation file mentioned
above.

3. The Typescript interfaces necessary for the NodeJS API server to
be able to communicate with the JVM app in a transparent manner where
higher level plugins can talk to Corda through the connector in Typescript
without realizing that they are actually sending HTTP requests over the
network to the JVM app.

4. Home-grown, JSON-embedded DSL is used to define the flow params.

5. Lots of to-dos still, but there are end to end tests passing
and everything is working with containers.

6. Jar deployment is only partially supported for now: if the jar
is already present on the node, then calling the jar deploy endpoint
on the connector will make sure to add that jar to the classpath of
the connector as well. If however the jar is not deployed on the corda
node itself then it will no work just yet because the SSH connection
is not yet implemented in the corda connector.

Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
@petermetz petermetz force-pushed the feat/ledger-connector-corda-v2-143 branch from 4dde8b6 to c8dc500 Compare March 4, 2021 18:34
@petermetz petermetz merged commit 5623369 into hyperledger:main Mar 5, 2021
@petermetz petermetz deleted the feat/ledger-connector-corda-v2-143 branch March 5, 2021 02:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Corda enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feat(connector-corda): add plugin implementation feat(test-tooling): corda all-in-one docker image
3 participants