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
Viktor Kolomeyko 0978500a9a CORDA-2942: Node lifecycle events (#5846)
* CORDA-2942: Port minimal set of changes to make lifecycle events work

... and make codebase compile.

* CORDA-2942: Undo some changes which are not strictly speaking necessary

* CORDA-2942: Make `NodeServicesContext` leaner and delete `extensions-api` module

* CORDA-2942: Reduce even more number of files affected

* CORDA-2942: Integration test fix

* CORDA-2942: Make events `AfterStart` and `BeforeStop` generic w.r.t. `NodeServicesContext`

* CORDA-2942: `NodeLifecycleObserverService` and a set of integration tests.

Public API violations are expected as well as integration tests failing.

* CORDA-2942: Re-work to introduce `ServiceLifecycleObserver`

* CORDA-2942: Explicitly mention a type of exception that may be thrown for some events.

* CORDA-2942: Register `ServiceLifecycleObserver` through `AppServiceHub`

* CORDA-2942: Fix integration test + KDocs update

* CORDA-2942: Detekt and `api-current` update

* CORDA-2942: Improvement to `CordaServiceLifecycleFatalTests`

... or else it has side effects on other tests.

* CORDA-2942: Add an integration test for new API use in Java

Driver test is written in Kotlin, but services definition is written in Java.

Also KDocs improvements.

* CORDA-2942: Documentation and release notes update

* CORDA-2942: First set of changes following review by @mnesbit

* CORDA-2942: Second set of changes following review by @mnesbit

* CORDA-2942: Added multi-threaded test

* CORDA-2942: Fixes

* CORDA-2942: Undo changes to `api-current.txt`

* CORDA-2942: Bare mimimum change to `api-current.txt` for CI gate to pass.

* CORDA-2942: Address review feedback from @rick-r3

* CORDA-2942: Detekt update

* CORDA-2942: Delete `ServiceLifecycleObserverPriority` and replace it with `Int` after discussion with @mnesbit

* CORDA-2942: Introduce more `NodeLifecycleEvent` and switch services to listen for those events

* CORDA-2942: Few more changes after input from @rick-r3

* First stub on integration test
Unfinished - hang on issue and pay

* CORDA-2942: Switch to use out-of-process nodes for the inetgration test

Currently Alice and Notary stuck waiting to hear from each other.

* CORDA-2942: Extra log lines during event distribution

* CORDA-2942: Asynchronously distribute lifecycle events

* CORDA-2942: Await for complete P2P client start-up

Next step: Add vault query to integration test

* CORDA-2942: Asynchronously distribute lifecycle events

Next step: Improve integration test

* CORDA-2942: Fix test broken by recent changes and improve logging

* CORDA-2942: Improvement of the test to be able to monitor actions performed by @CordaService in the remote process

* CORDA-2942: Add node re-start step to the integration test

* CORDA-2942: Remove `CORDAPP_STOPPED` event for now

* CORDA-2942: s/CORDAPP_STARTED/STATE_MACHINE_STARTED/

* CORDA-2942: Inverse the meaning of `priority` as requested by @rick-r3

* CORDA-2942: Register `AppServiceHubImpl` for lifecycle events and put a warning when SMM is not ready.
2020-01-21 13:38:02 +00:00
.ci CORDA-2942: Node lifecycle events (#5846) 2020-01-21 13:38:02 +00:00
.github Fixed broken links in GitHub PR template 2019-09-16 14:07:58 +12:00
.idea Merge remote-tracking branch 'origin/release/os/4.3' into my_merge_branch 2019-11-04 17:48:15 +00:00
client CORDA-3507: Use the config value for connectionRetryInterval (#5850) 2020-01-14 09:57:11 +00:00
common CORDA-2942: Node lifecycle events (#5846) 2020-01-21 13:38:02 +00:00
confidential-identities TM-23 Fail build on compiler warnings (#5453) 2019-09-11 16:34:51 +01:00
config CORDA-3246 - Missing logs on shutdown (#5501) 2019-10-08 10:18:19 +01:00
core CORDA-2942: Node lifecycle events (#5846) 2020-01-21 13:38:02 +00:00
core-deterministic CORDA-3377: Upgrade to DJVM 1.0-RC06. (#5866) 2020-01-21 09:05:23 +00:00
core-tests CORDA-3485 Restore CollectSignaturesFlow.kt to allow multiple collections from Well Known sessions (#5800) 2019-12-17 16:26:09 +00:00
docker NOTICK: Refactor Gradle script for building Docker images. (#5813) 2019-12-16 14:34:51 +00:00
docs CORDA-2942: Node lifecycle events (#5846) 2020-01-21 13:38:02 +00:00
experimental NOTICK - Add C++ Serialiser Support for Maps and Arrays (#5775) 2019-12-13 00:32:25 +00:00
finance Merge remote-tracking branch 'origin/release/os/4.3' into my_merge_branch 2019-11-05 17:19:18 +00:00
gradle/wrapper WIP Kubenetes parallel build (#5396) 2019-09-03 15:40:08 +00:00
isolated CORDA-2893 Upgrade Corda to use Gradle 5.4.1 (Take 2) (#5137) 2019-05-20 14:26:42 +01:00
jdk8u-deterministic CORDA-3523: DJVM custom serializers and whitelists (#5858) 2020-01-16 17:48:15 +00:00
lib fix merge conflicts due to changes in Signed test cordapp creation 2019-11-05 17:42:38 +00:00
node CORDA-2942: Node lifecycle events (#5846) 2020-01-21 13:38:02 +00:00
node-api CORDA-2942: Node lifecycle events (#5846) 2020-01-21 13:38:02 +00:00
release-tools CORDA-3017 - Fix release tooling when product name != jira project (#5229) 2019-06-21 09:28:07 +01:00
samples ENT-4652: Provide an "attachment fixup" mechanism to repair broken transactions. (#5825) 2020-01-14 15:18:51 +00:00
serialization CORDA-3523: DJVM custom serializers and whitelists (#5858) 2020-01-16 17:48:15 +00:00
serialization-deterministic CORDA-3377: Upgrade to DJVM 1.0-RC06. (#5866) 2020-01-21 09:05:23 +00:00
serialization-djvm CORDA-3377: Upgrade to DJVM 1.0-RC05 (#5862) 2020-01-17 09:46:15 +00:00
serialization-tests CORDA-2050 Upgrade Corda to Java 11 (compatibility mode) (#5356) 2019-09-18 10:26:26 +01:00
testing CORDA-2942: Node lifecycle events (#5846) 2020-01-21 13:38:02 +00:00
tools https://r3-cev.atlassian.net/browse/ENT-3829 (#5763) 2019-12-03 10:28:00 +00:00
.dockerignore WIP Kubenetes parallel build (#5396) 2019-09-03 15:40:08 +00:00
.gitignore ENT-4595 Add git based version (#5799) 2019-12-11 17:50:27 +00:00
build.gradle [NOTICK] Print out local version (#5851) 2020-01-14 08:36:00 +00:00
BUILD.md add a shared memory port allocator to allow multiple processes to sha… (#5223) 2019-07-02 18:38:33 +00:00
buildCacheSettings.gradle Explicitly disable remote gradle build cache when building locally. (#4095) 2018-10-19 16:40:06 +01:00
constants.properties CORDA-3377: Upgrade to DJVM 1.0-RC06. (#5866) 2020-01-21 09:05:23 +00:00
CONTRIBUTING.md Combines all contributing info in one place. Clean-up. (#4266) 2018-11-20 18:17:11 +00:00
CONTRIBUTORS.md Contract tutorial update and Contributors list update (#5338) 2019-07-30 14:51:34 +01:00
detekt-baseline-config.yml TM-45 Make detektBaseline pass (#5561) 2019-10-15 15:49:31 +01:00
detekt-baseline.xml CORDA-2942: Node lifecycle events (#5846) 2020-01-21 13:38:02 +00:00
detekt-config.yml Converting Groovy to Java in the Distributed testing plugin (#5642) 2019-11-05 16:59:19 +00:00
deterministic.gradle CORDA-2876: Ensure that sandboxable byte-code is compiled for Java 8. 2019-11-14 16:22:28 +00:00
gradle.properties Revert "Merge pull request #5145 from corda/jdk11-migration-gradle5-upgrade" (#5146) 2019-05-20 16:16:49 +01:00
gradlew CORDA-2893 Upgrade Corda to use Gradle 5.4.1 (Take 2) (#5137) 2019-05-20 14:26:42 +01:00
gradlew.bat CORDA-2893 Upgrade Corda to use Gradle 5.4.1 (Take 2) (#5137) 2019-05-20 14:26:42 +01:00
Jenkinsfile Allow taints on kubernetes nodes to determine scheduling of tests (#5755) 2019-11-25 09:39:37 +00:00
LICENSE Use full Apache 2.0 license so GitHub recognizes it 2019-08-23 12:24:37 +02:00
README.md Fix logo image in README.md 2019-10-02 13:05:45 +02:00
SECURITY.md CORDA-2958 Security policy for corda 2019-06-03 10:38:13 +02:00
settings.gradle Merge remote-tracking branch 'origin/release/os/4.3' into my_merge_branch 2019-11-05 17:19:18 +00:00
sizing.sh add a shared memory port allocator to allow multiple processes to sha… (#5223) 2019-07-02 18:38:33 +00:00
TRADEMARK Updated URL link to R3 trademark policy 2017-07-13 11:43:41 +01:00

Corda

License

Corda

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.

Features

  • Smart contracts that can be written in Java and other JVM languages
  • Flow framework to manage communication and negotiation between participants
  • Peer-to-peer network of nodes
  • "Notary" infrastructure to validate uniqueness and sequencing of transactions without global broadcast
  • Enables the development and deployment of distributed apps called CorDapps
  • Written in Kotlin, targeting the JVM

Getting started

  1. Read the Getting Started documentation
  2. Run the Example CorDapp
  3. Read about Corda's Key Concepts
  4. Follow the Hello, World! tutorial

Contributing

Corda is an open-source project and contributions are welcome!

To find out how to contribute, please see our contributing docs.

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.