corda/docs/source/api-index.rst
Joel Dudley f0138dfe17 Tutorial refresh for v1.0 and moving of code into separate files. (#1758)
* Moves code sections in tutorials to code files.

* Removes wallet references.

* Updates repo layout doc.

* Removes remaining cordapp-tutorial references, replaced with cordapp-example.

* Fixes broken link.

* Misc docs fixes.

* Refreshes the ServiceHub and rpc ops api pages.

* Updates the cheat sheet.

* Updates cookbooks.

* Refreshes the running-a-notary tutorial.

* Updates flow-testing tutorial

* Updates tear-offs tutorial.

* Refreshes integration-testing tutorial.

* Updates to contract tutorial and accompanying code to bring inline with V1 release.

* Refreshes contract-upgrade tutorial.

* Fixed broken code sample in "writing a contract" and updated contracts dsl.

* Added contract ref to java code. Fixed broken rst markup.

* Updates transaction-building tutorial.

* Updates the client-rpc and flow-state-machines tutorials.

* Updates the oracles tutorial.

* Amended country in X500 names from "UK" to "GB"

* Update FlowCookbook.kt

* Amended cheatsheet. Minor update on contract upgrades tutoraial.

* Added `extraCordappPackagesToScan` to node driver.

* Changes to match new function signature.

* Update to reflect change in location of cash contract name.
2017-10-02 10:11:33 +01:00

2.3 KiB

API

This section describes the APIs that are available for the development of CorDapps:

api-states api-persistence api-contracts api-vault-query api-transactions api-flows api-identity api-service-hub api-rpc api-core-types

Before reading this page, you should be familiar with the key concepts of Corda <key-concepts>.

Internal APIs and stability guarantees

Warning

For Corda 1.0 we do not currently provide a stable wire protocol or support for database upgrades. Additionally, the JSON format produced by the client-jackson module may change in future. Therefore, you should not expect to be able to migrate persisted data from 1.0 to future versions.

Additionally, it may be necessary to recompile applications against future versions of the API until we begin offering ABI stability as well. We plan to do this soon after the release of Corda 1.0.

Finally, please note that the 1.0 release has not yet been security audited. You should not run it in situations where security is required.

As of Corda 1.0, the following modules export public API that we promise to maintain backwards compatibility for, unless an incompatible change is required for security reasons:

  • core
  • client-rpc
  • client-jackson

The following modules don't yet have a completely stable API, but we will do our best to minimise disruption to developers using them until we are able to graduate them into the public API:

  • the Gradle plugins (cordformation)
  • node-driver
  • confidential-identities
  • test-utils
  • client-jfx, client-mock
  • finance
  • anything under the experimental directory (sub-components here may never graduate)

We hope to graduate the node-driver, test-utils and confidential-identities modules in the next feature release after 1.0. The bulk of the Corda API is found in the core module. Other modules should be assumed to be fully internal.

The web server module will be removed in future: you should build web frontends for CorDapps using standard frameworks like Spring Boot, J2EE, Play, etc.

Code that falls into the following package namespaces are for internal use only and not public. In a future release the node will not load any CorDapp which uses them.

  • Any package in the net.corda namespace which contains .internal
  • net.corda.node