mirror of
https://github.com/corda/corda.git
synced 2024-12-18 20:47:57 +00:00
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.
99f835bb4a
* CORDA-3995 Redeliver external events in number of suspends differs When retrying a flow, only redeliver external events held in a flow's pending deduplication handlers if there is a difference in the `numberOfSuspends` on the `currentState`'s checkpoint or the checkpoint in the database. If the checkpoint committed, but the flow retried, then the external events would have been persisted to the database as part of the same transaction. Therefore there is no need to replay them, as they have already been processed as saved as part of the checkpoint. This change is only relevant when the checkpoint persists, but the flow still needs to retry after this occurs (within the same transition/event). * CORDA-3995 Redeliver external events in number of commits differs When retrying a flow, only redeliver external events held in a flow's pending deduplication handlers if there is a difference in the `numberOfCommits` on the `currentState`'s checkpoint or the checkpoint in the database. If the checkpoint committed, but the flow retried, then the external events would have been persisted to the database as part of the same transaction. Therefore there is no need to replay them, as they have already been processed as saved as part of the checkpoint. This change is only relevant when the checkpoint persists, but the flow still needs to retry after this occurs (within the same transition/event). * CORDA-3995 Redeliver external events if number of commits differs When retrying a flow, only redeliver external events held in a flow's pending deduplication handlers if there is a difference in the `currentState`'s `numberOfCommits` or the `numberOfCommits` the checkpoint has recorded in the database. If the checkpoint committed, but the flow retried, then the external events would have been persisted to the database as part of the same transaction. Therefore there is no need to replay them, as they have already been processed as saved as part of the checkpoint. This change is only relevant when the checkpoint persists, but the flow still needs to retry after this occurs (within the same transition/event). * Add @Suspendable to a test flow. I am surprised this worked at all. * Fix a few minor things based on review. Co-authored-by: Will Vigor <william.vigor@r3.com> |
||
---|---|---|
.ci | ||
.github | ||
.idea | ||
client | ||
common | ||
confidential-identities | ||
config | ||
core | ||
core-deterministic | ||
core-tests | ||
detekt-plugins | ||
docker | ||
docs | ||
experimental | ||
finance | ||
gradle/wrapper | ||
isolated | ||
jdk8u-deterministic | ||
lib | ||
node | ||
node-api | ||
node-api-tests | ||
release-tools | ||
samples | ||
serialization | ||
serialization-deterministic | ||
serialization-djvm | ||
serialization-tests | ||
testing | ||
tools | ||
.dockerignore | ||
.gitignore | ||
build.gradle | ||
BUILD.md | ||
buildCacheSettings.gradle | ||
constants.properties | ||
CONTRIBUTING.md | ||
CONTRIBUTORS.md | ||
detekt-baseline-config.yml | ||
detekt-baseline.xml | ||
detekt-config.yml | ||
deterministic.gradle | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
java8.gradle | ||
Jenkinsfile | ||
LICENSE | ||
README.md | ||
SECURITY.md | ||
settings.gradle | ||
sizing.sh | ||
TRADEMARK |
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
- Read the Getting Started documentation
- Run the Example CorDapp
- Read about Corda's Key Concepts
- Follow the Hello, World! tutorial
Useful links
- Project Website
- Mailing List
- Documentation
- Stack Overflow Tag
- Slack Channel
- Meetups
- Training Courses
Contributing
Corda is an open-source project and contributions are welcome!
To find out how to contribute, please see our contributing docs.
License
Acknowledgements
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.