Corda is a distributed ledger platform designed to record, manage and automate legal agreements between business partners. Designed by (and for) the world's largest financial institutions, it offers a unique response to the privacy and scalability challenges facing decentralised applications.
Kotlin Java Other
Switch branches/tags
Latest commit 22be9fd Sep 21, 2017 @rnicoll rnicoll committed with josecoll CORDA-579: Move X509EdDSAEngine into net.corda.core.internal package (#…
…1563)

* Add reflection based X509EdDSAEngine

* Rewrite X509EdDSAEngine to use public API rather than the direct equivalent functions

* Add unit tests for X509EdDSAEngine

* Remove unused imports

* Add unit tests for X509Key verification

* Add explicit x509 construct from eddsa key

This allows testing of conversion engine

* Review Comments
Permalink
Failed to load latest commit information.
.github Adjustments to the PR checklist Sep 20, 2017
.idea CORDA-579: Move X509EdDSAEngine into net.corda.core.internal package (#… Sep 21, 2017
buildSrc Upgraded both guava and guava-testlib to 21.0 and made sure they shar… Mar 24, 2017
client Remove unused certificate method from IdentityService. (#1582) Sep 21, 2017
confidential-identities Remove unused certificate method from IdentityService. (#1582) Sep 21, 2017
config Enforce X500Name format defined in design doc (#1427) Sep 7, 2017
core CORDA-579: Move X509EdDSAEngine into net.corda.core.internal package (#… Sep 21, 2017
docs Removes references to clauses from the docs. (#1595) Sep 21, 2017
experimental Change public constant values to Kotlin constants (#1588) Sep 21, 2017
finance Change public constant values to Kotlin constants (#1588) Sep 21, 2017
gradle-plugins Exclude kotlin-reflect artifact from any CorDapp. (#1555) Sep 19, 2017
gradle/wrapper Switched gradle to include sources to make maintaining gradle files e… Aug 24, 2017
lib Restoring lib/quasar.jar from repo (#1389) Sep 5, 2017
node-api Change public constant values to Kotlin constants (#1588) Sep 21, 2017
node Change public constant values to Kotlin constants (#1588) Sep 21, 2017
samples CORDA-570: Display calendar name instead of long and incomplete list … Sep 21, 2017
testing Change public constant values to Kotlin constants (#1588) Sep 21, 2017
tools Explorer advertising service fix (#1576) Sep 21, 2017
verifier CORDA-577: FlowSession porting (#1530) Sep 21, 2017
webserver CordaX500Name JAX-RS parameter converter (#1571) Sep 21, 2017
.gitignore Add kotlin throwables to whitelist (#1424) Sep 6, 2017
CONTRIBUTING.md Addressed some review comments about the license and readmes. Nov 22, 2016
LICENSE Update LICENSE Mar 6, 2017
README.md Added a TC build icon and link to readme. Jun 15, 2017
TRADEMARK Updated URL link to R3 trademark policy Jul 13, 2017
build.gradle Move SwapIdentitiesFlow to confidential-identities module (#1531) Sep 18, 2017
constants.properties Exclude kotlin-reflect artifact from any CorDapp. (#1555) Sep 19, 2017
gradle.properties Enable Kotlin incremental compilation in Gradle Jan 6, 2017
gradlew Upgraded to gradle 4.1. Aug 23, 2017
gradlew.bat Upgrade to Kotlin 1.0.7 and Gradle 3.4.1 (#402) Mar 22, 2017
settings.gradle Move SwapIdentitiesFlow to confidential-identities module (#1531) Sep 18, 2017

README.md

Corda

Corda

Corda is a decentralised database system in which nodes trust each other as little as possible.

Features

  • A P2P network of nodes
  • Smart contracts
  • Flow framework
  • "Notary" infrastructure to validate uniqueness of transactions
  • Written as a platform for distributed apps called CorDapps
  • Written in Kotlin, targeting the JVM

Getting started

Firstly, read the Getting started documentation.

Next, use the following guides to set up your dev environment:

  • If you are on Windows use this getting started guide which also explains through how to run the sample apps.

  • Alternatively if you are on Mac/Linux, watch this brief Webinar which walks through getting Corda, installing it, building it, running nodes and opening projects in IntelliJ.

After the above, watching the following webinars will give you a great introduction to Corda:

Webinar 1 – Introduction to Corda

Richard Brown, R3 Chief Technology Officer, explains Corda's unique architecture, the only distributed ledger platform designed by and for the financial industry's unique requirements. You may want to read the Corda non-technical whitepaper as pre-reading for this session.

Webinar 2 – Corda Developers’ Tutorial

Roger Willis, R3 Developer Relations Lead, provides an overview of Corda from a developer’s perspective and guidance on how to start building CorDapps. You may want to view Webinar 1 - Introduction to Corda as preparation for this session. NB. This was recorded for the M5 release.

Building on Corda

To build your own CorDapps:

  1. Clone the CorDapp Template repository
  2. Read the README (IMPORTANT!)
  3. Read the Writing a CorDapp documentation

To look at the Corda source and run some sample applications:

  1. Clone this repository
  2. To run some sample CorDapps, read the running the demos documentation
  3. Start hacking and contribute!

Useful links

Development State

Corda is under active development and is maturing rapidly. We are targeting production-readiness in 2017. The API will continue to evolve throughout 2017; backwards compatibility not assured until version 1.0.

Pull requests, experiments, and contributions are encouraged and welcomed.

Background

The project is supported by R3, a financial industry consortium, which is why it contains some code for financial use cases and why the documentation focuses on finance. The goal is to use it to construct a global ledger, simplifying finance and reducing the overheads of banking. But it is run as an open source project and the basic technology of a peer-to-peer decentralised database may be useful for many different projects.

Contributing

Please read here.

License

Apache 2.0

Acknowledgements

YourKit

YourKit supports open source projects with its full-featured Java Profiler.

YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.