Corda is an open source blockchain project, designed for business from the start. Only Corda allows you to build interoperable blockchain networks that transact in strict privacy. Corda's smart contract technology allows businesses to transact directly, with value.
Go to file
Ross Nicoll 3c4e89e766 Merged in rnicoll-check-tx (pull request #469)
Add sanity check on SignedTransaction.id
2016-11-14 17:01:28 +00:00
.idea Added correct modules.xml for the finance project. 2016-11-04 13:38:46 +00:00
buildSrc Added back gradle config needed by quasar and capsule. 2016-11-04 17:53:37 +00:00
client Replace PublicKey with PublicKeyTree in Party. A single entity can now be identified by more than one key. 2016-11-14 14:57:16 +00:00
config More moving 2016-11-10 20:13:43 +01:00
core Add sanity check on SignedTransaction.id 2016-11-14 16:25:41 +00:00
docs Tech white paper: brief note on event scheduling 2016-11-11 14:25:56 +01:00
experimental Replace PublicKey with PublicKeyTree in Party. A single entity can now be identified by more than one key. 2016-11-14 14:57:16 +00:00
finance Replace PublicKey with PublicKeyTree in Party. A single entity can now be identified by more than one key. 2016-11-14 14:57:16 +00:00
gradle/wrapper Minor: bump Gradle to 2.10 2016-01-22 12:54:24 +01:00
gradle-plugins More moving 2016-11-10 20:13:43 +01:00
lib Upgrade Quasar to 0.7.6 and fix an exception handling bug in SMM that it revealed (if an exception was thrown immediately on protocol startup we let it leak instead of capturing it in the future. 2016-08-17 14:43:45 +01:00
node Nodes part of a group identity (e.g. notary) now advertise the whole group Party on the network. When sending a message to a group, a representative node advertising the group identity is first chosen (at random), and its legal identity is used for communication. Currently we assume that a single legal identity can't be advertised by more than one node (the PublicKeyTree of an identity is used for Artemis queue names and we need to do more work to properly map a single queue to multiple nodes) 2016-11-14 14:57:16 +00:00
test-utils Replace PublicKey with PublicKeyTree in Party. A single entity can now be identified by more than one key. 2016-11-14 14:57:16 +00:00
tools/explorer Replace PublicKey with PublicKeyTree in Party. A single entity can now be identified by more than one key. 2016-11-14 14:57:16 +00:00
.gitignore .gitignore: Use negative pattern for build/, remove some unused lines 2016-11-04 11:13:57 +00:00
build.gradle Rename com.r3corda -> net.corda 2016-11-10 17:14:24 +01:00
gradle.properties Move contracts base files to namespace to make api aspect clearer in includes. 2016-05-14 13:47:07 +01:00
gradlew Initial import 2015-11-03 17:54:17 +01:00
gradlew.bat Initial import 2015-11-03 17:54:17 +01:00
README.md Release notes for M5 2016-11-07 17:57:01 +01:00
settings.gradle settings.gradle: Revert to using / instead of : for docs example-code 2016-11-10 12:21:28 +00:00

Corda

Corda is a decentralised database system in which nodes trust each other as little as possible. This reference implementation is not yet complete or offering backwards compatibility, but should be suitable for small experiments and exploration of the underlying ideas.

Pull requests are appreciated. You can chat to the team on our forums and on our Slack. It runs on the JVM and is mostly written in Kotlin.

Project website

Documentation

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, thus simplifying finance and reducing the overheads of banking. But it is run as a typical open source project and the basic technology of a peer to peer decentralised database may be useful for many different projects. We'd love to hear about any interesting experiments you do with it!

Getting started

Corda consists of node software that takes part in a network, libraries you can use to develop apps for the platform, a client library that lets you interact with the node via RPC, and some samples showing how it all works.

To install:

  1. Make sure you have Oracle JDK 8 available (OpenJDK 8 support is coming).
  2. Run ./gradlew install to download all the dependencies (including the build tools), compile the code and install the core libraries into your local Maven repository (under ~/.m2)

To run some demo nodes that swap cash around between themselves:

  1. ./gradlew tools:explorer:runDemoNodes
  2. You can find a node now running on port 20002

To run an explorer app that lets you connect to a node and explore what it's doing, try ./gradlew tools:explorer:run. The explorer also lets you send and receive cash.

Now go read the documentation.

Getting involved

License

Apache 2.0