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
Dan Newton 268d129838 CORDA-3194 Replay start flow events when responding flow fails initial checkpoint commit (#2601)
* CORDA-3194 Replay start flow events when responding flow fails initial checkpoint commit

Logic has already been added to recover from initial checkpoint commit
failures on the initiating flow side but this did not suffice for
the same failure occurring on the responding flow's side.

The same idea has been added to resolve the responding flow's issue.

`ExternalMessageEvent` now has a `flowId` that is maintained on the
event. Messages can then be replayed to start/restart the flow, while
the event provides the flow id to each flow start.

Each `ExternalMessageEvent` implementation generates a random `flowId`
when constructed.

Events are stored in Artemis. This allows the solution to recover across
node restarts as the events will be pulled from artemis again when
restarting.

In the future `flowId`s will probably moved off of the events and
generated purely on the responding flow's node.

* CORDA-3194 Add test to verify that errors removing a responding flow are recoverable
2019-11-01 11:48:07 +00:00
.ci Re enabling persistent volume claims (#5628) 2019-10-29 16:23:22 +00:00
.github Fixed broken links in GitHub PR template 2019-09-16 14:07:58 +12:00
.idea CORDA-3281: Drop some errors to warnings and clean up logic around (#5605) 2019-10-22 11:02:04 +01:00
buildSrc Re enabling persistent volume claims (#5628) 2019-10-29 16:23:22 +00:00
client CORDA-3281: Drop some errors to warnings and clean up logic around (#5605) 2019-10-22 11:02:04 +01:00
common NOTICK: Change build number to snapshot 2019-09-20 16:45:54 +01: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-3152: Register custom serializers for jackson as well as amqp 2019-10-16 13:08:01 +01:00
core-deterministic Webook test branch (#5528) 2019-10-08 16:33:24 +02:00
core-tests CORDA-2965 Make Tx verification exceptions serializable. (#5560) 2019-10-09 11:43:06 +01:00
create-jdk8u ENT-1467: Make the deterministic JDK image compatible with IntelliJ. (#3416) 2018-06-26 11:53:16 +01:00
docker CORDA-3336: Remove log4j plugins to stop errors in config generator (#5617) 2019-10-21 13:31:09 +01:00
docs adding one point to whitelist contract constraints migration - signed… (#5568) 2019-11-01 10:49:04 +00:00
experimental TM-23 Fail build on compiler warnings (#5453) 2019-09-11 16:34:51 +01:00
finance TM-23 Fail build on compiler warnings (#5453) 2019-09-11 16:34:51 +01: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-2871: Fine-tune compile vs runtime scopes of published deterministic jars. (#5241) 2019-06-21 14:01:59 +01:00
lib CORDA-2050 Revert back to quasar 0.7.10 (Java 8) (#5514) 2019-09-24 13:24:16 +01:00
node CORDA-3194 Replay start flow events when responding flow fails initial checkpoint commit (#2601) 2019-11-01 11:48:07 +00:00
node-api CORDA-3217 and CORDA-3195 Various bits arond SQL exceptions and flow hospital (#2605) 2019-11-01 11:48:07 +00:00
release-tools CORDA-3017 - Fix release tooling when product name != jira project (#5229) 2019-06-21 09:28:07 +01:00
samples CORDA-3360 Add nodeInfo permissions to web user 2019-10-23 09:58:59 +01:00
serialization CORDA-3388: Restore mapping of 'java.lang.Void -> void' (#5650) 2019-10-30 17:47:13 +00:00
serialization-deterministic CORDA-2050 Upgrade Corda to Java 11 (compatibility mode) (#5356) 2019-09-18 10:26:26 +01:00
serialization-tests CORDA-2050 Upgrade Corda to Java 11 (compatibility mode) (#5356) 2019-09-18 10:26:26 +01:00
testing CORDA-3194 Replay start flow events when responding flow fails initial checkpoint commit (#2601) 2019-11-01 11:48:07 +00:00
tools CORDA-3335 Corda Shell flow kill - better warning for misformatted flow ID (#5601) 2019-10-22 11:32:17 +01:00
.dockerignore WIP Kubenetes parallel build (#5396) 2019-09-03 15:40:08 +00:00
.gitignore WIP Kubenetes parallel build (#5396) 2019-09-03 15:40:08 +00:00
build.gradle PreAllocate pod resources during image build phase (#5587) 2019-10-28 11:48:04 +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-3244, CORDA-3245 - Jolokia docs update (#5486) 2019-10-14 10:08:01 +01: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 Revert "CORDA-3307 - add support for environment variables in linux (#5523)" (#5643) 2019-10-29 17:55:58 +00:00
detekt-config.yml disable ReturnCount detekt check (#5581) 2019-10-15 09:39:53 +01:00
deterministic.gradle ENT-1463, ENT-1903: Refactor Gradle for deterministic modules (#3387) 2018-06-18 14:14:48 +01: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 Re enabling persistent volume claims (#5628) 2019-10-29 16:23:22 +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 CORDA-3217 and CORDA-3195 Various bits arond SQL exceptions and flow hospital (#2605) 2019-11-01 11:48:07 +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.