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
Katarzyna Streich 5d2ad46553
CORDA-2089 - network parameters tags - part (#4228)
* CORDA-2089 - network parameters tags - part

Data structures changes, storage and notarisation.

Tag transactions with network parameters hash that was in force when tx
was created. Add component group on all core transactions and resolved
parameters on full transactions. The hash should be always visible on
the filtered versions of transactions. Add
notarisation check that the parameters are current.
Implement network parameters storage on services for resolution.

This is only part of the work, next PR will include changes to
ResolveTransactionsFlow to make sure that parameters in the transaction
graph are ordered (this is to prevent the downgrade attack, when the
malicious notary and participants sign transaction that shouldn't be
notarised otherwise).
Probably on network services side we need the default parameters
endpoint for the
transactions that were created before this change - for now it's default
to the current ones.

* Make parameters storage agnostic to cert hierarchy

Test fixes

* Address most PR comments

* Fixes after rebase

* Fixes. Add epoch column to parameters storage.

* Address part of review comments

* Some more comments

* Hopefully fixing what I broke doing rebse

* Address Kostas comments

* Further fixes

* Save all parameters from updates to storage

* Fix integration test

* Address comments

* Fixes after rebase

* Fix test

* Fixes

* Add wrapper for filtering around parameters hash

* API stability fixes

* Add NetworkParametersStorageInternal

* Rename
2018-11-27 15:48:32 +00:00
.ci ENT-2356 NotaryServiceFlow backpressure (#4242) 2018-11-23 17:45:36 +00:00
.github Typo. (#3750) 2018-08-07 10:14:23 +01:00
.idea Removed crypto service config (#4284) 2018-11-22 20:30:37 +00:00
buildSrc Move cmd file to more suitable place 2018-11-09 17:55:15 +01:00
client CORDA-2089 - network parameters tags - part (#4228) 2018-11-27 15:48:32 +00:00
common [CORDA-2235]: Add overrides for network parameters via command line and file (#4279) 2018-11-26 17:11:05 +00:00
confidential-identities CORDA-2114: SwapIdentitiesFlow is now inlined (#4260) 2018-11-26 09:41:14 +00:00
config ENT-2695 Restore async logging (#4195) 2018-11-08 14:33:45 +00:00
core CORDA-2089 - network parameters tags - part (#4228) 2018-11-27 15:48:32 +00:00
core-deterministic CORDA-2089 - network parameters tags - part (#4228) 2018-11-27 15:48:32 +00:00
create-jdk8u ENT-1467: Make the deterministic JDK image compatible with IntelliJ. (#3416) 2018-06-26 11:53:16 +01:00
djvm ENT-1906: Don't transform java.Object[] to sandbox.Object[]. (#4115) 2018-10-29 16:32:40 +00:00
docker Add Docker image as output of build (#4223) 2018-11-20 13:38:44 +00:00
docs [CORDA-2235]: Add overrides for network parameters via command line and file (#4279) 2018-11-26 17:11:05 +00:00
experimental ENT-2356 NotaryServiceFlow backpressure (#4242) 2018-11-23 17:45:36 +00:00
finance ENT-2320 state contract identification (#4285) 2018-11-26 16:02:32 +00:00
gradle/wrapper CORDA-1983: Upgrade to Gradle 4.10.1. (#3947) 2018-09-15 14:23:16 +01:00
jdk8u-deterministic CID-251: Integrate DJVM with Corda's existing deterministic-rt. (#3846) 2018-08-24 15:51:40 +01:00
lib [CORDA-1611] Upgrade Quasar to 0.7.10 (#3342) 2018-06-12 09:38:14 +01:00
node CORDA-2089 - network parameters tags - part (#4228) 2018-11-27 15:48:32 +00:00
node-api CORDA-2089 - network parameters tags - part (#4228) 2018-11-27 15:48:32 +00:00
release-tools NOTICK - Allow JIRA user name to be provided in an environment variable (#4202) 2018-11-08 18:19:10 +00:00
samples Update to corda-gradle-plugins v4.0.36 (#4292) 2018-11-27 11:41:05 +00:00
serialization CORDA-2248 Remove spring boot hack. (#4305) 2018-11-27 13:39:54 +00:00
serialization-deterministic CORDA-2099 serialisation rewrite (#4257) 2018-11-22 11:44:40 +00:00
testing CORDA-2089 - network parameters tags - part (#4228) 2018-11-27 15:48:32 +00:00
tools CORDA-2248 fix rpc classloader issue (#4288) 2018-11-27 09:53:44 +00:00
webserver CORDA-1985: Configure Gradle capsule plugin to use Capsule 1.0.3. (#3949) 2018-09-17 13:55:31 +01:00
.gitignore add kotlin 1.3 codestyle to git (#4204) 2018-11-09 09:38:41 +00:00
build.gradle Update to corda-gradle-plugins v4.0.36 (#4292) 2018-11-27 11:41:05 +00:00
buildCacheSettings.gradle Explicitly disable remote gradle build cache when building locally. (#4095) 2018-10-19 16:40:06 +01:00
constants.properties Update to corda-gradle-plugins v4.0.36 (#4292) 2018-11-27 11:41:05 +00:00
CONTRIBUTING.md Combines all contributing info in one place. Clean-up. (#4266) 2018-11-20 18:17:11 +00:00
CONTRIBUTORS.md CORDA-1480: In Demobench, saving a profile, opening it, and adding a node skips next name (#4113) 2018-11-23 10:18:02 +00:00
deterministic.gradle ENT-1463, ENT-1903: Refactor Gradle for deterministic modules (#3387) 2018-06-18 14:14:48 +01:00
gradle.properties ENT-2684 Fix owasp dependency checker to fail builds based on CVSS level (#4169) 2018-11-07 09:00:19 +00:00
gradlew Upgraded to gradle 4.1. 2017-08-23 15:36:08 +01:00
gradlew.bat Upgrade gradle to 4.4.1 2018-01-24 16:15:43 +00:00
LICENSE Update license year to 2018 (#3000) 2018-04-25 14:47:32 +01:00
README.md Fix mailing list link to point to corda-dev 2018-11-01 16:04:12 +01:00
settings.gradle Add Docker image as output of build (#4223) 2018-11-20 13:38:44 +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

We welcome contributions to Corda! Please see our CONTRIBUTING.md.

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.